挑战
世界上最大的在线杂货零售商,Ocado开发了Ocado智能平台来管理自己的业务,从网站到仓库,现在技术等其他零售商许可克罗格。建立第一个仓库平台,Ocado从虚拟机和转移木偶基础设施码头工人容器,使用CoreOS的舰队调度器上提供的所有服务OpenStack基于私有云在裸露的金属。随着智能平台的成长和说:“舰队临终,平台工程师迈克科比,“我们开始寻找一个更完整的平台,所有这些不同的基础设施服务被聚集在一个统一的API”。
解决方案
团队决定从舰队迁移到KubernetesOcado的私有云。目前使用的Kubernetes堆栈kubeadm为引导,CNI经过与编织网对于网络,普罗米修斯运营商监控,Fluentd日志记录,OpenTracing分布式跟踪。Kubernetes第一应用,关键业务服务的仓库,进入生产在2017年的夏天,大规模移民一直持续到2018年。数以百计的Ocado工程师现在在智能平台上部署Kubernetes。
影响
Kubernetes”,从想法到实现部署速度是惊人的,”科比说。“我看过特性从发展到现在一周内生产。在旧的世界,一个新的应用程序部署很容易接管一个月。”And because there are no longer restrictive deployment windows in the warehouses, the rate of deployments has gone from as few as two per week to dozens per week. Ocado has also achieved cost savings because Kubernetes gives the team the ability to have more fine-grained resource allocation. Says DevOps Team Leader Kevin McCormack: "We have more confidence in the resource allocation/separation features of Kubernetes, so we have been able to migrate from around 10 fleet clusters to one Kubernetes cluster." The team also uses普罗米修斯和Grafana可视化资源分配,使数据提供给开发人员。“普罗米修斯所提供的增加可见性意味着开发人员更了解他们使用和如何使用影响他人,特别是我们现在有一个共享集群,“麦考马克说。“我估计,我们使用低约15 - 25%的硬件资源在Kubernetes主机相同的应用在我们的测试环境中。”
公司开始发展其Ocado智能平台来管理自己的业务,从网站到仓库,技术和其他许可,现在世界各地的连锁超市,如克罗格。建立第一个仓库在这个平台上,Ocado从虚拟机和傀儡的基础设施转移到码头工人容器,使用CoreOS舰队调度器提供的所有服务OpenStack-based私有云在裸露的金属。随着智能平台的成长,和说:“舰队临终,平台工程师迈克科比,“我们开始寻找一个更完整的平台,所有这些不同的基础设施服务被聚集在一个统一的API”。
科比已经用Kubernetes代码的生活孩子的教育项目,Ocado的慈善机构。“我们真的很喜欢它,所以我们开始认真看我们的生产工作负载,”科比说。的团队管理舰队已经研究以及登陆Kubernetes编制解决方案。“我们正在寻找一个平台和广泛采用,这是动量在哪里,”DevOps团队负责人凯文·麦考马克说。两条路径聚集,“我们甚至没有经过任何概念验证阶段。的代码工作为人生目标,”科比说。
在2016年的夏天,团队开始从舰队迁移到KubernetesOcado的私有云。目前使用的Kubernetes堆栈kubeadm为引导,CNI经过与编织网对于网络,普罗米修斯运营商监控,Fluentd日志记录,OpenTracing分布式跟踪。
Kubernetes第一应用,关键业务服务的仓库,一年后进入生产。一旦应用程序进行的很顺利,大规模移民持续到2018年。数以百计的Ocado工程师现在在智能平台上部署Kubernetes,平台是住在Ocado的仓库,管理成千上万的订单一个星期。满负荷,Ocado在Erith最新的仓库,伦敦东南部,每周将提供超过200000个订单,成为世界上最大的在线购物设施。
现在大约有150 microservices Kubernetes上运行,其中许多的多个实例。“我们不只是这些microservices部署。我们都部署一个仓库,然后他们都被部署在接下来的仓库,和一次又一次,”科比说。
为许多人转向Kubernetes大开眼界Ocado技术。“在早期的平台为我们的测试基础设施、技术架构师问网络性能是什么样子编织网打开加密后,”科比回忆说。“所以我们找到了一个码头工人容器iPerf,写了一个守护进程,部署它。几分钟后,我们在这个集群部署整个事情。他是非常被吹走了。”
事实上,影响是深远的。“集装箱化之前,我们有非常严格的部署窗户在我们的仓库中,”科比说。“移动microservices,我们已经能够部署更频繁。我们已经能够走向持续交付的地区。在我们的老仓库,新应用程序部署涉及与不同的团队为不同级别的堆栈:从VM配置,存储,负载平衡器,等等。Kubernetes的统一的API意味着这都是在一个地方,这是一个流程批准和推出。我看过特性从发展到现在一周内生产。在旧的世界,一个新的应用程序部署很容易接管一个月。”
部署的速度已经从每周两到几十个/周。“Kubernetes,我们的一些开发团队已经能够将他们的应用程序部署到生产我们没有注意到在新的平台上,”科比说,“这意味着它们更快做他们需要做的事情和我们有更少的工作。”
Ocado也实现成本节约,因为Kubernetes使团队能够有更多的细粒度的资源分配。“让我们减少很多部署从每个核VM部署有分数的核心,”科比说。麦科马克补充道:“我们更有信心在资源分配/ Kubernetes的分离特性,因此我们可以从大约10舰队集群迁移到一个Kubernetes集群。这意味着我们使用我们的硬件更好因为如果我们必须总是有两个节点中可用产能过剩的情况下节点失败那么我们只需要两个额外的而不是20。”
该小组还使用普罗米修斯和Grafana可视化资源分配,使数据提供给开发人员。“普罗米修斯所提供的增加可见性意味着开发人员更了解他们使用和如何使用影响他人,特别是我们现在有一个共享集群,“麦考马克说。“我估计,我们使用约15 - 25%更少的硬件资源在Kubernetes主机相同的应用在我们的测试环境中。”
云本地的更广泛的福利之一,科比表示统一的API。“我们有一个方法做部署覆盖广泛,我们需要做的事情,我们可以扩展API,”他说。除了使用普罗米修斯运营商,Ocado团队已经开始写自己的运营商,其中一些开源。另外,“CNCF为我们提供了支持这些不同的技术。我们已经能够采用这些非常简单的方式。我们喜欢CNCF供应商不可知论者。我们没有被要求承诺这一做事的方式。观点的巨大多样性CNCF导致更好的技术。”
Ocado的技术,其智能平台的形式,很快就会被使用周围他的整个世界。和云在全球扩张中扮演着关键角色。“我不会想试一试没有Kubernetes,”科比说。“Kubernetes使它更好,尤其是有一致的方式部署的所有应用程序,然后采取同样的事情,能够复制它。这是很有价值的。”