云端进化经历了从“All in Cloud”到“Cloud Native”的转型,这一过程主要围绕架构优化、弹性伸缩和自动化运维展开。
1. 架构演进与云计算特点
- 云计算特点:高可伸缩性、高可维护性、低成本、高可用性。
- 架构演变:从单体架构到多层架构,再到SOA/EDA,最终发展为微服务架构。
- 微服务优势:更有效利用弹性,实现更细粒度的伸缩,降低成本。
- 计算资源付费模式:竞价实例(最低成本)、预留实例(相对优惠)、按需实例(最贵)。
2. 微服务与失效应对
- 微服务通过错误隔离、熔断与服务降级、冗余、限流控制等机制更好地应对失效。
- 面向失效的设计原则:保持无状态、快速重启、健康检测。
- 单体与微服务的弹性利用对比:微服务能更快更精准地利用弹性资源。
3. 无服务架构与弹性伸缩
- 无服务架构(如S3、Kinesis、Lambda)实现更具弹性的资源管理。
- 弹性伸缩让“宠物”架构(单体)转变为“牛群”架构(微服务),提高资源利用率。
4. 不可变基础设施与DevOps
- 不可变基础设施:通过镜像和声明式API实现稳定和可重复的部署。
- DevOps视角:资源聚合到应用视角,实现快速部署和运维。
- GitOps:自动化资源打包、版本管理、多集群同步。
- Kubernetes Operator Pattern:自动化运维、混沌工程、Kubernetes外服务接入。
5. 云原生技术定义与核心思想
- 云原生技术包括容器、服务网格、微服务、不可变基础设施和声明式API。
- 云原生目标:构建容错性好、易于管理和便于观察的松耦合系统。
- 进化机制:变异(应对变化)+ 遗传(保留核心)。
- 不变的核心:软件项目的关键复杂性在于理解领域本身。
- 好架构标准:展示系统本质,推迟框架和工具决策。
- DDD分层结构:领域模型、应用层、基础设施层。
- 不变的软件设计思想:关注点分离、单一责任原则、面向接口、封装及适配。
6. 云原生技术应用与未来展望
- Spot Max:智能调度Spot实例,最高节省90%计算成本。
- Max Cloud:封装云原生技术栈,提供开发者视角运维平台。