Este é o último blog de uma série sobre os desafios decorrentes da transformação digital.
Confusão de contêineres.
Um dos principais propósitos dos contêineres e da orquestração que os gerencia (sem esforço, como nos dizem) é a escala eficiente. Existem outros benefícios, principalmente orientados ao desenvolvimento, que impulsionam a escolha de adotar contêineres, mas, da perspectiva do NetOps, é uma questão de escala e (falta de) segurança.
Arquiteturas de entrega tradicionais não funcionam dentro de ambientes de contêiner. A comunicação é errática, dinâmica e imprevisível. As comunicações são multiplicadas e o ambiente é altamente volátil. O que parece agora não é o que parecerá em dois minutos, muito menos em dez.
Mas você ainda precisa fornecer serviços básicos de rede e segurança para os "aplicativos" dentro do ambiente do contêiner. Você não poderá inserir identidade e controle de acesso, nem gerenciar certificados entre instâncias variáveis. Encerrar o SSL no aplicativo se torna um pesadelo para você e para os próprios aplicativos. Até mesmo a segurança de aplicativos, como defesa contra bots e proteções OWASP Top Ten, se tornam problemáticas porque onde você os coloca em um ambiente tão volátil? Além disso, não é como se você fosse mapear todos os serviços em um ambiente de contêiner para um IP público. Você precisa de um caminho de entrada seguro para fornecer serviços de aplicativos sem interferir na operação dentro do ambiente.
Felizmente, aplicativos implantados como vários microsserviços dentro de um ambiente de contêiner ainda são aplicativos (até mesmo APIs) e têm um ponto de extremidade “específico do aplicativo” que fornece uma oportunidade de estabelecer um caminho de entrada seguro sem mexer no ambiente do contêiner. Isso permite uma arquitetura de rede bifurcada baseada em princípios tradicionais de estabilidade e escala, ao mesmo tempo em que adota abordagens modernas para escala baseada em software para contêineres. Essa arquitetura de duas camadas permite um ponto de extremidade confiável e seguro por meio do qual é feita a transição do backbone N-S para os caminhos E-W dentro de um ambiente de contêiner.
Uma arquitetura de duas camadas fornece a confiabilidade e a segurança necessárias, ao mesmo tempo em que oferece suporte à velocidade e à escala exigidas por aplicativos em contêineres. Ao restringir o caos dos contêineres, você mantém a sanidade e isola a infraestrutura compartilhada da entropia inerente aos aplicativos em contêineres. Isso tem o benefício não intencional de dar suporte a um pipeline de produção com alterações variáveis. Embora os aplicativos possam mudar com mais frequência no ambiente em contêiner, as alterações no controle de identidade e acesso e outros serviços relacionados à segurança provavelmente serão menos frequentes. As atualizações podem ser realizadas independentemente umas das outras, liberando o DevOps para se mover em um ritmo mais rápido sem sobrecarregar o NetOps no lado N-S da "casa".
O ponto de entrada pode gerenciar as políticas específicas do aplicativo (desempenho e alguma segurança), enquanto o restante da rede de entrada segura cuida do restante. Isso torna a inclusão de contêineres em ambientes de produção que atendem a aplicativos legados um processo mais tranquilo e menos doloroso, pois é o menos perturbador.
É importante lembrar que para uma arquitetura de duas camadas funcionar, o ingress efetivamente se torna o aplicativo. Ou pelo menos seu equivalente virtual.
Mesmo que haja uma centena de microsserviços do outro lado do “muro” do contêiner, a entrada é o ponto estratégico de controle que permite escala, acessibilidade e protege os aplicativos contra ameaças externas. Use o ingresso para aplicar os serviços que são melhor gerenciados antes que o tráfego entre no reino volátil e incerto do mundo dos contêineres.
...E isso conclui nossa exploração da surpreendente verdade sobre a transformação digital. Há muitos outros problemas e obstáculos que precisam ser abordados, mas os quatro abordados nesta série: caos na nuvem, segurança ignorada, falta de economia de escala e confusão de contêineres são provavelmente os mais críticos entre os que devem ser abordados.
Se você estiver ciente dos impactos da mudança, será capaz de aproveitar o poder da automação, segurança e escala baseadas em software e novas arquiteturas para navegar com sucesso em seu caminho para o novo data center.