O gerenciamento de contêineres é o processo organizado de criação, implantação, dimensionamento e gerenciamento de contêineres usando software de gerenciamento de contêineres, como Kubernetes ou Docker Swarm.
Os contêineres permitem que os desenvolvedores criem aplicativos independentes empacotados com um sistema operacional que pode ser executado em qualquer ambiente. Eles reduzem o tempo de teste e permitem que as operações de TI implantem aplicativos rapidamente em um ambiente de produção operacional. O gerenciamento de contêineres fornece aos usuários a interface, os controles e o mecanismo para criar, adicionar, implantar, substituir, balancear a carga e aumentar ou diminuir os contêineres de aplicativos com eficiência.
Um contêiner é um pequeno ambiente de tempo de execução isolado que contém tudo o que um aplicativo precisa para funcionar, como arquivos, bibliotecas, chamadas e conexões com o kernel do sistema operacional. O ambiente de desenvolvimento de um aplicativo pode ser muito diferente do ambiente de produção em que ele deve ser executado e essas diferenças causam erros e comportamento imprevisível nos aplicativos. Os contêineres agrupam o código e todas as dependências para que sejam executados de maneira previsível e confiável em qualquer ambiente de computador. Um contêiner é isolado até mesmo de outro contêiner, a menos que tenha um código específico para se conectar.
A característica modular de um contêiner permite que os desenvolvedores escrevam um novo código rapidamente ou corrijam o código existente sem ter que reconstruir todo o aplicativo. As operações de TI podem implantar a atualização com tempo de inatividade mínimo. O tamanho pequeno, geralmente na casa das dezenas de megabytes, às vezes pode exigir um grande número de contêineres para fornecer a funcionalidade completa de um aplicativo complexo e seus muitos recursos. Por exemplo, o Google gerencia bilhões de contêineres que alimentam seus serviços da web. Supervisionar e controlar todos esses contêineres implantados em sistemas distribuídos complexos de forma organizada e eficiente requer o gerenciamento de contêineres.
Sem um sistema de gerenciamento de contêiner, os usuários precisam criar contêineres manual e individualmente para seus aplicativos, implantar novos, substituir versões mais antigas, rastrear seu status e aumentar ou diminuir os aplicativos em contêiner, dependendo dos recursos de computação disponíveis. O gerenciamento de contêineres automatiza muitos desses processos. Ele simplifica a reprodução, implantação e programação de um grande número de contêineres. O gerenciamento de contêineres mais especializado pode fornecer orquestração de contêineres. Ele oferece aos usuários controles de automação adicionais para configurar os componentes necessários e implantar clusters de contêiner conforme eles são necessários em uma variedade de ambientes.
Os sistemas de gerenciamento de contêineres fornecem aos usuários um meio de monitorar a integridade dos contêineres em produção, substituir aqueles que estão com defeito e reiniciar aqueles que estão paralisados. Eles também fornecem um mecanismo para gerenciar os componentes de rede e segurança dos contêineres. Os sistemas se tornaram uma ferramenta essencial, especialmente para organizações que usam DevOps. Eles aceleram o ciclo de vida de um aplicativo, do desenvolvimento à produção, enquanto reduzem os custos operacionais. Os sistemas de gerenciamento de contêineres estão disponíveis como software livre e comercial proprietário.
Alguns sistemas de gerenciamento de contêineres são:
- Kubernetes (os principais serviços em nuvem como Amazon, Azure e Google oferecem versões do Kubernetes para seus ambientes)
- Docker Swarm
- IBM RedHat OpenShift
- rancheiro
- Cloud Foundry
- VMware vSphere Integrated Containers