随着容器技术的成熟和 Docker 的流行,之后 Kubernetes 赢得了容器编排领域的战争,成为容器编排的事实标准后,基于 Kubernetes 的云原生技术栈开始流行起来。无论是笔者日常所参与开发的的 PaaS平台、AI 算力平台,还是 ChatGPT 事故所报道出来的信息,背后都是使用 Kubernetes 作为支撑。
本部分是整个架构笔记的核心内容,首先从容器的基础知识开始,了解容器实现的基本原理以及 Docker 的相关实践,然后在对 Kubernetes 的相关使用和原理做详细介绍。
然后我们会对云原生架构所涉及的关键知识做梳理,虽然是云原生架构,但其实底层概念都是通用的。
设想一下,如果我们需要将一个软件运行起来,需要做哪些工作?首先我们要有若干台服务器,然后还需要事先部署好软件所需要的中间件,比如数据库,软件运行起来后可能会有故障,因此我们需要对软件做良好的监控以及弹力设计。随着需求的不断变化,我们的软件也是需要不断迭代升级的,因此需要一个好的 CICD 流水线。
近些年来,无论是传统软甲领域的 微服务架构、Service Mesh、Serverless、FaaS 等概念层出不穷,AI 领域的各种进展也让人眼花缭乱。但就像是人总要吃饭喝水一样,这些内容的背后都是一个个的软件,而软件如果想要稳健的运行,就会始终需要一个。
本部分的内容安排如下:
- 首先对容器基础技术和 Docker 的相关实践做介绍
- 然后对 Kubernetes 的相关使用和原理做详细介绍
- 最后对云原生架构所涉及的服务治理、流量治理、弹力设计、可观测性、DevOps 工作做总结。
何以为云原生
无论是何种类型的架构,最终都是要落地的。在介绍云原生架构相关的内容之前,不妨让我们回到软件的本质,看看我们需要做哪些工作。
当我们将服务开发测试完成准备部署到生产环境时我们需要做哪些工作呢?
首先我们需要有若干台服务器,这些服务器可以是物理机、虚拟器、云服务器;然后我们的服务往往会用到数据库、缓存、消息队列等中间件,因此我们需要事先部署好这些中间件。这要求我们有一个良好的运维。
当我们将服务部署并启动后,需要做服务注册与发现,从而可以与其他服务
云原生架构
- 什么是云原生
- 软件架构的演进
- 云原生的定义与关键技术
- 如何构建云原生平台
- 不可变基础设施
- 容器技术
- Kubernetes
- 服务网格
- 服务治理
- 服务依赖管理
- 服务生命周期管理
- 服务注册与发现
- 服务弹力设计
- 流量治理
- 负载均衡与代理
- 限流设计
- 流量复制
- 流量监测
- 可观测性
- 全栈监控
- 指标
- 日志
- 追踪
- DevOps
- DevOps 文化打造
- 软件开发工作流
- CICD 最佳实践