Governe as soluções modernas de plataforma de aplicativos
O Cloud Adoption Framework fornece uma metodologia para melhorar sistemática e incrementalmente a governança do seu portfólio de nuvem. Este artigo demonstra como você pode estender sua abordagem de governança para clusters Kubernetes implantados no Azure ou em outras nuvens públicas ou privadas.
Base de governação inicial
A governança começa com uma base de governança inicial, muitas vezes referida como MVP de governança. Essa base implanta os produtos básicos do Azure necessários para fornecer governança em seu ambiente de nuvem.
A base inicial da governação centra-se nos seguintes aspetos da governação:
- Rede híbrida básica e conectividade.
- RBAC (controle de acesso baseado em função) do Azure para controle de identidade e acesso.
- Padrões de nomenclatura e marcação para identificação consistente de recursos.
- Organização de recursos usando grupos de recursos, assinaturas e grupos de gerenciamento.
- Utilize a Política do Azure para aplicar políticas de governança.
Esses recursos da base de governança inicial podem ser usados para governar instâncias modernas de solução de plataforma de aplicativos. Mas, primeiro, você precisará adicionar alguns componentes à base inicial para aplicar a Política do Azure aos seus contêineres. Depois de configurado, você pode usar a Política do Azure e sua base de governança inicial para controlar os seguintes tipos de contêineres:
Expandir as disciplinas de governança
A base de governança inicial pode ser usada para expandir várias disciplinas de governança para garantir abordagens de implantação consistentes e estáveis em todas as suas instâncias do Kubernetes.
A governança dos clusters do Kubernetes pode ser analisada com cinco perspetivas distintas.
Governança de recursos do Azure
A primeira é a perspetiva de recursos do Azure. Garantir que todos os clusters cumpram os requisitos da sua organização. Isso inclui conceitos como topologia de rede, cluster privado, funções RBAC do Azure para equipes SRE, configurações de diagnóstico, disponibilidade de região, considerações sobre o pool de nós, governança do Registro de Contêiner do Azure, opções do Balanceador de Carga do Azure, complementos AKS, configurações de diagnóstico e assim por diante. Essa governança garante consistência na "aparência" e na "topologia" dos clusters em suas organizações. Isso também deve se estender à inicialização pós-implantação do cluster, como quais agentes de segurança devem ser instalados e como eles devem ser configurados.
Os aglomerados de flocos de neve são difíceis de governar em qualquer capacidade central. Minimize as discrepâncias entre clusters para que as políticas possam ser aplicadas uniformemente e clusters anômalos sejam desencorajados e detetáveis. Isso também pode incluir tecnologias usadas para implantar os clusters, como ARM, Bíceps ou Terraform.
A Política do Azure aplicada ao nível do grupo de gestão/subscrição pode ajudar a fornecer muitas destas considerações, mas não todas.
Governança da carga de trabalho do Kubernetes
Como o Kubernetes é em si uma plataforma, o segundo é a governança do que acontece dentro de um cluster. Isso incluiria coisas como orientação de namespace, políticas de rede, RBAC do Kubernetes, limites e cotas. Isso seria governança aplicada às cargas de trabalho, menos ao cluster. Cada carga de trabalho será única, uma vez que todas elas resolvem diferentes problemas de negócios e serão implementadas de várias maneiras com várias tecnologias. Pode não haver muitas práticas de governança "tamanho único", mas você deve considerar a governança em torno da criação/consumo de artefatos OCI, requisitos da cadeia de suprimentos, uso do registro de contêiner público, processo de quarentena de imagens, governança do pipeline de implantação.
Considere também padronizar em torno de ferramentas e padrões comuns, se possível. Apresente recomendações sobre tecnologias como Helm, malha de serviço, controladores de entrada, operadores de GitOps, volumes persistentes e assim por diante. Incluído aqui também estaria a governança em torno do uso de identidade gerenciada por pod e segredos de fornecimento do Key Vault.
Gerar fortes expectativas em torno do acesso à telemetria, para garantir que os proprietários de carga de trabalho tenham acesso adequado às métricas e aos dados de que precisam para melhorar seu produto, ao mesmo tempo em que garante que os operadores de cluster tenham acesso à telemetria do sistema para melhorar sua oferta de serviços. Os dados muitas vezes precisam ser correlacionados entre os dois, garantir que as políticas de governança estejam em vigor para garantir o acesso adequado quando necessário.
A Política do Azure para AKS aplicada no nível do cluster pode ajudar a fornecer alguns deles, mas não todos.
Funções de operador de cluster (DevOps, SRE)
O terceiro é a governança em torno das funções de operador de cluster. Como as equipes SRE interagem com clusters? Qual é a relação entre essa equipe e a equipe de carga de trabalho. São os mesmos? Os operadores de cluster devem ter um manual claramente definido para as atividades de triagem de clusters, como a forma como acedem aos clusters, a partir de onde acedem aos clusters, as permissões que têm nos clusters e quando são atribuídas essas permissões. Certifique-se de que todas as distinções sejam feitas na documentação de governança, na política e nos materiais de treinamento em torno do operador de carga de trabalho versus o operador de cluster nesse contexto. Dependendo da sua organização, eles podem ser os mesmos.
Cluster por carga de trabalho ou muitas cargas de trabalho por cluster
O quarto é a governação em matéria de multiarrendamento. Ou seja, os clusters devem conter um "agrupamento semelhante" de aplicativos possuídos, por definição, todos pela mesma equipe de carga de trabalho e representar um único conjunto de componentes de carga de trabalho relacionados. Ou os clusters devem ser, por design, multilocatários por natureza, com várias cargas de trabalho e proprietários de carga de trabalho diferentes; em execução e governado como uma oferta de serviço gerenciado dentro da organização. A estratégia de governança é notavelmente diferente para cada um e, como tal, você deve governar para que a estratégia escolhida seja aplicada. Se você tiver que oferecer suporte a ambos os modelos, certifique-se de que seu plano de governança esteja claramente definido para quais políticas se aplicam a quais tipos de clusters.
Esta escolha deveria ter sido feita durante a fase da Estratégia porque tem um impacto significativo no pessoal, na orçamentação e na inovação.
Mantenha os esforços atuais
O quinto é em torno de operações, como atualização de imagem de nó (patching) e versionamento do Kubernetes. Quem é responsável por atualizações de imagens de nós, rastreamento de patches aplicados, rastreamento e montagem de planos de remediação para vulnerabilidades e exposições comuns do Kubernetes e AKS? As equipes de carga de trabalho precisam estar envolvidas na validação de seus trabalhos de solução em atualizações de cluster e, se seus clusters não estiverem atualizados, eles ficarão fora do Suporte do Azure. Ter uma governança forte em torno dos esforços de "manter-se atualizado" é fundamental no AKS, ainda mais na maioria das outras plataformas no Azure. Isso exigirá um relacionamento de trabalho muito próximo com as equipes de aplicativos e tempo dedicado por elas, pelo menos mensalmente, para a validação da carga de trabalho para garantir que os clusters permaneçam atualizados. Certifique-se de que todas as equipes que dependem do Kubernetes entendam os requisitos e o custo desse esforço contínuo, que durará enquanto estiverem na plataforma.
Linha de base de segurança
As seguintes práticas recomendadas podem ser adicionadas à sua linha de base de segurança, para levar em conta a segurança de seus clusters AKS:
- Cápsulas seguras
- Tráfego seguro entre pods
- Acesso IP autorizado para a API AKS se não estiver usando clusters privados.
Identidade
Há muitas práticas recomendadas que você pode aplicar à sua linha de base de identidade para garantir um gerenciamento consistente de identidade e acesso em seus clusters Kubernetes:
- Integração com o Microsoft Entra
- Integração RBAC e Microsoft Entra
- Identidades gerenciadas no Kubernetes
- Acessar outros recursos do Azure com a identidade do pod do Microsoft Entra
Próxima etapa: gerenciar soluções modernas de plataforma de aplicativos
Os artigos a seguir levarão você a orientações em pontos específicos da jornada de adoção da nuvem para ajudá-lo a ser bem-sucedido no cenário de adoção da nuvem.