Quando usar o Kubernetes
A decisão de usar uma plataforma de orquestração de contêiner como o Kubernetes depende de requisitos de negócios e desenvolvimento. Veja abaixo uma revisão da arquitetura de alto nível da solução de acompanhamento de drones.
A solução é criada como microsserviços projetados como serviços de colaboração menos rígidos. Para simplificar o design e a manutenção da solução, você está implantando esses serviços separadamente um do outro. Veja abaixo a configuração atual da solução.
- Front-end da Web: mostra mapeamentos e informações sobre drones rastreados.
- Serviço de cache: armazena informações frequentemente solicitadas que aparecem no site.
- API RESTful: usada pelos drones rastreados para enviar dados sobre o status deles, como uma localização no GPS e os níveis de carga da bateria.
- Fila: contém os dados não processados coletados pela API RESTful.
- Serviço de processamento de dados: busca e processa os dados da fila.
- Banco de dados NoSQL: armazena os dados de acompanhamento processados e as informações de usuário capturadas do site e do serviço de processamento de dados.
Equipes separadas em sua empresa desenvolvem e têm a propriedade desses serviços. Cada equipe usa contêineres para criar e implantar o serviço dela. Essa nova estratégia permite que as equipes de desenvolvimento acompanhem os requisitos de desenvolvimento de software moderno para automação, teste e estabilidade e qualidade gerais.
A mudança no raciocínio do desenvolvedor resultou em vários benefícios comerciais e de processos para a empresa. Os exemplos incluem um melhor uso de recursos de computação hospedados, novos recursos que aprimoraram o tempo de colocação no mercado e maior alcance de clientes.
No entanto, vários desafios com o gerenciamento de contêineres levaram sua empresa a investigar soluções de orquestração de contêineres. Suas equipes descobriram que dimensionar o aplicativo de acompanhamento para uma grande quantidade de implantações era relativamente fácil, mas o dimensionamento e o gerenciamento de muitas instâncias era difícil.
Há vários outros aspectos a serem considerados. Os exemplos incluem lidar com contêineres com falha, alocação de armazenamento, configuração de rede e gerenciamento do segredos de aplicativos.
Como você aprendeu anteriormente, o Kubernetes fornece suporte para todos esses desafios como uma plataforma de orquestração.
É interessante usar o Kubernetes quando a sua empresa:
- Desenvolve aplicativos como microsserviços.
- Desenvolve aplicativos como aplicativos nativos de nuvem.
- Implanta microsserviços usando contêineres.
- Atualiza contêineres em escala.
- Requer rede de contêineres centralizada e gerenciamento de armazenamento.
Quando não usar o Kubernetes
Nem todos os aplicativos precisam ser executados no Kubernetes. Como resultado, o Kubernetes pode não ser uma boa opção para sua empresa.
Por exemplo, o esforço de conteinerizar e implantar um aplicativo monolítico pode ser maior do que os benefícios de executar o aplicativo no Kubernetes. Não é simples aplicar recursos como o dimensionamento ou as atualizações de componentes individuais em uma arquitetura monolítica.
O Kubernetes pode introduzir muitos benefícios de negócios para desenvolvimento de software, implantação, gerenciamento e simplificação de processos. No entanto, o Kubernetes tem uma curva de aprendizado acentuada. O design modular do Kubernetes apresenta conceitos potencialmente novos que afetarão as equipes em toda a empresa.
Suas equipes de desenvolvimento precisarão adotar conceitos de design modernos ao desenvolver e projetar aplicativos. Esses conceitos incluem o uso de microsserviços e a conteinerização desses serviços. As equipes também precisam fazer experimentos com os ambientes de contêiner e orquestração para fazer o melhor uso de todas as opções disponíveis.
Caso a sua empresa não esteja pronta para adotar essa mudança, talvez o Kubernetes não seja uma boa opção para ela.