【案例学习】两年打造150,000个容器,看PAYPAL的Docker实践之路

背景介绍

PayPal(贝宝)是美国eBay公司的全资子公司。1998年12月由Peter Thiel及Max Levchin建立,总部位于美国加利福尼亚州圣荷西市。PayPal致力于使金融服务大众化,让人们与企业能够参与到全球经济的繁荣发展中。PayPal开放式的数字支付平台让2.18亿用户相信他们能够以一种全新且强大的方式进行交易。为了实现这一目标,PayPal建立了全球性服务网络,确保用户可以随时、随地使用PayPal。如果PayPal的服务器出现故障,那么这种影响会波及到许多只依靠PayPal进行支付解决方案的小型企业客户。

案例简介

PayPal借助于Docker 企业版来帮助他们提高运营效率(构建、测试、部署周期的速度提高50%)。与此同时,他们通过Docker的动态部署能力和基础设施的独立性提高了其应用程序的可用性。为了提高安全性,PayPal利用Docker的自动化和细粒度的控制来把控资源的访问情况。除了运营方面的好处之外,PayPal还利用Docker进行创新,并尝试新的工具和框架,由于之前PayPal应用程序的复杂性导致这些工具和框架的创新难以引入。

PayPal的容器打开方式

虽然PayPal可能不是一家“老”公司,但他们在17年的时间里,建立了一个全球性的支付平台,其中包括数百个甚至数千个应用程序和服务。由于缺乏标准化导致构建、测试、部署和运行这些应用程序需要用到不同的工具和流程,对于开发团队来说,他们被锁定在一套有限的工具和框架中很难添加全新的东西,因此他们便将压力强加给测试和运营团队,使他们能够找到部署和运行每一个新堆栈的方法。测试和运营团队将这些堆栈部署到多个体系架构和多个云的应用程序,它们每一个都有不同的设备和程序集,这无疑导致了部署和维护的周转时间变慢。

PayPal最初使用Docker只是为了创建一种单一的、一致的应用程序打包格式,但随着对Docker容器格式和操作的深入理解,PayPal为开发人员学习和使用容器打开了全新的大门。由于Docker提供了运输和运行应用程序的标准方法,开发人员可以自由地尝试新的编程方法和框架,而运营和支持团队则不必担心这些复杂性。随着开发人员加入Docker供给链,PayPal认识到其应用程序的构建、测试、部署的周期提高了50%以上。使用Docker,每个开发人员、测试人员、运营人员和自动化工具都能够使用相同的配置运行相同的应用程序。对于系统管理员来说,还有额外的好处。过去升级操作系统需要一年的时间才能完成,现在只需简单的为容器镜像更新Dockerfile文件就可以了。由于这些好消息在PayPal内部传播,原本不属于该试点项目的其他团队也开始尝试采用Docker作为自己的用例,而PayPal的Docker试点团队也帮助他们顺利的开展了工作。

下一步计划

从第一阶段开始,在不到两年的时间里,PayPal已经把超过700个应用程序移植到Docker上,运行在15万个容器中。在此过程中,PayPal在构建、测试和部署Docker化应用程序方面的生产力提高了50%。过去升级操作系统需要花费一年的时间,而现在只需在开发、测试和生产过程中通过变更Dockerfile就可以完成。开发人员可以自由探索新兴技术,而运营人员和管理人员也可以使用同一套操作过程来应对全部的应用程序。

在最后阶段,PayPal已经开始在所有云平台上推出一个完整的容器即服务(CaaS)平台。在这个阶段,他们关注提高效率。到目前为止,迁移到新的Docker CaaS平台的应用程序已经减少了资源消耗,提高了安全性和可用性,并使PayPal能够为所有环境提供一个单一平台来运行、监控和操作。

PayPal实施Docker的过程是其他组织效仿的伟大蓝图。着眼于采取可管理的步骤,建立一个可以咨询和协助其他团队的内部专家团队,制定明确的目标和衡量成果是实现大幅度改善运营和发展转型的关键。

时间: 2024-09-24 06:39:37

【案例学习】两年打造150,000个容器,看PAYPAL的Docker实践之路的相关文章

《C语言程序设计》一1.4 案例学习——计算三角形的面积

1.4 案例学习--计算三角形的面积 本节应用结构化程序设计方法根据如下需求进行分析和设计: 根据公式area=计算三角形的面积,其中a.b.c为三角形的三边,s=(a+b+c)/2为三角形半周长.编写程序,用以上信息计算边长为3.4.5的三角形面积. 1.问题分析 这一步主要是确认我们对需求有一个完整的理解. 1)确定预期的输出.为了确定预期的输出,应该首先在需求中查找计算.打印等关键词,在上面的需求中,关键的一句话为"计算边长为3.4.5的三角形面积",这明确了输出项为三角形的面积

《大数据导论》一1.4 案例学习背景

  本节书摘来自华章出版社<大数据导论>一书中的第1章,第1.4节,作者托马斯·埃尔(Thomas Erl),瓦吉德·哈塔克(Wajid Khattak),保罗·布勒(Paul Buhler),更多章节内容可以访问"华章计算机"公众号查看. 1.4 案例学习背景 ETI(Ensure to Insure)是一家领先的保险公司,为全球超过2500万客户提供健康.建筑.海事.航空等保险计划.该公司拥有超过5000名员工,年利润超过3.5亿美元. 1.4.1 历史背景 ETI早在

《大数据导论》一1.5 案例学习

  本节书摘来自华章出版社<大数据导论>一书中的第1章,第1.5节,作者托马斯·埃尔(Thomas Erl),瓦吉德·哈塔克(Wajid Khattak),保罗·布勒(Paul Buhler),更多章节内容可以访问"华章计算机"公众号查看. 1.5 案例学习 虽然ETI公司目前的策略选择了大数据技术作为实现它们战略目标的手段,但ETI并没有大数据技术,因此需要在雇佣大数据咨询团队还是让自己的IT团队进行大数据训练中进行选择.最终它们选择了后者.然而,只有高级的成员接受了完整

《大数据导论》——1.4节案例学习背景

1.4 案例学习背景ETI(Ensure to Insure)是一家领先的保险公司,为全球超过2500万客户提供健康.建筑.海事.航空等保险计划.该公司拥有超过5000名员工,年利润超过3.5亿美元.1.4.1 历史背景ETI早在50年前建立之时,就是一家专业做健康保险计划的公司.在过去30年的不断收购过程中,ETI已经发展成了覆盖航空.航海.建筑等多个领域的财产险和意外险的保险公司.这几类保险中每一类都有一个核心团队,包括专业的以及经验丰富的保险代理人.精算师.担保人.理赔人等.精算师负责评估

持续集成案例学习:Docker、Java与Maven

本文讲的是持续集成案例学习:Docker.Java与Maven,[编者的话]对于使用Java技术栈的企业,Maven往往是其持续集成的核心工具,在当前的Docker化的运动中,要如何把Docker镜像的构建也加入到传统的Maven构建为基础的持续集成流程中呢?Alooma公司在本文中分享了他们使用Maven对Docker镜像构建进行持续集成的经验. 在Alooma,我们非常非常非常喜爱Docker.真的, 我们想完全容器化我们的应用. 虽然容器化应用有非常多的好处,但在这里,我并不是要说服你用D

《大数据导论》——1.5节案例学习

1.5 案例学习虽然ETI公司目前的策略选择了大数据技术作为实现它们战略目标的手段,但ETI并没有大数据技术,因此需要在雇佣大数据咨询团队还是让自己的IT团队进行大数据训练中进行选择.最终它们选择了后者.然而,只有高级的成员接受了完整的学习,并且转换为公司永久的大数据咨询员工,同时由他们去训练初级团队,在公司内部进行进一步大数据训练.接受了大数据学习之后,受训小组的成员强调他们需要一个常用的术语词典,这样整个小组在讨论大数据内容时才能处于同一个频道.其后,他们选择了一个案例驱动的方案.当讨论数据

Facebook案例学习:实体业务驱动在线服务

Facebook案例学习: 实体业务驱动在线服务作者: Nisan Gabbay, 发表于2006年11月5日翻译:forimprove qiqi kk为何编录入Startup ReviewFacebook网站于2004年2月由哈佛大学的本科学生创办,目的是借助网络模式替代传统方式的学生指南. 网站开通后很快便在美国其他高校广泛流行,现在网站的注册人数已经达到每月1500万人次, 每月的页面访问量超过了60亿. Facebook已经以很高的评价完成了两轮风险融资, 第一轮评价1亿美金,第二轮评价

《C语言程序设计》一 2.5 案例学习——华氏温度与摄氏温度的转换

2.5 案例学习--华氏温度与摄氏温度的转换 [例2-7] 你的一个朋友要去某地旅游,当地天气预报是用华氏温度报告的,请你编写程序,帮助你的朋友进行温度的转换,计算并输出对应的摄氏温度. 1.问题分析 1)确定预期的输出.问题中有"计算并输出对应的摄氏温度",明确了输出项为摄氏温度celsius. 2)确定输入项.本需求中,输入项是华氏温度fahrenheit. 3)列出输入与输出关系的公式.本例中由华氏温度计算摄氏温度的公式为celsius = 5/9(fahrenheit-32).

《C语言程序设计》一3.4 案例学习——计算一年中某月份的总天数

3.4 案例学习--计算一年中某月份的总天数 [例3-8] 从键盘上输入年和月份,打印出相应年中某月份的总天数. 1.问题分析 这个问题要求从键盘上输入年份和月份,根据年份和月份计算出当月的总天数.年份和月份要考虑输入是否合法,并且二月份要考虑是否是闰年,如果是闰年则是29天,否则是28天. 2.算法设计 显示一个请求用户输入年份和月份的提示 接收用户的输入 假如年份和月份不合法 输出提示信息 否则 假如月份是1,3,5,7,8,10,12,则是31天; 假如月份是4,6,9,11,则是30天;