全文共2431字,預計學習時長7分鐘
三個主流雲提供商(AWS/Azure/GCP)現在都支援透過自定義資源定義(CRDs)來從Kubernetes中提供和管理雲服務。AWS有在開發者預覽過程中服務Kubernetes的AWS控制器(ACK);Azure最近釋出了Azure 服務執行器(棄用了Azure的開放服務代理器);GCP研發了配置聯結器作為GKE的附屬物。
雖然諸如Terraform,Ansible和puppet的基礎設施即程式碼類(IaC)工具仍在被廣泛運用於管理雲基礎設施,但對使用Kubernetes管理的雲服務的支援表明,企業將把Kubernetes作為雲基礎設施的焦點,這是一個巨大的轉變。
轉變的有利之處在於開發者們現在能用同樣的工具來管理Kubernetes應用和其他使用Kubernetes APIs的雲服務,潛移默化中將工作流精簡化。然而,根據你當前的基礎設施工作流或對Kubernetes專業知識的掌握程度,你可能並不希望讓Kubernetes和其他雲工作負載之間實現這種緊密的耦合。
Pulumi
提起Iac工具,Pulumi近期宣佈了它將在B系列投資3750萬美元,挑戰Terraform在這個領域中的主導地位。與傳統的IaC產品不同,Pulumi選擇讓開發者們使用他們喜歡的語言(比如Go,Python,Javascript)編寫基礎架構程式碼,而不是強迫他們使用另一種基於JSON/YAML的領域特定語言。
這個選擇使Pulumi比Terraform更為靈活,且讓開發者們能使用現有的測試框架來檢驗他們的基礎架構。然而,考慮到它畢竟初出茅廬,Pulumi的社群還是遠遠小於Terraform。
Terragrunt和TFSEC
與Pulumi不同,Terraform透過它開放資源的社群彌補短板。Terragrunt是一個圍繞Terraform的“薄包裝器”,透過將配置組織到版本化的模組中,幫助團隊管理大型Terraform專案。Terragrunt實施了由Gruntwork聯合創始人Yevgeniy Brikman提出的一些最佳舉措。
雖然Terragrunt是完全開源的,但Gruntwork最近宣佈為尋求更多可生產服務的企業,開始提供商業支援。TFSEC是另一個能夠實施Terraform工程的開源工具。它透過使用靜態分析來標記基礎架構程式碼中的潛在安全威脅。
隨著安全問題在DevSecOps運動中得到越來越多的關注,像tfsec這樣的工具在未來將變得越來越重要。
Tekton
CI/CD市場充斥著Jenkins和Spinnaker等成熟工具以及ArgoCD等新興的雲原生工具。Tekton是這個領域的新玩家,它專注於Kubernetes的工作負載。Tekton最初是Knative專案的一部分,後來捐給了持續交付基金會(CDF)。
Tekton特殊之處在於它透過Kubernetes CRDs定義管道。這允許管道在保持Kubernetes的原有特性(例如回滾)的同時,並與Jenkins X或ArgoCD等現有工具整合,以支援複雜的端到端CI/CD管道。
Trivy
容器的漏洞掃描正在成為所有CI/CD管道的重要組成部分。像CI/CD市場一樣,有很多開源的商業工具,包括Docker Bench for Security、Clair、Cilium、Anchore Engine和Falco。
Trivy是一個來自AquaSecurity的工具,它不僅可以掃描容器,還可以掃描程式碼中的底層包。結合Aqua Security的kube-bench,組織可以更容易地將安全性融入到應用程式開發工作流中。
ShellCheck
儘管在基礎設施工具領域有了巨大的改進,shell指令碼仍然保持在各種工作流中完成簡單任務的功能。ShellCheck是一個靜態分析工具,用於對shell指令碼進行語法和常見錯誤的修改。ShellCheck可以在web、終端/CI以及您最喜歡的文字編輯器(如Vim、Sublime、Atom、VS Code)中執行。
Pitest/Stryker
Pitest (Java)和Stryker(Javascript、c#、Scala)都用各自的語言實現了突變測試。進行突變測試時,會故意向測試注入錯誤並檢查即使發生了突變,測試是否仍然透過,以此來衡量測試的質量。當測試用例發生突變時,此次單元測試就失敗了。突變測試補充測試覆蓋率,以檢測未測試和未充分測試的程式碼。
Litmus
早在2011年,Netflix就用chaos Monkey作為猿類軍隊工具套件的一部分推廣了混沌工程。在Kubernetes的世界裡,有很多混亂的工程工具,如chaoskube、kube-monkey和PowerfulSeal,還有像Gremlin這樣的商業平臺。我想強調的是,Litmus是一種成熟的混沌工程解決方案,它可擴充套件且易於使用。
Litmus是一個輕量級的Kubernetes運算子,由ChaosEngine、ChaosExperiment和ChaosResult組成。Litmus支援細粒度的實驗,這種實驗不僅僅是簡單地在名稱空間中殺死隨機的pods,而是透過ChaosResult CRD顯示結果,而不是將可觀察性留給使用者。
我們一起分享AI學習與發展的乾貨