六、 SREWorks应用Helm组件实践
Tips
虽然Helm官方将自身托管的Chart对应的包称为应用(Application),但在一个真实的复杂应用(Application)下,Helm Chart更像是应用(Application)中的组件(Component)。故在SREWorks中将Helm托管的Chart 归为组件(Component)。
点击进入SREWorks的“运维开发”应用,点击运维开发-后端开发-Helm组件就能看到Helm组件列表,图中所示均为安装在本地的Helm组件。
点击上图中“新增Helm组件的按钮”,就可以将Helm组件添加到应用中,而组件来源可以是社区仓库也可以是代码仓库。针对社区中的开源软件,可以直接使用社区仓库中持续更新维护的helm源。
只要在页面上点击Helm组件添加,SREWorks-Appmanager就会根据这些信息会自动生成标准的OAM模型YAML文件。用户无需关心helm install的细节,只需要在页面上点击部署就可以实现一个或多个Helm组件的部署。
部署完成后可在运维应用-应用部署的页面查看部署记录。同时在应用实例中也可以看到这个应用。
SREWorks也在公共市场中添加了几个开源的应用组件供用户使用(持续更新中~),同时也支持用户将自己制作或部署的Helm组件上传到本地市场中。
七、 总结
在SREWorks(Appmanager)的应用体系中,对于承载组件(Component)这个概念而言,Helm是再合适不过的工具。K8S YAML或Kustomize(下面会提到)会让使用者沉浸于过多的细节中难以自拔,而Helm非常明确自己的选择:把复杂交给开发者,把简单交给使用者。Helm的自定义参数可以让开发者把Chart包装为一个黑盒,并明确这个黑盒可以接受什么参数。使用者不用关心黑盒里面是什么,只需要调整这些开发者暴露出来的参数来满足自己的需求即可。开发者、使用者的边界在组织中可以被正常映射为研发团队和SRE团队,在认知和共识层面无需进一步投入成本。