点击蓝字关注雨生
雨生没看懂这种文章 为什么会被投诉
看了下没什么问题
再次发一下
![]()
**标题: 多云开发避坑指南:实战经验告诉你如何优雅地拥抱多云 (Multicloud Pitfall Avoidance Guide: Real-World Experience Teaches You How to Elegantly Embrace Multicloud)**
**副标题: 海外架构师亲述,多云部署的正确姿势,避免烧钱、安全漏洞和失败项目 (Overseas Architects Share the Correct Posture for Multicloud Deployment: Avoid Burning Money, Security Vulnerabilities, and Failed Projects)**
_雨生云计算
越来越多的企业意识到,单一云环境已无法满足其全部需求。多云架构,似乎能集各家云厂商之所长,为企业带来无限可能。然而,美好的愿景背后,隐藏着巨大的挑战。
对于出海企业来说,多云战略不仅仅是技术问题,更是战略、架构和运营模式的全面转型。如果开发实践未能跟上基础设施的复杂性,企业可能会陷入成本失控、安全漏洞频发甚至项目失败的泥潭。
我们采访了多位成功(以及偶尔失败)的企业技术领导者和架构师,总结了他们在多云开发中的宝贵经验,希望能为正在或即将踏入多云领域的出海企业提供参考。
**多云战略先行:避免“为了多云而多云”**
Pluralsight 首席云战略师 Drew Firment 强调:“多云不是一个单纯的开发问题,而是一个战略问题。企业需要制定清晰的云运营模式,明确何时、何地以及为何使用特定的云能力。”
缺乏战略框架,会导致成本高企、安全风险增加,最终导致项目失败。正确的做法是从战略层面出发,将多云决策与业务目标对齐,并明确责任归属。
雨生点评参考“《Google SRE工作手册》多云环境下SRE工程的思考(视频+文字版)”
Revenue Ops 创始人兼 CEO Heather Davis Lam 强调跨部门沟通的重要性:
“多云项目涉及开发、运维、安全,甚至法务部门。
问题通常源于沟通不畅,而非代码质量。定期的沟通和坦诚的对话至关重要。”
在决定实施多云战略之前,企业需要明确回答以下问题:
多云对企业有哪些好处?
如何充分利用不同云平台的独特优势?
Firment 提醒道:
“多云的最大悖论在于,
如何在优化云能力的同时,
避免云环境陷入混乱。
首要原则是抽象跨云通用的核心共享服务,同时隔离提供独特客户价值的云特定服务。
例如,跨所有云使用标准身份验证和计算层,同时使用 AWS 优化使用 Amazon S3 和 Athena 查询大型数据集的成本和性能。”
**通用 vs. 特定:避免过度抽象**
多云开发团队需要认真思考何时编写与特定云提供商紧密相关的代码,以及何时编写跨平台代码。
Davis Lam 认为,过度追求代码在不同云平台之间的完全可移植性,可能会导致过度工程化和更多麻烦。她建议,不要为了实现“在任何地方都能工作”的目标,而过度抽象基础设施,导致开发速度减慢和复杂性增加。“如果您或您的团队发现自己正在构建额外的层,仅仅是为了让代码能够在任何地方运行,那么最好暂停一下。”
Payara Services 高级软件工程师 Patrik Dudits 也认为,将架构限制在云功能的“最低公分母”是一种常见的误导性尝试。他建议,应该拥抱每个云的优势。
Thomson Reuters 平台工程赋能副总裁 Matt Dimich 强调,目标应该是保持平台的灵活性,而不是完全的统一性。“每年都有更便宜、更快的计算创新,我们越快利用这些创新,就能为客户提供更多价值。”
**Kubernetes:多云移植性的基石**
如何尽可能地提高核心业务逻辑在所有云平台上的可移植性?几乎所有受访者都提到了容器编排平台 Kubernetes。
Ansys 首席 DevOps 工程师 Radhakrishnan Krishna Kripa 帮助构建了基于 Kubernetes 的平台,该平台跨越 Azure、AWS 和本地环境。他说:“使用 Kubernetes 和 Docker 容器来标准化部署。这有助于我们编写一次代码,并在 AKS、AWS EKS 甚至本地集群中运行,只需进行最小的更改。”
**多云工具箱:专家推荐**
* **统一日志平台 (Datadog, Splunk):** 集中管理日志和警报,快速定位问题。
* **基础设施即代码 (IaC) 工具 (Pulumi, Terraform):** 以代码方式管理基础设施,实现跨云一致性。
* **CI/CD 工具 (GitHub Actions):** 标准化构建和部署流程,降低跨环境操作的负担。
* **适配器层:** 将云特定的 API 或 SDK 封装在内部库中,对外提供统一接口,避免平台锁定。
**拥抱混乱:为失败做好准备**
多云开发环境复杂且混乱,这是不可避免的。企业需要做好充分的准备。
Davis Lam 总结道:“云和服务连接得越多,就越有可能出现问题。API 超时、身份验证令牌过期或奇怪的延迟峰值会变得更加常见。与其将这些视为罕见事件,不如提前做好应对准备。多云开发注定是混乱的,但如果你对此有所预期并做好计划,你就能编写出更好、更强大的代码。假设事情会出错,并以此为基础进行构建。这并不是悲观主义,而是现实主义。”
**(图片说明:** 云计算概念,工程师在办公室使用电脑。 来源:metamorworks/Shutterstock)
**(雨生云计算注:** 本文由 Josh Fruhlinger 撰写,旨在为出海企业提供多云开发的实战指导。更多关于多云战略、容器化和DevOps最佳实践,请关注雨生云计算。)

