Tutorial de DevOps: introducción

En DevOps hay muchos conceptos, fases y componentes diferentes y este tutorial es una forma magnífica de conocer qué es DevOps y cómo puede mejorar su proceso de entrega de software.

Concepto de DevOps

Para comenzar este tutorial de DevOps, incluiremos algunas definiciones básicas que le ayudarán a comprender qué es DevOps y qué relación tiene con el proceso global de desarrollo de software.

  • DevOps es una práctica de desarrollo de software que promueve la colaboración entre los equipos de desarrollo y de operaciones con el fin de lograr una entrega de software más rápida y confiable. Habitualmente, se le denomina una cultura y conecta a las personas, los procesos y la tecnología para ofrecer valor de forma constante.

    Más información acerca de DevOps

  • El proceso de desarrollo de software puede implicar una gran cantidad de trabajo manual y dar lugar a un número importante de errores en el código. A menudo, los equipos de desarrollo y de operaciones no están sincronizados, lo que ralentiza la entrega del software y decepciona a las partes interesadas de la empresa. DevOps crea eficiencia en todas las tareas implicadas en el desarrollo, la implementación y el mantenimiento de software.

    Al conectar a los equipos de desarrollo y de operaciones, aumenta la visibilidad, los requisitos son más exactos, mejora la comunicación y se reduce el tiempo de comercialización.

  • DevOps salva el vacío que existe entre los equipos de desarrollo y de operaciones, por lo que aumenta considerablemente la eficiencia en el proceso de desarrollo e implementación de software. DevOps hace un fuerte hincapié en la automatización, lo que reduce el número total de errores.

  • La filosofía de DevOps es asumir toda la responsabilidad en todos los aspectos del proyecto. A diferencia de los métodos de desarrollo de software más tradicionales, DevOps salva el vacío que existe entre los equipos de desarrollo y de operaciones; un vacío que es frecuente y que puede obstaculizar considerablemente el proceso de entrega de software.

    Al proporcionar un marco completo para desarrollar y lanzar software, DevOps conecta los equipos de desarrollo y de operaciones, entre los que existe una brecha que puede crear dificultades e ineficiencia en la entrega de software.

  • Aunque tanto el método ágil como DevOps son prácticas de desarrollo de software, tienen un enfoque ligeramente diferente. DevOps es una cultura que se centra en la creación de eficiencia para todas las partes interesadas que participan en el desarrollo, la implementación y el mantenimiento de software. El método ágil es un proceso de lean manufacturing que ayuda a proporcionar un marco de producción para el desarrollo de software. A menudo es específico del equipo de desarrollo, mientras que el ámbito de DevOps se extiende a todas las partes interesadas que participan en la producción y el mantenimiento de software. DevOps y el método ágil se pueden usar juntos para crear un entorno de desarrollo de software muy eficiente.

    Más información sobre DevOps frente al método ágil

Amplíe su aprendizaje de DevOps con estas tareas

Cada sección de este tutorial de DevOps incluye algunas tareas para ayudarle a crear una práctica de DevOps. Dedique un momento a responder a las siguientes preguntas:

  • ¿Cuáles son algunas de las dificultades que ha encontrado a la hora de desarrollar e implementar software?
  • ¿En qué áreas le gustaría mejorar la eficiencia para desarrollar e implementar software?

Aspectos fundamentales de una práctica de DevOps

Lo siguiente en este manual de DevOps es comprender los conceptos principales que se usan en una práctica de DevOps. En esta sección se explican y aclaran los principales componentes.

  • El desarrollo ágil, que utilizan habitualmente los equipos de software, es un método de entrega relacionado con el concepto lean manufacturing El desarrollo se lleva a cabo en sprints breves de forma incremental. Aunque es diferente de DevOps, los dos métodos no se excluyen mutuamente. Las prácticas y herramientas ágiles pueden ayudar a mejorar la eficiencia del equipo de desarrollo y, de este modo, contribuir a la cultura global de DevOps.

    Comience a usar un planeamiento ágil con Azure Boards

  • Con los miembros de un equipo trabajando juntos, el control de versiones es fundamental para un desarrollo de software preciso y eficiente. Un sistema de control de versiones (como GIT) toma una instantánea de los archivos, de modo que siempre se puede volver a cualquier versión anterior en cualquier momento. Con un sistema de control de versiones, puede tener la tranquilidad de que no creará conflictos con los cambios en los que esté trabajando.

    Comience a usar el control de versiones con Azure Repos

  • La integración continua es el proceso de automatizar las compilaciones y las pruebas que se realizan a medida que se completa el código y se hace “commit” en el sistema. Una vez que se ha hecho “commit” del código, sigue un proceso automatizado de validación y, después, se hace “commit” solo del código probado y validado en el código fuente principal, que a menudo se conoce como rama maestra, código principal o tronco. La integración continua automatiza este proceso y aumenta considerablemente la eficiencia. Los posibles errores se identifican con prontitud, antes de fusionar el código mediante combinación con la rama maestra.

    Comience a implementar la integración continua con Azure Pipelines

  • La entrega continua es la práctica fundamental que tiene lugar en DevOps, ya que permite suministrar software rápido y confiable. Si bien el proceso es parecido al concepto global de DevOps, la entrega continua es el marco donde se prueba, valida y se hace “commit” de cada componente de código a medida que se completa, lo que permite entregar software en cualquier momento. La integración continua es un proceso que forma parte de la entrega continua.

    Comience a implementar la entrega continua con Azure Pipelines

  • Tanto en el entorno local como en la nube, el proceso de aprovisionamiento y configuración de los recursos es una parte fundamental de las operaciones del entorno. Mediante la automatización de los procesos y el uso de herramientas que proporcionen una definición declarativa de la infraestructura (por ejemplo, archivos de definición basados en texto), los equipos pueden implementar y configurar los recursos de un modo repetible y confiable. Los archivos de definición basados en texto se pueden administrar como código con control de versiones; por tanto, es más fácil revertir, volver a crear y desmontar entornos complejos. Tecnologías como Terraform o Ansible son soluciones habituales para la implementación de infraestructura como código.

    Creación de una infraestructura en Azure con Terraform

    Más información acerca del uso de Ansible con Azure

  • El ámbito de DevOps va más allá del desarrollo; supone también asumir la responsabilidad del software cuando se entrega, incluido el rendimiento. Todo el proceso de DevOps crea un bucle de comentarios que, en definitiva, aporta datos que pueden mejorar un proyecto futuro y validar la decisión de implementar el software. La supervisión y el registro son componentes fundamentales que sustentan el aprendizaje validado, que a su vez sustenta la iniciativa global de mejorar continuamente la eficiencia en el proceso de desarrollo y entrega de software.

    Vea cómo recopilar y analizar datos de telemetría con Azure Monitor

  • A lo largo del ciclo de vida, se recopilan datos de telemetría y comentarios con el fin de tomar decisiones informadas para el siguiente ciclo. Esta información se conoce como aprendizaje validado. El aprendizaje validado ayuda a proporcionar conclusiones sobre nuevas formas de reducir el tiempo en cada ciclo. Los datos recopilados se usan para buscar formas de aumentar la automatización, mejorar los procesos y preparar una implementación más rápida y eficiente.

Amplíe su aprendizaje de DevOps con estas tareas

Ahora que ya conoce los conceptos clave de una práctica de DevOps, dedique un momento a responder a las siguientes preguntas:

  • ¿Qué partes del proceso de desarrollo son manuales y podrían mejorar con la automatización?
  • ¿Hay posibilidad de incorporar la integración continua en el proceso de compilación del equipo?
  • ¿Cómo administra su equipo la infraestructura actualmente? ¿Es un proceso repetible y confiable o podría mejorarse usando infraestructura como código?
  • ¿Qué datos de telemetría serían útiles para su trabajo?
  • ¿Qué otros datos sustentarían el aprendizaje validado?

Creación de una cultura de DevOps

La siguiente parte de este tutorial de DevOps consiste en debatir cómo crear una cultura de DevOps. A medida que se prepare para incorporar DevOps a su empresa, es muy probable que encuentre diferencias respecto a su estrategia actual de entrega de software.

La creación de una nueva cultura no ocurre de un día para otro y no es tan sencilla como comprarse un nuevo conjunto de herramientas. Para que su equipo aprenda y practique el método DevOps, puede que sea necesario realizar algunos cambios en su estructura, los flujos de trabajo y los hábitos actuales.

Vea cómo creó Microsoft una cultura de DevOps

Amplíe su aprendizaje de DevOps con estas tareas

Mientras considera la creación de una cultura de DevOps en su empresa, dedique un momento a responder a las siguientes preguntas:

  • DevOps facilita la coordinación de todas las partes interesadas en el desarrollo, la entrega y el mantenimiento de software: En su organización, ¿a quién incluiría esto? Cree una lista de todas las personas que trabajarán juntas.
  • ¿De qué forma puede mejorar la comunicación entre el equipo de desarrollo y el de operaciones? Lleve a cabo una lluvia de ideas para encontrar algunas formas de mejorar la cooperación entre las partes interesadas.

Vídeos sobre DevOps

Vea estos vídeos para tener una idea más clara de DevOps y ampliar lo que se explica en este manual. Vea cómo integrar totalmente DevOps en el proceso de desarrollo de software.

Introducción a Azure DevOps

Haga un recorrido por las características y la funcionalidad de Azure DevOps con Donovan Brown.

Compilación e implementación de código con Azure Pipelines

Descubra por qué Azure Pipelines es una magnífica herramienta para administrar la integración y la implementación continuas (CI/CD) del código.

Introducción al uso de HashiCorp Terraform con Azure

Realice este tutorial rápido de DevOps para aprender a instalar y configurar Terraform con el fin de administrar la infraestructura como código de Azure.

Comience a usar Azure DevOps

Entregue software de forma más rápida y confiable con un conjunto moderno de servicios de desarrollo. Planifique de forma más inteligente, colabore mejor y envíe más rápido. Use todas las características de DevOps o elija las que son adecuadas para usted.