loader

Aprenda como realizar deploy sem downtime com o Kubernetes

 

Realizar o deploy sem downtime com o Kubernetes é uma dúvida comum e recorrente na publicação de projetos. Temos também quem questione sobre o que fazer para levar sua aplicação de onde ela está rodando hoje, localmente, para uma máquina virtual. Assim como para aplicações que estejam rodando em Docker, Prime (até mesmo nuvem), e como fazer para a migração para Kubernetes.

Pensando nisso, convidamos o especialista Cloud Native e Kubernetes, Guto Carvalho para teste de nossa plataforma e apontamento dos diferenciais encontrados e questionamentos sobre deploy, Blue Green, Elastic Searsh e Grafana. Confira!

Como realizar um deploy no Kubernetes?

O primeiro passo é preparar a aplicação para rodar em container e dessa forma rodar em Kubernetes. O especialista ressalta a importância de pensar na aplicação e no deslocamento dela, para que ela extraia o melhor de um orquestrador de container.

Você pode, por exemplo, conferir o truel factor que é um framework para desenvolvimento de software, que prepara ele pra rodar na nuvem de forma nativa em cloud native usando os melhores recursos de desenvolvimento e as melhores estratégias pra que seu software consiga rodar em Kubernetes, fazendo uso de recursos que possibilitem escalabilidade, elasticidade, escalar conforme demanda e reduzir o tamanho, possibilitando também alta disponibilidade para poder trabalhar com os limites da sua aplicação.

Quanto mais focar em seu desenvolvimento e usar estratégias modernas para criar seu software, irá conseguir utilizar melhor seu Kubernetes

Resumindo: 

  • Sua aplicação precisa estar modernizada; 
  • É necessário criar uma imagem Docker;
  • Se possível criar também um pacote do tipo Helmet.

O pacote Helmet pode contribuir pra que você consiga instalar sua aplicação no Kubernetes de forma fácil e reaproveitar este pacote para instalar quantas vezes quiser, por exemplo, ambiente de desenvolvimento, homologação, produção, teste, etc. Com o mesmo pacote Helmet você consegue instalar diversos tipos de instâncias da sua aplicação com diferentes configurações, mudando apenas o arquivo de valores.

Arquitetura da aplicação

 

É preciso refletir sobre a arquitetura da sua aplicação, pra que a aplicação consiga escalá-la horizontalmente e verticalmente.

A escalabilidade horizontal significa que você terá várias instâncias da sua aplicação rodando atrás de um balanceador e a sua aplicação continuará funcionando sem nenhum problema. Porém, para isso é necessário pensar também na sua sessão e onde irá armazenar seus dados. Confira também quais são as vantagens do escalonamento automático, em vídeo disponível no Canal do YouTube da SaveinCloud.

No caso de Kubernetes é péssimo persistir dados em disco onde está rodando o container e os pods. A indicação do especialista Guto Carvalho é a star stable, não ter persistência de dados em disco.

Você pode gravar o dado, por exemplo, no banco de dados ou em um s3, Storage externo, onde conseguirá gravar o dado e acessar quando for preciso. Essa é a melhor estratégia para estar rodando sua aplicação em Kubernetes.

O Kubernetes é um universo muito amplo que tem muitas possibilidades a oferecer. Se você se preparar bem, trabalhar a arquitetura da sua aplicação pensando em truel factor, pensando a arquitetura alinhada com a escalabilidade horizontal, terá uma aplicação que vai rodar bem e vai extrair o máximo do seu orquestrador de container, seja Kubernetes ou qualquer outro. 

Estratégias de deploy: como realizar deploy com ‘Blue Green’ no Kubernetes

Para simplificar a explicação, vamos utilizar um exemplo: imagina que você já tenha sua aplicação rodando no Kubernetes chamada de green e você quer subir uma outra aplicação numa versão mais nova que vamos chamar de blue

O que você acredita que é necessário ser feito? Podemos manter a aplicação rodando na versão atual e subir uma aplicação numa versão nova apontando a aplicação nesta versão. Depois, pode tirar a aplicação na versão mais antiga e realizar esse processo em Kubernetes de forma automatizada. Há várias formas de estar fazendo esse processo, por meio de outras tecnologias e métodos.

Além do Blue Green, a gente pode fazer o deploy do tipo Canário no Kubernetes, que é um deploy onde você vai estabelecer um pequeno grupo de usuários, uma região ou país específico. Ele permite acessar uma versão diferente do software enquanto todo o restante está acessando aquela versão comum.

É possível trabalhar também com várias tecnologias para fazer o deploy tipo Canário

O Kubernetes por padrão já faz o deploy tipo Rollout. Ele vai subir uma aplicação nova e só depois que essa aplicação terminar de subir e foi testada ela vai começar a redirecionar o usuário para a aplicação nova. Enquanto isso, ele vai esperar que a aplicação antiga encerre todas as suas transações e conexões e a partir disso você pode tirar ela do ar.

Por padrão, o Kubernetes já faz o Rolloud mas ainda dá pra trabalhar com o deploy Blue Green, tipo Canário e outras metodologias. O Kubernetes está totalmente preparado para  atender demandas relacionadas a este assunto.

Como realizar deploy ‘Elastic Search’ e ‘Grafana’ no Kubernetes?

O Elastic Search durante muitos anos fez melhorias e adaptações para que fosse possível rodar de forma exemplar dentro de um cluster Kubernetes. Hoje, o Elastic Search roda muito bem no Kubernetes e você consegue instalar ele de diferentes formas, sem restrições.

O especialista Guto Carvalho reforça que para o Grafana, funciona da mesma forma. Você pode instalar ele dentro do seu cluster Kubernetes e utilizá-lo. Inclusive tem vários pacotes para o Grafana em Helmet ou manifestos Kubernetes que instalam o Grafana.  

 

Posso rodar o meu banco de dados no kubernetes?

Atualmente, rodar o banco de dados em container já está superado. A performance em container, segurança e estabilidade já está testada e aprovada.

Você pode rodar o seu banco de dados no kubernetes seja PostgreSQL, MySQL, Clickhouse ou até mesmo banco de dados com chave e valor tipo Reds, ITCD. Tudo isso vai funcionar muito bem em Kubernetes e em container! Temos várias cases e pessoas utilizando isso no mundo todo.

O Kubernetes gerenciado da SaveinCloud é uma filter muito interessante disponível no painel de controle e com isso não é necessário se preocupar com o gerenciamento do Kubernetes. Você só precisa se atentar em colocar a sua aplicação para rodar, gerando economia e produtividade.

Gostou da explicação do especialista Cloud Native e Kubernetes, Guto Carvalho? Ele também utiliza a plataforma da SaveinCloud!

Teste GRÁTIS por 14 dias e comprove os diferenciais do Kubernetes SaveiCloud,  clicando aqui

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Open chat