解读云原生基础设施
导读:云原生是云计算领域的热点之一。就像 “一千个人眼里有一千个哈姆雷特”,大家对"云原生"的定义也见仁见智。本文将介绍云原生应用架构和生命周期管理的进化方向。
概述
可编程的、动态的、弹性基础设施:支持公共云、专有云、边缘计算等不同环境。
分布式应用架构:具备松耦合、可弹性扩展、高容错性等特点。
创新的应用开发、交付方式:基于自动化、可观测、可管理的软件交付流程,加速创新效率的同时保障系统稳定性。
本系列文章:
第一篇 - 云原生基础设施
第二篇 - 云原生软件架构
第三篇 - 云原生应用交付与运维体系
云原生基础设施
分类 | IaaS(Infrastructure as a Service) | CaaS(Container as a Service) | Serverless 容器 | fPaaS/FaaS (Function PaaS/Function as a Service) |
弹性容器实例 - ECI | ||||
配合自动化脚本 | ||||
模块化程度越来越高 - 自包含的应用打包方式,应用与底层物理基础设施解耦。
自动化运维程度越来越高 - 自动化的资源调度和弹性伸缩能力,用户将关注点逐渐聚焦到应用自身。
弹性效率越来越高 - VM 可以实现分钟级扩容;容器可以实现秒级扩容;函数可以做到毫秒级扩容。
故障回复能力越来越高 - 随着系统自愈性的增强,大大简化了应用架构容错的复杂性。
应“云”而生
云计算的规模经济
软硬一体设计,可以针对规模和性能进行全栈优化,极大降低计算成本。而且由于云计算的规模效应,随着产量的增加,边际成本会拉低平均制造成本。全球主流云厂商都在 IDC 设计、网络、芯片等方向加大自研投入。
以 API 方式交付 IT 能力,一方面可编程的基础设施极大提升了 IT 的敏捷性,更好地支持业务敏捷性;一方面 API 可以更加方便地被集成到三方服务商的解决方案中,进一步加速规模效应产生。
随着 IT 能力的规模化,一些数据化、智能化的创新技术和业务模式逐渐形成。比如 ECS 宕机预测和自动热迁移,可以将虚拟机的 SLA 提升到传统需要硬件冗余才能达到的稳定性标准;RDS 对数据库的自动优化和问题诊断,无需 DBA 的人力过多介入。
云原生的崛起
FaaS 应用架构和研发、交付流程和传统应用相比有很大的改变。
可移植性和厂商锁定的顾虑,FaaS 依然缺乏标准,而且通常需要依赖大量的后端服务 (BaaS, Backend as a Service),这导致了为 AWS 开发的 Serverless 应用较难移植到阿里云的平台,或者在自己的数据中心中运行。
FaaS 也引入了一些新的技术挑战,比如冷启动会导致应用响应延迟,按需建立数据库连接成本高等等,需要平台能力的持续增强。
云原生之路
Rehost 新托管 - 简单地通过 lift-and-shfit 方式,将线下物理机替换成为云上虚拟机或者裸金属实例,不改变原有的运维方式。
Re-platform 新平台 - 利用托管的云服务替换线下自建应用基础设施,比如通过 RDS 数据库服务替换自建 MySQL;通过容器服务,比如阿里云 ACK 来取代自建 K8s 集群。托管的云服务通常提供更好的弹性、稳定性和自治运维能力,可以让用户关注于应用而非基础设施管理。
Refactor/Re-architect 重构 / 新架构 - 包括单体应用的微服务架构改造,应用的容器化和 Serverless 化整体开发和交付架构改造。
云原生基础设施的未来趋势
趋势一:无处不在的计算催生新一代容器实现
基于 MicroVM 的安全容器的占比将逐渐增加,可以提供更高的安全隔离能力。虚拟化和容器技术的融合,已经成为了一个重要趋势。在公共云上,比如 AWS 的 Firecracker 已经成为 Lambda/Fargate 等 Serverless 云服务的基础设施;阿里云的袋鼠容器引擎,已经成为 ECI/ASK 的基础。
基于软硬一体设计的机密计算容器开始展露头角。比如,阿里云安全、系统软件、容器服务团队和蚂蚁可信原生团队共同推出了面向机密计算场景的开源容器运行时技术栈 inclavare-containers 支持基于 Intel SGX 机密计算技术的机密容器实现,如蚂蚁的 Occlum,开源社区的 Graphene 等 Libary OS。降低机密计算的技术门槛,简化可信应用的开发、交付和管理。
OS 的虚拟化创新也从未停步,从 Linux 4.5 内核开始 cgroup v2 接口在逐渐成熟,将进一步完善了资源隔离性。Docker 也发布了 rootless 模式,可以更好利用 Linux 操作系统的安全能力来提升容器的安全性。
WebAssembly 是新一代可移植、轻量化、应用虚拟机,在 IoT,边缘计算,区块链等场景会有广泛的应用前景。在服务器端,WebAssembly 是容器的颠覆者还是同盟者?大家会有不同的观点。个人比较倾向于后者,WASM/WASI 可以成为一个跨平台的容器实现技术。近期 Solo.io 推出的 WebAssembly Hub 就是将 WASM 应用通过 OCI 镜像标准进行统一的管理和分发,可以很好地应用在 Istio 服务网格生态中。
趋势二:云原生操作系统开始浮现
趋势三:在云端,Serverless 技术逐渐融入主流
扩展 Serverless 容器应用场景和产品组合,迁移更多普通容器 workload 到 Serverless 容器服务。
推进 Serverless 容器的标准化,减轻用户对云厂商锁定的担忧。
趋势四:动态、混合、分布式的云环境将成为新常态
首先 ACK 提供了统一集群管理能力,除了可以管理阿里云 K8s 集群之外,还可以纳管用户在 IDC 的自有 K8s 集群和其他云的 K8s 集群。利用统一的控制平面实现多个集群的统一的安全治理、可观测性、应用管理、备份恢复等能力,比如利用日志服务、托管 Prometheus 服务,可以无侵入地帮助用户对线上、线下集群有一个统一的可观测性大盘。利用云安全中心,AHAS 可以帮助客户在混合云的整体架构中发现并解决安全和稳定性风险。
此外,托管服务网格 ASM 提供统一的服务治理能力,结合阿里云云企业网 CEN、智能接入网关 SAG 提供的多地域、混合云网络能力,可以实现服务就近访问,故障转移,灰度发布等功能。
ACK 也提供了统一的应用交付能力,通过 GitOps 方式可以将应用安全、一致、稳定地发布在多个不同的云环境中。配合网格 ASM 提供的流量管理能力,可以支持云容灾、异地多活等应用场景,提升业务连续性。
总结