Acelere os pipelines CI/CD com o novo recurso do servidor Docker Codebuild AWS


Acelere os pipelines CI/CD com o novo recurso do servidor Docker Codebuild AWS

A partir de hoje, você pode usar AWS CodeBuild Capacidade do servidor Docker para provisionar um servidor Docker dedicado e persistente diretamente no seu projeto CodeBuild. Com a capacidade do Docker Server, você pode acelerar as compilações de imagem do Docker, centralizando a construção de imagens para um host remoto, o que reduz os tempos de espera e aumenta a eficiência geral.

Do meu benchmark, com essa capacidade do Docker Server, reduzi o tempo whole de construção em 98 %, de 24 minutos e 54 segundos para 16 segundos. Aqui está uma rápida olhada nesse recurso dos meus projetos da AWS CodeBuild.

AWS CodeBuild é um serviço de integração contínuo totalmente gerenciado que compila código -fonte, executa testes e produz pacotes de software program prontos para implantação. Construir imagens do Docker é um dos casos de uso mais comuns para clientes de construção de código, e o serviço melhorou progressivamente essa experiência ao longo do tempo, liberando recursos como Cache de camada do docker e Recursos de capacidade reservados Para melhorar o desempenho do Docker Construct.

Com a nova capacidade do Docker Server, você pode reduzir o tempo de construção para seus aplicativos, fornecendo um servidor Docker persistente com armazenamento consistente de cache. Quando ativado em um projeto CodeBuild, um servidor Docker dedicado é provisionado com armazenamento persistente que mantém o cache da camada do Docker. Este servidor pode lidar com várias operações simultâneas de construção do Docker, com todas as construções beneficiando do mesmo cache centralizado.

Usando o AWS CodeBuild Docker Server
Deixe -me orientá -lo em uma demonstração que mostra os benefícios com a nova capacidade do Docker Server.

Para esta demonstração, estou construindo uma imagem complexa e de várias camadas com base no oficial AWS CodeBuild Curated Docker Pictures Repositoryespecificamente o Dockerfile para a construção de um Imagem padrão do Ubuntu. Esta imagem contém inúmeras dependências e ferramentas necessárias para a integração contínua moderna e os pipelines de entrega contínua (IC/CD), tornando -o um bom exemplo do tipo de criação de grandes documentos que as equipes de desenvolvimento executam regularmente.


# Copyright 2020-2024 Amazon.com, Inc. or its associates. All Rights Reserved.
#
# Licensed below the Amazon Software program License (the "License"). It's possible you'll not use this file besides in compliance with the License.
# A duplicate of the License is positioned at
#
#    http://aws.amazon.com/asl/
#
# or within the "license" file accompanying this file.
# This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, specific or implied.
# See the License for the precise language governing permissions and limitations below the License.
FROM public.ecr.aws/ubuntu/ubuntu:20.04 AS core

ARG DEBIAN_FRONTEND="noninteractive"

# Set up git, SSH, Git, Firefox, GeckoDriver, Chrome, ChromeDriver,  stunnel, AWS Instruments, configure SSM, AWS CLI v2, env instruments for runtimes: Dotnet, NodeJS, Ruby, Python, PHP, Java, Go, .NET, Powershell Core,  Docker, Composer, and different utilities
COMMAND REDACTED FOR BREVITY
# Activate runtime variations particular to picture model.
RUN n $NODE_14_VERSION
RUN pyenv  international $PYTHON_39_VERSION
RUN phpenv international $PHP_80_VERSION
RUN rbenv  international $RUBY_27_VERSION
RUN goenv international  $GOLANG_15_VERSION

# Configure SSH
COPY ssh_config /root/.ssh/config
COPY runtimes.yml /codebuild/picture/config/runtimes.yml
COPY dockerd-entrypoint.sh /usr/native/bin/dockerd-entrypoint.sh
COPY authorized/bill_of_material.txt /usr/share/doc/bill_of_material.txt
COPY amazon-ssm-agent.json /and so on/amazon/ssm/amazon-ssm-agent.json

ENTRYPOINT ("/usr/native/bin/dockerd-entrypoint.sh")

Este DockerFile cria um ambiente de construção abrangente com várias linguagens de programação, ferramentas de construção e dependências – exatamente o tipo de imagem que se beneficiaria do cache persistente.

Na especificação Construct (BuildSpec), eu uso o docker buildx construct . comando:

model: 0.2
phases:
  construct:
    instructions:
      - cd ubuntu/normal/5.0
      - docker buildx construct -t codebuild-ubuntu:newest .

Para ativar a capacidade do servidor Docker, navego para o console do AWS CodeBuild e selecione Criar projeto. Também posso habilitar esse recurso ao editar projetos de código de código existentes.

Eu preencho todos os detalhes e configuração. No Ambiente Seção, eu seleciono Configuração adicional.

Então, eu position para baixo e encontro Configuração do servidor Docker e selecione Ativar servidor Docker para este projeto. Quando seleciono esta opção, posso escolher uma configuração de tipo de computação para o servidor Docker. Quando terminar as configurações, crio este projeto.

Agora, vamos ver a capacidade do Docker Server em ação.

A construção inicial leva aproximadamente 24 minutos e 54 segundos para ser concluída, porque precisa baixar e compilar todas as dependências do zero. Isso é esperado para a primeira construção de uma imagem tão complexa.

Para construções subsequentes sem alterações de código, a compilação leva apenas 16 segundos e isso mostra redução de 98% no tempo de construção.

Olhando para os troncos, posso ver que, com o servidor Docker, a maioria das camadas é puxada do cache persistente:

O cache persistente fornecido pelo Docker Server mantém todas as camadas entre as compilações, o que é particularmente valioso para imagens grandes e complexas do Docker com muitas camadas. Isso demonstra como o Docker Server pode melhorar drasticamente a taxa de transferência para as equipes que executam inúmeras compilações do Docker em seus pipelines CI/CD.

Coisas adicionais para saber
Aqui estão algumas coisas a serem observadas:

  • Suporte de arquitetura – O recurso está disponível para construções X86 (Linux) e ARM.
  • Preço – Para saber mais sobre o preço da capacidade do servidor Docker, consulte o AWS CodeBuild Precicing página.
  • Disponibilidade – Esse recurso está disponível em todas as regiões da AWS, onde o AWS CodeBuild é oferecido. Para obter mais informações sobre as regiões da AWS onde estão disponíveis o CodeBuild, consulte o Página de regiões da AWS.

Você pode aprender mais sobre o recurso do servidor Docker no Documentação do AWS CodeBuild.

Feliz edifício! –

Donnie Prakoso


Como está o weblog de notícias? Pegue isso 1 minuto de pesquisa!

(Esse enquete é hospedado por uma empresa externa. AWS lida com suas informações conforme descrito no Aviso de privacidade da AWS. A AWS possuirá os dados coletados por meio desta pesquisa e não compartilharão as informações coletadas com os entrevistados.)

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *