Automação da plataforma e DevOps para AKS

Como uma construção nativa da nuvem, o Kubernetes requer uma abordagem nativa da nuvem para implantação e operações. O Azure e o Kubernetes são plataformas abertas e extensíveis com APIs ricas e bem arquitetadas, oferecendo oportunidade e capacidade de automação em toda a extensão. Planeje uma abordagem de DevOps e altamente automatizada confiando na automação e nas práticas recomendadas gerais de DevOps.

Considerações de design

Aqui estão algumas considerações de design para automação da plataforma AKS e DevOps:

  • Considere as limitações de serviço do Azure e seu ambiente de integração contínua e entrega contínua (CI/CD) ao determinar sua abordagem de engenharia e automação. Para outro exemplo, consulte 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 perspetiva de CI/CD. As implantações acontecem automaticamente, portanto, mapeie o controle de acesso de acordo.

  • Considere o uso de prefixos e sufixos com convenções bem definidas para identificar exclusivamente cada recurso implantado. Essas convenções de nomenclatura evitam conflitos na implantação de soluções próximas umas das outras e melhoram a agilidade e a taxa de transferência gerais da equipe.

  • Inventarie os fluxos de trabalho para dar suporte na engenharia, atualização e implantação de sua solução em regimes normais e de Plano de Recuperação de Desastres (DRP). Considere mapear pipelines de acordo com esses fluxos de trabalho, maximizando a familiaridade e a produtividade.

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

    • Implantando, aplicando patches e atualizando clusters
    • Implantando e atualizando aplicativos
    • Implantando e mantendo complementos
    • Failover para recuperação de desastres
    • Implantações azul-verde
    • Manutenção de ambientes canários
  • Considere o uso de uma malha de serviço para adicionar mais segurança, criptografia e recursos 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, rastreando e rastreando implantações e artefatos relacionados.

  • Considere o impacto da mudança de paradigma gado versus animais de estimação . Espere que os pods e outros aspetos do Kubernetes sejam efêmeros e alinhe sua automação e infraestrutura de pipeline de acordo. Não dependa de endereços IP ou outros recursos para ser fixo ou permanente.

Recomendações de design

Aqui estão algumas recomendações de design para automação da plataforma AKS e DevOps:

  • Confie em pipelines ou ações para:

    • Maximize as práticas aplicadas em toda a equipe.
    • Remova grande parte do fardo de reinventar a roda.
    • Forneça previsibilidade e insights em qualidade geral e agilidade.
  • Implante cedo e com frequência usando pipelines baseados em gatilhos e agendados. Os pipelines baseados em gatilhos garantem que as alterações passem pela validação adequada, enquanto os pipelines agendados gerenciam o comportamento em ambientes em mudança.

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

  • Implante usando opções nativas da nuvem. Use a infraestrutura como código para implantar a infraestrutura, incluindo o plano de controle, e use o Helm e o padrão Operator no Kubernetes para implantar e manter componentes nativos do Kubernetes .

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

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

  • Esforce-se para maximizar a simultaneidade de implantação, evitando itens e definições de configuração codificados.

  • Confie em convenções bem conhecidas em implantações relacionadas a aplicativos e infraestrutura. 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.

  • Abrace o turno para a esquerda de forma consistente com:

    • Segurança, adicionando ferramentas de verificação de vulnerabilidades, como a verificação de contêineres, no início do pipeline.
    • Política, usando a política como código e aplicando políticas de forma nativa da nuvem por meio de controladores de admissão.
  • Trate cada falha, erro ou interrupção como uma oportunidade para automatizar e melhorar a qualidade geral da solução. Integre essa abordagem em sua estrutura de engenharia de confiabilidade de turno à esquerda e local (SRE).