三大主流云提供商(AWS/Azure/GCP)现已支持通过自定义资源定义(CRD)从Kubernetes提供和管理云服务.AWS有AWS控制器(ACK)用于在开发人员预览中为Kubernetes提供服务;Azure最近发布了AzureServiceRunner(弃用Azure的OpenServiceBroker);GCP开发了一个配置连接器作为GKE的附件。虽然Terraform、Ansible和puppet等基础设施即代码(IaC)工具仍广泛用于管理云基础设施,但对使用Kubernetes管理的云服务的支持表明企业将使用Kubernetes作为云基础设施的焦点,这是一个巨大的变化。这种转变的好处是,开发人员现在可以使用相同的工具来管理Kubernetes应用程序和其他使用KubernetesAPI的云服务,从而巧妙地简化工作流程。但是,根据您当前的基础架构工作流程或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联合创始人YevgeniyBrikman的一些最佳举措。虽然Terragrunt是完全开源的,但Gruntwork最近宣布为寻求更多生产就绪服务的企业提供商业支持。TFSEC是另一个能够实现Terraform项目的开源工具。它通过使用静态分析标记基础结构代码中的潜在安全威胁。随着安全问题在DevSecOps运动中获得越来越多的关注,像tfsec这样的工具在未来将变得越来越重要。TektonCI/CD市场充斥着Jenkins和Spinnaker等成熟工具以及ArgoCD等新兴云原生工具。Tekton是该领域的新成员,专注于Kubernetes工作负载。Tekton最初是Knative项目的一部分,后来捐赠给了持续交付基金会(CDF)。Tekton的特殊之处在于它通过KubernetesCRD定义管道。这允许管道与JenkinsX或ArgoCD等现有工具集成,以支持复杂的端到端CI/CD管道,同时保持原生Kubernetes功能(如回滚)。Trivy容器的漏洞扫描正在成为任何CI/CD管道的重要组成部分。与CI/CD市场一样,有许多开源商业工具,包括DockerBenchforSecurity、Clair、Cilium、AnchoreEngine和Falco。Trivy是AquaSecurity的一个工具,它不仅可以扫描容器,还可以扫描代码中的底层包。结合AquaSecurity的kube-bench,组织可以更轻松地将安全性纳入应用程序开发工作流程。ShellCheck尽管在基础设施工具领域有了巨大的改进,shell脚本仍然可以用于各种工作流程中的简单任务。ShellCheck是一个静态分析工具,用于修改shell脚本的语法和常见错误。ShellCheck可以在Web、终端/CI以及您最喜欢的文本编辑器(如Vim、Sublime、Atom、VSCode)中运行。来源:unsplashPitest/StrykerPitest(Java)和Stryker(Javascript、c#、Scala)都在各自的语言中实现了突变测试。在进行变异测试时,测试的质量是通过有意向测试中注入错误并检查测试是否仍然通过变异来衡量的。当测试用例发生变异时,这次单元测试失败了。突变测试补充了测试覆盖率,以检测未测试和测试不足的代码。早在2011年,Netflix就将ChaosMonkey作为ApeArmy工具套件的一部分推广了ChaosEngineering。在Kubernetes的世界里,有很多乱七八糟的工程工具,比如chaoskube、kube-monkey、PowerfulSeal,还有商业平台,比如Gremlin。我想强调的是,Litmus是一个成熟的混沌工程解决方案,可扩展且易于使用。Litmus是一个轻量级的Kubernetes算子,由ChaosEngine、ChaosExperiment和ChaosResult组成。Litmus支持细粒度实验,不仅仅是简单地杀死命名空间中的随机pod,而是通过ChaosResultCRD显示结果,而不是将可观察性留给用户。
