參與Zalando最近4年SRE戰略發展的第一線工程主管,Zalando前工程經理Andrew Howden從柏林飛來臺灣,擔任今年臺灣開發者大會MWC 2023的主題講者,對臺灣開發者分享了,他一路見證到這個千人開發者平臺工程的發展過程。

當企業的應用系統超過3千套,背後的微服務更超過4千隻,開發團隊規模超過了2千人,如何做到一天能夠發布上百次?這正是歐洲科技電商Zalando花了15年才做到的成就。

Zalando成立才約15年, 卻已經是歐洲最大的電商,20多國的官網一年總流量超過了50億人次,今年單季的網路訂單達到了5,800萬張,年營收更是超過了臺幣5千億元,是臺灣電商龍頭年營收的5倍。

但是,Zalando不只是一家電商,更是一家徹徹底底的科技公司,技術團隊規模超過2千人,超過半數是開發人力,分散在全歐5個據點,組成了200個跨部門敏捷開發小組,負責3千套應用系統,還有一套由4千隻微服務組成的基礎架構。

2008年,Zalando只是一家小型網路商城,用PHP套裝電商軟體,搭配MySQL資料庫打造而成的網站(就跟臺灣許多電商十多年前的發展一樣)。2010年時,改用Java搭配PostgreSQL資料庫,自行開發出了大型單體式電商平臺。2014年全面擁抱公雲,改用Docker和微服務架構重新打造平臺,2016年積極導入K8s,更搖身一變成了歐洲零售圈的技術供應商,有能力對合作夥伴和供應商輸出技術。

這兩年,Zalando進一步聚焦開發團隊生產力的提升,打造出了一個在軟體業界大獲好評的內部開發者平臺Sunrise,來提升開發團隊的戰力。

5千億營收歐洲電商巨頭Zalando,如何將SRE技術力,變成營運競爭力?如何打造內部開發者平臺,讓技術團隊更有生產力?

參與Zalando最近4年SRE戰略發展的第一線工程主管,親自從柏林飛來臺灣,擔任今年臺灣開發者大會MWC 2023的主題講者,首次對臺灣開發者分享了,他一路見證千人開發者平臺工程的發展過程。

這位講者是Zalando前工程經理Andrew Howden,他曾是SRE團隊工程主管之一,今年8月剛決定成為SRE專業顧問而離開,在Zalando技術總監的推薦下,我們特別邀他來臺分享。

臺灣開發者活動MWC(Modern Web Conference)今年重回實體形式,三天超過60場演講,規模比過去更大。將海外開發經驗帶到臺灣是MWC發起的初衷,今年更聚焦引介跨國企業經驗,邀JP Morgan和Zalando來臺分享。

Andrew Howden是Zalando嵌入SRE團隊的負責人,負責提高交易體驗的可靠性。他也是網路購物周的技術維運準備小組成員,協助同事建立技術風險管理和維運準備度的流程。

當顧客在購物車新增了一項商品(這是商品開始與顧客交易有關的起點),從倉庫依照訂單出貨,交給物流業者(這是平臺持有商品的終點),這個過程的顧客感受,Zalando稱為交易體驗,包括了顧客可以在平臺上看到商品進入購物車,到顯示出貨的過程。這段交易體驗流程,涉及了4種業務部門、10個團隊、超過100名開發人員。Zalando嵌入SRE團隊就是為了解決交易體驗流程的特殊難題而設立。

2019年,Zalando小規模嘗試SRE經過2年,決定將SRE發展成全公司營運戰略,成立大型SRE專責部門。

Andrew Howden就是在這一年進入Zalando擔任SRE工程師,2021年他就成為主要工程師之一,參與設計維運準備度工作流程計畫,要發展一套自助式評量來提高千套系統的可靠性,這涉及不同系統背後技術架構、業務領域、事件處理的知識。

早創時期:靠套裝PHP軟體快速建立商城,2人通管全站

想了解Zalando的技術演變,得將時間拉回到2008年,Google剛發表Android系統,而蘋果iPhone爆紅,新推出了App Store。Zalando兩名創辦人Robert Gentz和David Schneider就在那一年秋天,創立了這家快時尚電商,想在網路賣鞋子。沒想到,公司成立不到幾天,就遇到了金融危機。

Zalando手上資金不多,得想辦法樽節支出,兩名創辦人在柏林租了一間分租公寓,作為辦公室兼倉庫。因為剛起步,顧客不多,他們盡情嘗試不同的業務實驗,後來發現,免運和100天退貨權是顧客最喜歡的兩大亮點,這也成了Zalando早期擴展電商市場的優勢。Zalando這兩項運送保證,後來更成了顧客對其他電商平臺的期望標準。

當時,為了快速打造出電商交易的平臺,也因為容易找到熟悉PHP的開發工程師,所以,第一代Zalando電商平臺就用了PHP開發的電商軟體Magento,這套軟體就像是古早時期的WordPress,可以自行組合第三方的功能模組。

Zalando在早創階段的策略是「快速行動,凡事可變」(Move fast, Break things),Zalando沒有維運團隊,更不用說設立平臺團隊,只靠1、2名員工,來管理整個網站。

過了兩年,2010年,這時出現了第一款iPad,Netflix也推出了12,000部影片,手機開始出現了社交媒體,Zalando業績進入了快速成長期,跨出德國,開始進入其他國家,先後拓展到荷蘭、法國等國。當時Zalando全職員工達到20人,也出現了許多高忠誠度的顧客。

2010年用Java自己重新開發整套電商平臺

可是,創立時所選擇的PHP電商套裝軟體,開始發生問題,無法進一步擴大規模,開發團隊就算盡力修改了底層程式碼和架構,還是沒有辦法解決問題。最後,只好整個架構砍掉重練,Zalando重新開發了整套電商平臺,從PHP搭配MySQL資料庫的組合,換成了以Java語言搭配PostgreSQL資料庫的大型單體式應用。

Zalando從舊版電商軟體,轉換新版平臺,在當時「只有」停機了90分鐘,「這個當年可接受的時間,若發生在現在,會是一場鬧上媒體的大災難。」Andrew Howden打趣的說。人們對技術的期待和標準,會隨著時空背景而改變,這就是其中一個典型例子。

不過,當時的團隊規模不大,但也開始遇到敏捷的難題,如何更安全的執行發布?為了維持一定程度的可控,他們訂定了一份部署檢查清單,每次發布都要照單確認,雖然拖慢了更新程式碼的發布速度,但可以讓發布過程更可靠,來維持顧客的信任。

2014年,Zalando的規模持續擴大,也在這一年全面改為響應式(RWD)網站的設計。這一年是容器技術Docker誕生的一年。

年營收4年成長4倍,3大關鍵策略背後的技術挑戰

從2010年到2014年,Zalando的營收成長了四倍,達到22億歐元(約臺幣750億元)。

Andrew Howden指出,Zalando業績能夠積極成長的關鍵,來自3大策略。第一是「規模化」策略,採取任何必要手段來擴充軟體系統,甚至不惜徹底砍掉舊版,重新打造新版。第二項策略是「在地化」,Zalando服務範圍擴大到多國市場,從瑞典、丹麥、芬蘭、挪威、比利時、西班牙、波蘭到奧地利。針對各國的語言、流通貨幣、法遵要求和維運需求上的差異,進行在地化調整。

另外一個關鍵策略是「差異化」,Zalando也開始轉變成百貨商場模式,引進夥伴制度,讓第三方供應商在Zalando平臺上銷售各自的產品。

「這3項決策對技術帶來最大的考驗是,原本只為內部使用開發的軟體,現在得提供給第三方,還要具備規模化能力,並且符合各國在地化的需求。」Andrew Howden強調。

接下來的3年,Zalando靠著幾項技術對策,快速落地到各國,一方面導入企業級ERP,另一方面開始發展各國在地化的官網,也打造一個有能力處理大規模訂單和交易的集中式平臺。

但是,這三大策略讓Zalando所開發的系統越來越多、也越複雜。例如在2010年時,只有7個部署單位,到了2012年,部署團隊超過100個,發布管理和協調成了一大考驗。

為了簡化複雜度,Zalando要求,每一隻軟體都限定只能用Java、Tomcat、PostgreSQL這三個主要技術來開發。

第一個平臺團隊的誕生

不只如此,Zalando也開始打造第一個「平臺」團隊,來管理系統工程、資料庫工程、平臺軟體工程,也提供各種安全諮詢。

例如,他們建立了一款deployctl工具來管理發布流程,也採用了開源網管監控工具zmon(類似Nagios),可以定期追蹤所有軟體和系統是否正常運作。

有了這些組織、工具和技術限定的配套作法,讓Zalando在當時可以做到每周發布。每一次發布都由一個品質確保(Quality Assurance)團隊進行測試,來確保正確性,另外還有一個小團隊提供隨時待命(on-call)的支援。

不過,隨著開發團隊的人數越來越多,每一次發布需要協調的工作也越來越多。因為系統越來越龐大而且相關維運資訊散落四處,工程師們越來越難有效掌握所從事工作的相關訊息。

為了控管工程師們的發布,這個平臺團隊祭出越來越嚴格的措施,沒想到卻反過來減緩了發布的速度。Andrew Howden表示:「儘管平臺團隊立意良善,卻意外地限制了企業創新和成為市場領先者的能力,平臺團隊開始向可靠性靠攏。」

時間聚焦到2014年,Kubernetes誕生後,快速成為主流,隔年推出了1.0正式版,也催生了CNCF組織的成立,這個組織接手了許多雲原生相關技術專案,如gRPC、etcd、RunC、Envoy、Jaeger等技術。而2014年也是Zalando首次公開發行(IPO)的一年。

因應IPO後新願景,為全歐多國營運上雲擁抱雲原生

IPO帶給Zalando更多資金,賦予更大的能力,但也意味著更大的發展壓力,Andrew Howden表示 ,Zalando必須更快成長,更快擴張,就必須創新。

Zalando的新願景是打造一個可以用時尚串連起龐大人群的「時尚大平臺」,能讓第三方夥伴和店家在這個平臺上,銷售各種時尚產品。

可是,Zalando過去幾年的技術決策,逐漸發展成了一個相對可靠,可是難以變動的技術架構,這種「穩固」架構無法跟上IPO後的新願景。

為了支援未來全歐多國營運的布局,在2014年底時,Zalando決定全力擁抱公有雲,也導入了Docker容器技術,開始改用微服務架構,來取代老舊的單體式架構。

上市後隔年,也就是2015年,Zalando更開始發展電商平臺化戰略,要將自己變成電商生態圈的技術平臺商,開始對合作夥伴和生態圈夥伴輸出自己的技術服務。

未完,繼續閱讀

【千人平臺工程煉成記Part 2】因應開發人力暴增到2千,Zalando以激進敏捷模式展開組織大變革
 

熱門新聞

Advertisement