系统架构设计师教程 第14章 14.3 云原生架构相关技术 笔记

14.3 云原生架构相关技术

14.3.1 容器技术

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

容器作为标准化软件单元,它将应用及其所有依赖项打包,使应用不再受环境限制,在不 同计算环境间快速、可靠地运行。

Docker容器基于操作系统虚拟 化技术,共享操作系统内核、轻量、没有资源损耗、秒级启动,极大提升了系统的应用部署密 度和弹性。

Docker提出了创新的应用打包规范——Docker镜像,解耦了应用与运 行环境,使应用可以在不同计算环境一致、可靠地运行。

2.容器编排

Kubernetes 已经成为容器编排的事实标准,被广泛用于自动部署,扩展和管理容器化应用。

Kubernetes 提供了分布式应用管理的核心能力。

资源调度

应用部署于管理

自动修复

服务发现与负载均衡

弹性伸缩

声明式API

可扩展架构

可移植性

14.3.2 云原生微服务

1.微服务发展背景

微服务模式将后端单体应用拆分为松耦合的多个子应用,每个子应用负责一组子功能。这 些子应用称为“微服务”,多个“微服务”共同形成了一个物理独立但逻辑完整的分布式微服务 体系。这些微服务相对独立,通过解耦研发、测试与部署流程,提高整体迭代效率。

2.微服务设计约束

一个优秀的微服务系统应遵循以下设计约束:

1)微服务个体约束

一个设计良好的微服务应用,所完成的功能在业务域划分上应是相互独立的。

2)微服务与微服务之间的横向关系

在合理划分好微服务间的边界后,主要从微服务的可发现性和可交互性处理服务间的横向 关系。

可发现性 需要引入第三方服务注册中心

可交互性 需要采用与语言无关的远程调用协议

3)微服务与数据层之间的纵向约束

在微服务领域,提倡数据存储隔离 (Data Storage Segregation,DSS) 原则,即数据是微服 务的私有资产,对于该数据的访问都必须通过当前微服务提供的API来访问。

4)全局视角下的微服务分布式约束

考虑因素

备全 自动化的CI/CD流水线满足对开发效率的诉求

支持蓝绿、金丝雀等不同发布 策略,满足对业务发布稳定性的诉求

全链路、实时和多维度的可观测能力

3.主要微服务技术

Apache Dubbo作为源自阿里巴巴的一款开源高性能RPC框架,特性包括基于透明接口的 RPC、 智能负载均衡、自动服务注册和发现、可扩展性高、运行时流量路由与可视化的服务治 理。

Spring Cloud作为开发者的主要微服务选择之一,为开发者提供了分布式系统需要的配置 管理、服务发现、断路器、智能路由、微代理、控制总线、一次性Token、 全局锁、决策竞选、 分布式会话与集群状态管理等能力和开发工具。

Eclipse MicroProfile作为Java微服务开发的基础编程模型,它致力于定义企业Java微服务 规范, MicroProfile提供指标、 API文档、运行状况检查、容错与分布式跟踪等能力,使用它创 建的云原生微服务可以自由地部署在任何地方,包括服务网格架构。

Tars包含一整套开发框架与管理平台,兼顾多语言、易用性、高性能 与服务治理,理念是让开发更聚焦业务逻辑,让运维更高效。

SOFAStack(Scalable Open Financial Architecture Stack) 是由蚂蚁金服开源的一套用于快速 构建金融级分布式架构的中间件

DAPR(Distributed Application Runtime, 分布式应用运行时)是微软新推出的一种可移植 的、无服务器的、事件驱动的运行时,它使开发人员可以轻松构建弹性,无状态和有状态微服 务,这些服务运行在云和边缘上,并包含多种语言和开发框架。

14.3.3 无服务器技术

1.技术特点

Serverless 计算包含以下特征:

(1)全托管的计算服务,客户只需要编写代码构建应用,无需关注同质化的、负担繁重的 基于服务器等基础设施的开发、运维、安全、高可用等工作;

(2)通用性,结合云 BaaSAPI的能力,能够支撑云上所有重要类型的应用;

(3)自动弹性伸缩,让用户无需为资源使用提前进行容量规划;

(4)按量计费,让企业使用成本得有效降低,无需为闲置资源付费。

受Serverless带来的全托管免运维、自动弹性伸缩、按量计费等优势。

2.技术关注点

1)计算资源弹性调度

由Serverless平台负责管理应用所需的计算资源,更实时、更主动、更智能 的弹性伸缩能力是函数计算服务获得良好用户体验的关键。

2)负载均衡和流控

分片管理器通 过监控整个集群的分片和服务器负载情况,执行分片的迁移、分裂、合并操作,从而实现集群 处理能力的横向扩展和负载均衡。

在多租户环境下,流量隔离控制是保证服务质量的关键。用户按实际使用的资源付费,避免应用相互干扰。

3)安全性

14.3.4 服务网格

1.技术特点

服务网格 (ServiceMesh) 是分布式应用在微服务软件架构之上发展起来的新技术,旨在将那 些微服务间的连接、安全、流量控制和可观测等通用功能下沉为平台基础设施,实现应用与平台基础设施的解耦。开发者只需关注业务逻辑本身,提升了开发效率。

Istio的主要组件 包括Pilot (服务发现、流量管理)、 Mixer (访问控制、可观测性)、 Citadel (终端用户认证、流 量加密);整个服务网格关注连接和流量控制、可观测性、安全和可运维性。

2.主要技术

Istio为微服务架构提供了流量管理机制,同时亦为其他增 值功能(包括安全性、监控、路由、连接管理与策略等)创造了基础。

Linkerd在数 据平面采用了 Rust编程语言实现了linkerd-proxy, 控制平面与 Istio一样采用G o语言编写。最 新的性能测试数据显示, Linkerd在时延、资源消耗方面比 Istio更具优势。

Consul在控制面上 直接使用 ConsulServer, 在数据面上可以选择性地使用 Envoy。

与 Istio不同的是, Linkerd和 Consul 在功能上不如Istio完整。

Conduit作为Kubernetes 的超轻量级ServiceMesh, 其目标是成为最快、最轻、最简单且最 安全的ServiceMesh。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值