DevOps 是一種跨團隊協作,以便讓整個軟體服務交付過程的浪費能夠降到最低,並且最大化想要提供的客戶價值。
話雖如此,DevOps 最大的挑戰仍然是團隊的協作與溝通1,而讓人最快聯想到的是自動化與工具鏈。DevOps 一路發展過來,不乏疾呼文化的倡議者,也曾討論過 DevOps 是否是一種職稱。但不管討論過程內容如何,回到產業落地的現場,DevOps 變成了一種職稱或一種團隊的名稱,而這類職能主要提供工具的建構與發展,來支應團隊能夠以大家所想像的 DevOps 方式,把軟體交付到使用者手上。
從去年年底開始 Platform Engineering 突然躍到檯面上。
從 Google 趨勢分析工具可以發現 2021 年底,Platform Engineering 便已經來到一個新的熱度水平,而到了今年,它又再一次跳躍。目前網路上,已經不乏對它的討論。一下子說它將取代 DevOps,一下子又說它能助力 DevOps。那麼到底它扮演著怎樣的角色呢?
首先如前文所述,DevOps 發展至今,實際的現況是:
- 開發團隊內有專責相關工具鏈的人;
- 開發團隊內發展出跨職能,工具鏈為每個人的責任;
- DevOps 為某專責團隊的任務,而該專責團隊可能是原先維運團隊的職能擴張或獨立出來的團隊。
所以可以知道的是當我們試著享用 DevOps 所帶來的好處時,我們免不了要建構屬於自己的交付方式(工具)。為了能夠讓工具不會因為某個特定角色而產生瓶頸,工具的製作者往往會希望提供自服務的方式,來避免瓶頸的產生。因此,所謂的工具(平台)其實是一種自然的發展狀況與需要。此外,從目前 DevOps 或敏捷的擴展模式來看,組織通常偏好於水平擴展。考量統一管理與資源和安全的需要,通常會存在所謂的致能團隊2。該團隊通常致力於提供專業的知識和提供對應的工具,以便開發團隊能夠有能力按預期的方式來交付服務。
如果工具與平台的建置是一種自然的發展,那麼為什麼 Platform Engineering 現在才躍上舞台?
比較可能的原因是 DevOps 的普及!隨著疫情襲來,DevOps 所提供的快速響應思維正在深入每一個需要提供線上服務的組織。不管是大型組織希冀加速開發團隊的交付能力、小型組織需要一個 turnkey 方案來加速服務的交付,抑或者是開發者想要能夠更專注於開發任務,而希望有個完整平台方案來省卻建置工具的前置付出,這一切都將推進平台工具的發展,而且這也契合目前市場上提供 DevOps 完整工具方案服務商的發展。因此,引述 Gartner 一文所述3:
Platform engineering is an emerging technology approach that can accelerate the delivery of applications and the pace at which they produce business value.
Platform Engineering 是一種新興的科技方法來加速價值的交付,然而我們必須認知的是 DevOps 是一種更為整體的思維!它希冀透過協作來免除價值流中的浪費,所以 Platform Engineering 應當視為一種協助 DevOps 發展的方式,而非取代 DevOps。
文末想要提醒大家的是不論團隊內發展工具或者是組織內有專責團隊在發展平台,都必須意識到三件事:
- 工具的確能夠帶來方便,然而價值交付更重要的是組織或團隊的協同合作;
- 發展工具平台往往不知不覺希望提供統一平台,而忽略了不同團隊的需要;
- 一致性的工具往往會帶來過多的客製與組態的配置,然而這樣的發展又會促使另一個瓶頸或僵固狀態的產生。