Containerização de TI: espaço para inovação no desenvolvimento
A utilização de contêineres de TI tem sido a grande moda nos últimos anos. E por um bom motivo: ela promete um desenvolvimento de TI mais rápido, mais eficiente e com economia de recursos.
Gostaria de saber mais sobre a conteinerização? Definição, benefícios, casos de uso e soluções: você encontrará todas as respostas de que precisa neste artigo.
Containerização de TI: definição
O que é a conteinerização de TI?
A conteinerização de TI significa empacotar todos os serviços, scripts, APIs e bibliotecas de que um aplicativo precisa. O objetivo é permitir que eles sejam executados em qualquer kernel compatível.
- Não há necessidade de se preocupar com interações ou incompatibilidades com contêineres existentes ou futuros nessa máquina.
- Ele não ocupa tantos recursos quanto uma máquina virtual (VM), que carrega seu próprio sistema operacional e bloqueia recursos quando é iniciada.
Por que usar contêineres?
Quem deve iniciar?
A conteinerização é um formidável acelerador tecnológico que também promove o uso eficiente de recursos. Portanto, você não pode evitar a conteinerização nos seguintes casos:
- Você gerencia um grande número de aplicativos heterogêneos e amplamente independentes.
- Você deseja acelerar a taxa de entrega de seus aplicativos em resposta a mudanças no comportamento de seus alvos e incentivar a inovação.
- Deseja melhorar a elasticidade da sua arquitetura, controlá-la ou preparar-se para um forte crescimento.
Vantagens e desvantagens da conteinerização de TI
Vantagens
- Desenvolvimento mais rápido: o desenvolvedor trabalha em uma estrutura restrita ao que é estritamente necessário, o que o poupa da codificação de testes de interação em particular. Isso também incentiva a criação de sandboxes, de modo que as habilidades possam ser desenvolvidas mais rapidamente e a capacidade de inovação aumentada.
- Portabilidade e, portanto, implantação mais rápida: o contêiner criado é consistente e não sofrerá com a execução em outro ambiente, além de consumir menos energia do que uma VM e, portanto, pode ser movido, copiado e relançado com mais facilidade.
- Menor impacto no desempenho do servidor, pois um contêiner pode liberar rapidamente os recursos não utilizados (memória, armazenamento).
Desvantagens
- Um contêiner Linux não pode ser usado em uma máquina Windows (e vice-versa), a menos que haja uma camada intermediária de virtualização/emulação para o sistema operacional correspondente.
- Houve vários casos em que o kernel de um aplicativo em contêiner foi comprometido (vários casos na nuvem), colocando em risco todos os contêineres desse servidor (físico ou virtual).
Containerização e virtualização: não jogue fora suas VMs
Deve-se observar que a conteinerização não exclui a virtualização da máquina: os dois métodos podem ser misturados de acordo com os requisitos.
Uma máquina virtual pode hospedar contêineres se isso facilitar o gerenciamento e a segurança da sua organização por ambiente ou domínio.
Quais são as soluções de conteinerização existentes?
Docker... e outras plataformas
A conteinerização está, portanto, a serviço da agilidade, que foi ainda mais incentivada pela adoção rápida e generalizada de soluções como o Docker, da empresa francesa dotCloud, com base em tecnologias de código aberto.
Os departamentos de TI, mas também as plataformas de nuvem da Oracle ou da Microsoft o adotaram, e a comunidade Docker Hub disponibiliza um grande número de contêineres sandbox que catalisam a inovação.
Existem outras soluções que facilitam a conteinerização, é claro, tanto para Linux quanto para Windows, FreeBSD ou Solaris:
- LXC (a base histórica da conteinerização no Linux),
- Rocket (rkt) do CoreOs,
- Contêineres do Windows Hyper-V (que são semelhantes a VMs leves),
- Docker para Windows,
- Zonas Oracle,
- FreeBSD Jails, etc.
Um segundo marco foi alcançado na aceleração da adoção de contêineres quando o Google lançou sua solução Kubernetes (K8s) em 2015, o orquestrador líder de mercado.
Mas o que é um orquestrador de contêineres?
A agilidade e a elasticidade prometidas pelo uso maciço de contêineres só são possíveis se eles forem :
- bem gerenciados
- seguros
- fáceis de implementar ou mover de uma máquina para outra,
- enquanto modulam os recursos de infraestrutura conforme necessário.
Além disso, um aplicativo em contêiner pode recorrer a outros serviços que, por sua vez, são sustentados por outros contêineres; portanto, ele precisará que todos esses serviços estejam disponíveis em tempo hábil.
Essa é a função do orquestrador, que se encarregará dos componentes do seu cluster para garantir a implementação e a disponibilidade dos contêineres para atender às necessidades dos seus aplicativos.
Novamente, há muitos concorrentes para o K8s (e às vezes eles coexistem):
- Docker Straw,
- Amazon ECS,
- Rancher,
- Microsoft AKS baseado em... Kubernetes!
Essa combinação de contêiner/rquestrador e, possivelmente, VM, promete atender aos desafios das empresas de alto crescimento ou daquelas que buscam elasticidade, agilidade e inovação.
[Exemplo] Alguns casos de uso concretos
- A DockerCon 2017 foi uma oportunidade para o Paypal apresentar sua jornada na transformação de seus aplicativos para simplificá-los e melhorar sua disponibilidade. Como resultado, 150.000 contêineres surgiram em 2 anos de trabalho para modernizar seus principais aplicativos de negócios para o benefício de seus clientes.
- Mais recentemente, em 2019, a Pipedrive, uma ferramenta de CRM, demonstrou a eficácia da conteinerização para acelerar seus desenvolvimentos e melhorar a elasticidade de sua infraestrutura.
- A Babylon, por sua vez, implementou a conteinerização para promover a portabilidade de seus mecanismos de IA no setor de saúde, mas, acima de tudo, para permitir que os aplicativos mais exigentes usem recursos de nuvem, absorvendo um crescimento de mais de 1.500% em três anos.
- A Blablacar demonstrou como a conteinerização combinada com uma boa orquestração pode economizar vários dias no ciclo de vida de um aplicativo, novamente em um contexto de crescimento exponencial. Também se aguarda ansiosamente o feedback sobre os benefícios da elasticidade da combinação contêiner-nuvem em um contexto de crise, como a crise da saúde, que atingiu o setor de transportes de forma particularmente dura.
- A Docker apresentou as propostas da Netflix para consolidar o uso dessas tecnologias, fornecendo soluções destinadas a proteger seus contêineres, racionalizar seu uso e garantir que eles sejam o mais interoperáveis possível.
Conclusão
Como uma extensão lógica do esforço de racionalização de recursos iniciado pelas VMs, os contêineres também trazem um valor agregado significativo à organização e à inovação no desenvolvimento de TI.
Como acontece com qualquer grande desenvolvimento tecnológico, a conteinerização tem sua parcela de "bad buzz", com as empresas na vanguarda da inovação enfrentando o desafio a uma velocidade vertiginosa.