在云原生应用平台中,构建一些核心,比如资源管理、应用管理服务管理、监控管理、安全管理等。可以结合自身的特点及云原生技术,来综合考虑是自建还是采用成熟的技术或者产品。云原生应用平台重点模块都有哪些?

1)应用资源管理

应用资源管理需要做好应用的版本、实例部署,以及相关的运维等基于资源的管理。云原生应用的核心是应用,我们需要以应用为中心,对相关的应用版本、产品、集群、实例、模板等进行统一管理。比如在逻辑概念中,关注应用的划分、应用版本、应用对应的模板在对应的物理概念中,对应的是 K8s 集群、实例及相应的运维; Pod 中,需要做好生命周期的管理及相应的扩展等;应用资源管理核心概念如下图所示:

云原生应用平台的核心模块有哪些-LMLPHP

2)统一服务管理

统一服务管理是用来管理应用所依赖的中间件等服务,从而简化业务应用的研发和运维流程,比如分布式存储( MySQL、Redis、分布式文件( NFS)、分布式消息( MQ )、分布式对象( OSS)等。统一服务管理需要管理服务声明、申请、绑定、服务使用,并做好相应的应用仓库和服务市场的管理,以及相应标准和云厂商的绑定管理,整个过程与服务目录管理类似,统一服务管理流程图如下图所示:

 云原生应用平台的核心模块有哪些-LMLPHP

统一服务管理还需要考虑多云多端的适配问题同时,需要对依赖的服务做好依赖和消费管理,可以通过服务市场对开源组织或者商业化服务商进行统一管理.

3)配置管理

置管理指的是根据不同的业务场景,做好相应的配置服务,如配置定义、配置数据、配置挂载等的管理。对 K8s 而言,需要制定的配置包括ConfigMap、Secret、Ingress等,同时开放给用户诸如配置格式、字段、加密类型等。需要根据自身的场景对功能、接口、数据等各方面权限做好管理,并由云原生应用平台做好封装。对于资源隔离的配置,K8s 中的隔离主要包括 Pod 不同容器和K8s 集群不同命名空间两种方式,各自的共享范围和隔离范围有所不同,需要通过配置管理进行相应的简化。

4)质量度量

质量度量主要面向测试和质量管控方面,云原生应用平台需要做好相应质量体系的建设,比如用例管理、测试流程、代码扫描、集成测试、灰度发布;同时需要将业务架构和应用架构作为输入,对整体场景进行有效的测试构建,并基于自动化的 DevOps 流程进行检测,比如可以参考云原生应用平台所展示的应用CI/CD流程。质量度量,需要建立明确的度量体系和反馈优化机制,提升云原生应用的成熟度,生成测试度量报告,自动化整个流程。

5)可观测性

可观测性决定了系统的稳定性、自愈能力、弹性扩展能力及智能运维能力等。云原生应用首先需要构建自身的健康状态和可视化能力。云原生应用平台还需要具备日志、监控、追踪等能力,比如监控中的采集、报警通知、可视化等,以及诊断中的 Logging、Metrics、Tracing 等能力。比如 Prometheus 监控体系中的代码埋点、数据存储、查询展示等能,Prometheus生态体系图如下图所示:

云原生应用平台的核心模块有哪些-LMLPHP

同时还需要基于可观测性监控体系做好与服务和应用管理相关的 Action 和 Pipleline 体系,在诊断的过程中进行自动恢复,做到闭环。

08-02 09:56