¿Qué es AWS CodeCommit? - AWS CodeCommit

AWS CodeCommit ya no está disponible para nuevos clientes. Los clientes existentes de AWS CodeCommit pueden seguir utilizando el servicio con normalidad. Más información

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

¿Qué es AWS CodeCommit?

AWS CodeCommit es un servicio de control de versiones alojado en Amazon Web Services que puede utilizar para almacenar y administrar activos de forma privada (como documentos, código fuente y archivos binarios) en la nube. Para obtener más información acerca de los precios de CodeCommit, consulte Precios.

nota

CodeCommit está en el ámbito con muchos programas de conformidad. Para obtener más detalles sobre AWS y los esfuerzos de conformidad, consulte Servicios de AWS en ámbito por programa de conformidad.

Se trata de un servicio compatible con HIPAA. Para obtener más información acerca de AWS, la ley de responsabilidad y portabilidad de seguros médicos de Estados Unidos de 1996 (HIPAA) y el uso de los servicios de AWS para procesar, almacenar y transmitir información sanitaria protegida (PHI), consulte Información general sobre la HIPAA.

Para obtener información sobre este servicio y la ISO 27001, una norma de administración de la seguridad que especifica las prácticas recomendadas en materia de seguridad, consulte Información general de ISO 27001.

Para obtener información sobre este servicio y el estándar de seguridad de datos del sector de tarjetas de pago (PCI DSS), consulte Información general de PCI DSS.

Para obtener más información sobre este servicio y el estándar del gobierno de Estados Unidos Publicación del Estándar de Procesamiento de la Información Federal (FIPS, Federal Information Processing Standard) 140-2 que especifica los requisitos de seguridad para los módulos criptográficos que protegen información confidencial, consulte la descripción general del Estándar de Procesamiento de la Información Federal (FIPS) 140-2 y Puntos de conexión de Git.

Presentación de CodeCommit

CodeCommit es un servicio de control de código fuente administrado, y seguro y altamente escalable que aloja repositorios Git privados. CodeCommit elimina la necesidad de gestionar un sistema propio de control de código fuente o de preocuparse acerca de la adaptación de su infraestructura. Puede utilizar CodeCommit para almacenar cualquier elemento, desde código a archivos binarios. Además, es compatible con las funciones estándar de Git, por lo que funciona perfectamente con las herramientas existentes basadas en Git.

Con CodeCommit, puede:

  • Beneficiarse de un servicio totalmente administrado alojado en AWS. CodeCommit ofrece alta disponibilidad y durabilidad de servicio y elimina los gastos administrativos de gestión de su propio hardware y software. No es necesario aprovisionar ni escalar hardware, ni instalar, configurar y actualizar software de servidor.

  • Almacenar su código de forma segura. Los repositorios de CodeCommit se cifran tanto en reposo como en tránsito.

  • Trabajar de forma colaborativa con el código. Los repositorios de CodeCommit admiten solicitudes de extracción, donde los usuarios pueden revisar y realizar comentarios sobre los cambios de código de otros usuarios antes de combinarlos en ramificaciones; y notificaciones que se envían automáticamente por correo electrónicos a los usuarios sobre las solicitudes de extracción y los comentarios, y mucho más.

  • Escalado sencillo de sus proyectos de control de versiones. Los repositorios de CodeCommit pueden escalar verticalmente para cubrir sus necesidades de desarrollo. El servicio puede gestionar repositorios con un gran número de archivos o ramificaciones, archivos de gran tamaño e historiales de revisión largos.

  • Almacenar todo y en cualquier momento. CodeCommit no tiene límite respecto al tamaño de los repositorios ni los tipos de archivos que se pueden almacenar.

  • Integrarse con otros servicios de AWS y de terceros. CodeCommit mantiene los repositorios cerca de los demás recursos de producción en la nube de AWS, lo que ayuda a aumentar la velocidad y la frecuencia del ciclo de vida de desarrollo. Se integra con IAM y se puede utilizar con otros servicios de AWS y en paralelo con otros repositorios. Para obtener más información, consulte Integraciones de productos y servicios con AWS CodeCommit.

  • Migrar fácilmente archivos desde otros repositorios remotos. Puede migrar a CodeCommit desde cualquier repositorio basado en Git.

  • Usar las herramientas Git que ya conoce. CodeCommit admite los comandos de Git, así como sus propios comandos de AWS CLI y las API.

CodeCommit, Git y elección del servicio de AWS adecuado a sus necesidades

Como servicio basado en Git, CodeCommit es adecuado para la mayoría de las necesidades de control de versiones. No hay límites arbitrarios en el tamaño de archivo, el tipo de archivo y el tamaño de repositorio. Sin embargo, existen limitaciones inherentes a Git que pueden afectar negativamente al rendimiento de ciertos tipos de operaciones, en concreto a lo largo del tiempo. Puede evitar la degradación potencial del rendimiento del repositorio de CodeCommit evitando utilizarlo para casos de uso en los que otros servicios de AWS se adapten mejor a la tarea. También puede optimizar el rendimiento de Git para repositorios complejos. A continuación se indican algunos casos de uso en los que Git, y, por lo tanto, CodeCommit podría no ser la mejor solución para usted, o en los que podría necesitar adoptar medidas adicionales para la optimización para Git.

Caso de uso Descripción Otros servicios que tener en cuenta
Archivos grandes que cambian con frecuencia Git utiliza codificación delta para almacenar las diferencias entre las versiones de los archivos. Por ejemplo, si cambia unas pocas palabras de un documento, Git solo almacenará las palabras cambiadas. Si tiene archivos u objetos de más de 5 MB con muchos cambios, Git podría necesitar reconstruir una gran cadena de diferencias delta. Esto puede consumir una cantidad cada vez mayor de recursos informáticos tanto en el equipo local como en CodeCommit a medida que estos archivos crezcan con el tiempo. Para versionar archivos de gran tamaño, considere Amazon Simple Storage Service (Amazon S3). Para más información, consulte Uso del control de versiones en la Guía del usuario de Amazon Simple Storage Service.
Base de datos Los repositorios de Git crecen con el tiempo. Debido a que el control de versiones realiza un seguimiento de todos los cambios, cualquier modificación aumentará el tamaño del repositorio. En otras palabras, a medida que confirma datos, incluso si borra datos en una confirmación, los datos se añaden a un repositorio. A medida que haya más datos para procesar y transmitir con el tiempo, Git se ralentizará. Esto es especialmente perjudicial en un caso de uso de base de datos. Git no se diseñó como una base de datos. Para crear y utilizar una base de datos con un rendimiento constante, independientemente del tamaño, tenga en cuenta Amazon DynamoDB. Para obtener más información, consulte la Guía de introducción de Amazon DynamoDB.
Registros de seguimiento de auditoría Normalmente, los registros de seguimiento de auditoría se conservan durante largos períodos de tiempo y se generan continuamente mediante procesos del sistema con una cadencia muy frecuente. Git se diseñó para almacenar de forma segura el código fuente generado por grupos de desarrolladores en un ciclo de desarrollo. Los repositorios que cambian rápidamente y que almacenan continuamente cambios en el sistema generados por programación verán degradado su rendimiento con el tiempo. Para almacenar los registros de auditoría, considere Amazon Simple Storage Service (Amazon S3).

Para auditar la actividad de AWS, dependiendo de su caso de uso, considere el uso de AWS CloudTrail, AWS Config o Amazon CloudWatch.

Copias de seguridad Git se diseñó para el control de versiones del código fuente escrito por desarrolladores. Puede enviar confirmaciones a dos repositorios remotos, incluido un repositorio de CodeCommit, como estrategia de copia de seguridad. Sin embargo, Git no se diseñó para gestionar las copias de seguridad del sistema de archivos de su equipo, volcados de bases de datos o contenido de copia de seguridad similar. Si se hiciera, podría ralentizar el sistema y aumentar el tiempo necesario para clonar y enviar un repositorio. Para obtener información sobre cómo realizar copias de seguridad en la nube de AWS, consulte Copia de seguridad y restauración.
Gran cantidad de ramificaciones o referencias Cuando un cliente Git envía datos al repositorio o extrae datos de él, el servidor remoto debe enviar todas las ramificaciones y referencias, tales como etiquetas, incluso si solo le interesa una sola ramificación. Si tiene miles de ramificaciones y referencias, puede tardar tiempo en el proceso y el envío (negociación de paquetes) y producir una respuesta aparentemente lenta del repositorio. Cuantas más ramificaciones y etiquetas tenga, más tiempo tardará este proceso. Recomendamos que use CodeCommit, pero elimine las ramificaciones y etiquetas que ya no sean necesarias. Para analizar el número de referencias en un repositorio de CodeCommit para determinar qué puede no ser necesario, puede utilizar uno de los siguientes comandos:
  • Emulador de Linux, macOS o Unix o Bash en Windows:

    git ls-remote | wc -l
  • Powershell:

    git ls-remote | Measure-Object -line

¿Cómo funciona CodeCommit?

CodeCommit les resultará familiar a los usuarios de repositorios basados en Git, pero incluso aquellos que los desconozcan deberían encontrar la transición a CodeCommit relativamente sencilla. CodeCommit proporciona una consola para la creación fácil de repositorios y la elaboración de listas de los repositorios y ramificaciones existentes. En unos sencillos pasos, los usuarios pueden encontrar información acerca de un repositorio y clonarlo en su equipo, creando un repositorio local en el que pueden realizar cambios y, a continuación, enviarlos al repositorio de CodeCommit. Los usuarios pueden trabajar desde la línea de comandos en sus máquinas locales o utilizar un editor basado en GUI.

En la siguiente figura se muestra cómo utilizar el equipo de desarrollo, la AWS CLI o la consola de CodeCommit y el servicio de para crear y administrar repositorios:

Flujo de trabajo típico de CodeCommit

  1. Utilice la consola CodeCommit AWS CLI o la consola CodeCommit para crear un repositorio de CodeCommit.

  2. Desde el equipo de desarrollo, use Git para ejecutar git clone, especificando el nombre del repositorio de CodeCommit. Esto crea un repositorio local que se conecta al repositorio de CodeCommit.

  3. Utilice el repositorio local en su equipo de desarrollo para modificar (añadir, editar y eliminar) archivos y, a continuación, ejecute git add para almacenar los archivos modificados localmente. Ejecute git commit para confirmar los archivos localmente y, a continuación, ejecute git push para enviar los archivos al repositorio de CodeCommit.

  4. Descargue los cambios de otros usuarios. Ejecute git pull para sincronizar los archivos del repositorio de CodeCommit con su repositorio local. De este modo, se asegura de que trabaja con la versión más reciente de los archivos.

Puede utilizar la AWS CLI o la consola de CodeCommit para realizar un seguimiento y administrar sus repositorios.

¿En qué se diferencia CodeCommit del control de versiones de archivos de Amazon S3?

CodeCommit se ha optimizado para el desarrollo de software en equipo. Gestiona lotes de cambios en varios archivos, cosa que puede realizarse en paralelo con los cambios realizados por otros desarrolladores. El control de versiones de Amazon S3; admite la recuperación de versiones pasadas de archivos, pero no se centra en las características de seguimiento de archivos colaborativas que necesitan los equipos de desarrollo de software.

¿Cómo empiezo a utilizar CodeCommit?

Para comenzar a utilizar CodeCommit:

  1. Siga los pasos que se detallan en Configuración para preparar los equipos de desarrollo.

  2. Siga los pasos que se detallan en uno o más de los tutoriales de Introducción.

  3. Cree proyectos de control de versiones en CodeCommit o migre proyectos de control de versiones a CodeCommit.

¿Dónde puedo encontrar más información sobre Git?

Si no conoce Git todavía, debe aprender a utilizar Git. A continuación encontrará algunos recursos útiles:

  • Pro Git es una versión online del libro Pro Git escrito por Scott Chacon y publicado por Apress.

  • Git Immersion es una visita guiada interactiva que muestra los conceptos básicos de trabajar con Git publicada por Neo Innovation, Inc.

  • Git Reference es una referencia rápida online que también puede usarse como tutorial en profundidad sobre Git publicado por el equipo de GitHub.

  • Git Cheat Sheet incluye la sintaxis de comandos de Git básicos publicado por el equipo de GitHub.

  • Git Pocket Guide escrita por Richard E. Silverman. Publicada por O'Reilly Media, Inc.