如何基于 Kubernetes 實(shí)現(xiàn)優(yōu)質(zhì)開發(fā)者平臺(tái)體驗(yàn)?
作者|Andy Suderman
翻譯|Seal軟件
鏈接|https://cloudnativenow.com/features/enable-a-great-kubernetes-developer-platform-experience/
內(nèi)部開發(fā)者平臺(tái)(或 IDP)是使開發(fā)團(tuán)隊(duì)能夠更快、更輕松、更一致地交付應(yīng)用程序的基礎(chǔ)設(shè)施。Kubernetes 本身是一個(gè)功能強(qiáng)大的平臺(tái),但它引入了太多復(fù)雜性和功能,因此不能簡(jiǎn)單地將其作為 IDP 交給開發(fā)團(tuán)隊(duì)。若要期望他們能取得成功,非常重要的一點(diǎn)是要設(shè)置一些防護(hù)措施,使他們能夠有效地使用 K8s,而不會(huì)增加與可靠性、成本效益和安全性相關(guān)的風(fēng)險(xiǎn)。
雖然 Kubernetes 本身并不適合作為 IDP,但它是構(gòu)建 IDP 的堅(jiān)實(shí)基礎(chǔ)。Kubernetes 為平臺(tái)工程師提供了許多工具,例如,它可以為開發(fā)人員構(gòu)建 IDP、提供更簡(jiǎn)化的構(gòu)建和運(yùn)行應(yīng)用程序的方式。因此需要考慮的問題是,如何構(gòu)建一個(gè)既能為開發(fā)人員提供良好體驗(yàn),又不會(huì)妨礙部署到生產(chǎn)環(huán)境的平臺(tái)。通過使用策略和治理、基于角色的訪問控制(RBAC)和默認(rèn)網(wǎng)絡(luò)策略應(yīng)用安全措施,有一些很好的方法可以防止集群中發(fā)生錯(cuò)誤。
Kubernetes 平臺(tái)的構(gòu)成
基于 Kubernetes 的 IDP 不僅包括 Kubernetes,還包括開發(fā)人員所需的工具和流程。作為 Kubernetes 的安全限制,IDP 還需要您希望在 Kubernetes 中建立的策略和治理。這種組合使您能夠?yàn)殚_發(fā)人員提供一條 "黃金路徑",讓他們能夠更快地部署應(yīng)用程序。Kubernetes 平臺(tái)由四個(gè)主要部分組成:
插件
插件是提供默認(rèn)“開箱即用”功能所需的工具,可擴(kuò)展 Kubernetes 的功能,包括 DNS、TLS、Ingress、日志記錄、跟蹤等。這些工具可以是開源項(xiàng)目也可以是來自供應(yīng)商的軟件。
創(chuàng)建治理
Kubernetes 治理是創(chuàng)建策略、程序和一組標(biāo)準(zhǔn)策略的過程,用于定義和實(shí)施 Kubernetes 平臺(tái)中的最佳實(shí)踐,以及資源管理、調(diào)度、升級(jí)和基于角色的訪問控制。
啟用部署(CI/CD)
這是應(yīng)用程序從代碼進(jìn)入平臺(tái)的方式。在 IDP 中,您為開發(fā)人員創(chuàng)建了一條 "黃金路徑”,讓他們能更輕松地將新應(yīng)用程序和服務(wù)部署到平臺(tái)中,同時(shí)保持高效和安全。
提供反饋
IDP 的一個(gè)重要組成部分是向開發(fā)團(tuán)隊(duì)提供及時(shí)反饋。平臺(tái)的這一部分必須包括快速檢測(cè)和問題通知,并與他們已經(jīng)使用的工具集成。同時(shí)還應(yīng)在代碼審查過程中為開發(fā)人員提供建議的修復(fù)選項(xiàng)。
治理和策略:三個(gè)階段
當(dāng)您考慮如何在 Kubernetes 中應(yīng)用治理和策略時(shí),這確實(shí)是一個(gè)過程。首先,您需要選擇或創(chuàng)建必要的策略。接下來,您需要一種自動(dòng)的方式來識(shí)別違反政策的行為,然后指導(dǎo)如何修復(fù)這些違反策略的行為。最后,需要能夠自動(dòng)阻止這些違規(guī)行為進(jìn)入集群。
團(tuán)隊(duì)在開始部署 Kubernetes 的時(shí)候往往沒有遇到什么初始問題,也就是說在這個(gè)階段開發(fā)團(tuán)隊(duì)在內(nèi)容、編碼和交付應(yīng)用程序和服務(wù)時(shí)沒有什么明顯的問題。但平臺(tái)團(tuán)隊(duì)后來發(fā)現(xiàn)開發(fā)團(tuán)隊(duì)忽略了一些重要的安全措施來幫助維護(hù)安全并持續(xù)應(yīng)用最佳實(shí)踐。因?yàn)樵陂_發(fā)者平臺(tái)中,開發(fā)人員可以輕松地在需要時(shí)部署他們想要的內(nèi)容。除非團(tuán)隊(duì)中有人返回并手動(dòng)檢查所有設(shè)置,否則在出現(xiàn)問題之前可能不會(huì)有任何意識(shí)。
可以使用開源策略引擎(如 Polaris 或 Open Policy Agent (OPA))在 Kubernetes 中自動(dòng)應(yīng)用策略。使用類似的解決方案,您可以確保您的配置與環(huán)境中的策略保持一致,幫助您保持一切順利運(yùn)行。
選擇策略
在開始使用策略執(zhí)行與成本效益、安全性和可靠性相關(guān)的 Kubernetes 最佳實(shí)踐時(shí),開發(fā)人員往往不知道從哪里開始,也不知道應(yīng)該關(guān)注什么。最好的入門方法是確定什么對(duì)您來說最重要,這就是創(chuàng)建策略的方法。如果成本對(duì)你來說是最重要的,那么就把重點(diǎn)放在影響成本的策略上,如資源請(qǐng)求和限制。如果安全是你的首要關(guān)注點(diǎn),那就處理以 root 身份運(yùn)行的容器或生成網(wǎng)絡(luò)策略。我們的建議是從小處著手,挑選一兩個(gè)能實(shí)現(xiàn)目標(biāo)的策略,然后全面實(shí)施這些策略。
識(shí)別、修復(fù)和阻止違規(guī)行為
接下來,需要找出當(dāng)前集群中違反策略的地方,并開始逐一糾正這些問題。修復(fù)關(guān)鍵類別中的問題后,您就可以開始在訪問時(shí)執(zhí)行策略了。當(dāng)開始執(zhí)行策略并成功阻止違反策略的行為之后就可以放心了,因?yàn)檫@些問題不會(huì)再次彈出,你可以對(duì)要強(qiáng)制執(zhí)行的下一組策略重復(fù)該過程。隨之也就變得更加高效和安全了。
構(gòu)建強(qiáng)大的 IDP
對(duì)于內(nèi)部開發(fā)人員平臺(tái)而言,應(yīng)用 Kubernetes 治理和策略使您能夠高效地管理資源,幫助控制成本,確保應(yīng)用程序獲得最佳運(yùn)行所需的資源。它還能幫助您通過控制訪問和實(shí)施最佳實(shí)踐來確保安全性和合規(guī)性,并通過建立標(biāo)準(zhǔn)、自動(dòng)化的應(yīng)用部署和擴(kuò)展流程來提高可靠性和彈性。穩(wěn)健的 Kubernetes 治理和策略是構(gòu)建安全、高效、可靠的內(nèi)部開發(fā)人員平臺(tái)的關(guān)鍵組成部分,可滿足開發(fā)人員和整個(gè)組織的需求。