基于容器的技术平台的架构设计与原理

2021-03-01 22:52刘林和钟声振张宇吴卫民温海欣黄小邦许仁兴
科学与财富 2021年28期
关键词:资源共享

刘林和 钟声振 张宇 吴卫民 温海欣 黄小邦 许仁兴

摘 要:文章介绍了一种服务持续开发、持续集成、自动化部署、运维的技术平台,该平台可为各应用系统提供研发、运行的技术底座,助力各应用系统在资源使用率提升、资源弹性伸缩供给、应用敏捷开发与自动化部署交付等方面带来明显改善,实现降本增效。

关键词:容器云;敏捷开发;资源共享

0 引言

相比实现系统级别虚拟化的传统虚拟机以分钟为单位的启动速度,技术平台基于轻量级LXC(Linux Containers)的Docker容器实现进程级别的虚拟化,可实现秒级启动。同时一台主机上可同时运行数千个Docker容器。除了其中运行应用的资源外,基本不需要消耗额外的系统资源,使得应用的性能很高,同时系统的开销很小。同时,技术平台具备高密度应用部署能力与高弹性应用扩展特性。

1 技术平台的架构设计

技术平台的架构主要包括容器云、中间件、工具链、微服务治理四大模块,面向应用系统提供常用中间件与微服务治理能力,打造从“需求-设计-编码-构建-测试-部署-发布”的端到端研发工具链,及资源弹性伸缩、常见中间件与微服务治理、研发工具链支持等PaaS服务。

技术平台容器云功能模块基于原生 Kubernetes ,提供以容器为核心的、高度可扩展的高性能容器管理服务。技术平台容器云服务完全兼容原生 Kubernetes API ,为容器化的应用提供高效部署、资源调度、服务发现和动态伸缩等一系列完整功能,解决应用开发、测试及运维过程的环境一致性问题,提高了大规模容器集群管理的便捷性,帮助用户降低成本,提高效率。技术平台容器服务提供集群和服务两个层级的弹性伸缩能力, 能够根据业务运行情况,监控容器的 CPU、内存、带宽等指标进行自动扩缩服务,同时可以根据容器的部署情况,在容器不够资源分配,或者有过多剩余资源的情况下自动伸缩集群。

技术平台中间件功能模块根据公司各系统中间件配置使用规模及典型互联网类系统建设所需技术组件,以云服务方式为各业务线统一提供消息类、应用服务、数据库服务(缓存、关系数据库)等中间件,避免重复建设。实现界面化一键快捷部署,部署第三方组件的时间由6小时以上缩短至10分钟以内。

技术平台微服务架构功能模块以云服务方式为各业务线统一提供注册中心、配置中心、熔断监控、熔断降级、服务调用链、分布式事务等微服务治理组件,避免重复建设。实现统一的全链路微服务治理管控中心。适用于构建复杂的应用,将单体式应用从不同纬度拆分成多个微服务,每个微服务的内容使用一个镜像管理。在功能不变的情况,应用拆分成了多个可管理的服务,每个单体的服务容易理解、开发和维护。

技术平台DevOps工具链功能模块为持续集成与持续交付提供了优秀的 DevOps 环境,可极大提高软件的发布效率。持续集成强调开发人员提交了新代码之后,立刻进行构建、(单元)测试,便于确定新代码和原有代码能否正确地打包集成在一起。持续交付在持续集成的基础上,将集成的代码部署到预发布环境和现网环境上。

2 技术平台的的优势及其技术原理

1)、切合微服务架构部署特性,更易于微服务应用的实现,提升业务扩展性

微服务采用一组服务的方式来构建一个应用,服务独立部署在不同的进程中。微服务通常具有相互独立、原子化、松耦合结构等特点。技术平台通过容器云的独立、轻量和快速编排等特性很好地满足了微服务架构的良好实现。

2)、像搭积木一样的进行资源编排,轻易实现负载均衡、弹性伸缩、日志监控、滚动升级等高级能力

在技术平台容器云中,调度的最小颗粒不是单纯的容器,而是抽象成一个Pod。Pod是一个可以被创建、销毁、调度、管理的最小部署单元。所有容器运行在Pod当中,一个Pod中可以运行一个或一组容器。技术平台通过对Pod的编排和管理,实现了负载均衡,全自动/半自动弹性伸缩,日志监控,滚动升级等高级能力,从而实现高效的自动化管理。相比以往大量的管理和修改工作,所有的修改都以增量的方式被分发和更新。

3)、强大的多平台兼容特性,易于扩展和迁移

技术平台的Docker容器几乎可以在任意的平台上运行,包括物理机、虚拟机、公有云、私有云、个人电脑、服务器等。这种兼容性可以让用户把一个应用程序从一个平台直接迁移到另外一个。容器云的这种特性类似于Java的JVM,Java程序可以运行在任意的安装了JVM的设备上,在迁移和扩展方面变得更加容易。

4)、标准化的研运一体化流程,实现更快速的交付和部署

技术平台为研发与运维团队从开发到部署提供一套标准化流程,研发人员可以使用一个标准的镜像来构建一套开发环境,开发完成之后,运维人员可以直接使用这个镜像来部署運行。整个交付到部署过程可通过对镜像的跟踪,实现全流程可见,降低研发与运维交流成本,实现研运一体化,快速交付与部署,提升研发效率。

3结语

本文介绍了一种服务持续开发、持续集成、自动化部署、运维的技术平台并对该技术平台的功能、架构、效果进行深入分析。利用本技术平台可实现应用敏捷开发与自动化部署,提升资源使用率,应用间资源弹性伸缩、自动供给,极大地提升应用开发、运维效率及稳定性。

参考文献:

[1] 王美林,彭希灵.基于微服务的业务可编排重构MES系统. 物联网技术. 2021,11(10):54-57.

[2]崔广章,朱志祥. 容器云资源调度策略的改进. 计算机与数字工程. 2017,45(10): 1931-1936.

[3]章仕锋,潘善亮. Docker技术在微服务中的应用. 电子技术与软件工程. 2019(04):164.

[4] 翁湦元,单杏花,阎志远,王雪峰.基于Kubernetes的容器云平台设计与实践.铁路计算机应用.2019,28(12):49-53.

作者简介:

刘林和(1981-),男,广东梅州人,中移互联网有限公司,工程师,硕士,研究方向:区块链、AI、容器云。

猜你喜欢
资源共享
交通运输数据资源共享交换体系探究与实现
福建省交通运输信息资源共享平台
针对大数据背景下工程造价信息的资源共享
如何处理教学局域网资源共享中的常见故障
卫康与九天绿资源共享
教育部第一批“国家级精品资源共享课”公布
新疆:发展远程医学 促资源共享
政府部门间G2G信息资源共享的演化博弈分析
测量学精品资源共享课建设的探索
大学城体育课程资源共享初探