Explicación de CI/CD
CI/CD es un término general que abarca varias fases de DevOps. La CI (integración continua) es la práctica de integrar cambios de código en un repositorio múltiples veces al día. La CD tiene dos significados: la entrega continua automatiza las integraciones de código, mientras que la implementación continua entrega automáticamente las versiones finales a los usuarios finales. Las pruebas frecuentes de CI/CD reducen los errores y defectos del código, lo que explica por qué son cruciales para cualquier flujo de trabajo de DevOps.

Integración continua (CI)
La CI es una práctica recomendada de DevOps y es la etapa del ciclo de vida de DevOps en que los desarrolladores registran el código en su repositorio de código compartido, a menudo, múltiples veces al día. Lo ideal es que, cada vez que esto sucede, una herramienta de compilación automatizada verifique el registro o la rama para garantizar que no haya errores y que esté listo para ingresar a producción. El principal beneficio de esto es que los inconvenientes generalmente se detectan en una etapa temprana, antes de que se conviertan en problemas mayores.
La práctica de CI implica integrar pequeños subconjuntos de cambios en un período más corto, en lugar de integrar actualizaciones importantes que toman más tiempo con menos frecuencia. Automatizar los flujos de trabajo para probar, fusionar y verificar los cambios en un repositorio compartido significa que los equipos pueden entregar un código más limpio a un ritmo más rápido. Un código más limpio significa una validación más rápida, versiones más limpias y un canal de desarrollo más eficaz que es más fácil de modificar.
Integración continua (CI)
La CI es una práctica recomendada de DevOps y es la etapa del ciclo de vida de DevOps en que los desarrolladores registran el código en su repositorio de código compartido, a menudo, múltiples veces al día. Lo ideal es que, cada vez que esto sucede, una herramienta de compilación automatizada verifique el registro o la rama para garantizar que no haya errores y que esté listo para ingresar a producción. El principal beneficio de esto es que los inconvenientes generalmente se detectan en una etapa temprana, antes de que se conviertan en problemas mayores.
La práctica de CI implica integrar pequeños subconjuntos de cambios en un período más corto, en lugar de integrar actualizaciones importantes que toman más tiempo con menos frecuencia. Automatizar los flujos de trabajo para probar, fusionar y verificar los cambios en un repositorio compartido significa que los equipos pueden entregar un código más limpio a un ritmo más rápido. Un código más limpio significa una validación más rápida, versiones más limpias y un canal de desarrollo más eficaz que es más fácil de modificar.
Integración continua (CI)
La CI es una práctica recomendada de DevOps y es la etapa del ciclo de vida de DevOps en que los desarrolladores registran el código en su repositorio de código compartido, a menudo, múltiples veces al día. Lo ideal es que, cada vez que esto sucede, una herramienta de compilación automatizada verifique el registro o la rama para garantizar que no haya errores y que esté listo para ingresar a producción. El principal beneficio de esto es que los inconvenientes generalmente se detectan en una etapa temprana, antes de que se conviertan en problemas mayores.
La práctica de CI implica integrar pequeños subconjuntos de cambios en un período más corto, en lugar de integrar actualizaciones importantes que toman más tiempo con menos frecuencia. Automatizar los flujos de trabajo para probar, fusionar y verificar los cambios en un repositorio compartido significa que los equipos pueden entregar un código más limpio a un ritmo más rápido. Un código más limpio significa una validación más rápida, versiones más limpias y un canal de desarrollo más eficaz que es más fácil de modificar.

Entrega continua
La entrega continua es la etapa posterior a la CI. Puede considerarse como una fase de puntos de verificación en el canal de desarrollo, antes de que el producto final se lance o se implemente para los clientes. Una vez que se validan los cambios de código, se envían automáticamente al repositorio.
El objetivo de la entrega continua es mantener los conjuntos de cambios lo suficientemente pequeños para que ninguna actualización de la compilación principal comprometa el estado «listo para producción» del producto final si no está listo para su lanzamiento. El producto final puede tener errores menores, pero ninguno lo suficientemente importante como para comprometer la experiencia del usuario.
La práctica de la entrega continua significa que los desarrolladores pueden pasar menos tiempo realizando pruebas internas, ya que la práctica garantiza que solo el código estable llegue a la fase de entrega en primer lugar. Simplifica el proceso de detección de errores, lo que acelera el tiempo de resolución.
Lecturas similares
Explora más recursos para obtener información sobre CI/CD y otras soluciones y procesos de DevOps.
Agile frente a DevOps
Agile y DevOps tienen el mismo objetivo de ofrecerle valor al cliente a través de programas de lanzamiento regulares, pero difieren un poco en su enfoque. Consulta cómo pueden funcionar juntos.
Beneficios de DevOps
La implementación de prácticas de DevOps puede optimizar tu canal de desarrollo y hacer que tu equipo y tus usuarios estén más felices. Obtén más información sobre cómo DevOps puede ayudarte.
Conoce la gestión de código fuente
La gestión del código fuente (SCM) ayuda a tu equipo a trabajar rápidamente y colaborar con eficacia. Aprende todo lo que necesitas saber sobre las herramientas de control de versiones, cuándo usarlas y cómo funcionan.
CI/CD Frequently asked questions
An agile workflow and CI/CD are related, however, they are not the same! They describe completely different aspects of the software development pipeline. Agile development, refers to the process or methodologies for managing workflows, meeting cadences, and team organization in software development. An agile methodology embraces change while accelerating delivery by listening and responding to customer needs and involving them in each stage of the development process.
CI/CD relies on automation to remove the human elements that create bottlenecks in releasing and improving the software. In both CI and CD testing is automated throughout the pipeline and is done frequently to minimize the costs and time it takes to remediate defects.
With CI/CD, releases should always be frequent to avoid future problems and assure your software is always in a releasable state - typically deploying multiple times a day. A common assumption with CI/CD teams should be implementing "constant" releases, however, this is not always the case. Your release cycle can vary widely depending on your product, your builds, and other factors you might want to take into consideration such as:
Is it a critical or minor fix?
Are you tracking regression counts from build to build?
Is there a QA team put in place?
Does the code base have unit tests?
Are there any code duplications?
These are just a few examples of aspects to consider when thinking about a release strategy and pipeline, but it differs drastically from team to team. Different products require different approaches.
There is no one size fits all answer to this question. Before investing in continuous deployment a business must first assess what the biggest risks are of their product and then determine the tradeoffs in how you want to deploy software. The success of your product is dependent on being able to quickly iterate, get feedback from your customers, and continue to make changes. Continuous deployment will be highly impactful and profitable if you are prioritizing shortening feedback loops and building a highly responsive business. However, if your business does not have many customers then the benefits of implementing increments of deployment will add less value and more costs. The staging environment you choose to deploy ultimately depends on your business needs, workflow, and budget.
Continuous delivery does encourage configuration because it continuously makes changes to the original code in the configuration. This ensures that the configuration stays up with code errors that may occur over time.