沃尔玛如何使用OneOps、Jenkins、Nexus和Kubernetes管理200+配送中心

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: 本文讲的是沃尔玛如何使用OneOps、Jenkins、Nexus和Kubernetes管理200+配送中心【编者的话】本文介绍了沃尔玛公司针对全球200+配送中心云化升级的具体情况,包括使用的方案、如何处理原来的虚拟机资源以及改造后的成效。
本文讲的是沃尔玛如何使用OneOps、Jenkins、Nexus和Kubernetes管理200+配送中心【编者的话】本文介绍了沃尔玛公司针对全球200+配送中心云化升级的具体情况,包括使用的方案、如何处理原来的虚拟机资源以及改造后的成效。

沃尔玛物流的关键竞争优势之一是过去十年间沃尔玛一直努力保持配送中心高效和自主运行。自主运行涉及到硬件和软件基础设施,它们运行在全球两百多个配送中心中。每一个配送中心以及包含的内容被视为一个微型数据中心。

管理如此多的配送中心是一个复杂的物流问题,从软件更新到发布新软件和整套解决方案,每一步都提出全新的挑战。为了迎接这些挑战,沃尔玛科技正在努力将云的灵活性应用在配送中心。这项倡议的顶层目标包括:从底层基础设施中抽象出应用程序、快速部署新的企业解决方案和根据应用的工作负载情况提供无缝按需扩展的能力。每一个企业应用都应该实现功能自主,比如说配送中心。

但是将一个类似于云的环境部署在不同网络的内部物流系统中并非易事。为了实现这些,沃尔玛科技整合了一些开源组件,它们每一个都令人印象深刻:OneOps、Kubernetes、Jenkins和Nexus。

OneOps @沃尔玛实验室 领导的开源项目,它在云不可知[译者注:云不可知,原词“cloud-agnostic”,只部署前不明确使用哪个云服务商]的环境中,提供一致的基础设施配置和交付机制。虽然沃尔玛科技已经使用OneOps管理其多个数据中心云环境,每天帮助部署超过1000次,但是配送中心还没有使用它。该计划目的在于改变这现状,将每个数据中心当作独立的云环境,使用OneOps配置底层的虚拟机和Kubernetes集群所需要的其它关键技术组件。(如下图)
01.png

上图中,通过Fog适配器完成OneOps和WMware vCenter之间的集成。这项关键集成,允许现有物流中心继续使用已投资的VMware资源,对DC基础设施的改动最小。一旦这项集成支持虚拟机,OneOps会接管新配置好的虚拟机,将Kubernetes生态系统运行在上面。这一便捷的方法意味着,无论应用程序是在云中还是内部,OneOps能够促进企业间一致的基础设施管理体验。

在决定使用 Kubernetes 之前,沃尔玛已成功在其配送中心应用开源软件(Nagios、Apache-httpd)。虽然这些开源软件相对有效地满足当前应用程序的需求。但是这些不同的产品需要定制配置和安装脚本来提供一个连贯的应用部署平台。随着应用程序向微服务风格架构转变,管理不同组件的开销增加,这使得架构转换更加困难。

Kubernetes 已经证明它不仅可以满足之前开源软件提供的需求,而且它更高效、简单、容易管理。凭借谷歌多年 云计算经验 ,Kubernetes还提供了强大的Docker容器编排特性,帮助实现微服务架构。包括:

Kubernetes确保应用总是运行、充分利用本地资源。相对很少的开销就可以做到这一点:三台小型虚拟机,做冗余主节点即可。完整配置的集群提供应用程序运行所需要的一切。
02.png

Master节点确保集群平稳运行,跟踪每一个组件的状态,处理部署更新的API请求;worker节点依然忙着执行应用程序工作。NFS服务器满足基于文件系统的本地共享功能。负载均衡节点,用于拦截、引导外部非Kubernetes流量到集群内部。

一旦Kubernetes集群被OneOps配置好,每个集群通过钩子机制集成到基于Jenkins的 持续交付工作流 。这些工作确保应用程序被及时有效地交付到每一个配送中心。
03.png

把每个应用程序作为自己独立的微服务组件,Jenkins不仅是一个快速高效的构建软件工具,它还是沃尔玛持续交付工作流的基础平台。

单独的Jenkins不足以作为部署工具。任何基于Docker的方案都需要实体镜像仓库——Docker二进制的单一“真实来源”。我们已经研究了Nexus对Java、dotnet、linux RPMs和最近基于NPM架构的产品。沃尔玛科技显而易见的方案是扩展Nexus的功能,让它支持Docker镜像仓库。此外,考虑到配送中心的自主属性,每个数据中心必须要有本地镜像仓库,这样既可以确保数据中心独立工作,也可以减轻外部网络流量。我们依然使用Nexus,但是它构建成优化的Docker镜像,部署到每个数据中心的Kubernetes集群中。作为代理和缓存服务支持企业范围的镜像存储。
04.png

如上图所见,Jenkins工作流中,以新版本Docker镜像的方式直接更新应用到企业的Nexus中。每个数据中心的Kubernetes集群从中心镜像仓库拉取、缓存最新的更新版本到本地文件系统。由此便形成了由Kubernetes、Nexus、Jenkins组成的完整的镜像管理基础设施。

通过结合这些重要的开源软件产品,整合成完整的解决方案。沃尔玛科技能够提供现代物流系统所需的灵活性和隔离水平。开发团队也被授权根据物流伙伴的需求,选择合适的技术开发解决方案。沃尔玛物流的终端用户和管理人员都很开心,因为他们既可以使用物流中心现有的资源,提高了交付速度、系统运行时间和资源使用率。最后,沃尔玛的客户也从中受益,这个系统确保顾客常用的物品库存充足,价格低廉。

原文连接:Walmart Will Manage 200-Plus Distribution Centers With OneOps, Jenkins, Nexus and Kubernetes(翻译:adolphlwq)

=========================================
译者介绍

adolphlwq,博客地址:QuanTalk

原文发布时间为:2016-11-13

本文作者:adolphlwq

本文来自云栖社区合作伙伴Dockerone.io,了解相关信息可以关注Dockerone.io。

原文标题:沃尔玛如何使用OneOps、Jenkins、Nexus和Kubernetes管理200+配送中心

相关实践学习
容器服务Serverless版ACK Serverless 快速入门:在线魔方应用部署和监控
通过本实验,您将了解到容器服务Serverless版ACK Serverless 的基本产品能力,即可以实现快速部署一个在线魔方应用,并借助阿里云容器服务成熟的产品生态,实现在线应用的企业级监控,提升应用稳定性。
云原生实践公开课
课程大纲 开篇:如何学习并实践云原生技术 基础篇: 5 步上手 Kubernetes 进阶篇:生产环境下的 K8s 实践 相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
22天前
|
Kubernetes 监控 数据安全/隐私保护
K8s好看的管理页面Rancher管理K8S
K8s好看的管理页面Rancher管理K8S
36 4
|
2月前
|
存储 Kubernetes 监控
Kubecost | Kubernetes 开支监控和管理 🤑🤑🤑
Kubecost | Kubernetes 开支监控和管理 🤑🤑🤑
|
6月前
|
jenkins 持续交付 数据安全/隐私保护
企业实战(23)基于Docker平台的Jenkins凭据管理与应用(4)
企业实战(23)基于Docker平台的Jenkins凭据管理与应用(4)
|
11天前
|
JSON Kubernetes Go
无缝集成:在IntelliJ IDEA中利用Kubernetes插件轻松管理容器化应用
无缝集成:在IntelliJ IDEA中利用Kubernetes插件轻松管理容器化应用
21 0
无缝集成:在IntelliJ IDEA中利用Kubernetes插件轻松管理容器化应用
|
1月前
|
Kubernetes Cloud Native Devops
云原生技术落地实现之二KubeSphere DevOps 系统在 Kubernetes 集群上实现springboot项目的自动部署和管理 CI/CD (2/2)
云原生技术落地实现之二KubeSphere DevOps 系统在 Kubernetes 集群上实现springboot项目的自动部署和管理 CI/CD (2/2)
50 1
|
6月前
|
Prometheus Kubernetes Cloud Native
《Kubernetes 入门:构建、部署和管理你的第一个 K8s 集群》
《Kubernetes 入门:构建、部署和管理你的第一个 K8s 集群》
391 0
|
2月前
|
Kubernetes Unix Docker
k8s管理docker
k8s管理docker
|
3月前
|
存储 Kubernetes API
Kubernetes:现代应用部署与管理的新篇章
Kubernetes:现代应用部署与管理的新篇章
122 0
|
3月前
|
Kubernetes 调度 Docker
容器化管理k8s部署踩坑记录
容器化管理k8s部署踩坑记录
|
3月前
|
Kubernetes 监控 调度
百度搜索:蓝易云【K8S中的Node管理是怎么回事?】
总体来说,Node管理是Kubernetes集群中的重要部分,确保集群中的节点状态可靠、资源高效利用和容器应用平稳运行。通过Master节点对Node进行管理,Kubernetes实现了高度自动化的容器编排和调度,为云原生应用提供了强大的管理能力。
31 1