Finch Linux

Amazon lança Finch para Linux, unificando o gerenciamento de contêineres

A Amazon lançou o Finch para Linux, expandindo o suporte de sua ferramenta de gerenciamento de contêineres para todas as principais plataformas. Agora, desenvolvedores podem criar, executar e gerenciar contêineres de forma unificada em macOS, Windows e Linux.

Logo da Amazon com fundo de cidade ao amanhecer, mostrando o horizonte urbano sob um céu claro

A Amazon anunciou a expansão de sua ferramenta open-source Finch para o Linux, consolidando o suporte para as três principais plataformas: Linux, macOS e Windows. Desenvolvida para facilitar o gerenciamento de contêineres, Finch oferece uma interface de linha de comando para criar, executar e publicar contêineres de forma eficiente, utilizando padrões da Open Container Initiative (OCI). Agora, com suporte ao Linux, o Finch unifica a experiência de desenvolvimento de contêineres, permitindo que os desenvolvedores utilizem os mesmos comandos e recursos em todas as plataformas.

Recursos do Finch no Linux

Diagrama da arquitetura do Finch no Linux, mostrando a integração entre nerdctl, containerd e BuildKit para gerenciamento de contêineres sem a necessidade de uma camada de virtualização intermediária

No Linux, Finch oferece as mesmas funcionalidades encontradas nas versões para macOS e Windows, como:

  • Construção de imagens de contêineres usando Dockerfiles.
  • Execução local de contêineres.
  • Envio e recuperação de imagens de contêineres em repositórios.
  • Gerenciamento de redes e volumes de contêineres.
  • Orquestração de múltiplos contêineres com o finch compose.

No entanto, no Linux, o Finch interage diretamente com o kernel, utilizando recursos nativos como namespaces e cgroups, sem a necessidade de uma camada de virtualização intermediária, como ocorre no macOS e Windows com Lima.

Instalação do Finch no Linux

Em distribuições Amazon Linux:

O Finch está disponível em pacotes RPM para Amazon Linux 2 e Amazon Linux 2023, podendo ser instalado facilmente através do gerenciador de pacotes YUM com o seguinte comando:

sudo yum install runfinch-finch

Isso instalará o binário do Finch e todas as dependências necessárias. Para garantir que os serviços necessários sejam inicializados automaticamente no boot do sistema e iniciados imediatamente, execute os seguintes comandos:

sudo systemctl enable --now containerd.service
sudo systemctl enable --now finch.service
sudo systemctl enable --now finch-buildkit.service
sudo systemctl enable --now finch-buildkit.socket

Em outras distribuições Linux baseadas em RPM:

Além do suporte nativo ao Amazon Linux, o Finch também pode ser compilado para outras distribuições que utilizam pacotes RPM, como Fedora. Para essas distribuições, você pode utilizar os scripts de construção disponíveis no repositório GitHub do Finch.

Verificação da Instalação

Após a instalação, você pode validar o funcionamento do Finch executando um contêiner de teste com o comando:

sudo finch run --rm public.ecr.aws/finch/hello-finch

Este comando irá baixar a imagem do contêiner, criar uma instância e executá-la. O contêiner será removido automaticamente após a conclusão do processo.

Suporte a imagens multi-arquitetura

O Finch no Linux também oferece suporte à criação e execução de contêineres para diferentes arquiteturas de CPU, como AMD64 e ARM64, através do emulador QEMU, que pode ser instalado manualmente:

sudo finch run --privileged --rm tonistiigi/binfmt --install all

Com o QEMU instalado, você poderá criar e executar contêineres em arquiteturas não nativas, como ARM64, utilizando a flag --platform para especificar a arquitetura desejada.

Conclusão

A chegada do Finch no Linux amplia as possibilidades para desenvolvedores que trabalham com contêineres, oferecendo uma plataforma unificada para o gerenciamento eficiente e simplificado de contêineres em todas as plataformas. Ao combinar componentes como nerdctl, containerd e BuildKit, o Finch proporciona uma experiência consistente e independente de fornecedores, tornando o desenvolvimento de contêineres mais acessível e padronizado.