云计算的三次浪潮
云计算经历了IaaS(基础设施即服务)、PaaS(平台即服务)到SaaS(软件即服务)的抽象层次递进。计算资源也经历了物理机→虚拟机→容器→Serverless的四次封装范式的演进,每一次演进都让开发者更聚焦于业务逻辑而非底层基础设施。
虚拟化技术
虚拟机通过Hypervisor将物理服务器抽象为多个逻辑服务器。KVM作为Linux内核自带的开源Hypervisor,配合QEMU设备模拟实现了企业级虚拟化。VMware ESXi在企业市场拥有绝对地位,提供了HA、DRS、FT等企业级功能。
硬件辅助虚拟化(Intel VT-x/VT-d、AMD-V)大幅降低CPU虚拟化开销,SR-IOV让网卡直通VM绕过Hypervisor的性能损耗,VGPU将GPU时间片共享给多个VM。
容器技术的本质
容器并非虚拟机的替代而是补充。容器本质上是宿主机上的进程,通过namespace实现资源隔离、cgroups实现资源限制、rootfs实现文件系统隔离。Docker通过镜像格式定义和容器运行时标准化革命了应用的分发方式。
OCI(Open Container Initiative)标准化了容器运行时(runc)、镜像格式(OCI Image Spec)和分发协议。containerd和CRI-O是Kubernetes采用的容器运行时,提供了更专业的面向编排平台能力。
Serverless:极致的抽象
Serverless(FaaS/BaaS)将运行时管理也交给云平台,开发者只需关注和开发函数或应用的业务逻辑。AWS Lambda定义了FaaS的事实标准,触发源极其丰富(API Gateway/S3事件/DynamoDB流/SQS队列等)。Google Cloud Functions、Azure Functions、以及开源的OpenFaaS/Knative提供了多选方案。
Serverless的挑战包括:冷启动延迟(Java函数>10s,Go/Python~100ms)、函数执行时间限制(15分钟上限)、状态管理不便(每次调用无状态)和调调试困难。容器实例(AWS Fargate/ACI/Cloud Run)提供了容器+Serverless的折中方案。
云服务的选型逻辑
选型逻辑:需要精细控制选IaaS(EC2/KVM)、需要快速部署容器化应用选PaaS(EKS/ECS/EAE)、只做简单Serverless事件处理选CaaS/FaaS(Lambda)。实践中大量业务采用混合模式:核心服务用K8s保证可控性,低频任务用Lambda按需付费。多云策略虽然增加复杂度,但规避了供应商锁定风险。

发表评论 取消回复