几种新DevOps工具介绍

22-11-06 banq

10个新DevOps工具分类:
  • 基础设施即代码:Pulumi
  • 安全性:SOPS,Trivy
  • K8s/多集群:Cluter API、Linkerd
  • CI/CD:GitHub Actions、Tekton、HashiCorp Harness
  • 监控:Thanos
  • Policy-as-Code:HashiCorp Sentinel


Pulumi

Pulumi是一个基础设施即代码(IaC)工具,就像Terraform、AWS CDK、CDK for Terraform等。

现在,虽然Terraform可能已经成为IaC的最流行的选择,但也有一些缺点。

你必须学习一种新的 "语言",即HCL(HashiCorp Config Language)。
HCL本身并不确切是一种 "语言",或者至少不是一种非常强大的语言。例如,在2020年底之前,你不能在一个模块上使用for循环。

进入Pulumi:
那么,它是什么呢?
如果你熟悉AWS CDK,你很容易理解:它就是那个。除了它是通用的(至少它试图这样做),并与每个云兼容。
如果你不知道AWS CDK,那就想想这个。Pulumi允许你用你已经知道的编程语言管理你的基础设施,消除了学习另一种配置语言的开销。

Pulumi为谁服务?好问题。
如果你已经熟悉一些编程语言,如TypeScript、Python、Go、C#、Java等,但你并不真的想学习又一种HCL语言,那么Pulumi可能适合你。如果你使用AWS,从技术上讲,你也可以使用AWS CDK,但如果你计划协调一个混合云架构,Pulumi更有意义。

如果你已经在大量使用Terraform,但你已经厌倦了HCL的局限性,而且你不太喜欢使用`count`和内置函数,降低了基础设施代码的可读性,你也可以尝试一下Pulumi。
这个工具已经不 "新 "了;它在GitHub上有超过14000颗星。但它比Terraform要新。如果它能解决你的一个具体问题,那就试一试吧。

SOPS

SOPS是Secrets OPerationS的缩写,是一个开源的文本文件编辑器,可以自动加密/解密文件。

重点是文本编辑器、加密和自动化。

通常情况下,当你想加密一个文本文件时,你会这样做:

  • 使用你最喜欢的编辑器来编写、编辑和处理文本数据,并将其保存为一个文件。
  • 使用一个加密/解密工具对整个文件进行加密。


当你需要读取加密后的文件时:
  • 首先,你必须使用一个加密/解密工具对文件进行解密。
  • 用你选择的文本编辑器打开解密后的文件(现在它是一个普通的文本文件)。

这个 "正常 "过程的缺点很明显:你需要两个工具(一个编辑器和一个加密/解密工具)来完成一项工作。

你可能知道我想说什么,你是对的。SOPS就是为了这个。

简而言之,它可以与许多加密服务(如HashiCorp Vault、AWS KMS等)集成,自动加密你的秘密文件,使使用git repo来存储秘密成为可能,并易于协作。

Trivy

Trivy是一个安全扫描器。它可靠、快速、轻松,可在您需要的任何地方工作。Trivy 有不同的扫描器来寻找各种安全问题,最著名的用例是容器镜像已知漏洞 (CVE) 扫描。
您可以在本地将其作为 CLI 工具运行,以在将其推送到容器注册表或部署应用程序之前扫描本地容器映像和其他工件。
此外,Trivy 旨在用于 CI 并且可以轻松地与您的 CI 管道集成,从而完美契合“连续一切”的 DevOps 心态。

Cluster API

Cluster API是一个 Kubernetes 子项目,专注于提供声明性 API 和工具来简化配置、升级和操作多个 Kubernetes 集群。
如果官方的定义让你感到困惑,请想一想:你可以运行一条kubectl apply命令来创建一个K8s集群,而且它适用于AWS、Azure、DigitalOcean、Docker、GCP、OpenStack等等。

不需要为K8s集群创建Terraform模块(或者更糟糕的是,试图弄清楚别人的模块的所有参数),不需要弄清楚如何为AWS使用eksctl,为另一个云使用其他东西;只需要kubectl apply来创建集群。听起来令人印象深刻,对吗?我知道。这就是为什么它被列入了 "值得关注的十大工具 "名单。

Tekton

Tekton 是一个CI,其主要特点是:

  • 你可以在一个K8s集群中运行它。
  • 你可以像K8s原生资源一样定义管道,然后简单地用kubectl应用它。
  • 现在,它既有仪表盘又有CLI。
  • 此外,Tekton可以让你在多种环境中构建、测试和部署,如虚拟机或无服务器。你还可以使用Tekton管道在各种云供应商或混合环境中进行部署。


你应该使用它吗?我的看法是,如果:
  • 你必须 "拥有 "你的CI系统(例如,由于某种原因,使用GitHub Actions免费配额对你来说不是一个选项)。
  • 你已经在使用K8s。
  • 你喜欢与K8s互动的方式。

那就试一试Tekton吧。

安装很简单;你可以快速启动和运行。

Thanos
如果你有一个小的基础设施,将保留时间调整为几年并没有错;目前的TSDB实现完全能够处理这个问题。对于更大的应用,考虑一个更大的分布式TSDB。而Thanos是一个解决这个问题的方案:它是一个开源的、高可用的普罗米修斯设置,具有长期存储功能,专注于长期存储。如果你已经遇到了普罗米修斯存储的问题,可以试试Thanos。