O que são contêineres?
Os contêineres são pacotes de software que contêm todos os elementos necessários para serem executados em qualquer ambiente. Dessa forma, os contêineres virtualizam o sistema operacional e são executados em qualquer lugar, desde um data center privado até a nuvem pública ou até mesmo no laptop pessoal de um desenvolvedor. Do Gmail ao YouTube à Pesquisa, tudo no Google é executado em contêineres. A conteinerização permite que equipes de desenvolvimento se movimentem rapidamente, implantem software de maneira eficiente e operem em uma escala sem precedentes. Aprendemos muito sobre como executar cargas de trabalho em contêineres e compartilhamos esse conhecimento com a comunidade ao longo do caminho: desde os primeiros dias da contribuição de cgroups para o kernel do Linux (em inglês), até a liberação das nossas ferramentas internas como código aberto no projeto Kubernetes.
Contêineres definidos
Os contêineres são pacotes leves do código do aplicativo com dependências, como versões específicas de ambientes de execução de linguagem de programação e bibliotecas necessárias para executar seus serviços de software.
Os contêineres facilitam o compartilhamento de recursos de CPU, memória, armazenamento e rede no nível dos sistemas operacionais e oferecem um mecanismo de empacotamento lógico no qual os aplicativos podem ser abstraídos do ambiente em que realmente são executados.
Quais são os benefícios dos contêineres?
Separação de responsabilidade
A conteinerização oferece uma separação clara de responsabilidades, porque os desenvolvedores focam na lógica e nas dependências do aplicativo, enquanto as equipes de operações de TI podem focar na implantação e no gerenciamento em vez de nos detalhes do aplicativo, como versões de software e configurações específicas.
Portabilidade de cargas de trabalho
Os contêineres podem ser executados em praticamente qualquer lugar, facilitando muito o desenvolvimento e a implantação: nos sistemas operacionais Linux, Windows e Mac, em máquinas virtuais ou em servidores físicos, na máquina de um desenvolvedor ou em data centers no local e, obviamente, na nuvem pública.
Isolamento de aplicativos
Os contêineres virtualizam recursos de CPU, memória, armazenamento e rede no nível do sistema operacional, oferecendo aos desenvolvedores uma visualização do SO isolado logicamente de outros aplicativos.
Resolva seus desafios mais difíceis com o Google Cloud
Contêineres vs. VMs
Você já deve estar familiarizado com VMs: um sistema operacional convidado, como Linux ou Windows, é executado em cima de um sistema operacional host com acesso ao hardware subjacente. Os contêineres costumam ser comparados com máquinas virtuais (VMs). Assim como as máquinas virtuais, os contêineres permitem empacotar o aplicativo com bibliotecas e outras dependências, oferecendo ambientes isolados para executar os serviços de software. Como você verá abaixo, são apenas essas as semelhanças. Isso porque os contêineres fornecem uma unidade muito mais leve para desenvolvedores e equipes de operações de TI trabalharem, oferecendo uma infinidade de vantagens.
- Os contêineres são muito mais leves do que as VMs
- Os contêineres virtualizam no nível do sistema operacional enquanto as VMs virtualizam no nível do hardware
- Os contêineres compartilham o kernel do sistema operacional e usam uma pequena parte da memória que as VMs exigem
Qual é a função dos contêineres?
Desenvolvimento rápido
Os contêineres permitem que seus desenvolvedores se movam mais rapidamente, evitando preocupações com dependências e ambientes.
Operações eficientes
Os contêineres são leves e permitem que você use apenas os recursos de computação de que precisa. Isso permite que você execute seus aplicativos de forma eficiente.
Execute em qualquer lugar
Os contêineres podem ser executados em praticamente qualquer lugar. Sempre que quiser executar o software, você poderá usar contêineres.
Produtos e serviços relacionados
Criado com a mesma base de conhecimento que possibilitou o desenvolvimento do Kubernetes, o Google Kubernetes Engine (GKE), o primeiro serviço gerenciado pronto para produção para a execução de aplicativos em contêineres, pode ajudá-lo a implementar uma estratégia de Kubernetes bem-sucedida para suas cargas de trabalho em nuvem.
Com o Anthos, o Google oferece uma experiência consistente do Kubernetes para seus aplicativos no local e em várias nuvens. Use o Anthos como um meio confiável, eficaz e seguro de executar clusters do Kubernetes em qualquer lugar.