浅析阿里《云原生架构白皮书》

本文涉及的产品
简介: 提前看了《云原生架构白皮书》一直想着要写点东西,拖延来去[《白皮书》](https://developer.aliyun.com/topic/cn-architecture-paper)已经正式发布2天了,我还迟迟没有动手。没动手的一方面原因是我的懒癌症又犯了;另一个原因是《白皮书》覆盖面之广,基本触及到云原生的方方面面,而我在云原生方面的知识储备不足以支撑我写出一篇好文。

简介

提前看了《云原生架构白皮书》一直想着要写点东西,拖延来去《白皮书》已经正式发布2天了,我还迟迟没有动手。没动手的一方面原因是我的懒癌症又犯了;另一个原因是《白皮书》覆盖面之广,基本触及到云原生的方方面面,而我在云原生方面的知识储备不足以支撑我写出一篇好文。
云原生概念虽然在2013年就已被提出,但到目前为止各家对它的理解都些许不同的侧重,在这儿阿里给出了自己对云原生的理解。看《白皮书》目录如下图,全文从7个章节对云原生架构进行剖析、讲解。我也从这7个方面带大家快速过一遍……

whitepaper-cloudnative1.png

为什么需要云原生

这一部分内容比较少,大家可以看下《白皮书》上是怎么说的。我理解的重点是:科技发展进入了云的时代,硬件升级,更新速度要求越来越高,「生产关系」已经严重制约「生产力」的发展。在云的时代,需要新的技术架构,来解决人们「生产力」越来越高的要求。于是,云原生架构应运而生。

云原生架构

云原生架构定义

从技术的角度,云原生架构是基于云原生技术的一组架构原则和设计模式的集合,旨在将云应用中的 非业务代码部分进行最大化的剥离,从而让云设施接管应用中原有的大量非功能特性(如弹性、韧性、安全、 可观测性、灰度等),使业务不再有非功能性业务中断困扰的同时,具备轻量、敏捷、高度自动化的特点。

whitepaper-cloudnative2.png

利用云服务和提升软件交付能力,进一步加快软件开发
让开发专注于对公司业务最核心的部分,剥离大量非功能性特性
具有高度自动化的软件交付

云原生架构原则

  1. 服务化原则: 把一个大服务拆分成多个小服务,每个小团队负责指定服务,各个服务间的升级互不影响,加快业务迭代的速度。
  2. 弹性原则: 弹性是指系统的部署规模可以随着业务量的变化自动伸缩。
  3. 可观测原则: 可观测性是指通过log, trace, metric等手段,让一次点击背后的多次服务调用的耗时、返回值和参数都清晰可见。
  4. 韧性原则: 韧性是指当软件所依赖的软硬件组件出现各种异常时,软件表现出来的抵御能力。
  5. 所有过程自动化原则: 软件技术栈的复杂度和组件规模的增加,带来了软件交付的复杂性,通过使用自动化交付工具实现交付和运维的自动化。
  6. 零信任原则: 默认情况下不应该信任网络内部和外部的任何人 / 设备 / 系统,需要基于认证和授权重构访 问控制的信任基础。
  7. 架构持续演进原则: 现在技术和业务还处在快速变化的时代,云原生架构本身也需要具有具备持续演进能力。

主要架构模式

  1. 服务化架构模式: 服务化架构是云时代构建云原生应用的标准架构模式,要求以应用模块为颗粒度划分一个软件,以接口契约(例如 IDL)定义彼此业务关系,以标准协议(HTTP、gRPC 等)确保彼此的互联互通,结合 DDD(领域模型驱动)、TDD(测试驱动开发)、容器化部署提升每个接口的代码质量和迭代速度。
  2. Mesh 化架构模式: Mesh化架构是把中间件框架(比如 RPC、缓存、异步消息等)从业务进程中分离,让中间件 SDK与业务代码进一步解耦。
  3. Serverless 模式: Serverless模式更进一步,把用户从非核心中解放出来,只需要关心核心业务逻辑。
  4. 存储计算分离模式: 把存储这种有状态的操作和计算这种不需要状态的操作分别用不同的方式处理。
  5. 分布式事务模式: 微服务模式提倡每个服务使用私有的数据源,而不是像单体这样共享数据源。但实际使用场景中总有一些别的因素考量。所以有下面几个分布式事务模式分别适应不同的场景:XA模式、BASE、TCC模式、SAGA模式、AT 模式。
  6. 可观测架构: 可观测架构包括 Logging、Tracing、Metrics 三个方面。
  7. 事件驱动架构: 本质上是一种应用 / 组件间的集成架构模式。

典型的云原生架构反模式

  1. 庞大的单体应用: 庞大单体应用的最大问题在于缺乏依赖隔离,因此需要考虑通过服务化进行一定的拆分。
  2. 单体应用“硬拆”为微服务: 服务的拆分需要适度,过分服务化拆分反而会导致新架构与组织能力的不匹配。
  3. 缺乏自动化能力的微服务: 当软件规模变大后,自动化能力的缺失还会带来更大的危害。

主要的云原生技术

容器技术

容器技术背景与价值

whitepaper-cloudnative3.png

Docker 提出了创新的应用打包规范 —— Docker 镜像,解耦了应用与运行环境,使应用可以在不同计 算环境间一致、可靠地运行。让开发所需要的灵活性、开放 性和运维所关注的标准化、自动化达成相对平衡。

容器编排

Kubernetes 已经成为容器编排的事实标准,被广泛用于自动部署,扩展和管理容器化应用。Kubernetes 提
供了分布式应用管理的核心能力。
Kubernetes 在容器编排中有几个关键设计理念:

1. 声明式API
2. 可扩展性架构
3. 可移植性

云原生微服务

微服务发展背景

在云原生时代,云原生微服务体系将充分利用云资源的高可用和安全体系,让应用获得更有保障的弹性、 可用性与安全性。

微服务设计约束

相较于单体应用,微服务架构的架构转变,在提升开发、部署等环节灵活性的同时,也提升了在运维、监控环节的复杂性。
1 微服务个体约束: 个微服务修改或者发布时,不应该影响到同一系统里另一个微服务的业务交互。
2 微服务与微服务之间的横向关系: 主要微服务的可发现性和可交互性处理服务间的横向关系。
3 微服务与数据层之间的纵向约束: 在微服务领域,提倡数据存储隔离原则。对于有状态的微服务,通常使用计算与存储分离的方式.
4 全局视角下的微服务分布式约束: 微服务系统设计一开始,就需要考虑全局视角。

云原生微服务典型架构

第一代微服务架构:
whitepaper-cloudnative5.png

第二代微服务架构:
whitepaper-cloudnative6.png

第三代微服务架构:
whitepaper-cloudnative7.png

第四代微服务架构:
whitepaper-cloudnative8.png

主要微服务技术

Apache Dubbo
Spring Cloud
Eclipse MicroProfile
Tars
SOFAStack
Dapr

Serverless

1 技术特点

全托管的计算服务
通用性
自动的弹性伸缩
按量计费

2 常见场景

小程序 /Web/Mobile/API 后端服务
大规模批处理任务
基于事件驱动架构的在线应用和离线数据处理
开发运维自动化

3 技术关注点

计算资源弹性调度
负载均衡和流控
安全性

开放应用模型(OAM)

2019 年末,阿里云联合微软共同发布了 Open Application Model (OAM) 开源项目,其主要目标是解决从 Kubernetes 项目到“以应用为中心”的平台之间最关键环节——标准化应用定义。

Service Mesh 技术

Service Mesh 是分布式应用在微服务软件架构之上发展起来的新技术,旨在将那些微服务间的连接、安全、流 量控制和可观测等通用功能下沉为平台基础设施,实现应用与平台基础设施的解耦。这个解耦意味着开发者无需关注 微服务相关治理问题而聚焦于业务逻辑本身,提升应用开发效率并加速业务探索和创新。

根据 Gartner 研究报告,Istio 有望成为 Service Mesh 的事实标准(话外音:OUC的成立不知道会不会对此事造成影响?),而 Service Mesh 本身也将成为容器服务技术的标配技术组件。

DevOps

1 概述
DevOps 就是为了提高软件研发效率,快速应对变化,持续交付价值的的一系列理念和实践,其基本思想就是 持续部署(CD),让软件的构建、测试、发布能够更加快捷可靠,以尽量缩短系统变更从提交到最后安全部署到生产 系统的时间。

要实施 DevOps,需要遵循一些基本原则,这些原则被简写为 CAMS:

文化(Culture) 
自动化(Automation) 
度量(Measurement) 
共享(Sharing)

运维平台一般都经历过如下几个发展阶段:手工、脚本、工具、平台、智能化运维等。
现有运维平台虽然很多实现方式,但总体来说分为两类:

指令式 
声明式

阿里云原生架构设计

阿里巴巴独有的云原生架构设计方法——ACNA(Alibaba Cloud Native Architecting)。ACNA 是一个 「4+1」 的架构设计流程
「4」 代表架构设计的关键视角,包括:

企业战略视角
业务发展视角
组织能力视角
云原生技术架构视角

「1」 表示云原生架构的架构持续演进闭环。

4 个架构视角和一个闭环的关系如下图所示:

whitepaper-cloudnative4.png

阿里云原生产品介绍

云原生产品家族

阿里巴巴云原生产品家族包括容器产品家族、微服务产品家族、Serverless 产品家族、Service
Mesh 产品家族、消息产品、云原生数据库家族、云原生大数据产品家族等。

阿里巴巴云原生产品家族

  1. 容器产品家族:
容器服务 Kubernetes 版(ACK)
Serverless Kubernetes(ASK)
镜像服务(ACR)
  1. 微服务产品家族
EDAS(企业分布式应用服务)
MSE(微服务引擎)
ACM(应用配置管理)
CSB Micro Gateway(微服务网关服务)
GTS(全局事务服务)
ARMS(应用实时监控服务 ) 
链路追踪(Tracing Analysis)
PTS(Performance Testing Service)
  1. Serverless 产品家族
FC(函数计算)
SAE(Serverless 应用引擎)
Serverless 工作流
  1. Service Mesh 产品家族
托管服务网格(ASM)
AHAS(应用高可用服务)
  1. 消息产品家族
消息队列 RocketMQ 版
消息队列 Kafka 版
消息队列 AMQP 版
微消息队列 MQTT 版
阿里云消息服务 MNS
事件总线 EventBridge
  1. 云原生数据库产品家族
PolarDB
PolarDB-X
  1. 云原生大数据产品家族
云原生数据仓库 AnalyticDB MySQL 版
云原生数据仓库 AnalyticDB PostgreSQL 版

各行业面临的挑战&解决方案

分别举了「申通」「完美日记」「特步」「中国联通」「Timing App」5个例子

云原生架构未来发展趋势

容器技术发展趋势

趋势一:无处不在的计算催生新一代容器实现

新的容器运行时技术解决了安全隔离性、执行效率和通用性三个不同维度的要求:

KataContainer
Firecracker
gVisor
Unikernel 

趋势二:云原生操作系统开始浮现

Linux 的计算调度单元是进程,调度范围限制在一台计算节点。而 Kubernetes 的调度单位是 Pod, 可以在分布式集群中进行资源调度,甚至跨越不同的云环境。

whitepaper-cloudnative11.png

趋势三: Serverless 容器技术逐渐成为市场主流

通过 Serverless 容器,一方面根本性解决 Kubernetes 自身复杂性问题,让用户无需受困于 Kubernetes 集群容量规划、安全维护、故障诊断等运维工作; 一方面进一步释放云计算能力,将安全、可用性、可伸缩性等需求下沉到基础设施实现。

趋势四:动态、混合、分布式的云环境将成为新常态

对于企业客户而言,有些业务出于对数据主权、安全隐私的考量,会采用混合云架构。一些企业为了满足安全合规、成本优化、提升地域覆盖性和避免云厂商锁定等需求,会选择多个云厂商。混合云 / 多云 架构已成为企业上云新常态。

基于云原生的新一代应用编程界面

包括生命周期管理、运维管理、配置范围和扩展和管理、以及语言无关的编程框架,一起构成了崭新的应 用与云之间的编程界面。这一变革的核心逻辑还是把应用中和业务无关的逻辑和职责,剥离到云服务,并在这个过程 中形成标准,让应用开发者能够在专有云、公有云、或者混合云的场景中,都能有一致的研发运维体验。

Serverless 发展趋势

1 趋势一:Serverless 将无处不在
2 趋势二:Serverless 将通过事件驱动的方式连接云及其生态中的一切
3 趋势三:Serverless 计算将持续提高计算密度,实现最佳的性能功耗比和性能价格比

相关实践学习
容器服务Serverless版ACK Serverless 快速入门:在线魔方应用部署和监控
通过本实验,您将了解到容器服务Serverless版ACK Serverless 的基本产品能力,即可以实现快速部署一个在线魔方应用,并借助阿里云容器服务成熟的产品生态,实现在线应用的企业级监控,提升应用稳定性。
云原生实践公开课
课程大纲 开篇:如何学习并实践云原生技术 基础篇: 5 步上手 Kubernetes 进阶篇:生产环境下的 K8s 实践 相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
目录
相关文章
|
28天前
|
Cloud Native Devops 持续交付
构建未来:云原生架构在现代企业中的应用与挑战
【2月更文挑战第31天】 随着数字化转型的加速,云原生技术已经成为推动企业IT架构现代化的关键力量。本文深入探讨了云原生架构的核心组件、实施策略以及面临的主要挑战。通过分析容器化、微服务、DevOps和持续集成/持续部署(CI/CD)等关键技术,揭示了如何利用这些技术实现敏捷性、可扩展性和弹性。同时,文章还讨论了企业在采纳云原生实践中可能遇到的安全性、复杂性和文化适应性问题,并提供了解决这些问题的策略和建议。
|
24天前
|
运维 Cloud Native 持续交付
云原生架构的未来演进:打造灵活、高效的企业IT基础
随着数字化转型的不断深入,企业的IT基础设施正经历着从传统架构向云原生架构的根本转变。本文将探讨云原生技术的最新发展趋势,分析其在提高业务敏捷性、降低运维成本以及促进技术创新方面的关键作用。我们将重点讨论如何借助容器化、微服务、DevOps和持续交付等核心技术,构建一个能够适应快速变化市场需求的云原生生态系统。通过实际案例分析,揭示企业在迁移到云原生架构过程中面临的挑战与解决策略,为读者呈现一幅云原生技术赋能企业未来的蓝图。
|
26天前
|
Cloud Native Devops 持续交付
构建未来:云原生架构在企业数字化转型中的关键作用
随着企业加速其数字化进程,云计算已成为支撑创新和灵活性的基石。本文深入探讨了云原生架构如何为企业提供敏捷性、可扩展性和成本效益,以及它如何成为支持现代应用程序开发和服务交付的核心。我们将分析云原生的关键组件,包括容器化、微服务、持续集成/持续部署(CI/CD)和DevOps文化,并讨论这些技术如何协同工作以提高企业运营效率和响应市场变化的能力。此外,我们还将审视采用云原生架构的潜在挑战和克服这些挑战的策略。
|
29天前
|
Cloud Native 安全 持续交付
构建未来:云原生架构的演进与实践
【2月更文挑战第30天】 随着数字化转型的深入,企业对于信息技术的需求日益复杂化和动态化。传统的IT架构已难以满足快速迭代、灵活扩展及成本效率的双重要求。云原生技术作为解决这一矛盾的关键途径,通过容器化、微服务、持续集成/持续部署(CI/CD)等手段,实现了应用的快速开发、部署及运维。本文将探讨云原生架构的最新发展,分析其如何助力企业构建更加灵活、高效的业务系统,并结合实际案例,展示云原生转型过程中的最佳实践和面临的挑战。
|
29天前
|
监控 Cloud Native 持续交付
构建未来:云原生架构在企业数字化转型中的关键作用
【2月更文挑战第30天】 随着企业加速其数字化转型步伐,云原生架构已不仅仅是一种趋势,而是一种必然。本文将探讨云原生技术如何为企业提供必要的敏捷性、可扩展性和弹性,以支持不断变化的市场需求。通过深入分析容器化、微服务和持续集成/持续部署(CI/CD)等关键概念,我们将揭示这些技术如何协同工作,帮助企业实现快速迭代和高效运营。
|
3天前
|
Cloud Native 持续交付 API
构建未来:云原生架构在企业数字化转型中的关键作用
【4月更文挑战第15天】 随着企业加速其数字化转型的步伐,云原生架构已经成为推动创新和实现敏捷性的关键技术。本文深入探讨了云原生技术如何助力企业在竞争激烈的市场中保持领先地位,包括它的核心组件、实施策略以及面临的挑战。通过实际案例分析,我们揭示了企业如何利用云原生架构来优化资源使用、提高开发效率和加强系统的稳定性与安全性。
|
5天前
|
Cloud Native Devops 持续交付
构建未来:云原生架构在企业数字化转型中的关键作用
【4月更文挑战第14天】 随着企业加速迈向数字化,云原生架构成为支撑其转型战略的核心技术之一。该文章深入探讨了云原生技术如何通过提供灵活、可扩展的解决方案来满足现代业务需求。分析了容器化、微服务、持续集成和持续部署(CI/CD)以及DevOps文化对于构建和维护高效、可靠的云基础设施的重要性。同时,讨论了企业在采用云原生架构时可能面临的挑战,并提出相应的策略以克服这些障碍。
|
20天前
|
Cloud Native API 持续交付
构建未来:云原生架构在企业数字化转型中的关键作用
随着企业加速其数字化转型的步伐,云原生架构已成为实现敏捷性、可扩展性和弹性的关键技术。本文将深入探讨云原生技术的核心组件,包括容器化、微服务、持续集成与持续部署(CI/CD)、以及声明式API,并分析它们如何共同促进企业的技术创新和业务增长。通过采用云原生方法,组织能够更快速地响应市场变化,提高运营效率,并在竞争激烈的市场中保持领先地位。
|
23天前
|
Cloud Native 持续交付 云计算
构建未来:云原生架构在企业数字化转型中的关键作用
随着企业加速其数字化转型步伐,云原生架构已成为支撑这一进程的核心技术之一。本文将深入探讨云原生技术如何促进企业的敏捷性、可扩展性和创新能力,同时提供一种高效、安全和可维护的技术环境。通过分析容器化、微服务、持续集成/持续部署(CI/CD)等关键技术组件,本文揭示了云原生架构在帮助企业快速响应市场变化、优化资源使用和提升运营效率方面的内在价值。
|
28天前
|
Cloud Native Devops 持续交付
构建未来:云原生架构在企业数字化转型中的关键作用
【2月更文挑战第31天】 随着企业加速迈向数字化,云原生架构已成为推动创新和灵活性的重要力量。本文将探讨云原生技术如何助力企业在竞争激烈的市场中保持领先,包括它如何促进资源的最优配置、加快应用开发周期以及提高整体业务的弹性。通过深入分析云原生的核心组件,如微服务、容器化、持续集成/持续部署(CI/CD)和DevOps实践,我们将揭示这些技术如何共同塑造一个灵活且可扩展的企业IT环境。
37 1

热门文章

最新文章