A engenharia da Delivery Hero (DH) escreveu sobre o uso do Helm e as ferramentas helmfile, helm-diff e leme-secrets para simplificar o gerenciamento de vários ambientes Kubernetes, dados sensíveis e configuração. O InfoQ entrou em contato com Max Williams, engenheiro principal da Delivery Hero AG, para obter mais informações.
Várias equipes na DH usam gráficos Helm para empacotar aplicativos e ferramentas no nível de cluster. O Helmfile mantém informações sobre quais clusters têm gráficos instalados, análogo aos Ansible playbooks. Como são armazenados no Git, é fácil rastrear e enviar as mudanças para os clusters que não estão em produção. O cluster da DH consiste em centenas de nós e milhares de pods, de acordo com Williams.
O Helm, gerenciador de pacotes do Kubernetes, é um projeto hospedado pela CNCF, amplamente usado para instalar aplicativos como "charts" na linguagem do Helm, em clusters Kubernetes. A maioria das equipes começa usando arquivos YAML para declarar o estado dos clusters. Isso pode rapidamente tornar-se insustentável à medida que o número de arquivos aumenta. O Helm simplifica tudo, agrupando os recursos necessários para instalar um aplicativo em um chart. Já o helmfile, ajuda a rastrear diferentes versões de gráficos em diferentes ambientes, armazenamento temporário ou em produção, mantendo juntos os arquivos de valores, as versões gráficas e os contextos de cluster do Kubernetes.
A terceira ferramenta que o DH usa é o helm-diff, que mostra um diff colorindo o código do que muda entre as versões. Mesmo que os diffs pareçam estar ok, as coisas ainda podem dar errado depois de implementadas. Williams disse que não enfrentaram esses problemas ainda, exceto por "problemas que ainda não existem no próprio Helm".
O helm-secrets é um plug-in do Helm que pode criptografar, descriptografar e visualizar arquivos secretos e usa a ferramenta sops do Mozilla como editor de arquivos criptografados. O sops fornece um "wrapper em torno de um editor de texto que cuida da criptografia e descriptografia de forma transparente". Isso se integra ao GCP e ao AWS Key Management Systems, também conhecido como KMS. O Kubernetes do DH é hospedado "principalmente em EKS e GKE, e algumas equipes ainda usam clusters de kops na AWS, mas não por muito tempo", diz Williams.
A DH também usa o Terraform para automação de infra-estrutura e o Sysdig e Prometheus para monitoramento.