一文读懂云原生2.0时代的DevOps体系框架( 二 )


微服务化所带来架构和开发阶段的便利性 , 其代价是部署时和运行时的管理复杂性极度增加;整体复杂度不变 , 只是由开发时转为运行时 , 此外还带来分布式系统的设计和管理的复杂性 。
服务拆分解耦的结果 , 服务可以独立的部署与发布 , 但运行时服务的治理 , 包括注册、发现、熔断等 , 都是需要思考和精心设计的 。
此外 , 微服务的小而自治的团队应该如何管理?多小算小?如何定义自治?在架构的去中心化和分布式趋势下 , 团队的去中心化管理对传统的管理理念则是巨大的挑战 。
一文读懂云原生2.0时代的DevOps体系框架
文章图片

文章图片
云原生能力构建
一文读懂云原生2.0时代的DevOps体系框架
文章图片

文章图片
真正做到云原生的成功 , 我的总结是一个中心三个基本点:
中心:以业务的价值交付为中心 , 达到快速与高效的交付价值 , 并且在规模化扩展的同时 , 兼顾可靠性、灵活性等 。架构层面
o 采用服务化架构/微服务架构实现全面解耦:把系统划分多个功能内聚、粒度合适、业务边界清晰、独立自治的服务/微服务 。以(微)服务为单位演进系统架构 , 演进式的以绞杀者模式 , 而不是革命式的一次性改造;单个(微)服务以大于一个的无状态进程运行 , 实现自身的高可用和负载均衡;把业务数据分布到不同的(微)服务中实现数据的垂直切分;
o 通过API , 重用云原生公共服务提供的基础能力和架构能力:内部每个(微)服务须充分利用云原生的公共服务提供底层基础能力 , 例如微服务管控与生命周期管理服务、数据库服务、消息队列服务、缓存服务等;内部每个(微)服务须充分利用应用与资源编排服务 , 实现部署、配置自动化;
o 通过API , 打造生态化经济:API是非常重要的方式 , 除了定义服务之间的业务边界 , 更重要的是可以通过API的方式做整个生态 , 数字化转型中比如开放银行 , 都是这样的思路 , 搭一个平台 , 通过各种合作伙伴在不同的行业、不同的领域提供相关的服务 , 这些服务是相互进行连接 , 通过链接和网络的思维来去做这个事情 。华为云也在打造自己的API生态 。工程层面
o 系统与环境、流程、配置解耦:与架构层面解耦相匹配 , 系统和环境、流程、配置等等需要解耦 , 工程层面也需要去相应的匹配跟解耦 。开发、测试、生产环境等价 , 屏蔽环境差异性;采纳不可变的基础设施(immutableinfrastructure);
o 构建端到端的DevOps研发体系:研发流程标准化、敏捷化;严格的区分构建、分布、运行的准入准出 , 并进行版本化和自动化;全自动化测试(单元测试、集成测试、自动生成Mock依赖服务);一切皆代码 , 代码、配置与环境严格分离 , 并进行版本化和自动化;(微)服务持续交付流水线(按需发布版本);
o 研发运维一体化:运维和开发互相融合 , 高度协同 , 共担职责;自动监控 , 持续可视化反馈 , 并最终传导到开发团队;按需实时部署、配置热加载实时生效;
o 使用自服务、敏捷的云化基础设施服务:基础设施以自服务的方式对开发团队提供 。依赖底层云化基础设施的计算服务、存储服务、网络服务提供基础运行资源;使用云监控服务监控自身的运行状态包括基础资源使用状态、自身业务运行状态 , 同时根据自身运行状态触发相应的运维事件 , 实现弹性伸缩、故障自愈等关键架构特征;