Automação de plataforma e DevOps para AKS

Como um constructo nativo de nuvem, o Kubernetes exige uma abordagem nativa de nuvem para implantação e operações. O Azure e o Kubernetes são plataformas abertas e extensíveis com APIs sofisticadas e bem arquitetadas, fornecendo oportunidade e capacidade máximas de automação. Planeje uma abordagem de DevOps altamente automatizada, contando com a automação e as melhores práticas de DevOps.

Considerações sobre o design

Estas são algumas considerações sobre design para automação de plataforma e DevOps do AKS:

  • Considere as limitações do serviço do Azure e seu ambiente de CI/CD (integração contínua e entrega contínua) ao determinar sua abordagem de engenharia e automação. Para ver outro exemplo, confira as limitações de uso do GitHub.

  • Ao proteger e proteger o acesso a ambientes de desenvolvimento, teste, perguntas e respostas e produção, considere as opções de segurança de uma perspectiva de CI/CD. As implantações ocorrem automaticamente. Portanto, mapeie o controle de acesso de acordo.

  • Considere o uso de prefixos e sufixos com convenções bem definidas para identificar exclusivamente todos os recursos implantados. Essas convenções de nomenclatura evitam conflitos na implantação de soluções ao lado umas das outras e aprimoram a agilidade e a produtividade gerais da equipe.

  • Faça um inventário dos fluxos de trabalho que terão suporte na engenharia, na atualização e na implantação de sua solução em regimes normais e de DRP (plano de recuperação de desastres). Considere o mapeamento de pipelines de acordo com esses fluxos de trabalho, maximizando a familiaridade e a produtividade.

    Alguns exemplos de cenários e pipelines a serem considerados são:

    • Implantação, aplicação de patches e atualização de clusters
    • Implantação e atualização de aplicativos
    • Implantação e manutenção de complementos
    • Failover para recuperação de desastre
    • Implantações azul-verde
    • Manutenção de ambientes canário
  • Considere o uso de uma malha de serviço para adicionar mais funcionalidades de segurança, de criptografia e de log às suas cargas de trabalho.

  • Considere a implantação de outros recursos, como assinaturas, marcação e rótulos, para dar suporte à sua experiência de DevOps, acompanhando e rastreando implantações e artefatos relacionados.

  • Considere o impacto da mudança de paradigma de gado em relação a animais de estimação. Espere que os pods e outros aspectos do Kubernetes sejam efêmeros e alinhe sua infraestrutura de pipeline e de automação de acordo. Não dependa que endereços IP nem que outros recursos sejam fixos ou permanentes.

Recomendações sobre design

Estas são algumas recomendações de design para automação de plataforma e DevOps do AKS:

  • Dependa de pipelines ou de ações para:

    • Maximizar as práticas aplicadas em toda a equipe.
    • Remover grande parte da carga de reinventar a roda.
    • Fornecer previsibilidade e insights sobre a qualidade e a agilidade em geral.
  • Faça implantações antecipadas e com frequência usando pipelines agendados e baseados em gatilho. Os pipelines baseados em gatilho garantem que as alterações passem pela validação adequada, enquanto os pipelines agendados gerenciam o comportamento nos ambientes em mudança.

  • Separe a implantação de infraestrutura da implantação do aplicativo. A infraestrutura principal muda menos do que os aplicativos. Trate cada tipo de implantação como um fluxo e um pipeline separados.

  • Faça implantações usando opções nativas de nuvem. Use a infraestrutura como código para implantar a infraestrutura, incluindo o painel de controle, e use o Helm e o padrão Operador do Kubernetes para implantar e manter os componentes nativos do Kubernetes.

  • Use o GitOps para implantar e manter aplicativos. O GitOps usa o repositório Git como uma só fonte de verdade, evitando o descompasso da configuração e aumentando a produtividade e a confiabilidade durante reversões e procedimentos relacionados.

  • Use identidades gerenciadas por pod e o provedor do Azure Key Vault para o Driver CSI do Repositório de Segredos para proteger segredos, certificados e cadeias de conexão.

  • Busque a simultaneidade de implantação maximizada, evitando itens de configuração e definições embutidos em código.

  • Dependa de convenções conhecidas em implantações relacionadas à infraestrutura e ao aplicativo. Use controladores de admissão combinados com o complemento Azure Policy para Kubernetes para validar e impor convenções entre as outras políticas definidas.

  • Adote o shift-left de maneira consistente com:

    • Segurança, adicionando ferramentas de verificação de vulnerabilidades, como verificação de contêiner logo no início do pipeline.
    • Política, usando a política como código e impondo políticas de maneira nativa de nuvem por meio de controladores de admissão.
  • Trate cada falha, erro ou interrupção como uma oportunidade para automatizar e aprimorar a qualidade geral da solução. Integre essa abordagem ao shift-left e à sua estrutura de SRE (engenharia de confiabilidade de site).