Delivery Hero(DH)のエンジニアリングチームは、複数のKubernetes環境の管理、機密データ、設定の管理を簡素化するためのHelmおよび関連ツールの使用について書いている。他のツールは、helmfile、helm-diff、helm-secretsである。InfoQは、Delivery Hero AGの主任システムエンジニアであるMax Williams氏にコンタクトし、多くの情報を得た。
DHの複数のチームがHelmチャートを使用して、アプリケーションレベルとクラスタレベルのツールをパッケージ化している。Ansible playbookと同様に、Helmfileはどのクラスタにどのチャートがインストールされているかに関する情報を保持する。これらはGitに格納されているので、変更を追跡して最初に本番以外のクラスタにプッシュするのが容易である。ウィリアムズ氏によると、DHのクラスタは数百のノードと数千のポッドで構成されている。
Helm(Kubernetesパッケージマネージャ)は、Kubernetesクラスタにアプリケーションをインストールするために広く使用されている(Helmの用語では「チャート」として)CNCFがホストするプロジェクトである。ほとんどのチームは、自分のクラスタの状態を宣言するためにYAMLファイルを使い始める。ファイル数が増えると、これはすぐに管理不能になる可能性がある。Helmは、アプリケーションをチャートにインストールするのに必要なすべてのリソースをグループ化することによってこれを単純化する。そうすると、helmfileは、helm値ファイル、チャートバージョン、Kubernetesクラスタコンテキストをまとめて管理することによって、さまざまな環境(ステージング、プロダクション)でさまざまなバージョンのチャートを追跡するのに役立つ。
DHが使用する3番目のツールは、バージョン間の変更の色分けされた差分を表示するhelm-diffである。たとえ差分が問題ないように見えても、デプロイされるとうまく行かない可能性がある。Williams氏は、「Helm自体にもう存在しなくなった問題」を除いて、彼らはまだそのような事例に直面していないと述べている。
helm-secretsは、秘密のファイルを暗号化、復号化、表示することができるHelmプラグインで、基本的な暗号化ファイルエディタとしてMozilla sopsツールを使用する。sopsは「暗号化と復号化を透過的に処理するテキストエディタのラッパー」を提供する。これはGCPとAWS Key Management Systems(KMS)の両方を統合している。DHのKubernetesは「主にEKSとGKEでホストされており、一部のチームはAWSでまだkopsクラスタを使用しているが、それほど長くは使用していない」とWilliams氏は述べている。
DHはまた、インフラストラクチャの自動化にはTerraformを、モニタリングにはSysdigとPrometheusを使用している。