Como pensar em CLOUD-NATIVE usando Kubernetes

KUBERNETES Fev 09, 2020

Uma conversa sobre a definição e desenvolvimento de recursos cloud-native usando Kubernetes


Definições

Não há definição fácil e rápida para o que significa cloud-native. De fato, existem outras sobreposições de termos e ideologias. Na sua origem, cloud-native está estruturando equipes, cultura, e tecnologia para utilizar automação e arquiteturas que permitem gerenciar a complexidade e incrementar velocidade. E é aqui que entra o Kubernetes, pois com ele conseguimos nos lançar neste novo mundo de forma simples, rápida e confiável.

Adotar Kubernetes é uma maneira de facilitar e acelerar o trabalho dos times.

Uma observação importante: você não precisa executar na nuvem para ser cloud-native. As técnicas podem ser aplicadas de forma incremental conforme apropriado e devem ajudar a suavizar transição para a nuvem.

O valor real do cloud-native vai muito além da cesta de tecnologias que são intimamente associadas. Para realmente entender para onde nossa indústria está indo, precisamos examinar onde e como podemos tornar as empresas, equipes e pessoas mais bem-sucedidas.

Neste ponto, temos técnicas comprovadamente associadas a tecnologias voltadas para o futuro. Grandes empresas como Google, Netflix e Facebook, dedicaram grandes quantidades de recursos ao esforço e empresas menores e mais flexíveis também estão percebendo valor nisso.

No entanto, existem poucos exemplos dessa filosofia sendo aplicados fora dos adotantes iniciais da tecnologia. Ainda estamos no início desta jornada, quando comparado ao gigantesco mundo de TI.

Com algumas das experiências iniciais sendo comprovadas e compartilhadas, os seguintes temas estão surgindo:

Equipes mais eficientes e mais felizes — as ferramentas cloud-native permitem que grandes problemas sejam resolvidos
divididos em pedaços menores para equipes mais focadas e ágeis.

Dependências reduzidas — trata-se de automatizar muito do trabalho manual que causa dor nas operações e diminuir a indisponibilidade, resiliência e auto-gerenciamento da infraestrutura. Resumindo "espere que os sistemas façam mais por você".

Infraestrutura e aplicativos mais confiáveis — Automação para lidar com o inesperados eventos e falhas. Para Por exemplo, se um único clique de comando ou botão implantar um aplicativo para desenvolvimento,
teste ou produção, pode ser muito mais fácil automatizar a implantação em um desastre com necessidade de recuperação (automática ou manual).

Auditável, visível e depurável — a visibilidade dentro de aplicativos complexos fica comprometida e as ferramentas usadas em aplicativos nativos da nuvem, fornecem muito mais informações sobre o que está acontecendo dentro de um aplicativo.

Segurança profunda — Atualmente, muitos sistemas de TI possuem uma camada externa bem rígida com uso de SSL/TLS, WAF e etc, diferente da camada interna (código). O cloud-native permite que os desenvolvedores possam desempenhar um papel ativo na criação de aplicações seguras por padrão.

Uso mais eficiente dos recursos — usar Kubernetes permite implantar e o gerenciamento de aplicativos e serviços de forma automatizada e abre oportunidades para aplicar técnicas modernas de entrega contínua, observabilidade e demais capacidades modernas. Por exemplo, um orquestrador de cluster Kubernetes como o Rancher pode facilitar a implantação de modelos pré-definidos, em vez de uma equipe de operações gerenciar isso manualmente.

Este é apenas o início de uma discussão que deve ser contínua, existem uma infinidade de tópicos que ainda devem ser abordados e serão, acompanhem os próximos capítulos da novela.


Para saber mais sobre as soluções que a O2B vem aplicando em seus projetos e como engajar no mundo do Kubernetes, entre em contato conosco pelo nosso site.

Helias Rodrigues

Head of Cloud Architect