阿里云云原生助理工程师ACA认证(二)—云原生的核心技术及架构

 

云原生的理解

image

云原生是基于微服务原理而开发的应用,以容器方式打包,在运行时,容器由运行于云基础设施(PaaS或者叫云操作系统)之上的平台进行调度,应用开发采用持续交付和DevOps实践。

云原生技术改变了开发模式

image

云原生的关键内涵

image

容器

容器是一个标准的软件单元,它将代码及其所有依赖关系打包起来,使资源调度、微服务更容易,并具备强大的可移植性。

微服务

微服务架构是一种架构模式,它提倡将单体应用划分成一组多个小服务,每个服务运行在其独立的进程中,服务与服务间采用轻量级的通信机制互相沟通。

DevOps

高效组织团队之间如何通过自动化的工具协作和沟通来完成软件的生命周期管理,从而更快、更频繁地交付更稳定的软件。

云原生技术生态现状

https://landscape.cncf.io/

云原生基金会

CNCF(云原生基金会)是目前云计算领域最成功的开源基金会之一,是 Kubernetes,containerd,etcd,Envoy等知名开源项目的托管基金会

云原生技术社区 CNCF目前托管的20+正式项目共同构成了现代云计算生态的基石。其中 Kubernetes项目是全世界第四活跃的开源项目

云原生技术产业 全球各大公有云厂商+100+技术创业公司持续投入,总体市场于2021年逼近1000亿美元。阿里云“全面上云”。

云原生的技术范畴

云应用定义与开发流程

  • 应用定义与镜像制作
  • 配置CI/CD
  • 消息和Streaming
  • 云原生数据库

云应用的编排与管理

  • 应用编排与调度
  • 服务发现治理
  • 远程调用
  • API网关
  • Service Mesh服务网络

监控与可观测性

  • 系统监控
  • 日志管理
  • 链路追踪Tracing
  • 混沌工程

云原生底层技术

  • 容器运行时
  • 云原生存储技术
  • 云原生网络技术

云原生工具集

  • 流程自动化与配置管理
  • 容器镜像仓库
  • 云原生安全技术
  • 云端密码管理

Serverless

  • 函数计算FaaS
  • 后端计算BaaS
  • Serverless 计费

云原生技术学习主线解析

  • 云原生的技术体系看似纷乱繁杂,但在不同视角都体现着“牵一发而动全身”的主线:

image

容器技术为应用而生

  • 容器作为标准化软件单元,它将应用及其所有依赖项打包,使应用不再受环境限制,在不同计算环境间快速、可靠地运行。
  • 容器化的好处在于运维的时候不需要再关心每个服务所使用的技术栈了,每个服务都被无差别地封装在容器里,可以被无差别地管理和维护。

容器技术核心价值

  • 敏捷性:架构敏捷,加速产品迭代
  • 资源弹性:秒级资源弹性
  • 可移植性:环境标准化,简化交付

image

容器编排核心价值

  • 容器部署与管理
  • 容器网络自动化管理。容器弹性伸缩
  • 支撑容器微服务架构
  • 自动化CI/CD(持续集成/持续部署)
  • 容器安全管理

容器的集群管理平台,云原生体系发展的基石

云原生微服务架构

单体架构

  • 任何变更必须部署整个应用整个应用必须采用统一的技术栈使用统一的数据库
  • 发布阶段需要大量协调
  • 所有功能在单个应用程序中,单个功能故障可能导致整个应用程序无法正常使用。

微服务架构

  • 各个服务独立部署,相互协作
  • 各个服务采用独立的技术栈
  • 各个服务使用单的数据库资源
  • 各个服务根据业务需求独立演进
  • 服务故障相互隔离。

Serverless

Serverless,按中文翻译,称为「无服务器」。“无服务器”!?

“无服务器”简化云计算架构和编程模式,开发者不用关注服务器的问题,通过第三方后端提供计算服务执行

  • 快速交付:容器化、事件驱动
  • 智能单性:自动伸缩
  • 更低成本:免运维、按需付费模式

Serverless架构

  • 分为Backend as a Service(BaaS)后端即服务和Functions as a Service(FaaS)函数即服务

DevOps

Development和Operations的组合词

  • 是一种重视“软件开发人员(Dev)”和“IT运维技术人员(Ops)”之间沟通合作的文化、运动或惯例
  • 透过自动化“软件交付”和“架构变更”的流程,来使得构建、测试、发布软件能够更加地快捷、频繁和可靠

核心价值

  • 高效的软件交付方式
  • 提升交付质量
  • 激发团队的创造力

云原生架构模式

image

云原生架构与传统架构对比

传统软件架构,用户不仅仅需要关注基础设施的能力及其运维,还需要采购及维护大量的第三方软件以及非功能性能力,降低软件开发效率,并且没有充分利用云计算laaS与PaaS的能力。

image

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

云原生架构几种典型架构模式

image

典型的云原生架构反模式

image