你說的是哪一種 IDP:內(nèi)部開發(fā)者門戶 OR 內(nèi)部開發(fā)者平臺?

在平臺工程實踐中,IDP 這一術(shù)語被高頻提及,因為它幾乎被認(rèn)為是平臺工程實踐的第一步且是開發(fā)者最容易看得見摸得著的部分,是平臺的最前哨。?
那 IDP 到底是什么意思呢?我們在多個場合看到, IDP 即 Internal Developer?Portal?;但也有人看到是 Internal Developer?Platform?,甚至還有人看到同一個上下文中二者混用,同時出現(xiàn)。真相到底是什么??必須搞清楚!?
實際上,從業(yè)內(nèi)實踐和各企業(yè)案例、咨詢公司調(diào)研報告等多個視角來看,IDP 作為一個術(shù)語縮寫確實同時代表了二者,但又無法區(qū)分,而門戶還是平臺,確實是兩個相關(guān)但又范疇不同的實體:
Internal Developer?Portal?內(nèi)部開發(fā)者門戶
是一個平臺能力與開發(fā)者之間的橋梁和界面,它通常是一個中心化的入口,以業(yè)務(wù)開發(fā)人員的視角提供了關(guān)于某個業(yè)務(wù)服務(wù)的所有信息,包括但不限于服務(wù)概覽、CI/CD、環(huán)境、依賴、成品庫包、資源等。典型的內(nèi)部開發(fā)者門戶通常包括:
1. ?全局統(tǒng)一軟件服務(wù)目錄:所有的平臺能力可按需查找和使用?
2. ?API優(yōu)先的開發(fā)者自服務(wù)操作:完善的API定義、文檔、Demo/Playground ?
3. ?開發(fā)者優(yōu)先的產(chǎn)品級體驗:新手入門,文檔,發(fā)布,管理基礎(chǔ)設(shè)施等
Internal Developer?Platform?內(nèi)部開發(fā)者平臺
狹義上的內(nèi)部開發(fā)者平臺即組織內(nèi)部的產(chǎn)品研發(fā)平臺,可能是一組工具集,也可能是有一定成熟度的平臺組合,包含IDE,Git,CI/CD,IaC等;而廣義上則指一切服務(wù)于內(nèi)部開發(fā)者的平臺類服務(wù),包括開發(fā)、測試、發(fā)布、部署、運行、可觀測、資源彈性能力管理等等,同時還有專門的第三方解決方案提供有一定通用性的內(nèi)部開發(fā)者平臺框架,但一定是不局限于PaaS平臺。
內(nèi)部開發(fā)者平臺的一大好處是,可以有效管理“蔓延”,因為有越來越多的各種SDK、服務(wù)、工具及類庫可供開發(fā)者使用,但無節(jié)制地使用會帶來高昂的隱形成本,導(dǎo)致嚴(yán)重的“蔓延”,而內(nèi)部開發(fā)者平臺可通過有效管理這類資源,減少同質(zhì)資源的過度蔓延來降低隱形成本。舉個例子,在中大型企業(yè)內(nèi)部很容易出現(xiàn)某一個功能點就有3個以上甚至更多的備選方案,而且可能各有特色,對于開發(fā)者來講選擇的靈活度和自由度大幅增加,但其實對于企業(yè)來講隱形成本也隨之上升。
所以,我們的結(jié)論是:
平臺側(cè)重能力與資源的封裝,門戶則是基于平臺能力之上,側(cè)重開發(fā)者體驗的提升(包括但不限于產(chǎn)品目錄、服務(wù)生命周期可視化管理、自服務(wù)能力、文檔體驗、onboarding引導(dǎo)、Demo等);二者有機(jī)結(jié)合,通過降低開發(fā)者認(rèn)知負(fù)荷來交付自服務(wù)和產(chǎn)品級體驗的平臺服務(wù)。

參考資料
https://www.configure8.io/blog/internal-developer-portal-vs-internal-developer-platform-whats-the-difference-and-why-both-matter
https://internaldeveloperplatform.org/what-is-an-internal-developer-platform/?
NOTE
如果你對平臺工程及IDP等話題感興趣,希望了解和學(xué)習(xí)更多或與同行有更多交流和分享,歡迎關(guān)注并加入:
?平臺工程社區(qū)? PECommunity?
https://github.com/pecommunity?