APP下载

基于云平台的信息系统云研发设计模式探索

2023-03-14刘月灿孙建刚窦祎楠李伟良彭嫚田涛王小平

现代计算机 2023年1期
关键词:设计模式容器运维

刘月灿,孙建刚,窦祎楠,李伟良,彭嫚,田涛,王小平

(1.国家电网有限公司信息通信分公司,北京100761;2.北京中电普华信息技术有限公司,北京 102200)

0 引言

随着科学信息技术的不断进步,云计算的发展在各行各业的应用日益普遍。云平台包括基础设施服务、平台服务以及软件服务。云平台为资源利用、成本控制、应用程序效能、能源管理等提供了一种新的服务模式。如何利用好云平台服务,集成到应用系统中,显著提升研发人员的工作效率,一直以来都是信息系统研发设计的关注焦点。以容器技术为基础结合微服务架构,为应用的快速迭代、自动部署和快速交付带来了全新、高效的体验。目前亟需探索以云原生应用架构为基础的研发设计模式,满足业务快速响应、业务敏捷迭代、进度管理透明及研发运维便捷等需求,为今后企业信息系统的建设指明发展方向。

1 研发设计模式演进

云原生技术的发展,为信息系统的研发设计模式演进带来了自上而下的创新。信息系统研发设计模式的核心架构也由单体架构演进为微服务架构,将进一步继续演进到云原生架构模式,如图1所示。

图1 业界研发设计架构的演进

单体架构是将所有的业务服务都放在一个单体中的业务逻辑耦合的架构。DNS返回相应域名的IP地址,用户根据实际地址访问相应的服务器,最后服务器会做出响应。

微服务架构核心特点是服务相对独立,抽象力度小。微服务互相之间是独立的,当某个微服务出问题时,短时间内是不会影响其他微服务。微服务复杂度相对可控[1-2]。

云原生架构主要以容器化技术Docker和Ku-bernetes为首的容器编排技术,在微服务架构的基础上,增加资源隔离、容器网络架构、资源自动调度、弹性伸缩等能力。

2 云平台的云原生组件

云原生技术为信息系统建设的灵活性提供了支撑。参照国际CNCF的云原生技术图谱,梳理信息系统建设所依赖的云原生组件。信息系统设计研发人员可以了解每种云原生技术功能,选择符合需求的底层技术、基础架构、协同管理、安全系统等。

2.1 容器基座

容器化技术是一种轻量级的虚拟化技术,本质是在同一个操作系统中进程隔离,可同时启动多个功能单一的任务,有效提升资源利用率。容器和虚拟机虽然都是计算单元,但容器具备秒级启动、快速创建和删除、快速分发和部署、依赖更少的资源、可以弹性伸缩等优点。提供动态调度容器计算资源,容器交付与部署功能,实现“一次构建、到处运行”和“增量更新、快速回退”。基于现实需要,提供容器多节点编排、集群联邦、随机端口映射网络、负载自发现等功能,具备应用弹性扩容、快速自愈、敏捷部署等能力,大幅提升研发交付效率[3-4]。

2.2 微服务架构

在云平台建设过程中,通过深度定制和大规模自主研发,微服务架构组件包含异构多注册中心、节点级服务发现、全链路灰度、同端口双协议、Spring Cloud框架、Dubbo框架,实现高内聚、松耦合、可复用、易扩容的微服务治理功能,具备十万级服务的注册发现和日均亿级的服务接入能力[5]。

2.3 监控与追踪

全链路监控与追踪的应用可以有效减少服务中断的次数、降低解决问题的时间,帮助技术人员尽快识别和解决故障,减轻故障对信息系统的影响。通过对应用程序全方位的监控分析,立即发现并纠正异常情况。包含日志组件、监控组件、服务跟踪组件、混沌工程组件四部分。其中日志组件实现获取有关进程信息的日志记录;监控组件收集指标、存储、监控及告警信息;服务跟踪组件对全链路追踪服务依赖关系以及流量在云平台中的走向追踪,包括延迟、错误等;混沌工程组件是一种软件测试工具,在缺陷影响服务交付之前对其进行识别并加以修复[6]。

3 云原生研发设计模式

研发设计模式的核心作用和特点是使信息系统研发保持统一性,形成统一的架构参考模型和协作管理模型[6]。本文探索以云原生技术为依托,形成基于云平台的云原生研发模式,将容器化、微服务架构技术、DevOps相结合,融合持续交付的理念,形成业务能力标准、服务开发规范、系统运行机制和运营服务的生态体系,为业务提供快速组合和低成本创新的研发设计能力,提高多团队协作效率[7-8]。云原生研发设计模式把云原生看作一种构建和运行应用程序的方法,云原生研发设计作为一组云计算应用程序研发的平台模式,包含敏捷交付流水线、容器化、微服务架构、持续调试与监控、安全扫描等能力,如图2所示。

图2 云原生研发设计模式的能力模型

云原生研发设计模式可以帮助企业快速、持续、可靠、规模化地交付业务软件。采用云原生研发设计模式的信息系统研发在6个方面存在优势:

(1)可以使用云计算、云存储等云资源。

(2)可以采用统一云原生架构以及提供的各种工具、云平台服务,快速研发云原生应用。

(3)可以组建多个高度灵活的小团队组合,负责不同的微服务研发。

(4)通过研发与运维的结合(DevOps),实现对微服务有端到端的责任,提高持续交付的效率。

(5)通过全方位监控,快速定位故障。

(6)通过使用云平台云原生组件,实现容器基础设施安全、容器编排平台安全、镜像安全、微服务安全[9-10]。

3.1 容器与微服务结合设计

容器是一种新的软件交付方式,将应用和其运行环境以一个标准镜像格式打包,能保证应用及其运行环境的统一。微服务是应用软件架构设计模式[3],推崇单一职责、服务自治、轻量通信和接口明确等原则。结合两者优势,容器可以较好地配合使微服务易于开发和维护等[4]。容器化和微服务架构是云原生研发设计的关键组成部分,前者相当于基石,后者相当于合作伙伴。微服务和容器化结合,主要有以下两个优势,首先采用微服务架构,使用容器作为基础设施,能够实现快速部署,快速迭代[5];其次提供了一种配置中心和注册中心的标准,容器天然地为微服务架构提供了开发配置中心和注册中心,而无需再开发。从开发工程师的角度,关注的是微服务架构,以微服务为基础。从运维工程师的角度,关注的是容器化,以容器等基础设施环境为基础[11-12]。

3.2 DevOps研运一体管理

DevOps是开发运维一体化的方法论。DevOps实现了项目开发、运维管理、环境部署的一体化,为软件的在线开发创造了更好的环境。除了支持在线开发外,还实现镜像管理、进度调控等一系列功能。DevOps促进工作思维方式的改变,为业务价值快速提升提供支持[6]。DevOps强调共同目标,以用户价值为唯一评价标准,有利于技术开发、技术运维、质量保障等部门之间的沟通协作整合,保证产品功能及时实现,确保成功部署和稳定使用[13]。

3.3 云平台服务组件利用

云原生研发设计模式可以归纳为模块化、可观察、可部署、可测试、可替换、可处理这六个特质。云原生研发设计包括敏捷交付流水线、容器化、微服务架构、服务调试与分析、安全扫描等能力,充分利用了云平台的云原生组件,云原生研发设计是以云平台的平台服务作为基础支撑,敏捷交付流水线利用了CI/CD工具链组件,容器化利用了容器基座组件和安全防护组件,微服务架构利用了微服务架构组件,持续调试与监控利用了监控与追踪组件,安全扫描利用了安全防护组件,如图3所示。

图3 云原生研发设计模式与云平台服务的关系

4 结语

科学技术的发展深刻地改变着人们的生活,在未来的发展道路中,这种变革会更加深入、更加迅速。依托DevOps流水线、容器化基础架构、微服务架构,打造支撑敏捷交付、研运一体化的高效研发能力;信息系统云原生研发设计模式在企业级架构建设中得到充分运用,一大批生于云、长于云的新一代应用系统陆续诞生,为创新发展提供高水平科技支撑。

猜你喜欢

设计模式容器运维
“1+1”作业设计模式的实践探索
容器倒置后压力压强如何变
三维协同设计模式下的航天项目管理实践与展望
难以置信的事情
运维技术研发决策中ITSS运维成熟度模型应用初探
交通机电工程设计模式创新探讨
风电运维困局
杂乱无章的光伏运维 百亿市场如何成长
基于ITIL的运维管理创新实践浅析
取米