-
Conheça o framework Containerization
Conheça o framework Containerization, um projeto de código aberto escrito no Swift para criar e executar contêineres do Linux no Mac. Saiba como o Containerization lida com contêineres do Linux de forma segura e privada. Descubra como a ferramenta Container CLI de código aberto utiliza o pacote Containerization para fornecer recursos simples, mas robustos, para criar, executar e implantar contêineres do Linux no Mac.
Capítulos
- 0:00 - Introdução
- 0:48 - O que é um contêiner?
- 3:50 - Containerization em detalhes: gerenciamento de imagens
- 5:53 - Containerization em detalhes: virtualização
- 6:53 - Containerization em detalhes: ambiente do contêiner
- 9:19 - Ferramenta de linha de comando
- 11:45 - Conclusão
Recursos
-
Buscar neste vídeo...
-
-
9:58 - Container Image Pull
container image pull alpine:latest -
10:43 - Container Run
container run -t -i alpine:latest sh
-
-
- 0:00 - Introdução
Um novo framework Swift de código aberto chamado Containerization possibilita que os desenvolvedores criem apps Linux em contêineres seguros, privados e de alto desempenho com uma sensação nativa. Esse framework inclui APIs e uma ferramenta de linha de comando para criação, gerenciamento e execução de contêineres.
- 0:48 - O que é um contêiner?
Os contêineres Linux revolucionam a implantação de apps no lado do servidor ao isolar cargas de trabalho e dependências, possibilitando que os desenvolvedores incluam seus requisitos específicos em pacotes nos apps. Essa funcionalidade garante a consistência entre ambientes locais e de produção, simplificando o desenvolvimento e os testes. Os contêineres proporcionam isolamento do tempo de execução e, para executar contêineres Linux no macOS, é necessária a virtualização. O objetivo do framework Containerization é proporcionar um isolamento de segurança robusto, reduzir a sobrecarga da máquina virtual, aumentar a privacidade com controle de acesso ao diretório por contêiner e oferecer uma experiência de desempenho que respeite os recursos do usuário.
- 3:50 - Containerization em detalhes: gerenciamento de imagens
O framework Containerization fornece APIs para gerenciamento de imagens, execução de contêineres e um sistema de inicialização integrado no Swift. O funcionamento do framework Containerization se baseia na busca de imagens de um registro. A imagem serve como um modelo que inclui o conteúdo do sistema de arquivos e a configuração padrão para um novo contêiner. A configuração da imagem pode especificar o processo padrão a ser executado, o diretório de trabalho e a identidade do usuário. O framework Containerization expõe o sistema de arquivos da imagem como um dispositivo de bloqueio para acesso de alto desempenho, formatando o dispositivo de bloqueio usando EXT4, um sistema de arquivos Linux amplamente utilizado.
- 5:53 - Containerization em detalhes: virtualização
Para o preenchimento direto de um sistema de arquivos EXT4 por meio do Swift, o sistema inicia uma VM Linux para executar um contêiner que, por meio do framework Containerization, oferece isolamento leve no nível da VM, tempos de inicialização inferiores a um segundo, IPs dedicados para cada contêiner e compartilhamento seguro de arquivos e diretórios.
- 6:53 - Containerization em detalhes: ambiente do contêiner
O framework Containerization utiliza uma VM em que recursos como CPU e memória são alocados de maneira dinâmica apenas quando os contêineres estão em execução. Dentro dessa VM, um sistema de arquivos mínimo contém o binário “vminitd”, um sistema de inicialização baseado no Swift. O binário “vminitd” é executado como o primeiro processo, gerenciando as interfaces de rede, montando os sistemas de arquivos e inicializando e supervisionando todos os processos subsequentes. Para aumentar a segurança, o sistema de arquivos é desprovido de utilitários básicos, bibliotecas dinâmicas e “libc”. Para isso, o binário “vminitd” é compilado como um arquivo executável estático usando o SDK Static Linux do Swift.
- 9:19 - Ferramenta de linha de comando
O framework Containerization oferece uma API avançada para o desenvolvimento de soluções em torno dos contêineres Linux. Uma ferramenta de linha de comando, “container”, utiliza essas APIs para gerenciar o armazenamento, imagens, redes e executar os contêineres. Os usuários podem extrair as imagens localmente com “container image pull”, depois executar os contêineres de maneira interativa com “container run -t -i
”. Essa abordagem cria uma VM leve, o que proporciona isolamento, como mostra o “ps aux”, que exibe apenas processos de contêineres. A ferramenta está disponível no GitHub. - 11:45 - Conclusão
O macOS agora é compatível com as APIs Containerization, possibilitando contêineres Linux seguros, privados e de alto desempenho. Acesse o framework Containerization no GitHub, explore o código-fonte e confira os projetos de exemplo. A ferramenta “container” está disponível para uso imediato, e incentivamos todo e qualquer feedback da comunidade por meio do GitHub.