Quando usar o Kubernetes

Concluído

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.

Diagram of the high-level architecture that describes the drone tracking solution.

  • 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, os esforços para o transporte em contêineres e a implantação de um aplicativo monolítico podem ser maiores do que os benefícios da execução do 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.