GKE新应用程序管理器让用户创建GitOps交付流程

Google发布了应用程序管理器(Application Manager)测试版,这是GKE的应用程序交付解决方案,可让开发人员创建从开发到生产阶段的应用程序交付流程,同时结合Google所推荐的GitOps最佳实践来管理发布版的配置。

GitOps最先由Kubernetes管理工具厂商Weaveworks提出,Google提到,GitOps的重点在于环境即程序代码(Environments-As-Code),也就是说,应用程序以声明的方式进行部署,而诸如Kubernetes清单(Manifests)等声明文件,则会存储在Git存储库中。

Kubernetes是现托管理容器化应用程序的标准,但Google提到,应对编写、发布和管理三个Kubernetes生命周期管理阶段,对开发人员来说,并非一件轻松的事。Kubernetes应用程序生命周期,第一阶段编写,包含撰写应用程序程序代码和特定应用程序的Kubernetes配置。

第二阶段发布,开发者需要更改程序代码与配置,并且将这应用程序安全地部署到不同的发布环境,而最后的管理阶段,则视需要在运营阶段扩展应用程序。Google提到,Kubernetes生命周期各阶段并没有标准,用户经常要寻找最佳实践和建议,才得以入门。

另一个问题是,Kubernetes应用程序配置太冗长复杂,很难大规模管理,特别是在测试、Staging和生产发布等环境部署的应用程序配置文件,可能存储在多个Git存储库中,其中任何配置的更改,都需要与其他配置文件同步,否则就可能发生错误。

为了解决这些问题,Google开发了应用程序管理器,其遵循GitOps原则,利用Git存储库进行声明式配置管理,可以让开发者在将变更实际部署到环境之前,先对其进行审查和审核。且应用程序管理器还会自动构建和执行建议的Git存储库结构,开发者可以使用Kubernetes配置管理工具Kusnetize,进行无模板自定义配置。

应用程序管理器是以集群附加组件的形式,在GKE集群中执行,主要的功能是从Git存储库中拉取Kubernetes清单(Manifests),并将清单当作应用程序部署在集群中。该管理器还会回应以部署应用程序的元数据,并可以在Google云计算控制台可视化这些应用程序。

因此借由使用应用程序管理器,能以Google推荐的声明方法,创建从开发到生产阶段的应用程序交付流程。