云原生架构-架构师之路(十九)

  • 云原生架构内涵

云原生架构 基于云原生技术,指将 云应用中的非业务代码部分进行最大化的剥离,让 云设施接管项目中大量非功能特性(如弹性、韧性、安全、可观测性和灰度等)。把质量属性 和 业务功能完全分离,我们自己的公司只关注业务代码,至于质量属性交给云。

云原生包含:业务代码、三方软件 处理非功能特性的代码。把这些交给IaaS和PaaS完成。

  • 主要架构模式
  1. 服务化架构模式:典型的 微服务和小服务。把 代码模块关系和部署关系进行分离,每个接口可以部署不同的数量实例。
  2. 服务网格Mesh化架构模式:把 中间件框架(如缓存、异步mq)从业务从分离。
  3. Serverless模式:将“部署”这个动作从运维手里拿走。我们不需要关注运行地点,部署地点等。
  4. 存储计算分离模式:在云环境中,把各类暂态数据(如:session)给云服务保存。
  5. 分布式事务模式:访问多个微服务,必然带来分布式事务问题。
  6. 可观测架构:如Logging、Tracing等。
  7. 事件驱动架构:应用/组件集成的架构,适合数据变化通知等场景。

  • 主要技术
  1. 容器技术:容器不受环境限制,可靠运行。发挥云弹性优势。
  2. Kubernetes:提供分布式应用管理核心能力,包括:部署与管理,资源调度,自动修复,负载均衡可扩展等。
  3. 云原生微服务:单体拆分为多个子应用。

微服务约束:

  1. 微服务 个体约束:功能独立,低耦合,单一职责。
  2. 微服务与微服务 横向关系:服务与服务之间需要服务注册中心。
  3. 微服务与数据层 纵向约束: 数据是微服务的资产,只能通过微服务提供的api访问,有隔离原则。
  4. 微服务分布式约束:故障发现时效性和精确开发维护人员核心述求。

无服务器技术(Server less)因为屏蔽了服务器的各种运维难度。有以下特点:

  1. 全托管的计算服务。
  2. 通用性。
  3. 自动弹性伸缩。
  4. 按量计费。

函数计算(FasS)最具有代表性的产品。把应用逻辑拆分为多个函数,每个函数通过事件方式触发。

无服务器主要关注:计算资源弹性调度、负载均衡和流控、安全性。

服务网格ServiceMesh是分布式应用在微服务软件架构之上发展起来的新技术(中间件技术),实现应用于平台基础设施的解耦。意味着开发者无需关注微服务相关问题而聚焦于业务逻辑本身。

  • 案例分析

旅行公司云原生改造项目

面临问题:公司主体两个公司合并,技术体系不同,需要合二为一。节假日高并发流量。

改造第一阶段:

将多套旧系统合并,收拢到一套以云原生应用为核心的私有化云平台上,通过IaaS和PaaS等实现虚拟化封装、切割。

随着服务器集群的扩大,这时候机器频繁出现故障。

改造第二阶段:

基于共有云、私有云和离线专属云集群等新型计算环境,构建成具有弹性的云原生技术。

改造第三阶段:

通过基础组件、服务的云原生改造、服务依赖梳理和定义,应用不需要考虑底层资源、机房、运行等因素。

最底层则是 硬件基础设置层。

往上则是操作系统这一层:linux和windows。(现在还可以基础安卓,IOS)

操作系统层网上则是IaaS基础层:计算(CPI/GPU),容器网络,存储,运行时。

之后则是云原生技术,通过api接口调用云原生平台。

猜你喜欢

转载自blog.csdn.net/ke1ying/article/details/132630229