云原生架构将非业务代码最大化剥离,让云基础设施接管应用非功能特性,提高业务连续性,轻量、敏捷、高度自动化。
云原生架构原则
1.服务化原则
拆分为微服务、小服务架构,分离不同生命周期模块,分别业务迭代,加快整体进度和稳定性;
服务化架构以面向接口编程,高内聚,高复用(公共模块);
分布式环境下限流降级、熔断隔仓、灰度、反压、零信任安全都是基于服务流量的控制策略;
从架构层面抽象化业务模块之间关系,标准化服务流量的传输。
2.弹性原则
资源随着业务量变化自动伸缩;
弹性能力缩短上线时间、降低成本,性能灵活拓展。
3.可观测原则
主机信息关联,SLO(Service Level Objective,服务等级目标),业务影响分析更加复杂;
可观测性,通过日志、链路跟踪、度量等手段,使得服务调用的耗时、返回值和参数清晰可见;可以到每次第三方软件调用、SQL请求、节点拓扑、网络响应;
不断对业务健康和用户体验进行数字化衡量和持续优化。
4.韧性原则
软硬件出现异常时,软件表现出来的抵御能力;
软件持续提供业务服务的能力,核心目标提升软件的平均无故障时间MTBF;
架构设计上,韧性包含服务异步化能力、重试/限流/降级/熔断/反压、主从模式、集群模式、AZ内的高可用、单元化、跨region容灾、异地多活容灾。
5.所有过程自动化原则
容器、微服务、DevOps、大量第三方组件的使用,降低分布式复杂性、提升迭代速度,同时增大了技术栈的复杂度和组件规模;
IaC(Infrastructure as Code)、GitOps、OAM(Open Application Model)、Kubernetes Operator和大量自动化交付工具在CI/CD流水线中的实践----标准化软件交付过程、自动化。
6.零信任原则
针对传统边界安全架构思想的重新评估和审视;
核心思想:默认情况下不应该信任网络内外部任何人、设备、系统,基于认证和授权重构访问控制的信任基础;
IP地址、主机、地理位置、所处网络均不能作为可信凭证;
安全体系架构从“网络中心化”走向“身份中心化”,以身份为中心进行访问控制;
零信任核心问题是身份(Identity),不同实体赋予不同身份,分配不同资源。
7.架构持续演进原则
好的架构是演进来的,很难一开始清晰定义架构一直适用;
增量迭代、目标选取、组织层面架构治理、风险控制,业务高速迭代下的架构、业务、实现平衡关系。