公司 ThredUp 地點 加利福尼亞州舊金山 行業 電子商務

挑戰

作為最大的女裝和童裝線上寄售商店,ThredUP 於 2009 年成立,其單體應用程式執行在 Amazon Web Services 上。儘管該公司幾年前開始將單體應用程式拆分為微服務,但基礎設施團隊仍然在處理手工配置的伺服器,這阻礙了生產力。聯合創始人兼首席技術官 Chris Homer 表示:“我們只是為了儘快推出而配置它們,但沒有標準化,隨著我們的不斷發展,管理起來變得越來越繁瑣。”他們意識到,基礎設施需要現代化,以實現公司所需的速度。Homer 補充說:“對於我們這樣顛覆零售業的公司來說,確保我們在構建軟體並將其推向使用者時,能夠快速迭代並從實驗中學習,這非常重要。我們希望確保我們的工程師在構建軟體時能夠採納 DevOps 思維。對我們來說,他們能夠從設計構思到釋出並在生產中執行,從營銷到電子商務,使用者體驗以及我們內部配送中心運營,端到端地擁有整個生命週期,這非常重要。”

解決方案

2017 年初,公司採用了 Kubernetes 進行容器編排,並在一年內將整個基礎設施遷移到 Kubernetes。

影響

“以前,即使我們已經擁有云端的所有基礎設施、資料庫和服務等所有這些好東西,”基礎設施工程師 Oleksandr Snagovskyi 說,“設定一個新服務也意味著要等待 2-4 周才能獲得環境。”有了 Kubernetes,新應用程式的釋出時間從幾天或幾周縮短到幾分鐘或幾小時。現在,基礎設施工程師 Oleksii Asiutin 說,“我們的開發人員可以試驗現有應用程式並建立新服務,所有這些都可以以驚人的速度完成。”事實上,關鍵服務的部署時間平均減少了大約 50%。“所有應用程式的‘交付週期’都在 20 分鐘以內,這使得工程師每天可以多次部署。此外,3200 多個 Ansible 指令碼已被 Helm charts 取代。令人印象深刻的是,硬體成本降低了 56%,而 ThredUP 執行的服務數量卻增加了一倍。

ThredUP 是最大的女裝和童裝線上寄售商店,致力於讓消費者首先考慮二手商品。“我們正在顛覆零售業,對我們來說,確保我們在構建軟體並將其推向使用者時,能夠快速迭代並從實驗中學習,這非常重要,”聯合創始人兼首席技術官 Chris Homer 說。

但在過去幾年裡,ThredUP(於 2009 年推出,其單體應用程式執行在 Amazon Web Services 上)隨著其使用者群突破 2000 萬大關,感受到了成長的煩惱。儘管公司已經開始將單體應用程式拆分為微服務,但基礎設施團隊仍在處理手工配置的伺服器,這阻礙了生產力。“我們只是為了儘快推出而配置它們,但沒有標準化,隨著我們的不斷發展,管理起來變得越來越繁瑣,”Homer 說。Homer 意識到,基礎設施需要現代化,以實現公司所需的速度和文化。

Homer 說:“我們希望確保我們的工程師在構建軟體時能夠採納 DevOps 思維。對我們來說,他們能夠從設計構思到釋出並在生產中執行,從營銷到電子商務,使用者體驗以及我們內部配送中心運營,端到端地擁有整個生命週期,這非常重要。”

2017 年初,Homer 透過 Kubernetes 容器編排找到了解決方案。在一年內,公司將其整個基礎設施遷移到 Kubernetes,從網站應用程式開始,到運營後端結束。團隊現在還在使用 Fluentd 和 Helm。Homer 說:“最初,有人對轉向雲原生技術所帶來的價值持懷疑態度,但隨著我們推進這個過程,人們很快就意識到無縫升級和輕鬆回滾的好處,而無需擔心發生什麼。它釋放了開發人員快速部署、學習的信心,如果你犯了錯誤,你可以輕鬆回滾而不會出現任何問題。”

據基礎設施團隊稱,關鍵的改進是 Kubernetes 為開發人員帶來了始終如一的體驗。“它讓開發人員能夠在與其應用程式在生產環境中執行相同的環境中工作,”基礎設施工程師 Oleksandr Snagovskyi 說。此外,“測試變得更容易,最佳化變得更容易,部署也變得更容易,因為一切都是自動完成的,”基礎設施工程師 Oleksii Asiutin 說。“我們團隊的主要目標之一是讓開發人員的生活更舒適,我們正在透過 Kubernetes 實現這一目標。他們可以試驗現有應用程式並建立新服務,所有這些都可以以驚人的速度完成。”

以前,“即使我們已經擁有云端的所有基礎設施、資料庫和服務,以及所有這些好東西,”Snagovskyi 說,設定一個新服務也意味著要等待 2-4 周才能獲得環境。有了 Kubernetes,由於簡單的配置和對基礎設施團隊的最小依賴,新應用程式的釋出時間從幾天或幾周縮短到幾分鐘或幾小時。

事實上,關鍵服務的部署時間平均減少了大約 50%。“Kubernetes 中快速部署和並行測試執行使得所有應用程式的‘交付週期’都在 20 分鐘以內,”基礎設施總監 Roman Chepurnyi 說,這使得工程師每天可以進行多次釋出。他補充說,基礎設施團隊的工作負擔也減輕了:“我們可以頻繁地執行無縫升級,並保持叢集效能和安全性最新,因為 Kubernetes 叢集的作業系統級別強化和升級是非阻塞性的生產操作,不涉及與多個工程團隊的協調。”

超過 3,200 個 Ansible 指令碼已被 Helm charts 取代。令人印象深刻的是,硬體成本降低了 56%,而 ThredUP 執行的服務數量卻增加了一倍。

也許在零售業最繁忙的日子裡,這種影響最為明顯。“Kubernetes 在‘黑色星期五’等日子裡,能夠以無縫且易於管理的方式實現自動擴縮,”Homer 說。“我們不再需要坐著新增例項、監控流量,做大量的手動工作。這一切都由它來處理,而我們則可以吃火雞、喝葡萄酒,享受與家人在一起的時光。”

對於 ThredUP 而言,Kubernetes 與公司改變零售業的願景完美契合。ThredUP 的一些工作仍然非常依賴人工:“當我們的客戶將一袋袋物品送到我們的配送中心時,它們會被拍照、檢查、貼標籤,並立即上線,”Homer 說。

但在其他所有方面,“我們使用不同形式的技術來驅動我們所做的一切,”Homer 說。“我們有機器學習演算法來幫助預測商品的銷售可能性,這驅動了我們的定價演算法。我們有個性化演算法,可以檢視影像並嘗試確定風格,並在我們的系統中匹配使用者的偏好。”

Kubernetes 是這些驅動因素之一。“我們的未來是關於自動化的,”Homer 說,“而在此背後,雲原生技術將釋放我們擁抱自動化並全力邁向未來的能力。”