全球最大的在线支付平台PayPal(贝宝)致力于普及金融服务,帮助人们和企业参与全球经济,并取得蓬勃发展。它的开放式数字支付平台让2.18亿个活跃账户持有者可以放心地安全联系和交易。为此,PayPal建立了一个确保所有用户都随时可用的全球性平台:如果PayPal宕机,这种影响会波及到许多依赖PayPal作为唯一支付处理解决方案的小企业客户。
PayPal将目光投向了Docker企业版,帮助自己将运营效率提高到新的水平,包括构建/测试/部署周期的速度加快50%。与此同时,它借助Docker的动态布置功能和基础设施独立性,提高了应用程序的可用性,另外还使用Docker对资源访问实现自动化和细化地控制,从而加强安全性。除了运维方面的好处外,PayPal还使用Docker让开发人员得以大胆创新、尝试新的工具和框架。由于PayPal的应用程序和运维很复杂,之前很难引入这些新的工具和框架。
PayPal的云工程师梅格杜特•巴塔查亚(Meghdoot Bhattacharya)分享了其团队在过去的两年帮助PayPal顺利走过的历程,将Docker引入到PayPal环境,并扩大Docker的使用范围,让它成为一个标准的应用程序交付平台。
虽然PayPal可能不是一家“老”公司,但在17年多的时间里,它已建立起了一个包括至少数百个应用程序和服务的全球性支付处理平台。有大量的不同工具和流程用于构建、测试、部署和运行这每一个应用程序,快速开发和迅猛增长的这种环境通常都是这样。对于开发团队和运维团队来说,缺乏标准化都带来了问题。开发人员被一套有限的工具和框架束缚住了手脚,由于测试团队和运维团队面临这个负担:搞清楚如何部署和运行每个新的堆栈,很难往混合环境中添加任何新应用程序。对于运维团队来说,将应用程序部署到多个架构和多个云(每个又有一套不同的测试工具和程序)面临很大压力,这导致部署和维护周转时间很长。
PayPal最初使用Docker只是一种手段,旨在打造单一、一致的应用程序包装格式,可与尽可能多的现有应用程序结合使用。它专注于公司的运维方面,开发了统一的应用程序交付和运维模式,旨在解决应用程序孤岛方面的问题。PayPal在Docker发布Modernize Traditional Applications(传统应用程序现代化)官方计划之前开展了这个阶段,但有着许多同样的策略和好处:从日常运维方面已经有内部专长的现有应用程序入手,专注于在不更改代码的情况下将应用程序迁移到容器。在这个阶段,PayPal获得了几个重要好处,尽管应用程序本身还是老样子:
部署与框架堆栈相分离:PayPal现在有一个平台可使用一套同样的程序来部署几乎任何应用程序,不管是什么样的编程语言、代码库和堆栈。
现代化的操作系统和内核:由于Docker将应用程序的所有依赖项统统打包到容器中,可以将它们与底层操作系统分离开来,因而在不改变应用程序的情况下使基础设施现代化。一些应用程序的效率免费提高了10%至20%,只需要在现代操作系统和内核上运行容器即可。
PayPal Docker
由于Docker容器格式和运维变得广为人知,PayPal为开发人员学习和使用容器打开了大门。由于Docker提供了交付和运行应用程序的一套标准方法,开发人员可以随意尝试新的编程方法和框架,而运维团队和支持团队不必担心这些复杂性。随着开发人员加入Docker供应链,PayPal发现,应用程序的构建/测试/部署周期缩短了50%以上。使用Docker,每个开发人员、运维人员、测试人员和自动化工具都能够运行同样的应用程序,拥有同样的配置。对于系统管理员来说,还有一些额外的好处。现在,只要为容器镜像更新Dockerfile,马上可以完成操作系统的升级,而过去需要整整一年才能升级到位。由于关于这些好处的风声在PayPal内部传开来,原本未参与试点项目的其他部门也开始将Docker用于各自的使用场合,于是PayPal的Docker试点团队帮助它们做好这项工作。
成果和下一步
从启动到第一阶段不到两年时间里,PayPal已把700多个应用程序移植到Docker上,在15万个容器中运行。在此过程中,PayPal发现构建、测试和部署Docker化应用程序方面的效率提高了50%。像操作系统升级这些过去要花整整一年的项目现在可以跨开发环境、测试环境和生产环境来进行,只需要改变一次。开发人员可以随意为应用程序尝试新兴技术,而运维人员和管理员只需使用一套运维程序,不管是什么样的应用程序。
在最后阶段,PayPal已开始在其所有云上推出一个完整的容器即服务(CaaS)平台。在这个阶段,它专注于提高效率。到目前为止,迁移到这个Docker CaaS新平台的应用程序减少了资源消耗量,提高了安全性和可用性,并让PayPal能够为所有环境中的工具、监控和运维提供单一平台。
PayPal Docker合作伙伴的好处
PayPal实施Docker的历程堪称典范,值得其他企业组织效仿。专注于采取易于管理的步骤,打造一支内部专家组成的团队(可以建议和协助其他团队),制定明确的目标,并且衡量成果,这些是实施有望显著改善运维和开发的转型的关键。
相关阅读:
PayPal如何使用区区8个虚拟机,支持每天处理数十亿个事务?
云公司Seafile拒绝监视客户文件后,被PayPal无情抛弃
Paypal以6000万美元收购以色列网络安全公司CyActive