云原生转型案例剖析:从银行到运动巨头的实践之路
1. Starling银行的云原生实践
1.1 云化一切
Starling银行是一家彻头彻尾的云银行,所有的处理、余额、账户、服务和API等都在云端。起初仅依赖AWS,随着发展逐渐实现云中立,以应对监管和商业挑战。通过采用可移植的架构和开源技术,保持对供应商的中立,并制定了AWS退出计划。只有在必须使用物理硬件(如硬件安全模块)时,才会使用传统数据中心的空间。
除核心服务外,大量工具也采用云服务,使用了超过100个SaaS服务,尽可能将非核心业务功能外包。不过,这也给灾难恢复规划带来了复杂性,因为如果失去AWS,可能会失去一半用于交付软件的工具。
1.2 避免重复造轮子
对于非核心业务需求,应优先购买解决方案,而非定制开发完美工具。云服务的一个重要优势是实验能力,在AWS中可以轻松进行实验,若效果不佳可随时停止,且无需成本,这是本地基础设施无法做到的。
1.3 降低实验成本
当有人提出想法时,围绕该想法进行实验的成本(包括财务和组织成本)应尽可能低。
1.4 探索性实验
面对复杂问题且无明显解决方案时,应进行一系列小实验,评估可能的替代方案并通过实践学习。
1.5 弹性架构
Starling银行采用自包含系统(SCS)架构,这与微服务有很多相似之处,但更强调独立性而非规模。SCS将应用拆分为独立的功能模块,每个模块都是一个独立的系统,通过云独立交付。这种架构使每个服务具有高度自主性、可独立部署,拥有自己的数据库,不共享任何基础设施。
此外,银行还采用了不可变基础设施,确保服务器在任何时候被关闭都不会影响系统运行,并且可以随时重建。同时,通过“混沌恶魔”每天在生产环境中关闭几台服务器,以测试系统的弹性。还会使用合成负载进行测试,确保服务能够应对流量高峰。
银行最终形成了DITTO架构,通过自包含系统实现微服务,并规范了服务之间的交互方式,确保系统具有弹性、简单性和可移植性。这种架构加上持续交付和DevOps,使银行能够快速交付众多英国银行业的首创服务。
2. Adidas的云原生转型之旅
2.1 目标与挑战
Adidas作为欧洲最大、全球第二大的运动服装制造商,为了在竞争激烈的市场中保持并扩大份额,决定采用云原生技术提升竞争力。公司需要一个能够提高产品开发速度和内部IT解决方案交付速度的平台。
Adidas将IT环境比喻为丛林,传统核心IT系统如“大象”,开发周期长、笨重但可靠;微服务如“蚂蚁”,数量众多、灵活高效;而SAP系统和Salesforce则如“鳄鱼”和“美洲豹”,成本高且难以控制。公司的目标是打造一个既像大象一样可靠,又像蚂蚁一样快速高效的云原生平台。
2.2 Kubernetes的探索
在寻找合适的平台时,Adidas确定了一系列需求,包括本地运行、开源、无供应商锁定、可操作、可观察、弹性、弹性和敏捷等。最终发现云原生技术能够满足这些需求,尤其是Kubernetes的API结构,被视为走出IT丛林的地图。
由于Kubernetes的复杂性,Adidas选择了Giant Swarm作为合作伙伴,他们提供了一致的Kubernetes工具集和运营支持。Adidas从Giant Swarm提供的Kubernetes playground集群开始学习和探索,通过实际操作发现了现有工具在云原生环境中的不适用性,从而意识到需要新的工具集。
当时,Adidas通过与Cloud Native Computing Foundation合作,在工具选择上相对容易,选择了Kubernetes和Prometheus等工具。但随着时间推移,CNCF生态系统变得复杂,工具选择变得困难。
2.3 上线实践
在决定将什么应用上线时,Adidas选择了具有重大意义的电子商务商店。为了控制风险,首先迁移了芬兰的电子商务平台。在测试过程中,遇到了各种问题,如集群性能测试工具设置错误、应用与入口控制器资源竞争、CDN缓存导致无流量等。
这些问题促使Adidas采用了一些实践方法,如逐步提高风险、探索性实验、无责调查等。同时,使用产品金字塔来指导电子商务应用的开发,发现了金字塔中的一些差距,如缺乏适当的事后分析、容量规划和可观察性等。
Adidas还意识到云原生环境中决策需要不断调整,早期关于云与本地一致性的错误假设导致了时间和人力的浪费。因此,公司强调动态战略和退出策略的重要性,避免供应商锁定。
以下是Adidas IT环境中不同“动物”代表的系统特点对比表格:
| 动物代表 | 对应系统 | 优点 | 缺点 |
| — | — | — | — |
| 大象 | 传统核心IT系统(企业Java应用) | 能完成大量工作,可处理大型任务,非常健壮 | 开发周期长,笨重,难以学习新功能 |
| 蚂蚁 | 微服务 | 数量多,能高效完成工作,灵活 | 单个服务智能低,需要系统协调 |
| 鳄鱼 | SAP系统 | - | 成本高,难以控制 |
| 美洲豹 | Salesforce | - | 成本高,难以控制 |
mermaid流程图展示Adidas云原生转型的主要步骤:
graph LR
A[确定目标] --> B[寻找合适平台]
B --> C[选择Kubernetes]
C --> D[与Giant Swarm合作]
D --> E[Kubernetes playground学习]
E --> F[选择工具集]
F --> G[决定上线应用(电子商务商店)]
G --> H[迁移测试]
H --> I[解决问题并改进]
I --> J[持续优化与调整]
3. 案例对比与启示
3.1 相同点分析
- 云原生理念 :Starling银行和Adidas都坚定地拥抱云原生技术。Starling银行将所有业务处理都放在云端,实现了“云化一切”;Adidas也选择云原生技术来提升竞争力,以满足其对速度和弹性的需求。
- 实验精神 :两家公司都强调通过实验来学习和改进。Starling银行通过降低实验成本、进行探索性实验,不断优化架构;Adidas在Kubernetes playground中进行实践学习,在电子商务平台迁移测试中遭遇问题并从中吸取教训。
- 架构弹性 :都注重系统的弹性架构。Starling银行采用SCS和DITTO架构,确保系统在面对各种情况时能保持稳定运行;Adidas通过Kubernetes构建云原生平台,追求系统的可靠性和高效性。
以下是两家公司在上述相同点方面的具体对比表格:
| 相同点 | Starling银行 | Adidas |
| — | — | — |
| 云原生理念 | 所有业务处理在云端,逐渐实现云中立 | 选择云原生技术提升竞争力 |
| 实验精神 | 降低实验成本,探索性实验 | 在Kubernetes playground学习,迁移测试中学习 |
| 架构弹性 | SCS和DITTO架构 | Kubernetes构建云原生平台 |
3.2 不同点分析
- 业务领域 :Starling银行是金融行业,其业务对安全性、合规性要求极高;Adidas是运动服装制造和零售行业,更注重产品开发速度和客户体验。
- 架构侧重点 :Starling银行的SCS架构强调服务的独立性和自主性,服务数量相对较少但规模较大;Adidas采用Kubernetes构建平台,更侧重于利用其生态系统中的各种工具来实现系统的可操作性和可观察性。
- 实验场景 :Starling银行主要通过“混沌恶魔”和合成负载测试系统弹性;Adidas则在电子商务平台迁移过程中进行各种测试,遇到了如缓存、资源竞争等不同类型的问题。
以下是两家公司不同点的详细对比表格:
| 不同点 | Starling银行 | Adidas |
| — | — | — |
| 业务领域 | 金融行业,对安全合规要求高 | 运动服装制造和零售,注重产品开发速度和客户体验 |
| 架构侧重点 | SCS架构,强调服务独立性,服务数量少规模大 | Kubernetes平台,利用生态系统工具实现可操作性和可观察性 |
| 实验场景 | “混沌恶魔”和合成负载测试系统弹性 | 电子商务平台迁移测试,遇到缓存、资源竞争等问题 |
4. 云原生转型的关键要点总结
4.1 技术层面
- 选择合适的架构 :根据业务需求和特点选择合适的架构,如Starling银行的SCS和DITTO架构,Adidas的Kubernetes平台。架构应具备弹性、可扩展性和独立性,以应对不断变化的业务环境。
- 重视实验与学习 :通过低成本的实验来验证想法,从失败中学习。无论是Starling银行的探索性实验,还是Adidas在迁移测试中的经验教训,都表明实验是优化系统的重要途径。
- 确保系统可观察性 :云原生分布式系统需要持续监控和观察,及时发现潜在问题。如Adidas强调的可观察性是云原生平台的重要基础。
4.2 组织层面
- 培养学习型组织 :建立一个能够快速学习和适应新技术的组织文化,鼓励员工勇于尝试和创新。Starling银行和Adidas都在实践中不断学习和改进,体现了学习型组织的重要性。
- 制定动态战略 :由于技术和市场环境不断变化,企业需要制定动态的战略,及时调整决策。Adidas意识到云原生环境中决策需要不断修订,这是保持竞争力的关键。
- 避免供应商锁定 :在选择云服务供应商时,要考虑退出策略,保持一定的灵活性。Starling银行通过采用开源技术和云中立策略,降低了对单一供应商的依赖。
5. 云原生转型的未来展望
随着技术的不断发展,云原生技术将在更多行业得到广泛应用。未来,云原生平台将更加智能化、自动化,能够更好地应对复杂的业务场景。企业在云原生转型过程中,将更加注重数据安全和隐私保护,同时加强与合作伙伴的生态协作。
对于金融行业,如Starling银行,可能会进一步探索区块链、人工智能等技术在云原生架构中的应用,提升金融服务的安全性和效率。对于零售行业,如Adidas,可能会通过云原生技术实现供应链的数字化转型,提高库存管理和物流配送的效率。
mermaid流程图展示云原生转型未来发展趋势:
graph LR
A[云原生技术发展] --> B[智能化自动化平台]
A --> C[多行业广泛应用]
B --> D[更好应对复杂业务场景]
C --> E[金融行业应用拓展]
C --> F[零售行业供应链转型]
E --> G[区块链人工智能融合]
F --> H[库存物流效率提升]
总之,云原生转型是企业提升竞争力、适应未来发展的重要途径。通过借鉴Starling银行和Adidas的成功经验,企业可以更好地规划和实施云原生转型战略,实现业务的快速发展和创新。
超级会员免费看
26

被折叠的 条评论
为什么被折叠?



