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可能不是一家“老”公司,但他們在17年的時間裡,建立了一個全球性的支付平台,其中包括數百個甚至數千個應用程式和服務。由于缺乏标準化導緻建構、測試、部署和運作這些應用程式需要用到不同的工具和流程,對于開發團隊來說,他們被鎖定在一套有限的工具和架構中很難添加全新的東西,是以他們便将壓力強加給測試和營運團隊,使他們能夠找到部署和運作每一個新堆棧的方法。測試和營運團隊将這些堆棧部署到多個體系架構和多個雲的應用程式,它們每一個都有不同的裝置和程式集,這無疑導緻了部署和維護的周轉時間變慢。
PayPal最初使用Docker隻是為了建立一種單一的、一緻的應用程式打包格式,但随着對Docker容器格式和操作的深入了解,PayPal為開發人員學習和使用容器打開了全新的大門。由于Docker提供了運輸和運作應用程式的标準方法,開發人員可以自由地嘗試新的程式設計方法和架構,而營運和支援團隊則不必擔心這些複雜性。随着開發人員加入Docker供給鍊,PayPal認識到其應用程式的建構、測試、部署的周期提高了50%以上。使用Docker,每個開發人員、測試人員、營運人員和自動化工具都能夠使用相同的配置運作相同的應用程式。對于系統管理者來說,還有額外的好處。過去更新作業系統需要一年的時間才能完成,現在隻需簡單的為容器鏡像更新Dockerfile檔案就可以了。由于這些好消息在PayPal内部傳播,原本不屬于該試點項目的其他團隊也開始嘗試采用Docker作為自己的用例,而PayPal的Docker試點團隊也幫助他們順利的開展了工作。
在這個階段,組建核心容器技術專家團隊,找到各技術棧的有威望的資深老程式員,大家開始研究 Docker 所有的技術細節和最佳實踐。
比如,我們在支付過程中遇到了一個bug,就立刻聯系Docker公司并成為合作夥伴,共同探讨獲得開源項目之外的建議,立刻在随後的版本中疊代使用。
經過上一個 phase 的經驗積累和典型case實踐,這時開始讓各個開發人員放開手腳接觸 Docker,并且我們開始了各種相關工具的開發并開始延伸建設 DevOps 平台。
曾經,Paypal的一個小小更新最終耗費了一年時間才落地,因為它牽扯到了整個工具鍊的支援更新。但是現在,我們可以針對性地之去改變真正需要改變的。
在這個階段,我們才開始容器編排系統的使用,并着手解決網絡、存儲等一切事情。我們不希望每次遷移到新的雲時,都将一切重來一遍。
同時,在這個階段我們才真正開始讨論如何提高效率。要知道,在第一階段讨論這個是沒有意義的,因為彼時一切還在VM中。如下圖中運維的ROI評定結果顯示,減少了25%的生産環境 vCpu 和50%的測試環境vCpu。
在這個階段,我們開始真正地想要建立一個統一的平台,去完成我們15年來的各種不同工具所做的任務。我們希望運維同學可以在這個标準化平台上實作監控、管理等運維任務。
而對于開發者,不需要每次都建構基礎架構環境,不需要單獨的容錯系統,通過編排工具快速完成以前耗時過長的任務,并且他們可以确信應用的成千上百的執行個體正在運作。
上面這張圖,就是Paypal如何有條不紊地進行容器化落地。
從第一階段開始,在不到兩年的時間裡,PayPal已經把超過700個應用程式移植到Docker上,運作在15萬個容器中。在此過程中,PayPal在建構、測試和部署Docker化應用程式方面的生産力提高了50%。過去更新作業系統需要花費一年的時間,而現在隻需在開發、測試和生産過程中通過變更Dockerfile就可以完成。開發人員可以自由探索新興技術,而營運人員和管理人員也可以使用同一套操作過程來應對全部的應用程式。
在最後階段,PayPal已經開始在所有雲平台上推出一個完整的容器即服務(CaaS)平台。在這個階段,他們關注提高效率。到目前為止,遷移到新的Docker CaaS平台的應用程式已經減少了資源消耗,提高了安全性和可用性,并使PayPal能夠為所有環境提供一個單一平台來運作、監控和操作。
PayPal實施Docker的過程是其他組織效仿的偉大藍圖。着眼于采取可管理的步驟,建立一個可以咨詢和協助其他團隊的内部專家團隊,制定明确的目标和衡量成果是實作大幅度改善營運和發展轉型的關鍵。