Kubernetes no SoftDrops
por Micaela L. Rossetti em 23 de novembro de 2018
No SoftDrops do dia 14 de novembro, o desenvolvedor Jones Ambrosi falou aos colegas sobre Kubernetes. Originalmente projetado pelo Google e hoje mantido pela Cloud Native Computing Foundation, o Kubernetes (K8S) é um sistema de orquestração de infraestrutura física/virtual que padroniza a implantação, o dimensionamento e a gestão de containers.
De acordo com Jones, "o Kubernetes foi criado para gerir infraestruturas complexas e possuidoras de muitos recursos a serem disponibilizados para a parte de produção, desenvolvimento e também testes de software". Ele veio para suprir as novas necessidades das VMs (Virtual Machine Managements) que eram menos enxutas e necessitavam de um sistema operacional virtualizado para suportar aplicações, diferente dos containers.
Mas afinal, o que são containers?
Os containers são ambientes portáteis capazes de empacotar aplicações com links, bibliotecas e todos os outros recursos necessários para o seu funcionamento. É um novo nível de virtualização que facilita a fragmentação de aplicações em componentes menores, os microsserviços.
"Os containers conseguem acessar a estrutura do sistema operacional sem interferir no mesmo, sendo independentes dele. Isso significa que a equipe terá maior eficiência operacional do que se estivesse trabalhando com aplicações monolíticas", afirmou Jones.
Kubernetes e suas vantagens
O desenvolvedor explicou que, com o Kubernetes gerenciando os containers, é possível ter maior controle sobre as máquinas, redes, serviços e suas interações entre si. Ele torna possível criar uma infraestrutura real para o cliente já durante o desenvolvimento – ou seja, um determinado set de máquinas pode ser validado antes mesmo de ser entregue.
Segundo Jones, "esse set de máquinas chama-se Pod e nele é possível criar toda a infraestrutura de negócios e de microsserviços, além das conexões entre eles. Como os Pods são isolados uns dos outros, há a garantia de segurança, visto que diversos times podem trabalhar concomitantemente, sem possibilidade de interferências".
Pods são objetos do Kubernetes, assim como Serviços, Volumes e Namespaces. Os Serviços reúnem os Pods e são responsáveis por definir quantas réplicas, containers, uso de CPU e níveis de infraestrutura serão utilizados na aplicação. Já os Volumes são os locais onde os serviços são armazenados; e os Namespaces são agrupamentos lógicos de Pods/Serviços.
"O Kubernetes proporciona uma normalização na criação destes recursos e oferece uma maneira de acesso e controle dos mesmos em forma de API. Com ele é possível ainda estender e implementar novos sistemas que verifiquem e validem, por exemplo, tal infraestrutura", concluiu Jones.