DevOps 發展至今,造福了許多有快速發版需求的公司,而其中兩間公司是大家提到 DevOps 實踐時,一定會舉到的兩個例子,Netflix 跟 Amazon。
現今串流時代百家爭鳴,但 Netflix 的市佔率仍然高居不下,除了原創性高的內容之外,服務的穩定性更是在留住客戶中極為重要的關鍵,如果看到正精彩的地方,突然影片不斷轉圈呈現 loading 中,使用者不馬上跳腳才怪。
但要有各區域內容獨特,又要播放順利,還得時時更新排版觀測使用者點擊反應,就得好好的實踐 DevOps 的精神。
為了主動達到「守護者」的角色,Netflix 開發了 Chaos Monkey 這款工具,會直接在正式環境上將隨機的個體服務關閉,去測試系統的恢復能力,提升系統穩定性。
另外,為了避免各服務之間會因為上版而有影響,Netflix 也將服務獨立拆分成各種微服務,各個團隊負責的項目可以有自己的排程,不會有時程延宕或是有大範圍的測試及修復。
串流服務的使用者遍佈世界各地,無時無刻都有大批的流量,更有新內容、新功能需要進行上版,Netflix 則做到了 90% 以上的發佈自動化,每天更有數千次的部署。
Amazon 作為大型電商及雲端服務提供商,更是需要多次自動化上版及系統穩定的需求。
與 Netflix 不一樣的方式,Amazon 將每次的發版切到很細,版本之間只存在微小的差異,這樣讓系統發生問題時,可以快速找到需要修復的地方,也縮小了影響範圍。
在團隊上,更有「兩披薩團隊」(Two-pizza team)文化,每個團隊的大小,只需要兩個披薩就可以餵得飽,講求跨職能的精兵團隊,每個團隊負責的服務也是切為小服務,讓服務之間不互相影響,上版的速度更每天可以達到上萬次。
連結到當責的文化,Amazon 推廣「你開發的,由你來運行」(You Build It, You Run It),讓開發團隊自己負責將自己開發的程式部署到正式環境後,也要持續進行監控,而不是讓維運團隊接手後續的工作。
這兩間大型軟體公司將 DevOps 文化推進到團隊的實際運作中,讓團隊內部可以快速交付、以高度自動化代替人工流程,打破開發及維運之間的單位隔閡,提供給全球使用者最好的體驗及穩定的服務。