關於 IDP 的五大認知誤解

Seal數澈發表於2023-04-07

內部開發者平臺(IDP)是近年來在希望加快軟體交付和改善開發者體驗的企業中得到普及的一個概念。然而,大眾對於什麼是 IDP 以及它能為開發者和企業帶來什麼也有很多困惑和誤解。在這篇文章中,我們將嘗試解開一些關於平臺工程以及 IDP 的常見誤解,以及關於企業該如何避免進入這些誤區給出一些建議。
 

關於 IDP 的常見五大誤解

之前我們瞭解過 IDP 和平臺工程的基本概念。IDP 實際上是一套標準化的工具和技術,能夠實現開發人員的自我服務,為他們在日常工作中建立和部署符合要求的程式碼提供便利的途徑。IDP 抽象了底層基礎設施的複雜性,並與現有的 CI/CD 和部署流程相結合,使開發人員能夠專注於他們的程式碼和業務邏輯。在本文中,我們總結了關於 IDP 的五大誤區。
 

IDP 僅僅是一個工具集合

有些人可能會簡單地認為 IDP 僅僅是一個開發者常用的工具集合,幫助開發者們去執行各類任務,例如版本控制、測試、CI/CD、監控等等。實際上,IDP 的用處遠不止這些,IDP 不僅僅是一個工具鏈,它更是一個以無縫和連貫的方式整合這些工具的產品,同時為開發者提供清晰的介面和工作流程。
 

當然,IDP 並不是完美適配一切公司的解決方案。各個企業的堆疊、文化、程式碼庫和工具集都會因業務內容有所區別,因此企業及開發者需要根據自身的需求和偏好對 IDP 進行定製。例如,有一些企業更偏向於使用 Kubernetes 作為他們的協調層,而其他企業則傾向於選擇不同的解決方案。IDP 還應當允許企業在保持定製和可擴充性的同時,仍然保持一致性和操作的簡便性。
 

只有大型企業才能用 IDP

在之前我們提到過,當企業擁有複雜和分散式系統、多個團隊和環境,並對可擴充性和可靠性有高要求,構建 IDP 能夠使這些大型組織受益。但這裡並不是說只有大型企業才能使用 IDP,相反,任何旨在提高軟體交付速度、效率和質量的企業都可以構建自己的 IDP 並從中受益。
 

IDP 同樣可以有效幫助中小型企業組織,讓他們從最開始就採用 best practice 和標準,而不必在建立和維護自己的基礎設施和工具方面投入過多的時間和資源。IDP 可以透過自動化重複性任務和減少人工錯誤來降低 DevOps 團隊的操作負荷。這樣 DevOps 團隊就可以專注於建設和維護平臺,而不是花費大量時間來回應和解決來自開發人員的 tickets 和 requests。同時,IDP 透過提供一個簡單和一致的介面來訪問平臺的功能,有效改善開發者體驗。開發人員可以進行自我服務,在不用瞭解複雜的工具鏈和配置的情況下執行他們的應用程式。最重要的是,IDP 能夠允許開發人員使用平臺上的功能嘗試和實驗新的想法,測試不同場景,並進行相應最佳化,從而提高軟體產品的創新程度和價值。
 

IDP 無所不能

我們想聊的關於 IDP 的另一個認知誤區是,人們認為 IDP 能夠解決開發者在日常工作中面臨的所有問題和挑戰。現實是,IDP 只是一個幫助開發者高效工作的平臺,為開發者提供一個標準化過程、可靠的平臺和一個具有支援性的環境,但它並不是一個無所不能的解決方案。
 

直白地講,IDP 無法消除開發者溝通、協作、反饋、學習、測試或創新的需要。也就是無論企業是否擁有 IDP,開發人員始終需要與其他團隊及他們的客戶進行交流。開發人員需要了解他們的業務領域、技術領域、使用者需求等,開發者還是得編寫程式碼,然後進行測試、除錯、監控和改進。
 

IDP 總能零失誤構建/部署

另一個關於 IDP 的誤解是 IDP 可以保證應用程式的構建或部署完美無缺。
 

事實上構建軟體、系統和平臺是十分複雜的過程。構建是將原始碼打包成應用程式工件的過程,構建可能由於各種原因而失敗,例如語法錯誤、缺少依賴項、不相容的版本或配置。而部署是將應用程式構件從暫存環境轉移到生產環境的過程,部署也會由於各種原因失敗,例如網路問題、配置錯誤、資源限制、安全漏洞或效能問題。
 

在這個過程中有各種正規化和技術需要採用,工程師們需要進行大量的篩選和選擇。而在構建或部署的過程中,開發人員還需要根據業務內容需求和調整學習新的東西。因此,即便擁有 IDP,企業在構建和部署應用程式時需要測試、監控和故障排除,以確保構建和部署的質量和可靠性。同時,擁有 IDP 也依舊需要在進行部署時考慮對使用者和客戶的影響。企業仍然需要遵循持續整合、持續交付和按需釋出的 best practice。
 

平臺訪問總是安全的

最後一個誤解是大家想當然地認為平臺的訪問是絕對安全的,符合企業的所有政策和法規。然而安全性和合規性並不是靜態的概念或一次性的要求,恰恰相反,安全和合規是動態且持續的過程,需要企業不斷地跟進、適應並相應調整。結合企業內部和外部因素,安全威脅及合規要求可能隨時發生變化。
 

因此企業的 IDP 需要有一個強大的安全態勢和合規性框架,涵蓋平臺生命週期的方方面面,例如認證、授權、加密、審計、日誌、監控、報告等。同時 IDP 應當遵循安全 best practice 和標準,比如最小許可權原則、深度防禦策略及安全設計方法等。與此同時,企業需要定期對 IDP 進行更新和修補,預防潛在的漏洞和風險帶來的安全威脅。
 

企業如何避免陷入 IDP 認知誤區

那麼企業應當如何避免陷入 IDP 認知誤區以更好地利用其優勢呢?這裡我們總結了三個要點供企業參考。
 

採用產品思路

IDP 不僅僅是一個技術專案,而是一個為企業開發人員提供服務的產品。因此,在建立和執行 IDP 時,企業需要採用產品的思路心態。在構建 IDP 時,建議企業考慮並嘗試做到:

  • 需要儘可能去了解內部開發者的需求、期望、偏好和反饋。

  • 在設計 IDP 時以使用者為中心,同時考慮到 IDP 可用性、可及性和使用簡易性。

  • 以敏捷性、質量、可靠性和安全性為前提來交付 IDP。

  • 透過資料驅動的洞察力、實驗和創新來改進企業的 IDP。
     

採用產品思維將會助力企業建立一個實用且有價值的 IDP,為開發人員解決實際問題,為企業提供價值,並以良好的開發人員體驗更好地服務於企業使用者。
 

讓開發者儘早參與進來

這裡我們需要明白 IDP 並不是企業為開發者建立的平臺,而是企業和開發者共同建立的。因此,企業需要讓開發者們儘早並積極參與到 IDP 建設專案中,並嘗試做到:

  • 徵求開發者們對 IDP 的願景、戰略、功能和設計的意見和反饋。

  • 讓開發者們參與 IDP 的開發、測試、部署和操作。

  • 賦予開發者們使用 IDP 的自主性、靈活性和自我服務的權力。

  • 對開發者們進行相關培訓,以深入瞭解 IDP 的好處、使用方式和 best practice。
     

儘早和經常地讓企業的開發人員參與進來,有助於企業與開發者們建立信任關係,這樣能夠更好地瞭解他們的需求和期望,確保他們對 IDP 的採用度和滿意度,從而培養合作和創新的文化氛圍。
 

平衡抽象和透明度

一個好的 IDP 應該抽象出底層工具和技術的複雜性和操作。當然,這並不意味開發人員可以對底層工具和技術一無所知。企業在建立和使用 IDP 時,需要對底層技術與工具的抽象和透明度進行平衡。具體來說就是:

  • 充分將底層工具與技術抽象出來,從而簡化和規範開發者的工作流程。

  • 保證底層工具和技術的透明度,以便開發者更好地進行了解。

  • 提供足夠的訪問和控制,讓開發人員能夠定製他們的應用程式並在需要時進行故障排除。

  • 保證 IDP 可見性和可觀察性,以監測和最佳化其應用程式的效能和質量。
     

平衡好抽象和透明度能夠幫助企業更好地構建 IDP,從而為開發者們提供充足的背景資訊和知識,有效降低開發人員的認知負荷,這樣開發人員就可以更高效地構建高質量的軟體。
 

總結

IDP 是一個強大的工具,它可以幫助企業透過簡化應用開發流程,更快更有效地交付數字產品。但是如果企業帶著對 IDP 的認知誤區和誤解,可能會大大降低其採用的效果,因為這些誤區往往會導致企業產生不切實際的期望、作出錯誤的決定、最終浪費資源或錯過商業機會。為了避免這些誤區,企業需要充分了解 IDP 的真正性質和價值,以及 best practice。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70026925/viewspace-2944465/,如需轉載,請註明出處,否則將追究法律責任。

相關文章