成立於 1994 年的 AllSaints,如今已是一個從歐美紅到東亞的全球性品牌。這家時裝零售商已經迎來第 26 年的發展,營收卻絲毫並沒有趨緩的跡象,不斷創出營收新高。
電子商務是促成 AllSaints 成功的關鍵因素;平均每個月 AllSaints 的網站都有超過 200 萬名訪客造訪。也因此,AllSaints 的首要任務之一就是提供消費者順暢、快速的線上購物體驗。
「我們都會做常規期間的營業額預估,但要做高峰期間的營業額預估就很難了,尤其在線上銷售這一塊。我們的線上銷售到了高峰期間,可能有比平時高 2 倍以上的基礎設施需求,但這些基礎設施、伺服器的需求期間又相當短,比如某一個周末降價檔期。」AllSaints 數位與科技執行顧問 John Bovill 表示。
作為知名時裝品牌,AllSaints 知道客戶相當重視一致無縫的線上體驗,而基礎架構容量的不足則會導致網站不穩定、效能下降,從而影響使用者體驗。AllSaints 原本使用 60 多個伺服器來應對高峰需求的挑戰。但是,這些伺服器在高峰時段外,幾乎有一半處於空閒狀態,上述解決方案顯然不敷成本。更重要的是,要安裝額外的容量非常沒效率,也讓結構性調整如:擴展到新領域、部署新功能等變得緩慢。
AllSaints 於是做出了一項戰略性決策,即透過搬遷到雲端基礎架構,來優化其零售業務的回應能力和可靠性。
Bovill 表示:「回應式網站和快速的頁面加載對使用行動裝置客戶來說非常重要。」「透過 Google Cloud,我們有辦法做到及時因應需求、快速擴展,讓顧客保持良好的體驗並使銷售成長。」
公司史上最大規模的基礎架構變更!大型搬遷有哪些任務?
隨著電子商務的發展,AllSaints 也需要即時掌握快速變化、難以預測的消費市場。這也是為什麼 AllSaints 在 2014 年將上雲作為戰略目標,主要的考量,就是雲端服務面對變化的市場時的回應速度、彈性。
Bovill 說明:「我們首先為內部通訊部署了 G Suite(現名 Google Workspace)。目的是先讓大家習慣使用雲端工具。同時,我們也開始轉向微服務架構。」
在嘗試了不同的容器編排系統之後,AllSaints 在 2016 年選擇了 Kubernetes,並採用了多雲環境。但團隊很快意識到,若只使用 Google Cloud 更能降低成本,並加強可擴展性,因此決定只用 Google Cloud 來建立新的應用程式和服務。團隊開始準備將所有既有架構從搬遷到 Google Cloud。
「我們轉移了 60 種獨立的服務,而不僅僅是一項應用程式,」AllSaints 技術營運經理 Andy Dean 解釋。「因為它們彼此之間是相依的,一次性將它們搬遷的做法會比較合理,不過這也需要先有周全的計劃。」計畫完成後,團隊在一周之內就完成了搬遷。
這次搬遷的另一項任務,就是要並避免跨服務通訊之間的任何網路延遲。AllSaints 基礎架構團隊設定了所需的每種技術類型,包括在 Compute Engine 上以 MySQL 使用 Cloud SQL、搭配 Kubernetes 的主機和 Cloud Memorystore。同時,開發團隊開始重新編碼,以確保每個服務都與 Docker 上的新 Alpine image 映像檔兼容。當團隊在 Google Cloud 完成開發環境的設定後,便會測試建立過程,以將程式碼其部署到測試和正式環境專案中。
「這是公司史上最大的基礎架構變更,因此我們的另一個目標,也是『不要讓人注意到有變化。』」Dean 說明。為了實作這一目標,他的團隊採與 Google Cloud 密切合作。他解釋:「我們在第一周內就保持了服務穩定,這對我們非常重要。」「在那一周,我們將 60 項單獨的服務(包括我們的 ERP tills)轉移到微服務架構下的雲端環境中。搬遷完成後,專案團隊又花了一周的時間來確保服務狀況正常。在整個遷移過程中都有賴 Google Cloud 的支援。」
自動擴展,減少一半伺服器需求量!
現在,AllSaints 使用 Compute Engine 和 Google Kubernetes Engine 自動擴展,來滿足額外流量的需求,將其執行的伺服器數量從 60 個減少了一半降至 30 個。藉由減少額外的伺服器,AllSaints 成功降低 50% 的基礎架構成本,同時在需求高峰期提高了運算效能。
此外,它們也透過 Stackdriver 有效進行監控,幫助團隊主動管理架構並加快事故管理的效率。此外,如果發生事件,AllSaints 可以透過全球分佈的 Google 網路上的備份,取代對單一資料中心的依賴,從而提高災難修復能力。
「我們使用 Stackdriver 監控整個架構,不過 Google Kubernetes Engine 服務其實相當穩定。」Dean 表示。「Google Kubernetes Engine 的自我修復功能,讓我們不需要再花時間、很麻煩地重啟一些 VM。此外,現在不論是機器、或是重要的維護工作,都能自動擴展了。」
Google Cloud 讓 CI/CD 流程更順暢,快速回應顧客需求
與其競爭對手不同的是,AllSaints 所有對外的服務都是自行著手開發;從門市的 POS 系統到 AllSaints 應用程式。對開發人員而言,採用 Google Kubernetes Engine 的微服務架構,讓他們有機會在 Google Cloud 或 Terraform 上利用 Jenkins 建立起新的 CI/CD 流程。導入新的流程後,團隊部署一項變更所花的時間大幅降低了 75%。
除此之外,在 Google Cloud 上建立測試環境也相當簡單快速,讓開發人員能夠使用與正式環境相同的基礎架構測試程式碼,最大程度地減少問題產生的可能。
「以往,在到正式環境做測試之前,我們都不敢說某一個 bug 確定已經修復。現在,我們可以在一個與正式環境完全相同的測試環境先部署程式碼、做測試,」Dean 說明。「優化後的 CI/CD 流程,讓我們可以天天更新服務、快速修復 bug、減少中斷。也因此,我們可以更快、更主動的回應顧客的需求,而這正是我們的使命。」
整合服務,提高效率,創 AllSaints 業績新高
據 AllSaints 團隊的報告,他們採用 Google Cloud 在第一個月就有驚人的成效,包括基礎設施成本降低了 50%、頁面加載速度提高了 32%,線上轉換在美國更增加了 19%、在英國則增加了 17%。Bovill 把這樣的業績成長歸因於更快的網站加載速度。
現在,該團隊正在準備部署 Istio 連結並監控微服務,並研究如何用 BigQuery 分析資料。這場搬遷的歷程中,從後端環境、內部系統,到 ERP 與 POS,AllSaints 都將持續做容器化並把它們遷移到 Google Cloud 上。
Bovill 表示:「從策略上講,我們希望最大程度地善用 Google Cloud,推動相關技術的發展,為客戶提供最佳的 AllSaints 顧客體驗。」
(本文翻譯改編自 Google Cloud。)