挑战
近年来,adidas 团队在技术层面对其软件选择感到满意——但访问所有工具却是个问题。例如,“仅仅是获取一台开发者虚拟机,你就需要提交申请表,填写用途、项目名称、负责人,并致电内部成本中心以便他们进行费用分摊,”平台工程高级总监 Daniel Eichten 说。“最好的情况是你半小时内就能拿到机器。最坏的情况是半周,有时甚至一周。”
解决方案
平台工程高级总监 Fernando Cornago 表示,为了改进这一流程,“我们从开发者的角度出发”,并寻找缩短项目启动运行并进入 adidas 基础设施的时间的方法。他们通过容器化、敏捷开发、持续交付以及包含 Kubernetes 和 Prometheus 的云原生平台找到了解决方案。
影响
项目启动仅六个月后,100% 的 adidas 电商网站都在 Kubernetes 上运行。电商网站的加载时间减少了一半。发布周期从每 4-6 周一次变为每天 3-4 次。凭借每月 4,000 个 Pod、200 个节点和 80,000 次构建,adidas 现在将其 40% 最关键、最具影响力的系统运行在其云原生平台上。
平台工程高级总监 Daniel Eichten 说,对 adidas 的工程师而言,“感觉就像是一位艺术家,双手被绑在身后,却还要作画。”
例如,“仅仅是获取一台开发者虚拟机,你就需要提交申请表,填写用途、项目名称、负责人,并致电内部成本中心以便他们进行费用分摊,” Eichten 说。“最终,经过大量批准后,机器的供应在几分钟内就完成了,然后最好的情况是你半小时内就能拿到机器。最坏的情况是半周,有时甚至一周。”
平台工程高级总监 Fernando Cornago 表示,为了改进这一流程,“我们从开发者的角度出发”,并寻找缩短项目启动运行并进入 adidas 基础设施的时间的方法。
“我们之前就是工程师,” Eichten 补充道。“我们知道典型的工程师需要什么,渴望什么,以及他或她不想负责什么。对我们来说,这非常清楚。我们填补了没人愿意负责的空白,并使那些通常令人痛苦的事情尽可能变得不那么痛苦。”目标是:提高速度、可操作性和可观测性。
Cornago 和 Eichten 通过容器化、敏捷开发、持续交付以及包含 Kubernetes 和 Prometheus 的云原生平台找到了解决方案。“选择 Kubernetes 非常明确,” Eichten 说。“零日,决定,很容易。第一天,安装、配置,很容易。第二天,即使是小型工作负载,要保持它正常运行,如果出现问题,如果你不知道这些事情的详细工作原理,你就会迷失方向。对于第二天遇到的问题,我们需要一个能帮助我们的合作伙伴。”
2017 年初,adidas 选择 Giant Swarm 来咨询、安装、配置并在 AWS 和本地部署环境中运行其所有的 Kubernetes 集群。“在运行和操作 Kubernetes 集群方面,我们与 Puma 或 Nike 等竞争对手没有任何竞争优势,” Eichten 说。“我们的竞争优势在于,我们教导内部工程师如何构建快速、弹性且完美运行的酷炫电商网站。”
Cornago 补充道:“对我来说,我们的 Kubernetes 平台是由工程师为工程师打造的。它将开发团队从他们不想做的任务中解放出来,同时又让他们能够看到幕后发生的事情,从而可以进行控制。”
举个例子:为了迎接网购星期(Cyber Week),团队必须创建大量自定义指标。Cornago 说,2017 年 11 月,“因为我们使用了与监控集群相同的 Prometheus,我们的 Prometheus 数据库被真正填满了,我们无法(足够)缩短保留期。”因此,在购物高峰周前的冻结期,五名来自平台团队的工程师与五名来自电商团队的工程师合作,共同找出并两天内实现了一个联邦解决方案。
除了为网购星期做好准备——当时 100% 的 adidas 电商网站都在 Kubernetes 上运行,距离项目开始仅六个月——这个云原生技术栈还带来了其他令人瞩目的成果。电商网站的加载时间减少了一半。发布周期从每 4-6 周一次变为每天 3-4 次。凭借每月 4,000 个 Pod、200 个节点和 80,000 次构建,adidas 现在将其 40% 最关键、最具影响力的系统运行在其云原生平台上。
这种采用在 adidas 拥有 300 名工程师的团队中迅速普及开来。“我将我们的云原生平台称为梦想之地,” Eichten 说。“我们构建了它,从未预料到人们会来并如此喜爱它。”
Cornago 表示,一方面,“每个能接触一行代码的人”都花了整整一周时间与 35 人的平台工程团队成员一起进行入职培训和学习平台。他说:“我们尝试花 50% 的时间与团队坐在一起,因为这是唯一了解我们的平台如何被使用的方式。这也让团队感到安全,知道墙的另一边有人,同样能感受到他们的痛苦。”
此外,Cornago 和 Eichten 利用了 adidas 作为一个时尚运动服品牌、其 DNA 中蕴含体育和竞争的事实。Cornago 说:“自上而下的强制命令在 adidas 行不通,但游戏化行得通。”“所以今年我们举办了 DevOps Cup 大赛。每个团队都创建了新的技术能力,并对这如何影响商业价值提出了假设。我们在一个有 600 多人参加的大型内部技术峰会上宣布了获奖者。这对团队来说非常非常有益。”
因此,如果他们要给其他希望开启云原生之旅的公司提建议,那会是:“对所有公司来说,没有一刀切的方案,” Cornago 说。“将贵公司的文化应用到您所做的每一件事中。”