挑战
近年来,阿迪达斯团队对从技术角度看自己的软件选择感到满意——但访问所有工具是一个问题。例如,“仅仅为了获得开发者 VM,你必须发送请求表格,说明目的、项目的名称、谁负责,给内部成本中心打电话以便他们进行充值,”平台工程高级总监 Daniel Eichten 说。“最好的情况是你在半小时内获得你的机器。最糟糕的情况是半周甚至一周。”
解决方案
为了改进流程,“我们从开发人员的角度出发,”并寻找缩短项目启动并运行以及进入阿迪达斯基础设施所需时间的方法,平台工程高级总监 Fernando Cornago 说。他们通过容器化、敏捷开发、持续交付以及包含 Kubernetes 和 Prometheus 的云原生平台找到了解决方案。
影响
项目开始仅仅六个月后,阿迪达斯电子商务网站的 100% 运行在 Kubernetes 上。电子商务网站的加载时间减少了一半。发布频率从每 4-6 周增加到每天 3-4 次。凭借 4000 个 Pod、200 个节点和每月 80000 次构建,阿迪达斯现在在其云原生平台上运行着 40% 的最关键、最具影响力的系统。
对阿迪达斯的工程师来说,平台工程高级总监 Daniel Eichten 说,“这感觉就像一个艺术家被绑着双手,却被要求画画。”
例如,“仅仅为了获得开发者 VM,你必须发送请求表格,说明目的、项目的名称、谁负责,给内部成本中心打电话以便他们进行充值,”Eichten 说。“最终,经过大量的审批,机器的配置在几分钟内完成,然后最好的情况是你在半小时内获得你的机器。最糟糕的情况是半周甚至一周。”
为了改进流程,“我们从开发人员的角度出发,”并寻找缩短项目启动并运行以及进入阿迪达斯基础设施所需时间的方法,平台工程高级总监 Fernando Cornago 说。
“我们以前都是工程师,”Eichten 补充道。“我们知道典型的工程师需要什么,渴望什么,以及他们不想处理什么。对我们来说,这很清楚。我们填补了没有人愿意处理的空白,并且尽可能地使那些通常很痛苦的事情变得轻松。” 目标:提高速度、可操作性和可观察性。
Cornago 和 Eichten 通过容器化、敏捷开发、持续交付以及包含 Kubernetes 和 Prometheus 的云原生平台找到了解决方案。“选择 Kubernetes 很明显,”Eichten 说。“第一天,决定,简单。第二天,安装,配置,简单。第三天,即使是少量工作负载,也要保持运行状态,如果出现问题,你不知道这些东西是如何工作的,你就会迷路。对于第三天出现的问题,我们需要一个合作伙伴来帮助我们。”
在 2017 年初,阿迪达斯选择 Giant Swarm 来咨询、安装、配置和运行其所有在 AWS 和本地运行的 Kubernetes 集群。“在运行和操作 Kubernetes 集群方面,我们并没有比彪马或耐克等竞争对手有优势,”Eichten 说。“我们的竞争优势在于,我们教内部工程师如何构建快速、弹性和完美运行的酷炫电子商务商店。”
Cornago 补充道:“对我来说,我们的 Kubernetes 平台是工程师为工程师打造的。它为开发团队减轻了他们不想做的任务,但同时提供了幕后内容的可视性,因此他们也可以控制它。”
举个例子:对于网络星期一,团队必须创建很多自定义指标。在 2017 年 11 月,“由于我们使用了与监控集群相同的 Prometheus,我们真的填满了 Prometheus 数据库,并且无法缩短保留期限,”Cornago 说。因此,在高峰购物周之前的冻结期,来自平台团队的五名工程师与来自电子商务团队的五名工程师一起研究了一个联合解决方案,该解决方案在两天内实施。
除了为网络星期一做好准备——项目开始仅仅六个月后,阿迪达斯电子商务网站的 100% 运行在 Kubernetes 上——云原生堆栈还取得了其他令人印象深刻的结果。电子商务网站的加载时间减少了一半。发布频率从每 4-6 周增加到每天 3-4 次。凭借 4000 个 Pod、200 个节点和每月 80000 次构建,阿迪达斯现在在其云原生平台上运行着 40% 的最关键、最具影响力的系统。
并且在阿迪达斯 300 人的工程师队伍中,采用速度很快。“我将我们的云原生平台称为梦想之地,”Eichten 说。“我们建造了它,我们从未想过人们会来并且喜欢它。”
一方面,“每个能够编写代码的人”都花了一周时间与 35 人的平台工程团队成员一起进行入职培训和平台学习,Cornago 说。“我们努力将 50% 的时间花在与团队一起工作上,因为这是理解我们的平台如何被使用的唯一方法。这也是团队会感到安全的原因,因为在墙的另一边,也有人正在感受这种痛苦。”
此外,Cornago 和 Eichten 利用了这样一个事实:作为一个时尚运动服装品牌,阿迪达斯将运动和竞争融入其 DNA。“自上而下的命令在阿迪达斯行不通,但游戏化却行之有效,”Cornago 说。“因此,今年我们举办了 DevOps 杯比赛。每个团队都创建了新的技术能力,并对这如何影响商业价值提出了假设。我们在一个有 600 多人参加的内部大型科技峰会上宣布了获胜者。这对团队来说非常有用。”
因此,如果他们对其他希望开始云原生之旅的公司有任何建议,那就是:“没有一个解决方案适合所有公司,”Cornago 说。“将公司的文化应用于你所做的一切。”