Cloud Native是指在云环境下构建、运行、管理软件的新的系统实践范式,充分利用云基础设施与平台服务,适应云环境,具备(微)服务化、弹性伸缩、分布式、高可用、多租户、自动化等关键特征的架构实践;建立全功能团队、发展全栈工程师并高度协作的组织,采用DevOps研发模式、自动化工具,实现微服务持续交付,是支撑Cloud Native架构的最佳组织和工程实践。
采用服务化架构/微服务架构实现全面解耦
Cloud Native App采用服务化架构/微服务架构进行全面解耦,把系统划分多个功能内聚、粒度合适、业务边界清晰、独立自治的服务/微服务。
以(微)服务为单位演进系统架构
单个(微)服务以大于一个的无状态进程运行,实现自身的高可用和负载均衡
把业务数据分布到不同的(微)服务中实现数据的垂直切分
使用自服务、敏捷的云化基础设施服务
依赖底层云化基础设施的计算服务、存储服务、网络服务提供基础运行资源
使用云监控服务监控自身的运行状态包括基础资源
使用状态、自身业务运行状态,同时根据自身运行状态触发相应的运维事件,实现弹性伸缩、故障自愈等关键架构特征
通过API,重用云原生公共服务提供的基础能力和架构能力
内部每个(微)服务须充分利用原原生的公共服务提供底层基础能力,例如微服务管控与生命周期管理服务、数据库服务、消息队列服务、缓存服务等
内部每个(微)服务须充分利用应用与资源编排服务,实现部署、配置自动化
系统与环境、流程、配置解耦
开发、测试、生成环境等价,屏蔽环境差异性
不可变的基础设施(immutable infrastructure)
全自动化测试(单元测试、集成测试、自动生成Mock依赖服务)
研发流程标准化、敏捷化
代码和配置严格分离,并在环境中存储配置
严格的区分构建、分布、运行,研发流程标准化、敏捷化
全功能团队
一个团队的职责涵盖了设计、开发、测试、发布、部署、运维
开发人员、发布工程师、IT和运维之间的可信合作
DevOps
运维和开发互相融合,高度协同,共担职责
自动监控,持续可视化反馈,并最终传导到开发团队
实践极速迭代,持续交付,快速响应业务变化,缩短TTM
(微)服务持续交付流水线(按需发布版本)
全自动化测试(单元测试、集成测试、自动生成Mock依赖服务)
按需实时部署、配置热加载实时生效
云化运维团队
基于云平台的提供的监控、报警等能力,成立专门的团队负责系统运行时的质量,保障系统可用性和业务无中断的升级、回滚。
推荐阅读:
不是你需要中台,而是一名合格的架构师(附各大厂中台建设PPT)