下一年值得關(guān)注的科技與應(yīng)用:運(yùn)營(yíng)開(kāi)發(fā)和網(wǎng)站可靠性工程師看過(guò)來(lái)
本文轉(zhuǎn)載自公眾號(hào)“讀芯術(shù)”(ID:AI_Discovery)。
三個(gè)主流云提供商(AWS/Azure/GCP)現(xiàn)在都支持通過(guò)自定義資源定義(CRDs)來(lái)從Kubernetes中提供和管理云服務(wù)。AWS有在開(kāi)發(fā)者預(yù)覽過(guò)程中服務(wù)Kubernetes的AWS控制器(ACK);Azure最近發(fā)布了Azure 服務(wù)運(yùn)行器(棄用了Azure的開(kāi)放服務(wù)代理器);GCP研發(fā)了配置連接器作為GKE的附屬物。
雖然諸如Terraform,Ansible和puppet的基礎(chǔ)設(shè)施即代碼類(lèi)(IaC)工具仍在被廣泛運(yùn)用于管理云基礎(chǔ)設(shè)施,但對(duì)使用Kubernetes管理的云服務(wù)的支持表明,企業(yè)將把Kubernetes作為云基礎(chǔ)設(shè)施的焦點(diǎn),這是一個(gè)巨大的轉(zhuǎn)變。
轉(zhuǎn)變的有利之處在于開(kāi)發(fā)者們現(xiàn)在能用同樣的工具來(lái)管理Kubernetes應(yīng)用和其他使用Kubernetes APIs的云服務(wù),潛移默化中將工作流精簡(jiǎn)化。然而,根據(jù)你當(dāng)前的基礎(chǔ)設(shè)施工作流或?qū)ubernetes專(zhuān)業(yè)知識(shí)的掌握程度,你可能并不希望讓Kubernetes和其他云工作負(fù)載之間實(shí)現(xiàn)這種緊密的耦合。
Pulumi
提起Iac工具,Pulumi近期宣布了它將在B系列投資3750萬(wàn)美元,挑戰(zhàn)Terraform在這個(gè)領(lǐng)域中的主導(dǎo)地位。與傳統(tǒng)的IaC產(chǎn)品不同,Pulumi選擇讓開(kāi)發(fā)者們使用他們喜歡的語(yǔ)言(比如Go,Python,Javascript)編寫(xiě)基礎(chǔ)架構(gòu)代碼,而不是強(qiáng)迫他們使用另一種基于JSON/YAML的領(lǐng)域特定語(yǔ)言。
這個(gè)選擇使Pulumi比Terraform更為靈活,且讓開(kāi)發(fā)者們能使用現(xiàn)有的測(cè)試框架來(lái)檢驗(yàn)他們的基礎(chǔ)架構(gòu)。然而,考慮到它畢竟初出茅廬,Pulumi的社群還是遠(yuǎn)遠(yuǎn)小于Terraform。
Terragrunt和TFSEC
與Pulumi不同,Terraform通過(guò)它開(kāi)放資源的社群彌補(bǔ)短板。Terragrunt是一個(gè)圍繞Terraform的“薄包裝器”,通過(guò)將配置組織到版本化的模塊中,幫助團(tuán)隊(duì)管理大型Terraform項(xiàng)目。Terragrunt實(shí)施了由Gruntwork聯(lián)合創(chuàng)始人Yevgeniy Brikman提出的一些最佳舉措。
雖然Terragrunt是完全開(kāi)源的,但Gruntwork最近宣布為尋求更多可生產(chǎn)服務(wù)的企業(yè),開(kāi)始提供商業(yè)支持。TFSEC是另一個(gè)能夠?qū)嵤㏕erraform工程的開(kāi)源工具。它通過(guò)使用靜態(tài)分析來(lái)標(biāo)記基礎(chǔ)架構(gòu)代碼中的潛在安全威脅。
隨著安全問(wèn)題在DevSecOps運(yùn)動(dòng)中得到越來(lái)越多的關(guān)注,像tfsec這樣的工具在未來(lái)將變得越來(lái)越重要。
Tekton
CI/CD市場(chǎng)充斥著Jenkins和Spinnaker等成熟工具以及ArgoCD等新興的云原生工具。Tekton是這個(gè)領(lǐng)域的新玩家,它專(zhuān)注于Kubernetes的工作負(fù)載。Tekton最初是Knative項(xiàng)目的一部分,后來(lái)捐給了持續(xù)交付基金會(huì)(CDF)。
Tekton特殊之處在于它通過(guò)Kubernetes CRDs定義管道。這允許管道在保持Kubernetes的原有特性(例如回滾)的同時(shí),并與Jenkins X或ArgoCD等現(xiàn)有工具集成,以支持復(fù)雜的端到端CI/CD管道。
Trivy
容器的漏洞掃描正在成為所有CI/CD管道的重要組成部分。像CI/CD市場(chǎng)一樣,有很多開(kāi)源的商業(yè)工具,包括Docker Bench for Security、Clair、Cilium、Anchore Engine和Falco。
Trivy是一個(gè)來(lái)自AquaSecurity的工具,它不僅可以?huà)呙枞萜鳎€可以?huà)呙璐a中的底層包。結(jié)合Aqua Security的kube-bench,組織可以更容易地將安全性融入到應(yīng)用程序開(kāi)發(fā)工作流中。
ShellCheck
盡管在基礎(chǔ)設(shè)施工具領(lǐng)域有了巨大的改進(jìn),shell腳本仍然保持在各種工作流中完成簡(jiǎn)單任務(wù)的功能。ShellCheck是一個(gè)靜態(tài)分析工具,用于對(duì)shell腳本進(jìn)行語(yǔ)法和常見(jiàn)錯(cuò)誤的修改。ShellCheck可以在web、終端/CI以及您最喜歡的文本編輯器(如Vim、Sublime、Atom、VS Code)中運(yùn)行。

Pitest/Stryker
Pitest (Java)和Stryker(Javascript、c#、Scala)都用各自的語(yǔ)言實(shí)現(xiàn)了突變測(cè)試。進(jìn)行突變測(cè)試時(shí),會(huì)故意向測(cè)試注入錯(cuò)誤并檢查即使發(fā)生了突變,測(cè)試是否仍然通過(guò),以此來(lái)衡量測(cè)試的質(zhì)量。當(dāng)測(cè)試用例發(fā)生突變時(shí),此次單元測(cè)試就失敗了。突變測(cè)試補(bǔ)充測(cè)試覆蓋率,以檢測(cè)未測(cè)試和未充分測(cè)試的代碼。
Litmus
早在2011年,Netflix就用chaos Monkey作為猿類(lèi)軍隊(duì)工具套件的一部分推廣了混沌工程。在Kubernetes的世界里,有很多混亂的工程工具,如chaoskube、kube-monkey和PowerfulSeal,還有像Gremlin這樣的商業(yè)平臺(tái)。我想強(qiáng)調(diào)的是,Litmus是一種成熟的混沌工程解決方案,它可擴(kuò)展且易于使用。
Litmus是一個(gè)輕量級(jí)的Kubernetes運(yùn)算符,由ChaosEngine、ChaosExperiment和ChaosResult組成。Litmus支持細(xì)粒度的實(shí)驗(yàn),這種實(shí)驗(yàn)不僅僅是簡(jiǎn)單地在名稱(chēng)空間中殺死隨機(jī)的pods,而是通過(guò)ChaosResult CRD顯示結(jié)果,而不是將可觀察性留給用戶(hù)。