云原生明星创业公司 Weaveworks 倒闭了,GitOps 该何去何从?
自从 2009 年 DevOps 面世以来,xOps 的潘多拉魔盒就被打开了,AIOps、DataOps、DevSecOps、BizDevOps,当然还有最近几年比较火热的 GitOps。但是很不幸的是,就在龙年新春前夕,GitOps 理论提出者—— Weaveworks 倒下了。
时间回到 2 月 5 日,就在大家期待春节长假的时候,一则 Weaveworks 公司即将倒闭的消息刷爆了云原生技术圈。Weaveworks 公司的 CEO Alexis Richardson 在领英上发布了一则消息:
直接用 ChatGPT 把这段话翻译成中文:
大家好,
我非常遗憾地宣布 - 正式地 - Weaveworks 将关闭大门并停止商业运营。客户和合作伙伴将与我们很快公布的财务受托人合作。
该公司的营业额已达到两位数(超过1000万美元),并且在2023年新增产品标志的数量已增加了一倍以上。然而,这种销售增长是不稳定的,因此我们的现金状况也变化莫测。我们需要一个长期增长的合作伙伴或投资者。最后,与一家较大公司进行的非常有前途的并购过程在最后时刻搁浅。因此,我们决定关闭。
我只能向大家为这个艰难的转折道歉。我可以说这不应该发生,但我知道在这个市场上我们并不孤单。更大的船舶也曾迷失方向。Weaveworks团队是一个特别的团队,这是一段漫长而艰难的旅程。我知道每个人都非常有动力为我们的客户、我们的开源社区和彼此做出最大努力。你们做得很好,可以自豪。我们将永远有一个共同的故事。
我们的故事非常激动人心 - 从容器的最初阶段开始,艰难地诞生。有人第一次在Azure上成功运行Kubernetes的那一天。CNCF的开端。我们用一键击出了系统的那一天。新冠疫情的头几个月。然后是投资以及我们为许多出色的企业客户解决GitOps问题的工作。当然也有困难的时刻,但我们大多数情况下都一起解决了。你们分享了所有这些,每个人都应该怀有美好工作回忆,并且有幸知道你们都是最优秀的人之一。
故事并没有在这里结束 - 我们的开源软件无处不在。我正在与几家大型组织合作,以确保CNCF Flux处于最健康的状态。稍后会有更多消息。我想邀请任何阅读此文并想知道接下来将会发生什么或提供帮助的人,请与我联系!谢谢。
我们将不停止探索 我们所有探索的终点 将是到达我们起点的地方 并第一次认识到这个地方。
从字里行间也能看出,weaveworks 虽然有着一定的收入(千万美元),但是市场的不稳定性,也让 weaveworks 的运行遇到了困难,最终不得已做出即将关闭 weaveworks 公司的决定,但是其开源的关于 GitOps 的项目 Flux 将持续健康运行(因为捐赠给了 CNCF)。
众所周知,Weaveworks 成立于 2014 年,员工超过 200 人,曾经获得过 3600万美元的融资,他们根据自身在云计算方面的经验,在 2017 年提出了 GitOps 这个理念,而且开源了 Flux 这个与 GitOps 相关的项目。这几年 GitOps 在国内也是有一阵热度,不少云原生转型的公司都在用 GitOps 的方式实现 CD。
到底什么是 GitOps
根据 gitops.tech 网站对于 GitOps 的定义:GitOps 是对云原生应用程序的一种持续部署方式。GitOps 能够帮助提升研发人员的研发体验,因为研发人员只需要使用自己熟悉的工具(Git 甚至 IDE)进行研发即可,而不用学习其他复杂的工具。
GitOps is a way of implementing Continuous Deployment for cloud native applications. It focuses on a developer-centric experience when operating infrastructure, by using tools developers are already familiar with, including Git and Continuous Deployment tools.
而著名的 Kubernetes 布道师,Google 工程师 Kelsey Hightower 对于 GitOps 的解释为:
GitOps 是声明式基础设施层之上的一种版本化控制的 CI/CD。这样大家可以不用编写脚本就能进行应用交付了。
GitOps: versioned CI/CD on top of declarative infrastructure. Stop scripting and start shipping.
GitOps 有三个核心理念:
- 一切皆代码:因为 GitOps 要将一切(应用程序、基础设施)代码化,然后用 Git 进行版本控制。对于应用程序或者基础设施的变更也都是通过 Git 进行。因为围绕这个点就有了 IaC(基础设施即代码)、安全策略即代码(Security Policy as Code)等。安全策略即代码
- Git 为单一可信源:GitOps 中,所有的变更都是从 Git 侧发起(比如极狐GitLab),这样就能够进行版本化控制,方便安全和审计。
- 声明式系统为基座:声明式系统有一个特征,就是能够自动完成应用(基础设施也可以)期望状态和实际状态的自动同步(sync loop)。
Weaveworks 倒下了,GitOps 还能活着吗?
Weaveworks 的关闭是一件令整个行业都很惋惜的事情,但是其提出的 GitOps 理念并不会随着 Weaveworks 的倒下而烟消云散。因为 GitOps 这一理念确实大大简化了云原生应用程序的部署,而且其开源的用来实现 GitOps 的工具 Flux 也不会死亡,因为捐赠给了 CNCF 基金会,开源社区会一直将 Flux 项目维护下去。
此外,除了 Weaveworks,还有其他公司或者产品能够实现 GitOps,比如 Codefresh 的 ArgoCD、极狐GitLab 的 KAS(Kubernetes Agent Server)。
极狐GitLab 的 GitOps 实现
极狐GitLab 本身是一个 Git 平台,自身的能力天然契合 GitOps 的理念,可以用极狐GitLab 来对代码化了的应用程序或者基础设施进行版本化控制。
这种情况下,极狐GitLab 可以和 GitOps 有关的两个工具:Flux 或者 ArgoCD 直接集成。用极狐GitLab 做 Git 的单一可信源,Flux 或者 ArgoCD 来实现 GitOps 的应用程序部署功能。关于这一部分可以参考过往技术文章:
当然,极狐GitLab 自带的 KAS 也能够实现 GitOps:
详细内容,可以查看技术文章使用 Kubernetes Agent Server 实现 GitOps。
前面提到了,GitOps 讲究一切皆代码,其中有一个重要的理念是 IaC(基础设施即代码)。极狐GitLab 除了能够托管 IaC 相关的文件外,还能够对于 IaC 进行安全扫描。详细内容可以查看技术文章极狐GitLab IaC 安全扫描,保障云原生安全。
更多关于 DevOps 行业的最佳技术实践,欢迎搜索关注【极狐GitLab】公众号,或者搜索极狐GitLab 官网查看。