系统架构设计师-第14章-云原生架构设计理论与实践-

云原生架构产生背景

云原生与商业场景的深度融合

( 1 )从为企业带来的价值来看,云原生架构有着以下优势通过对多元算力的支持,满足不同应用场景的个性化算力需求,井基于软硬协同架构,为应用提供极致性能的云原生算力

(2) 通过最新的DevSecOps 应用开发模式,实现了应用的敏捷开发,提升业务应用的选代速度,高效响应用户铺求,并保证全流程安全。

(3)帮助企业管理好数据,快速构建数据运营能力,实现数据的资产化沉淀和价值挖掘,并借助一系列Al 技术,再次赋能给企业应用,结合数据和AI 的能力研助企业实现业务的智能升级。

 (4) 结合云平行全方位企业级安全服务和安全合规能力,保障企业所用在云上去全构建,业务安全运行.

云原生架构内涵

云原生架构定义

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

技术部分依赖于传统云计算的3层概念,即基础设施即服务。IaaS) 、平台即服务( PaaS) 和软件即服务(SaaS) 。

云原生的代码通常包括三部分:业务代码、三方软件、处理非功能特性的代码.

1 . 代码结构发生巨大变化

云原生架构产生的最大影响就是让开发人员的编程模型发生了巨大变化。

2. 非功能性特性大量委托

任何应用都提供两类特性,功能性特性和非功能性特性。

功能性特性是真正为业务带来价值的代码,比如建立客户资料、处理订单、支付等;即使是一些通用的业务功能特性, 比如组织管理、业务字典管理、搜索等也是紧贴业务需求的。

非功能性特性是没有给业务带来直接业务价值,但通常又是必不可少的特性,比如高可用能力、容灾能力、安全特性、可运维性、易用性、可测试性、灰皮发布能力等。

3. 高度自动化的软件交付

云原生架构原则

1 . 服务化原则

2. 弹性原则

3. 可观测原则

4 . 韧性原则

5 . 所在过程自动化原则

6. 零信任原则

7. 架构持续演进原则

主要架构模式

1 . 服务化架构模式
2. Mesh 化架构模式
3. Serverless 模式
4. 存储计算分离模式
5. 分布式事务模式

架构师需要根据不同的场景远择合适的分布式事务模式。
( 1 )传统采用XA 模式,虽然具备很强的一致性, 但是性能差
( 2 ) 基于消息的最终-致性( BASE ) 通常有很高的性能, 但是通用性有限.
( 3 ) TCC 模式完全出凶阳层来控制事务, 事务隔离性可控, 也可以做到比较高效; 但是对业务的侵入性非常强, 设计开发维护等成本很高。
( 4 ) SAGA 模式与TCC 模式的优缺点类似但没有try 这个阶段, 而是何个正向事务部对院一个补偿事务,也是开发维护成本高。
( 5 ) 开源项目SEATA 的AT 模式非常高性能且无代间开发工作量, 且可以自动执行国跤操作,同时也存在一些使用场景限制。

6 . 可观测架构
7 . 事件驱动架构

典型的云原生架构模式

1. 庞大的单体应用
2. 单体应用"硬拆" 为微服务
3. 缺乏自动化能力的微服务

云原生架构相关技术

容器技术

容器技术是一种虚拟化技术,它可以将一份应用程序和其所有依赖项封装在一个轻量级的容器中,以便在不同的计算环境中进行部署和运行。容器技术的主要组成部分包括容器引擎、容器镜像和容器编排工具。容器引擎负责管理和运行容器,容器镜像是容器的基础镜像,可包含应用程序和其依赖项,容器编排工具可用于自动化和管理容器生命周期。容器技术的优势在于它可以快速部署和运行应用程序,提高了开发和运维效率,同时也提高了系统的可移植性和可扩展性。常见的容器技术包括Docker、Kubernetes等。

1 . 容器技术的背景与价值

容器技术的背景与价值:
1. 背景:传统的应用程序部署方式需要在服务器上安装各种依赖库和软件组件,每个应用程序都需要占用一个完整的虚拟机,导致服务器资源浪费,管理困难,效率低下。
2. 价值:容器技术通过将应用程序和所有依赖库和软件组件封装在一个容器中,使得应用程序可以在任意环境中运行,减少了服务器资源浪费,简化了管理,提高了效率。容器技术还可以实现快速部署、快速扩容、快速回滚等功能,提高了应用程序的可靠性和可维护性。此外,容器技术还支持微服务架构,可以拆分为多个小型服务,从而使得系统更加灵活、可扩展和容错。最后,容器技术是现代化云计算的基础,支持云原生应用的构建和部署,是未来技术的趋势和方向。

2 . 容器编排

容器编排是指在容器化应用程序的基础上,对容器进行规划、调度和管理的过程。容器编排工具可以帮助开发团队更高效地管理容器,从而实现快速部署、自动伸缩和高可用性等目标。

常见的容器编排工具有Kubernetes、Docker Swarm、Mesos等。这些工具可以根据应用程序的需求,自动化地将容器分配到合适的节点上,并实现自动扩展、负载均衡、服务发现、监控等功能。

容器编排可以使开发者从基础设施管理中解放出来,更专注于应用程序的开发和维护。同时,容器编排也可以提高应用程序的可靠性和稳定性,确保应用程序在任何情况下都能正常运行。

云原生微服务

1. 微服务发展背景
2. 微服务设计约束
3. 主要微服务技术

主要的微服务技术包括:

1. Spring Boot:一个用于创建独立的、基于Spring的生产级别的应用程序的框架,被广泛使用于微服务架构中。

2. Docker:一种容器化技术,可以实现快速部署、运行和管理微服务。

3. Kubernetes:一个用于管理容器化应用程序的开源平台,可以自动部署、扩展和管理多个容器化应用程序。

4. Apache Kafka:一个分布式流处理平台,可以处理实时的大量数据,在微服务中被用于实现异步通信。

5. RabbitMQ:一个开源的消息队列系统,可以在微服务架构中实现异步通信。

6. Netflix OSS:由Netflix开发的一组开源工具,包括Eureka、Hystrix、Zuul等组件,可以实现服务注册、熔断、路由等功能。

7. Istio:一个开源的服务网格框架,可以管理多个微服务之间的流量和通信。

8. gRPC:一个高性能、开源的远程过程调用框架,可以在微服务中实现跨语言的通信。

9. Elasticsearch:一个分布式搜索引擎,可以在微服务中实现日志分析、全文搜索等功能。

以上这些技术都是常用的微服务架构中的重要组成部分。

无服务器技术

无服务器技术(Serverless)是一种新型的云计算服务模式,它将应用程序的开发、部署和运行抽象为函数的形式,屏蔽了底层的计算基础设施,开发者不再需要关心服务器、虚拟机、操作系统、负载均衡等底层细节,只需编写简单的函数代码即可实现应用程序的快速部署和运行。

无服务器技术是一种事件驱动的计算模型,只在需要时才启动并运行函数,可以实现高效的资源利用,避免了传统服务器模式下的资源浪费和维护成本。此外,无服务器技术还具有自动扩容、灵活部署、快速响应等优点,被广泛应用于互联网、物联网、移动应用、大数据等各个领域。

1. 技术特点

Serverless 计算包含以下特征:

(1) 全托管的计算服务,客户只需要编写代码构建应用,无需关注同质化的、负担繁重的基于服务器等基础设施的开发、运维、安全、高可用等工作:
(2) 通用性,结合云BaaSAPI的能力,能够支撑云上所有重要类型的应用;
(3) 自动弹性伸缩,让用户无需为资源使用提前进行容量规划:
(4) 按量计费,让企业使用成本得有效降低, 无需为闲置资源付费。

2 . 技术关注点

1 )计算资源弹性调度

2 ) 负载均衡和流控

3 )安全性

服务网络

1 ,技术特点

服务网格(ServiceMesh ) 是分布式应用在微服务软件架构之上发展起来的新技术, 旨在将那
些微服务间的连接、安全、流量控制和可观测等通用功能下沉为平台基础设施, 实现应用与平台
基础设施的解祸。

2. 主要技术

云原生架构案例分析

云原生架构案例有很多,以下是一些典型的案例:

1. Netflix 
Netflix 是一家全球领先的流媒体服务提供商,从一开始就采用了云原生架构。Netflix 实现了自己的云原生平台,名为 Spinnaker,支持跨多个云平台进行部署。

2. Airbnb 
Airbnb 是一家在线住宿预订平台,其技术架构采用了微服务和容器化。Airbnb 采用了 Kubernetes 来管理容器和部署,还使用 Istio 来管理服务之间的通信。

3. JD.com
京东是中国最大的综合型零售商,其云原生架构案例是京东云。京东云采用了 Kubernetes 和 Istio 来管理容器和服务之间的通信,并提供了丰富的云服务。

4. 美团
美团是中国最大的在线服务平台之一,其技术架构采用了微服务和容器化。美团采用了 Spring Cloud 和 Kubernetes 来管理服务和容器,并使用 Istio 来优化服务之间的通信。

5. 阿里巴巴
阿里巴巴是中国最大的电子商务企业之一,其云原生架构案例是阿里云。阿里云采用了 Kubernetes 和 Istio 来管理容器和服务,还提供了丰富的云服务,如对象存储、数据库、消息队列等。

这些云原生架构案例充分展示了云原生的优势,包括弹性、可伸缩性、自动化、高可用性等,推动了企业的数字化转型和业务创新。

 

你可能感兴趣的:(系统架构,云原生,学习,笔记)