云原生架构的七原则,原则是用来遵守和指导落地环节.结合以往工作经验,就可以知晓具体落地使用.
1.服务化原则
2.弹性原则
3.可观察原则
4.韧性原则
5.所有过程自动化原则
6.零信任原则
7.架构持续演进原则
1.服务化原则
微服务化发展,需要将单体应用进一步拆分,按业务边界重新划分成分布式应用.
使应用与应用之间不再直接共享数据,而是通过约定好的契约进行通信,以提高扩展性.
业务化垂直扩展(Scale Up),并将微服务数据水平扩展(Scale Out)
2.弹性原则
弹性原则是指系统部署规模可以随着业务量变化自动调整大小,而无须根据事先的容量规划准备固定的硬件和软件资源.
3.可观察原则
可观测性更强调主动性,在云计算这样的分布式系统中,主动通过日志,链路跟踪和度量等手段,让一次App点击所产生的多次服务调用耗时,返回值,参数都可见.
4.韧性原则
韧性是指当软件所依赖的软硬件组件出现异常时,软件所表现出来的抵御能力.
韧性原则的实践与常见架构主要包括:
服务异步化能力,服务治理能力(重试/限流/降级/熔断/反压),主从模式,集群模式,多AZ(Availability Zone,可用区)的高可用,单元化,跨区域(Region)容灾,异地多活容灾等.
5.所有过程自动化原则
通过IaC,GitOps,OAM,Operator和大量自动化交付工具在CI/CD(持续集成/持续交付)流水线中的实践,企业可以标准化企业内部的软件交付过程,也可以在标准化的基础上实现自动化,即通过配置数据自描述和面向终态的交付过程,实现整个软件交付和运维的自动.
6.零信任原则
传统安全架构认为防火墙内的一切都是安全的,而零信任模型假设防火墙边界已经被攻破,且每个请求都来自于不可信网络,因此每个请求都需要经过验证.
第一,不能基于IP配置安全策略.第二,身份应该成为基础设施.第三,标准的发布流水线.
7.架构持续演进原则
云原生架构本身也应该且必须具备持续演进的能力,而不是一个封闭式的,被设计后一成不变的架构.特别是在业务高速迭代,更应该考虑如何保证架构演进与业务发展之间的平衡.
演进式架构是指软件开发的初始阶段,就可以通过可拓展和松耦合设计,让后续可能发生的变更更加容易,升级性重构的成本更低,并且能够发生在开发实践,发布实践和整体敏捷度等软件生命周期中的任何阶段.
22-06-18