樂高用Serverless應對流量高峰
樂高,英文名LEGO,這家全球最大玩具公司,在數字化轉型路上也有它的「困惑時代」。
樂高直購顧客技術工程經理Nicole Yip表示,與其他電子商務企業類似,新冠疫情的出現也將樂高的在線訂單流量推上歷史高點。Yip指出,“想象一下,如果后端系統規模受限、公司內部又只能以整體方式調度設施資源,突如其來的峰值與同比流量增長必然要造成大麻煩。”
但有時候,這樣的麻煩就是會不期而遇。她回憶道,2017年樂高曾經組織過一場備受矚目的銷售活動,當時推出的是公司有史以來發布的尺寸最大的《星球大戰》千年隼號套裝。在發布當天,樂高遭遇到巨大的峰值流量,后端服務明顯不堪重負。于是,失望的客戶們只能對著維護頁面捶胸頓足。
經過排查,樂高的開發團隊發現引發故障的罪魁禍首正是計算銷售稅的這部分對應功能。于是,運營團隊立即對快速達到處理極限的內部稅收計算系統進行了回調。Yip感慨道,“從那時候開始,我們就意識到樂高的業務正在快速增長,而本地系統已經無法支撐起如此迅猛的發展腳步。”
經過幾番考慮,樂高公司決定啟動云遷移計劃。
云探索之旅
在云資源的支持下,樂高得以專注于執行業務邏輯,并將負載分發在多個serverless服務層當中。Yip表示,“我們精心挑選的第三方云服務商負責對負載進行批量處理,他們同時也提供支付功能及內容管理系統等其他專業服務。”其中的每一層都在設計中充分考慮到自動化與獨立擴展需求,能夠從容應對不斷變化的流量態勢。
樂高的云探索之旅始于2018年,最先遷移的只有一項支撐性的銷售計稅服務,之后又陸續遷移了三項其他后端處理服務。10 個月之后,樂高決定利用一套完全serverless平臺匹配現有本地功能,到這時新平臺已經能夠處理等同于原有本地設施的流量與交易負載。她回憶道,serverless平臺的交易率與流量很快就超過了本地設施,而且之后的每個月都在刷新歷史紀錄。
樂高于2020年開始制定正式的云發展路線圖,不斷壯大的相關運營團隊并輔以這套剛剛上線幾個月的新平臺,有人向Yip提出了新問題,即如何應對突然爆發的新冠疫情以及由此引發的消費者行為變化。她也在思考,“我們能不能實現這一雄心勃勃的發展路線圖,將遠程辦公的工程師數量翻上一番,同時始終維持平臺穩定運行?”事實給出了肯定的答案,流量也如預期般攀升至新的高點。Yip提到,樂高后來又將服務數量再次翻倍,用于應對日益繁忙的在線銷售業務。
serverless提質增效
過去一年半以來,樂高集團還將團隊中工程師的人數增加了兩倍,另外推出了36項新的serverless服務。Yip解釋道,“不斷壯大的團隊意味著我們需要承擔更多以往由本地基礎設施團隊集中處理的任務。而自動化,正是支持這支新團隊及應用工程師們,并將他們開發出的功能與服務投入生產流程的關鍵所在。”
樂高推進業務轉型的終極目標,是將應用工程師們培養成DevOps工程師,引導他們在生產的同時負責運營自己的服務成果。為了向這個目標堅實邁進,樂高提出了一項新標準,要求所有serverless服務都采用金絲雀軟件更新方法——即在廣泛發布正式版本之前,先部署一小部分服務器以供測試。Yip表示,serverless運營還要求值班團隊集中監控各項關鍵高級指標,并根據不同服務的實際態勢設置默認警報。
這相當于給樂高的工程團隊提供了一個起點,幫助開發者學會監控生產狀態下的服務,由此檢測并快速應對相關職能空間內發生的問題。隨著團隊的快速增長,不同工程師所擁有的實踐經驗也將有所區別,這就讓以往心領神會式的默契合作無法繼續滿足要求。為此,樂高為服務的部署及監控推出了新的指南,幫助團隊成員輕松獲得掌控權。
小結
展望未來,樂高集團計劃為其他可靠性與性能支柱制定標準,并努力提升指標可見性。“我們希望以集中化方式統一展現工程師們所擁有的服務與各項服務的當前運行狀態。”Yip最后總結道。在這樣的高透明度、高運作效能態勢之下,相信樂高還將創下更多令人印象深刻的新紀錄。
