Um contêiner é uma tecnologia de virtualização projetada para criar e oferecer suporte a um formato portátil para aplicações — em outras palavras, para facilitar a implantação de uma aplicação em diversas plataformas. Um contêiner reúne todos os requisitos da aplicação — o próprio código da aplicação, dependências como as bibliotecas necessárias para sua execução e o ambiente de execução da aplicação e de suas dependências — em um formato que pode ser transportado e executado de forma independente em diferentes plataformas. Os contêineres abstraem uma aplicação do ambiente de execução típico do sistema operacional.

O Docker é o formato de implementação de contêineres mais conhecido; no entanto, existem outras tecnologias de contêineres, como rkt/CoreOS, containerd, contêineres Hyper‑V e tecnologias de nível mais baixo, como cgroups e namespaces (ambas usadas para o isolamento de aplicações de forma semelhante aos mecanismos de contêineres, mas que não oferecem portabilidade isolada da mesma forma que os contêineres). Você pode usar ferramentas de plataforma, como Docker ou rkt, para gerenciar contêineres diretamente, mas a maioria das implantações usa uma ferramenta de orquestração como Kubernetes para gerenciar contêineres. Embora não seja obrigatório, o Kubernetes está se tornando a ferramenta padrão para implantações de contêineres em ambientes de produção.

Os contêineres se tornaram uma opção arquitetural muito popular porque permitem dividir uma aplicação em componentes menores e independentes, possibilitando a separação de responsabilidades entre os responsáveis pela infraestrutura e os desenvolvedores. Isso é vantajoso durante o desenvolvimento, pois permite que equipes distintas trabalhem em paralelo nos diversos componentes, e durante a implantação, pois possibilita a portabilidade de um determinado contêiner entre plataformas. Os contêineres também oferecem uma ferramenta mais eficiente para os responsáveis por aplicações e infraestrutura, pois podem fornecer plataformas imutáveis que permitem aos desenvolvedores publicar contêineres de aplicações de acordo com um conjunto de requisitos conhecidos, sem precisar gerenciar esses requisitos.

O termo conteinerização de aplicações é frequentemente usado para designar o processo de migração de uma aplicação de um ambiente de execução Linux padrão para um formato autossuficiente que pode ser executado em diversos ambientes. Muitas empresas já estão em um estágio avançado de sua jornada de conteinerização e começaram a migrar para contêineres básicos ou para uma estratégia mais abrangente de gerenciamento de contêineres usando uma ferramenta como o Kubernetes.

Como o NGINX pode ajudar?

Todos os produtos NGINX podem ser executados em contêineres, incluindo NGINX Open Source, NGINX Plus (opcionalmente com NGINX App Protect), NGINX Unit, NGINX Service Mesh, NGINX Ingress Controller – ou são desenvolvidos com tecnologias de contêineres (NGINX Controller).

Entre em contato conosco hoje mesmo para saber como podemos ajudar você a disponibilizar aplicações modernas.