多云战略下的双赢架构:来自云厂商与客户的双重视角


文档版本历史

版本日期作者文档描述
1.02025-07-30刘晋勋初版创建,整合了从客户和云厂商双重视角看待多云战略的架构设计与应对策略。

引言:我的双重身份与思考

我既在领先的公有云厂商担任过上云技术架构师、云服务产品技术架构师、云服务产品专家等职责,也在制造企业(云服务商的甲方)担任过软件平台架构开发核心技术专家。因为有了云服务领域甲乙双方的工作经验,我一直想从双赢的角度来考虑目前很多公司正在考虑或逐步执行的“多云”基础平台技术架构战略,所以本文是我的一些思考和解决方案,供大家参考。

本文旨在回答两个核心问题:

  1. 作为企业客户,如何设计一个能适应多云、避免厂商锁定的基础软件平台?
  2. 作为云服务商,面对客户的多云趋势,应如何应对,才能在成就客户的同时实现商业共赢?

第一章:客户视角——构建厂商中立的多云架构蓝图

对于企业客户而言,多云战略的核心目标是掌握技术主动权,实现业务的可移植性与韧性

情景 (Situation)

企业计划构建一个现代化的基础软件平台,战略要求该平台必须避免对单一云服务商的过度依赖,以降低长期成本风险、提升议价能力并增强业务连续性。

任务 (Task)

设计并实施一个云原生的、与底层云厂商解耦的基础软件平台架构,实现核心应用与服务的可移植性,并最小化跨云迁移的成本。

行动方案 (Action): 五大支柱构建可移植平台

支柱一:以Kubernetes作为统一的计算抽象层

这是整个多云战略的基石。我们不直接面向虚拟机,而是面向一个更高层次的、统一的计算平台。

  • 策略: 所有应用和服务必须容器化,并部署在标准的托管Kubernetes服务上(如AWS EKS, Azure AKS, Google GKE、阿里云ACK等)。应用的部署、网络和服务发现完全通过标准的Kubernetes API对象来定义。
  • 原理: Kubernetes提供了一个统一的API层,它抽象了底层的计算、网络和存储资源。开发者面对的是一个稳定、一致的Kubernetes集群,而非特定云厂商的基础设施。
支柱二:以Terraform作为统一的基础设施编排层
  • 策略: 使用HashiCorp Terraform来定义和管理所有基础设施资源。通过模块化设计,将云厂商相关的Provider模块(如VPC、K8s集群创建)与描述应用部署的通用模块分离。
  • 原理: Terraform可以用一套统一的语言(HCL)来管理不同云的资源。当需要迁移时,只需替换掉云厂商相关的Provider模块,核心应用部署与配置代码保持不变。
支柱三:以开源、可自建的服务作为统一的数据与消息层

这是避免锁定的最关键一环,因为数据服务“粘性”最强。

  • 策略:
    • 数据库: 在Kubernetes上通过Operator部署开源的PostgreSQL或MySQL集群。
    • 消息队列: 在Kubernetes上部署Kafka或RabbitMQ。
    • 缓存: 在Kubernetes上部署Redis集群。
    • 对象存储 (例外与妥协): 面向事实标准的S3 API进行开发,但将Endpoint、Region等作为可配置项,以便在不同云的对象存储或自建MinIO之间切换。
  • 原理: 将数据层的依赖从“外部的、专有的云服务”转移到了“内部的、标准化的、可移植的服务”。
支柱四:以开源工具构建统一的CI/CD与可观测性层
  • 策略:
    • CI/CD: 使用GitHub Actions或GitLab CI等云中立工具。
    • 可观测性: 部署统一的开源技术栈,如Fluent Bit (日志), Prometheus (指标), OpenTelemetry (追踪),后端可对接自建的ELK/Jaeger或支持多云的第三方SaaS。
  • 原理: 将运维工具链也标准化和开源化,确保开发和运维人员无论在哪朵云上工作,都面对的是同一套熟悉的工具。

成果 (Result)

通过严格执行上述行动,企业可以构建一个真正意义上的多云基础软件平台,实现厂商独立性,将迁移成本从“研发项目”降级为“运维项目”,并获得强大的商业谈判能力与业务韧性。


第二章:云厂商视角——多云趋势下的“双赢”应对策略

对于云服务商而言,面对客户的多云趋势,对抗或者单纯的“价格战”是下策,拥抱并从中寻找新的价值增长点才是上策

情景 (Situation)

作为领先的公有云服务商,我们观察到客户正在积极实施多云战略,这对我们高价值的专有PaaS服务构成了潜在威胁。

任务 (Task)

制定一套解决方案架构策略,既满足客户多云需求,又能深度绑定客户,驱动我们关键产品(特别是高利润的PaaS、数据和AI服务)的营收增长。

行动方案 (Action): “拥抱、抽象、渗透、升华”四步战略

第一步:拥抱与引导 (Embrace & Guide) - 建立信任
  • 策略: 不反对多云,而是成为客户多云战略的顾问。主动提供基于Kubernetes和Terraform的多云最佳实践,并强调我们的托管Kubernetes服务是性能最稳定、最安全的“多云底座”。
第二步:抽象与解耦 (Abstract & Decouple) - 降低客户自建意愿
  • 策略: 推广“API兼容”的托管服务。与其让客户在K8s上自建PostgreSQL,不如推荐我们的Aurora (PostgreSQL兼容版)。客户的应用代码无需修改,但能享受到远超开源版本的性能、可用性和运维便利性。
  • 原理: 将“锁定”从“API层”转移到**“运维价值层”**。客户保留了代码的可移植性,但因我们托管服务的卓越TCO(总拥有成本)而产生健康的依赖。
第三步:渗透与整合 (Permeate & Integrate) - 创造独特价值
  • 策略: 一旦客户的核心数据层留存,便开始渗透我们最高价值的服务。重点推广与数据紧密集成的数据湖、数据分析和AI/ML平台(如Amazon SageMaker、谷歌云Virtex AI、阿里云PAI等)。强调这些服务与底层数据源的无缝集成、端到端自动化能力,是任何自建方案都难以企及的。
第四步:升华与共赢 (Elevate & Win-Win) - 成为商业伙伴
  • 策略: 将对话从技术提升到商业价值。主动为客户提供FinOps成本优化咨询,帮助他们省钱。邀请核心客户参与新产品Beta测试,进行联合市场推广,从供应商转变为战略合作伙伴

成果 (Result)

通过这套组合拳,云服务商成功地将客户关系从“锁定”转变为基于“价值”的健康依赖。虽然可能失去部分IaaS收入,但赢得了利润率更高、客户粘性更强的PaaS和AI服务收入,实现了与客户的长期共赢。


第三章:双赢的交汇点——务实的多云架构路径

理论上,客户和云厂商的策略看似对立,但在实践中存在一个理想的交汇点。一个务实的、双赢的多云架构,通常采用**“核心与上下文分离”**的原则。

  1. 核心业务逻辑 (Differentiated Core):

    • 这部分是企业自身的知识产权和核心竞争力。应遵循第一章的原则,将其容器化,运行在标准的Kubernetes上,确保其完全可移植
  2. 支撑性通用系统 (Undifferentiated Heavy Lifting):

    • 这部分包括数据库、消息队列、AI平台等。自建和维护这些系统的成本和复杂度极高。
    • 这正是第二章策略的用武之地。企业应优先选择云厂商提供的、API兼容的托管服务。例如,使用Amazon Aurora for PostgreSQL而不是自建PostgreSQL集群。

通过这种方式,企业保护了核心资产的可移植性,满足了战略层面的多云要求;同时,又将非核心的、繁重的运维工作外包给了云厂商,享受到了更低的TCO和更高的创新速度。云厂商也因此保住了其高价值服务的收入。这便是多云战略下最理想的“双赢”状态。

结论

多云不是一个零和游戏,而是一场推动整个行业走向更开放、更具价值导向的变革。无论是作为客户还是云服务商,理解对方的核心诉求,并寻找以“API兼容的托管服务”为核心的合作模式,将是在这场变革中取得成功的关键。最终,成功的架构将不再是关于“在哪朵云上”,而是关于“如何更好地利用云”。