每天,分散在全歐5大開發據點的2千名Zalando技術團隊成員,上班第一件事,就是打開「日出」(Sunrise)開發平臺。
在這個平臺首頁上,今天每一項行動任務、前一周交付成果的最新運作成效,其他成員對自己所提程式碼修改請求的回覆,每一個人今天該完成的所有工作,一目了然,還順便提醒使用者,日出平臺剛推出哪些新功能,建議開發者試試看。這個Zalando自行打造的內部開發者平臺,用起來就像是一套外面的商用產品網站一樣。
2021年時,Zalando打造出了這一套內部開發者平臺「日出」(Sunrise) ,以Spotify開源的ML管理平臺專案Backstage為基礎,結合了許多內部所用技術工具、開發元件、實作範本和技術文件,客製出了這個內部專用的自助式開發者平臺(Internal Developer Platform)。提供了團隊協作、負責AP狀態、可用API、相關事件、所用CI/CD流程、ML開發平臺、可用技術工具和元件、基礎架構帳戶和支出等參考資訊 。2千名Zalando技術團隊成員,每天上班第一件事,就是打開這個平臺。圖片來源/Zalando
不管是軟體工程師、資料工程師、專案經理,設計師、資料科學家或是技術主管,在Zalando技術團隊中的每一個人,只要是工作所需的資訊,從團隊協作資訊、負責AP狀態、可用API、相關事件、所用CI/CD流程、ML開發平臺、可用技術工具和元件、基礎架構帳戶和支出等資料,都可以從這個平臺中取得,不用切換到不同系統中尋找。日出平臺甚至提供了每周資安通報、指導長期技術決策的技術雷達圖、各項技術的配置範例、參考程式碼通通都有。不只查詢資料,開發者還能在平臺上自行建立新的ML流程、CI/CD排程、管理開發專案、調用基礎架構資源等。
透過日出平臺,工程師可以檢查負責產品在生命周期每一個階段的進度或狀態,而且是即時監控的最新數據,還能與團隊其他成員跨國線上協作,共同討論如何排除CI/CD流程遇到的問題,甚至可以來完整的部署一套新應用程式。這個平臺不只是Zalando技術成員的工作起點,更是全公司技術知識和工具的百寶箱。
你以為Zalando是一家大型軟體公司或是網路科技公司嗎?不,其實,他們是一家網路電商,是一家年營收143億歐元(約臺幣5千億元)的歐洲快時尚電商,但是在他們上萬名員工中,技術團隊人數超過了2,000人,其中更有1,100名軟體開發人力,分散在全歐5個技術據點 ,共同組成了超過200個跨功能、跨部門的敏捷開發團隊,負責超過2千套應用系統。
早在2014年底,Zalando開始積極上公雲,更大力擁抱雲原生技術來推動IT現代化工程,改用容器技術,也將大型單體應用重構成微服務架構,發展至2022年時,擁有一個超過4千支微服務的複雜IT基礎架構。
為了提供更好的開發者體驗,歐洲零售巨頭自行打造內部開發者平臺
為了支援如此複雜又龐大的開發團隊運作,2021年時,Zalando打造出了這一套內部開發者入口網站,以Spotify開源的ML管理平臺專案Backstage為基礎,結合了許多內部所用技術工具、開發元件、實作範本和技術文件,客製出了這個內部專用的自助式開發者平臺(Internal Developer Platform),介面操作如同商用企業級協作平臺Slack、Teams一樣的流暢,也講究各種UX設計的細節,就是為了引導使用者,自己就能快速上手操作。
Zalando打造日出網站的目的是「要讓開發者既快樂,又有生產力!」,他們要提供最頂級的開發者體驗,盡可能地降低技術團隊和開發團隊的認知負擔,來提高開發速度和生產力。Zalando執行首席工程師Henning Jacobs去年中在平臺工程大會上,首度公開日出平臺開發過程時,格外強調這個發展目標。
上雲十年快速成長卻累積大量開發債,Netflix也要統一開發體驗
不只是Zalando,全球影音龍頭Netflix也用了同一個開源專案Backstage,在2021年開始來打造一套內部的開發者平臺,已經推出第一階段的版本,目前還在持續開發中。
早在2010年,Netflix就決定推動全面上雲戰略,可是,完全上雲政策推動十年來,Netflix開發團隊經常為了解決快速成長的特定一項需求,得盡快開發出一款元件或解法工具,對症下藥來解決問題。日積月累下來,這些運用不同創意打造的開發元件,越來越多,也越來越繁雜。導致開發人員的開發流程一天比一天碎片化,得不斷嘗試、搭配組合不同的元件,反而拖慢了開發團隊的生產力。完全上雲加上高速成長的Netflix,反而累積了許多開發債。
在2021年時,Netflix下定決心,要以3~5年,優先建立一整套端到端的平臺體驗,來提高開發可用性。他們計畫打造出一個涵蓋軟體開發生命周期各階段的開發單一平臺,提供給所有軟體工程師和資料科學家。
花了一年時間,Netflix先串接現有供應商的元件,打造一個平臺儀表板,彙整來自9大技術供應商在軟體生命周期中的各種工具,方便開發者選用工具。另外還推出了一個套裝流程首頁Paved Road,提供不同產品開發需求對應的開發流程範本,例如資料平臺API流程、gRPC流程、Netflix WebClient流程等,讓開發者更容易探索每個流程中常用的工具和解決方案,不用自己從頭模索。
2022年時,Netflix順利完成開發者平臺的管理功能和探索功能,開始推廣給開發團隊,也展開下一階段開發,要擴大到開發者的創建、修改和維運面需求,目前還在進行中。
打造內部開發者平臺的企業,不只Zalando、Netflix,光是同樣用Backstage打造內部平臺的企業,還包括了美國航空、HBO MAX聯播網、加拿大Telus電信、英國體育臺DAZN,甚至連老牌軟體公司3D引擎巨頭Unity都拿來用。
發展專用開發平臺的企業不只這些,更多企業是從頭自行打造開發者平臺,也不一定非用Backstage專案才能實現。
ING打造座艙式開發UI,解決1萬5千名DevOps工程師3大痛點
比如,全球保險集團ING就自己建立了一套自動化框架(Automation Framework),來服務全集團在10個國家共15,000名的DevOps工程師。這個框架提供了一套自助式服務和自動化配置工具,建立了一個統一的座艙式UI管理介面,讓工程師更方便管理和監控所負責的專案和應用。ING另外還提供了搭配不同的框架工具,除了GUI介面工具,還提供了資源管理工具,CLI命令列工具、小精靈助手(Wizard)等不同形式的自動化框架操作形式,讓開發團隊更容易重複利用數百項ING內部的開發元件。
ING這個技術平臺,不只是一個入口網站,還提供了一整套開發各式金融服務所需的基礎服務和元件,包括800多個開發工作流程(API、Web與行動開發流程)、1,200支服務SDK、300個Web和行動應用SDK和2千個前端元件,每個月上萬名開發者的登入次數超過4億次,每個月透過內部3管道(簡訊、Email和App)發送的通知多達140萬封,隨時有1千個API在線上運作。這已經是ING集團內部最重要的開發者技術基礎架構。
為何非要大費功夫自己打造這樣的開發者基礎架構平臺?ING的目標,不只要提高生產力,還希望能縮短服務上市時間、維持一致的高品質,更要降低服務上線的成本。最終就是要靠這個平臺來解決開發團隊的三大痛點,包括高度複雜的繁多技術元件整合和組裝挑戰、耗時的人工手動配置時間,以及工程師工作流程遭大量瑣事而中斷。
來自不同產業的大型企業,願意自建平臺支援龐大的開發團隊,原本就擅長軟體開發經驗的軟體公司、科技大廠,也有不少業者在擁抱雲原生技術時,同步發展出自己的新式開發者平臺,例如知名設計軟體巨頭Adobe。
老牌Adobe產品全面雲端化後,開始打造GitOps內部平臺
Adobe在2015年大幅轉換成雲原生架構,將主要設計軟體產品通通雲端化,超過200項產品上雲,至今每天要啟用超過300萬個容器來執行。
為了支援產品團隊,Adobe早在2015年到2017年間,就發展出一個內部雲端平臺Ethos,來提供各種CI/CD流程的管理。後來,進一步發展成用途更廣泛的內部開發者平臺。2019年改用Apache Mesos打造出一個可以提供上千個服務的平臺Champions,2019年將開發者平臺轉移到K8s環境,開說提供DIY自助式服務,2021年開始運用Argo,以GitOps流程來打造更彈性的CI/CD流程。
到了2022年,Adobe正式上線了新版開發者平臺Ethos Flex,來支援內部5千名開發者。這個內部開發者平臺,以K8s叢集為基礎,提供了資安、基礎架構調度、監控、診斷等主要功能,也有一套GitOps流程為主的CI/CD工具,三個月執行的CI布建超過了10萬次。
200人團隊也要專用平臺,伊萊克斯用平臺工程思維優化SRE
不是開發人力破千的企業才需要自建平臺,像瑞典家用電器大廠伊萊克斯,就是為了支援百人開發團隊,將SRE團隊,轉型成服務內部開發人力的平臺團隊。這個做法與臺灣企業不少SRE團隊的角色很像,不只是為了監控和確保服務可用性,還開始負責打造內部開發工具。伊萊克斯的SRE團隊,後來就等於變成了一個平臺工程團隊。
這家老牌製造業,為了善用整合在各產品中的IoT裝置,來打造出吸引消費者的App,決定在2017年成立開發團隊,也配置了SRE人力,來確保這些IoT裝置背後的支援服務和App,都能正常運作。先從一支App產品配置了10名開發人員和2名SRE組成產品團隊,後來,App產品越來越多,到了2023年時超過300支,開發團隊更增加到200人規模,SRE人力也提高到7個人。
這個200人團隊,如何因應300款App的快速迭代開發和更新需求,關鍵就是自建的開發者平臺。
原本伊萊克斯在產品團隊中設置SRE人力,也同時分攤雲端基礎架構的維運工作。隨著產品數量越來越多,相關App產品團隊越設越多,各種維運和問題排除工單更是暴增,SRE人力反而花了大把時間,到各產品團隊分享維運知識,支援各團隊的開發自動化需求,後來,伊萊克斯決定,由SRE團隊負責發展共用平臺,支援所有產品團隊。
在這個平臺上,提供了基礎架構範本、服務範本、API範本,還有內部相關工具。另外在這個平臺上還提供了可用性、CI/CD、監控、SLO、警告通報、資安、成本控管、儀表板等功能。開發者可以在單一平臺上取得產品開發所需的相關工具,不用到處尋找,也提供了SRE團隊推薦的最佳配置,來加快App產品的開發速度。
伊萊克斯由SRE打造共用開發平臺的目的,原本是為了滿足各產品團隊的工單、控管上雲的成本,也順便改善開發團隊的體驗,但內部開發平臺帶來了更好的資訊透明化,一方面提高任務完成度,也強化了協作和開發經驗的共享,進而加速了應用程式開發的流程。伊萊克斯事後回顧,只靠200人就能打造和維護300款App產品的成功關鍵是,運用平臺工程思維,來發展出更好的SRE實踐。
平臺工程浪潮的崛起,不只是幾家企業實踐的結果,而開始形成一股新的開發趨勢。