云原生架构-阿里白皮书
“业务代码指实现业务逻辑的代码;“三方软件”是业务代码中依赖的所有三方库,包括业务库和基础库;“处理非功能性的代码”指实现高可用、安全、可观测性等非功能性能力的代码。敏捷、弹性、可移植性Kubernetes的控制平面包含四个主要的组件:APlServer、Controller、Scheduler以及etcd。设计历理念:声明式API、可扩展性架构、可移植性布式架构的中间件,也是在金融场景里锤炼出来
1.为什么需要云原生架构?
2.云原生架构的定义
云原生架构定义
“业务代码指实现业务逻辑的代码;
“三方软件”是业务代码中依赖的所有三方库,包括业务库和基础库;
“处理非功能性的代码”指实现高可用、安全、可观测性等非功能性能力的代码。
- 代码结构发生巨大变化
- 非功能性特性的大量委托
- 高度自动化的软件交付
云原生架构原则
- 服务化原则:微服务架构、小服务(Mini Service)架构 弹性原则 可观测原则 韧性原则:MTBF 所有过程自动化原则:通过 IaC(Infrastructure as Code)、GitOps、OAM(Open Application Model)、Kubernetes operator 和大量自动化交付工具在 CI/CD 流水线中的实践,一方面标准化企业内部的软件交付过程,另一方面在标准化的基础上进行自动化,通过配置数据自描述和面向终态的交付过程,让自动化工具理解交付目标和环境差异,实现整个软件交付和运维的自动化。
- 零信任原则
- 架构持续演进原则
主要架构模式
- 服务化架构模式
- Mesh 化架构模式:
- Serverless模式
- 存储计算分离模式:CAP:C 一致性、A 可用性、P 分区容错性
- 分布式事务模式
XA模式、最终一致性(BASE)、TCC 模式、SAGA 模式、开源项目 SEATA 的 AT 模式非 - 可观测架构
- EDA 事件驱动架构
增强服务韧性、CQPS、数据变化通知、构建开放式接口、事件流处理、基于事件触发的相应
典型的云原生架构反模式
- 庞大的单体应用
- 单体应用强行拆分为微服务
- 缺乏自动化能力的微服务
3.主要云原生技术
容器技术
容器技术背景与价值
敏捷、弹性、可移植性
容器编排 K8S
Kubernetes的控制平面包含四个主要的组件:APlServer、Controller、Scheduler以及etcd。
设计历理念:声明式API、可扩展性架构、可移植性
云原生微服务
微服务发展背景
微服务涉及约束
云原生微服务典型架构
主要微服务技术
Apache Dubbo作为源自阿里巴巴的一款开源高性能 RPC 框架
Tars 是腾讯将其内部使用的微服务框架 TAF(Total Application Framework)
SOFAStack(Scalable Open Financial Architecture Stack)是由蚂蚁金服开源的一套用于快速构建金融级分
布式架构的中间件,也是在金融场景里锤炼出来的最佳实践。
Dapr(Distributed Application Runtime ,分布式应用运行时)是微软新推出的,一种可移植的、serverless 的、事件驱动的运行时
Serverless
开放应用模型(OAM)
OAM主要定义了三个具体的概念和对应的标准,它们包括应用组件依赖、应用运维特征和应用配置:
·组件依赖:OAM定义和规范了组成应用的组件(Component)。例如,一个前端WebServer容器、数据库服务、后端服务容器等;
·应用运维特征:OAM定义和规范了应用所需的运维特征(Trait)的集合。例如,弹性伸缩和IngreSS等运维能力;
·应用配置:OAM定义和规范了应用实例化所需的配置机制,从而能够将上述这些描述转化为具体应用实例。具体来说,运维人员可以定义和使用应用配置(ApplicationConfiguration)来组合上述的组件和相应的特征,以构建可部署的应用交付实例。
基于OAM和Kubernetes构建的现代云原生应用管理平台的本质是一个“以应用为中心”的KuberneteS,保证应用平台能够无缝接入整个云原生生态。同时,OAM进一步屏蔽掉容器基础设施的复杂性和差异性,为平台使用者带来低心智负担的、标准化的、一致化的应用管理与交付体验,让一个应用描述可以完全不加修改的在云、边、端等任何环境下直接交付运行起来。
ServiceMesh技术
DevOps
DevOps 就是为了提高软件研发效率,快速应对变化,持续交付价值的的一系列理念和实践,其基本思想就是持续部署(CD),让软件的构建、测试、发布能够更加快捷可靠,以尽量缩短系统变更从提交到最后安全部署到生产系统的时间.
CAMS :文化(Culture)、自动化(Automation)、度量(Measurement)、共享(Sharing)
云原生中间件
4.阿里巴巴云原生架构设计
ACNA(Alibaba Cloud Native Architecting)
架构设计方法
企业战略视角
业务发展视角
组织能力视角
云原生技术架构视角
服务化能力、弹性能力、无服务器化程度、可观测性、韧性能力、自动化水平、安全能力
架构持续演进闭环
云原生架构成熟度模型
5.阿里云云原生产品介绍
云原生产品家族
容器产品家族
消息产品家族
可观测产品家族
Serverless产品家族
微服务产品家族
高可用产品家族
云原生技术中台CNStack产品家族
6.云原生架构实践案例
vivoAI计算平台的ACK混合云实践
全面容器化之后,来电科技如何实现微服务治理
阿里云MSE云原生网关助力斯凯奇轻松应对双11大促
技术架构图
应用架构图
加速SaaS规模化演进,餐道基于K8s的云上创新底座
爱奇艺体育:体验Serverless极致扩缩容,资源利用率提升40%
作业帮云原生降本增效实践之路
运维提效60%,视野数科SAE+Jenkins打造云原生DevOps
韵达基于云原生的业务中台建设
南瓜电影CTO庄徐麟分享如何在7天内全面实现业务Serverless化
网易云音乐曲库研发负责人谈音视频算法的Serverless探索之路
GameOnServerless:SAE助力广州小迈提升微服务研发效能
云拨测助力节卡机器人,全面优化海外网站性能
分众传媒研发总监谈分众传媒在Serverless上的探索和实践
7.云原生架构未来发展趋势
容器技术发展趋势
基于云原生的新一代应用编程界面
Serverless发展趋势
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)