挑战
近年来,阿迪达斯团队对其从技术角度所选用的软件都比较满意,但怎么访问所有软件工具成了一个难题。比如说, “只是想要一台开发者虚机,你就必须提交一个申请表,说明用途,给出项目的名称,谁是负责人,致电通知内部成本中心方便他们进行费用结算。” 平台工程高级总监 Daniel Eichten 举例说。“即使一切顺利,最快半小时才能获得机器,最慢则需要三天甚至一周。”
解决方案
为了改善这个流程,“我们从开发者的角度出发”,尝试了各种方式来缩短从项目启动到跑起来并进入 阿迪达斯基础设施所花费的时间, 平台工程高级总监 Fernando Cornago 说。他们找到了容器化、敏捷开发、持续交付以及通过 Kubernetes 和 Prometheus 构成的云原生平台解决方案。
成效
项目启动仅六个月后,阿迪达斯的电商网站就全部运行在了 Kubernetes 上。电商网站的加载时间减少了一半。 发布频率从每 4 到 6 周发布一次变为每天发布 3 到 4 次。 阿迪达斯现在在其云原生平台上运行着 40% 的最关键、最具影响力的系统,拥有 4,000 个 Pod、200 个节点和每月 80,000 次构建。
Daniel Eichten 说:“对于 阿迪达斯的工程师,这就像是一位艺术家双手被绑缚在背后,却要人家画出作品。”
例如,“只是想要一台开发者虚机,你就必须提交一个申请表,说明用途,给出项目的名称,谁是负责人,致电通知内部成本中心方便他们进行费用结算。” Eichten 说。“最终,在经历了一堆审批后,虚机的制备在几分钟内完成,最好的情况是你的虚机在半小时内就能到位。最糟的情况要半周,有时甚至是一周。”
为了改善这个流程,“我们从开发者的角度出发”,尝试了各种方式来缩短从项目启动到跑起来并进入阿迪达斯基础设施所花费的时间, 平台工程高级总监 Fernando Cornago 说。
“我们以前是工程师,”Eichten 补充道。“我们知道传统的工程师需要什么,渴望什么,什么是他们不想处理的。 对我们来说,这很清楚。我们填补了没有人想处理的空白,并尽可能地将以前痛苦难办的事情变得轻松无痛。” 目标是提高速度、可操作性和可观测性。
Cornago 和 Eichten 找到了容器化、敏捷开发、持续交付以及通过 Kubernetes 和 Prometheus 构建的云原生平台解决方案。 “选择 Kubernetes 是显而易见的,”Eichten 说。 “第一天,做决定,简单。第二天,安装、配置,简单。第三天,启动并运行小的负载。 如果出现问题,你不知道这些东西的详细工作原理,你会茫然失措。对于第三天的问题,我们需要一个提供帮助的合作伙伴。”
2017 年初,阿迪达斯选择 Giant Swarm 来咨询、安装、配置和运行其在 AWS 和本地的所有 Kubernetes 集群。 “在运维 Kubernetes 集群方面,我们与 Puma 或 Nike 等竞争对手相比没有竞争优势,” Eichten 说。“我们的竞争优势在于我们教会了内部工程师们如何构建快速、可靠、运行完美的电商店铺。”
Cornago 补充道:“对我来说,我们的 Kubernetes 平台是由工程师为他们自己量身打造的。 这个平台将开发团队从不想做的任务中解脱出来,同时也提供了后台观测大屏,方便开发团队控制运行的进程。”
值得一提的是:在网络购物周,团队必须创建许多自定义指标。在 2017 年 11 月, “因为我们使用了同一个 Prometheus 监控集群,我们真得填满了 Prometheus 数据库,无法将保留期减少到足够的程度,”Cornago 说。 因此,在高峰购物周之前的冻结期,来自平台团队的五名工程师与来自电商团队的五名工程师合作,找到了一个在两天内实现的联合解决方案。
除了为网络购物周做准备,在项目启动后仅六个月,阿迪达斯的所有电商网站都运行在了 Kubernetes 上。 云原生堆栈还取得了其他令人印象深刻的成果。电商网站的加载时间减少了一半。 发布频率从每 4 到 6 周发布一次变为每天发布 3 到 4 次。 阿迪达斯现在在其云原生平台上运行着 40% 最关键、最具影响力的系统,拥有 4,000 个 Pod、200 个节点和每月 80,000 次构建。
而且这个平台的采用迅速在阿迪达斯 300 个工程团队中传播。 “我把我们的云原生平台称为梦想之地,”Eichten 说。“我们构建了这个平台,从未预料到人们会蜂拥而至并爱上它。”
首先,“每个能够接触到代码的人”都会用一整周的时间向 35 人组成的平台工程团队成员学习并完成上岗培训,Cornago 说。 “我们尝试花 50% 的时间与这些团队坐在一起,因为这是理解平台如何运作的唯一方法。 这也是让这些团队感到安全的方式,让他们知道在墙的另一边,有一些人依然在处理这些让他们感到头痛的难题。”
此外,Cornago 和 Eichten 利用作为时尚运动品牌的特点,阿迪达斯将运动和竞争沉淀在其基因中。 “自上而下的行政指令在阿迪达斯不起作用,但游戏化的做法有效,”Cornago 说。“因此,今年我们举办了 DevOps 杯比赛。 每个团队创造了新的技术能力,并假设这些能力如何影响商业价值。 我们在一个有 600 多人参加的大型内部技术峰会上宣布了获胜者。这对团队真得非常有帮助。”
最后如果对其他希望开始云原生之旅的公司提一些建议,那就是: “没有放之四海而皆准的方案,”Cornago 说。“关键是将企业文化基因融入技术转型的每个环节。”