O que é o AWS CodeCommit? - AWS CodeCommit

AWS CodeCommit não está mais disponível para novos clientes. Os clientes atuais do AWS CodeCommit podem continuar usando o serviço normalmente. Saiba mais

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

O que é o AWS CodeCommit?

O AWS CodeCommit é um serviço de controle de versão hospedado pela Amazon Web Services que pode ser usado para armazenar e gerenciar ativos de maneira privada (como documentos, código-fonte e arquivos binários) na nuvem. Para obter informações da definição de preços do CodeCommit, consulte Definição de preços.

nota

O CodeCommit está em escopo com muitos programas de conformidade. Para obter detalhes sobre a AWS e os esforços de conformidade, consulte Serviços da AWS no escopo pelo programa de conformidade.

Este é um serviço qualificado da HIPAA. Para obter mais informações sobre a AWS, a Lei de Portabilidade e Responsabilidade de Seguro de Saúde de 1996 dos EUA (HIPAA) e o uso dos serviços da AWS para processar, armazenar e transmitir informações de saúde protegidas (PHI), consulte Visão geral da HIPAA.

Para obter informações sobre esse serviço e a ISO 27001, uma norma de gerenciamento de segurança que especifica as práticas recomendadas de gerenciamento de segurança, consulte Visão geral da ISO 27001.

Para obter informações sobre este serviço e o Padrão de segurança de dados do setor de cartão de pagamento (Payment Card Industry Data Security Standard, PCI DSS), consulte Visão geral do PCI DSS.

Para obter informações sobre este serviço e a publicação 140-2 do padrão do governo dos EUA da Norma federal de processamento de informações (Federal Information Processing Standard, FIPS) que especifica os requisitos de segurança para módulos de criptografia que protegem informações confidenciais, consulte Visão geral da publicação 140-2 da FIPS e Endpoints de conexão do Git.

Introdução ao CodeCommit

O CodeCommit é um serviço de controle de código-fonte seguro, altamente escalável e gerenciado que hospeda repositórios Git privados. Com o CodeCommit, você não precisa operar seu próprio sistema de controle de código-fonte ou se preocupar com a escalabilidade da infraestrutura. Você pode usar o CodeCommit para armazenar desde códigos ate binários. Ele é compatível com a funcionalidade padrão do Git, então funciona perfeitamente com as suas ferramentas baseadas em Git.

No CodeCommit, você pode:

  • Beneficie-se de um serviço totalmente gerenciado hospedado pela AWS. O CodeCommit fornece alta disponibilidade e durabilidade de serviço e elimina as despesas administrativas de gerenciamento dos seus próprios hardware e software. Não há hardware para provisionar e escalar nem software de servidor para instalar, configurar e atualizar.

  • Armazene seu código com segurança. Os repositórios do CodeCommit são criptografados em repouso e em trânsito.

  • Trabalhe de forma colaborativa no código. Os repositórios do CodeCommit são compatíveis com solicitações pull, em que os usuários podem revisar e comentar as alterações de código de cada um antes de serem mescladas em ramificações, notificações que enviam e-mails automaticamente aos usuários sobre solicitações pull e comentários e muito mais.

  • Escalone facilmente seus projetos de controle de versão. Os repositórios do CodeCommit podem aumentar a escala verticalmente para atender às suas necessidades de desenvolvimento. O serviço pode lidar com repositórios com um grande número de arquivos ou ramificações, tamanhos grandes de arquivo e longos históricos de revisão.

  • Armazene o que quiser, a qualquer momento. A CodeCommit não limita o tamanho dos repositórios ou os tipos de arquivo que você pode armazenar.

  • Integre-se com outros serviços da AWS e serviços de terceiros. O CodeCommit mantém os repositórios perto de outros recursos de produção na AWS Cloud, o que ajuda a aumentar a velocidade e a frequência do ciclo de vida do desenvolvimento. Ele está integrado ao IAM e pode ser usado com outros serviços da AWS e em paralelo com outros repositórios. Para obter mais informações, consulte Integrações de produtos e serviços com AWS CodeCommit.

  • Migrar arquivos de outros repositórios remotos facilmente. É possível migrar para o CodeCommit de qualquer repositório baseado em Git.

  • Use as ferramentas Git que você já conhece. O CodeCommit é compatível com comandos Git, bem como seus próprios comandos e APIs da AWS CLI.

CodeCommit, Git e a escolha do serviço da AWS ideal para suas necessidades

Sendo um serviço baseado no Git, o CodeCommit é adequado para a maioria das necessidades de controle de versão. Não há limites arbitrários no tamanho dos arquivos, tipos de arquivo e tamanho do repositório. No entanto, há limitações inerentes ao Git que podem afetar negativamente o desempenho de determinados tipos de operações, especialmente ao longo do tempo. Você pode evitar a possível degradação no desempenho dos repositórios do CodeCommit evitando usá-lo para casos de uso em que outros serviços da AWS sejam mais adequados para a tarefa. Você também pode otimizar o desempenho do Git para repositórios complexos. Aqui estão alguns casos de uso em que o Git, e, portanto, o CodeCommit, pode não ser a melhor solução para você, ou em que talvez seja necessário executar etapas adicionais para otimizar o Git.

Caso de uso Descrição Outros serviços a serem considerados:
Arquivos grandes que são alterados com frequência O Git usa a codificação delta para armazenar diferenças entre versões de arquivos. Por exemplo, se você alterar algumas palavras em um documento, o Git armazenará somente essas palavras alteradas. Se você tiver arquivos ou objetos acima de 5 MB com muitas alterações, talvez seja necessário que o Git recrie uma grande cadeia de diferenças delta. Isso pode consumir uma maior quantidade de recursos de computação em seu computador local e no CodeCommit, já que esses arquivos crescem ao longo do tempo. Para arquivos grandes de versão, considere o Amazon Simple Storage Service (Amazon S3). Para obter mais informações, consulte Usando versionamento no Guia do usuário do Amazon Simple Storage Service.
Banco de dados Os repositórios Git crescem ao longo do tempo. Como o versionamento controla todas as alterações, qualquer alteração aumentará o tamanho do repositório. Em outras palavras, à medida que você confirmar dados, mesmo se você excluir dados em uma confirmação, os dados serão adicionados a um repositório. Conforme a quantidade dados a serem processados e transmitidos aumenta ao longo do tempo, o Git fica lento. Isso é especialmente prejudicial para um caso de uso de banco de dados. O Git não foi projetado como um banco de dados. Para criar e usar um banco de dados com desempenho consistente, independentemente do tamanho, considere o Amazon DynamoDB. Para obter mais informações, consulte o Guia de conceitos básicos do Amazon DynamoDB.
Trilhas de auditoria Normalmente, as trilhas de auditoria são mantidas por longos períodos de tempo e são geradas continuamente por processos do sistema em uma cadência muito frequente. O Git foi projetado para armazenar com segurança o código-fonte gerado por grupos de desenvolvedores em um ciclo de desenvolvimento. Alterar rapidamente os repositórios que armazenam continuamente as alterações do sistema geradas programaticamente causará a degradação do desempenho ao longo do tempo. Para armazenar trilhas de auditoria, considere o Amazon Simple Storage Service (Amazon S3).

Para auditar atividades da AWS, dependendo do seu caso de uso, considere usar o AWS CloudTrail, AWS Config ou Amazon CloudWatch.

Backups O Git foi projetado para versionar o código-fonte escrito pelos desenvolvedores. Você pode enviar confirmações via push a dois repositórios remotos, incluindo um repositório do CodeCommit, como uma estratégia de backup. No entanto, o Git não foi projetado para lidar com os backups do sistema de arquivos de seu computador, despejos de banco de dados ou conteúdos de backup semelhantes. Isso pode fazer com que o sistema fique lento e aumentar o tempo necessário para clonar e enviar um repositório. Para obter informações sobre o backup para a Nuvem AWS, consulte Backup e restauração.
Grande número de ramificações ou referências Quando um cliente Git envia ou extrai dados do repositório, o servidor remoto deve enviar todas as ramificações e referências, como tags, mesmo que você só esteja interessado em uma única ramificação. Se você tiver milhares de ramificações e referências, poderá levar mais tempo para o processamento e o envio (negociação do pacote) e poderá resultar em resposta aparentemente lenta do repositório. Quanto mais ramificações e tags você tiver, mais esse processo poderá demorar. Recomendamos usar o CodeCommit, mas exclua as ramificações e tags que não forem mais necessárias. Para analisar o número de referências em um repositório do CodeCommit para determinar quais talvez não sejam necessárias, você pode usar um dos seguintes comandos:
  • Linux, macOS ou Unix, ou emulador Bash no Windows:

    git ls-remote | wc -l
  • Powershell:

    git ls-remote | Measure-Object -line

Como o CodeCommit funciona?

O CodeCommit é familiar aos usuários de repositórios baseados em Git, mas até quem não está familiarizado achará a transição para o CodeCommit relativamente simples. O CodeCommit fornece um console para facilitar a criação de repositórios e a listagem de repositórios e ramificações existentes. Em poucas etapas simples, os usuários podem encontrar informações sobre um repositório e cloná-lo para o computador, criando um repositório local onde é possível fazer alterações e enviá-las via push para o repositório do CodeCommit. Os usuários podem trabalhar a partir da linha de comando nas máquinas locais ou usar um editor baseado em GUI.

A figura a seguir mostra como usar a sua máquina de desenvolvimento, o console da AWS CLI ou do CodeCommit, e o serviço do CodeCommit para criar e gerenciar repositórios:

Fluxo de trabalho típico do CodeCommit

  1. Você pode usar o console da AWS CLI ou do CodeCommit para criar um repositório do CodeCommit.

  2. Na sua máquina de desenvolvimento, use o Git para executar git clone, especificando o nome do repositório do repositório do CodeCommit. Isso cria um repositório local que se conecta ao repositório do CodeCommit.

  3. Use o repositório local na sua máquina de desenvolvimento para modificar (adicionar, editar e excluir) arquivos e, então, executar o git add para preparar os arquivos modificados localmente. Execute git commit para confirmar os arquivos localmente e, então, execute git push para enviar os arquivos ao repositório do CodeCommit.

  4. Baixe alterações de outros usuários. Execute git pull para sincronizar os arquivos no repositório do CodeCommit com seu repositório local. Isso garante que você trabalhe com a versão mais recente dos arquivos.

É possível usar o console da AWS CLI ou do CodeCommit para rastrear e gerenciar seus repositórios.

Qual é a diferença entre o CodeCommit e o versionamento de arquivos no Amazon S3?

O CodeCommit foi otimizado para o desenvolvimento de software em equipe. Ele gerencia lotes de alterações em vários arquivos, que podem ocorrer paralelamente às alterações feitas por outros desenvolvedores. O versionamento do Amazon S3 é compatível com a recuperação de versões anteriores de arquivos, mas não se concentra nos recursos colaborativos de rastreamento de arquivos que as equipes de desenvolvimento de software precisam.

Como começo a usar o CodeCommit?

Para começar a usar o CodeCommit:

  1. Siga as etapas em Configuração para preparar suas máquinas de desenvolvimento.

  2. Siga as etapas em um ou mais tutoriais em Conceitos básicos.

  3. Crie projetos de controle de versão no CodeCommit ou migre projetos de controle de versão para o CodeCommit.

Como posso saber mais sobre o Git?

Se você ainda não souber usar o Git, deverá aprender a usá-lo. Veja alguns recursos úteis:

  • Pro Git, uma versão on-line do livro Pro Git. Escrito por Scott Chacon. Publicado pela Apress.

  • Git Immersion, um guia para você aprender os fundamentos do uso do Git. Publicado pela Neo Innovation, Inc.

  • Git Reference, uma rápida referência on-line que também pode ser usada como um tutorial mais detalhado do Git. Publicado pela equipe do GitHub.

  • Git Cheat Sheet, com a sintaxe de comando básica do Git. Publicado pela equipe do GitHub.

  • Git Pocket Guide. Escrito por Richard E. Silverman. Publicado pela O'Reilly Media, Inc.