APP下载

基于Kubernetes和Docker技术的航油容器云平台架构设计

2021-11-20陈志达

电子技术与软件工程 2021年24期
关键词:航油容器组件

陈志达

(中国航空油料有限责任公司 北京市 100000)

1 引言

目前,企业级微服务场景的容器云平台已经成为高可用性、高性能、高安全性及易扩展性云平台服务的发展新趋势,尤其是在已部署大数据中心的基础上,随着IaaS(Infrastructure-as-a-Service)基础架构层的不断发展,基于Docker 容器技术的微服务架构技术,能极大程度地消除开发环境与运维环境的差异,便于进行版本管理和持续交付,与航油客户管理系统的大数据量、高频用户的应用场景尤为契合,但单纯的Docker 容器技术,无法应对航油客户管理系统高稳定性和高安全性的要求特点,因此,在PaaS 平台下,采用Kubernetes(K8S)对云资源环境进行管理。

Kubernetes 是Google 开源的一个容器编排引擎,它支持自动化部署、大规模可伸缩、应用容器化管理。在生产环境中部署一个应用程序时,通常要部署该应用的多个实例以便对应用请求进行负载均衡。航油管理系统针对数据互联、内外部集成的痛点,能够实现与航油SAP 系统、客户、银行等多个内外部系统的集成。

2 航油客户管理系统Docker镜像容器云服务平台设计

航油客户管理系统的容器服务中依旧是Web 服务为主,使用自动部署平台使用构建机器构建并远程部署至目标机器。当将容器固化成镜像后,则可视为应用集装箱,将应用运行所需的程序、依赖和运行环境进行打包处理。特别是Docker 镜像的设计,能够解决容器从构建、交付到运行,提供了完整的生态链支持[1]。

2.1 容器云服务平台技术特性

航油客户管理系统的容器服务采用微服务架构管理,包含前后端分离、权限统一认证、应用系统的管理和治理、开发与运维一体化、DEVOPS 等重点模块。

2.1.1 前后端分离

前台和后台分离为独立的组件,微服务模块间通过RestAPI 交互,前后端也通过RestAPI 接口服务进行交互。

2.1.2 权限统一认证

权限系统微服务化,建立独立的微服务权限认证中心,通过权限系统微服务来控制其他微服务的权限,保证整体系统构架的权限一致性。

2.1.3 应用系统的管理和治理

建立完整的应用管理治理框架以达到优化服务架构、快速故障界定、微服务管控等目的。

2.1.4 开发与运维一体化

运用微服务架构,不再只是运行一个服务,而是数十个,甚至数百个服务。在CCF 云服务架构中,利用DevOps 工具(Jenkins,Maven,Git/SVN 等)消除差错率较高的人工任务,为设计、构建和部署服务提供了标准框架,从而节省了时间和精力。

2.2 基于云容器的方式的管理设计

在基于云容器的航油客户管理系统中采用Docker 容器技术的云平台架构,将Kubernetes 视为容器编排工具,能够解决应用运行环境整体打包的问题,确定了分层镜像格式,云服务架构分为IaaS、PaaS、SaaS 三层[2]。

在基于云容器的航油客户管理系统中,利用Kubernetes 创建多个容器,每个容器里面运行一个应用实例,然后通过内置的负载均衡策略,实现对这一组应用实例的管理、发现、访问,而不用运维人员去进行复杂的手工配置和处理。

在航油客户管理系统中将使用容器技术对各服务节点进行管理。Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的Linux 或Windows 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口[3]。

3 航油客户管理系统Docker镜像容器云平台集成架构设计

在航油客户管理系统中涉及与客户系统对、与招标人指定的五家金融系统、与航油集团SAP ERP 系统、与金税系统、与智慧加油系统、气象数据系统等相关系统进行系统集成,此次数据集成具有集成系统多,数据范围广泛,集成技术复杂等特点,为确保系统集成的顺利进行,保障系统建设,以多种主流数据集成技术为基础,建立独立的数据交换平台,满足现有业务系统数据接入需要,兼顾未来数据接口扩展的策略。

基于以上结构设计,在航油客户管理系统按照统一业务模型的思想把各系统数据集成起来。根据系统集成的需要,将采用提供相关接口的方式进行实现。

3.1 集成架构数据交换平台及接口设计

3.1.1 远程数据库调用

采用远程数据库访问技术,在对方数据库提供访问权限的前提下,以应用数据交换功能为基础,实现对数据库中信息的直接读取和存储,已到达数据交换的目的。这种方式目前在企业内部系统间的交换较为通用,但受到安全性等影响,在外部系统数据交换方面很少使用[4]。

3.1.2 Webservice 方式

建立基于Web Services 协议等交换方式的与协作单位(承运商、供应商、商业公司等)的信息交换标准,使信息资源规划问题集中在数据交换的标准化、规范化的协调和设计上;WebServices 是由航油公司发布的完成其特定商务需求的在线应用服务,其他公司或应用软件访问并使用这项在线服务。

3.1.3 基于TCP/IP 的文件交换

主要采用FTP、EMAIL 等文件传输方式,利用客户机可以给服务器发出命令来下载文件,上载文件,实现对数据的发送和接收,这种方式是以往系统间数据交换通行的一种方式。

3.1.4 PI 平台或其它技术

通过使用第三方提供的相关交换平台或技术,来达到对外部系统的数据交换服务,本交换平台将根据不同技术的要求,快速灵活的进行扩充,达到对现有系统和未来外部系统的数据交换扩展。如:ERP 的PI 平台等。

3.2 集成架构功能设计

通过搭建的综合上述几种接口方式和各项技术的数据交换平台来集成各系统数据。数据交换平台主要包括数据抽取、数据数据处理及加载处理、策略管理和系统管理等模块。

数据抽取模型主要包括实时数据交换、周期数据交换、数据复制、非结构数据交换等等,对应的技术包括数据复制、ETL、数据交换及应用服务。

4 航油客户管理系统Docker镜像容器云平台大数据架构设计

在航油客户管理系统的数据应用部分,采用能对海量数据进行分布式处理的大数据架构,将加油数据、客服数据、商务结算数据等业务数据进行应用,基于真实业务数据进行日常业务统计分析。包括数据标签化管理、管理驾驶舱、加油员数据分析、销售数据分析、结算数据分析、预测分析等数据应用功能,同时为今后扩展更多的大数据应用,整体架构主要由包括数据集成、数据存储、数据计算、数据应用和平台管理五部分。

4.1 大数据框架设计

航油客户管理系统的大数据技术架构以Hadoop 技术生态圈为基础,根据数据采集、数据整合、数据处理、数据存储、数据消费和数据管理的要求,选择主流、稳定的功能组件进行整合,实现大数据的整体架构。具体包括数据集成框架、数据存储框架、数据计算框架、数据应用框架、平台管理组成[5]。

4.1.1 数据集成框架

是大数据架构的底层功能,实现从数据接入到数据消费整个环节的数据存储功能,为满足数据整个处理流程和数据应用性能需求,结合数据存储的分层设计,数据存储框架分为数据湖组件、数据仓库组件和数据集市组件。是大数据框架用于整合各种数据源的技术解决方案,根据数据源的存储格式、产生方式、生成时效、消费方式等不同,通过数据采集组件、消息组件、日志采集组件和流式数据组件一满足各种场景的需求。

4.1.2 数据存储框架

数据计算框架是实现数据应用的解决方案,根据数据处理的环节、数据存量的级别、数据增量的级别、数据型态格式、数据应用场景和深度等因素,将数据计算框架分为批量数据处理、流式数据处理、应用编程模型和数据分析模型。

4.1.3 数据应用框架

数据应用框架是为数据应用的终端用户提供功能服务,实现数据的展示、分析,同时架构提供JDBC 接口,支持第三方的BI 开发工具实现数据的应用开发,如FineBI,tableau,宇动源BI 报表和自由页面。

4.2 数据采集组件

数据采集组件主要实现局域网内的企业结构化数据或多数据源的数据同步。技术实现采用开源工具kettle,是一款开源的ETL,完成数据的处理,转换,迁移。Kettle 中有两种脚本文件,transformation 和job,transformation 完成针对数据的基础转换,job则完成整个工作流的控制。Kettle 包括4 个产品:Spoon、Pan、CHEF、Kitchen。

(1)Spoon:通过图形界面来设计ETL 转换过程。

(2)Pan:批量运行由Spoon 设计的ETL 转换,它是一个后台执行的程序,没有图形界面。

(3)Chef:任务通过允许每个转换,任务,脚本等等,更有利于自动化更新数据仓库的复杂工作。任务通过允许每个转换,任务,脚本等等。任务将会被检查,看看是否正确地运行了。

(4)Kitchen:批量使用由Spoon 设计的任务,它是一个后台运行的程序。

5 航油客户管理系统Docker镜像容器云平台管控集群核心

航油客户管理系统容器云平台依靠容器技术和集群调度编排管理技术,满足企业级容器云服务的需求。根据调研形成上面的部署拓扑方案,部署方案分两大区,分别生产区和DMZ 大区。生产区负责整个云平台的管理应用运行部署和测试等功能。DMZ 区负责应用接口的互相转发等功能[6]。

内部云平台通过DNS 域名访问到业务系统内,不同域名分别不同业务。云平台管控核心分为配置中心和管控中心组件。配置中心是一个开源的高可用的分布式键值数据库,通过键值对数据存储系统,提供共享配置、服务的注册和发现等功能。这里存储云平台服务器IP 属性和相关数据,如果出现问题容易造成整个云平台瘫痪说以,在部署用集群方式设计,这样保证云平台安全稳定运行。

管控中心组件是集群的网关和中枢枢纽,也称为指挥官主要作用是跟踪其他服务器的健康状态、以最优方式调度负载,以及编排其他组件之间的通信。

6 结语

本文以航油客户管理系统为例,对基于Kubernetes 和Docker技术的容器云平台的架构设计进行介绍和分析,在提出云容器的管理设计策略,通过镜像Docker 容器云的应用和Kubernetes 开发工具的架构设计,为企业级微服务场景容器云平台开发应用提供参考借鉴。

猜你喜欢

航油容器组件
Different Containers不同的容器
无人机智能巡检在光伏电站组件诊断中的应用
新型碎边剪刀盘组件
U盾外壳组件注塑模具设计
难以置信的事情
南开大学用蓖麻油制成航油
航空燃料的新成员——“地沟油”航油
生物航油还需十年上规模
风起新一代光伏组件膜层:SSG纳米自清洁膜层