Proceso DevOps, para el despliegue de aplicaciones en AWS

Un principio fundamental de DevOps es tratar la infraestructura de la misma manera que los desarrolladores tratan el código. El código de la aplicación tiene un formato y sintaxis definidos. Si el código no se escribe de acuerdo con las reglas del lenguaje de programación, no se pueden crear aplicaciones. El código se almacena en un sistema de gestión de versiones que registra un historial de desarrollo de código, cambios y correcciones de errores. Cuando el código se compila (construye) en aplicaciones, esperamos que se cree una aplicación coherente. Es decir, la construcción es repetible y confiable.

Practicar “infraestructura como código” significa aplicar el mismo rigor de desarrollo de código de aplicación al aprovisionamiento de infraestructura. Todas las configuraciones deben definirse de forma declarativa y almacenarse en un sistema de gestión de versiones, al igual que el código de la aplicación. La provisión, la orquestación y el despliegue de la infraestructura deben apoyar el uso del “código de la infraestructura.”

AWS CloudFormation

Facilita de una manera enfocada en DevOps de crear y mantener infraestructura, que permiten la creación, despliegue y mantenimiento de infraestructura de una manera programática, descriptiva y declarativa. Similar a la forma en que los desarrolladores de software escriben código de aplicación.

Los servicios de AWS que se aprovisionan con CloudFormation son con una estrategia de DevOps y constituyen los fundamentos de numerosos principios y prácticas de alto nivel de AWS DevOps.

Despliegue Continuo

El despliegue continuo es otro concepto básico en una estrategia de DevOps. Su objetivo principal es permitir el despliegue automatizado de código de aplicación preparado para la producción.  A veces, el despliegue continuo se denomina entrega continua. La única diferencia es que el despliegue continuo generalmente se refiere a implementaciones de producción. Mediante el uso de prácticas y herramientas de entrega continua, el software se puede implementar de forma rápida, repetida y confiable. Si un despliegue falla, se puede volver automáticamente a la versión anterior. Existen Herramientas de desarrollo AWS para el Despliegue Continuo

AWS CodeCommit proporciona estos beneficios:·

  • Altamente disponible, escalable y tolerante a las fallas·
  • Sin límite de tamaño·
  • Se integra con otros servicios de AWS (CodePipeline, Lambda & SNS)·
  • Migra fácilmente archivos de otros repositorios basados ​​en Git·
  • Funciona con herramientas existentes basadas en Git

Precio:·

  • Gratis (los primeros 5 usuarios activos)·
  • Repositorios ilimitados·
  • 50 GB por mes de almacenamiento·
  • Solicitud de 10.000 Git por mes·
  • $ 1 por mes (cada usuario activo por encima de los primeros 5)·
  • Repositorios ilimitados·
  • 10 GB por mes de almacenamiento por usuario activo·
  • 2.000 solicitudes Git por mes por usuario activo

Por ejemplo: Si tiene 8 usuarios activos, su factura total será de $ 3, suponiendo que no exceda ninguno de los límites anteriores.Exceso:$ 0.06 por GB por mes$ 0.001 por solicitud Git

Migración de un repositorio a CodeCommit

AWS permite migrar otros repositorios basados ​​en git a

  • CodeCommit.
  • GithubGitLab
  • BitBucket

·      Puede elegir migrar todo el repositorio o sólo algunos.·

Puede migrar desde otros sistemas de control de versiones (no basados ​​en git),

como Subversion o TFS, pero primero tendrá que migrar a un sistema basado en git.·

Puede migrar todo el repositorio, o en partes (incrementalmente).

Disparadores

Los disparadores, son un método en el que los eventos de CodeCommit pueden iniciar acciones automatizadas en otros servicios de AWS.

La creación de un nuevo repositorio puede desencadenar un tema SNS para notificar a todos los suscriptores que se ha creado un nuevo repositorio. Se puede seleccionar uno de los siguientes eventos en CodeCommit para invocar un disparador:

  • Todos los Eventos del Repositorio·
  • Un push a la rama existente (* rama principal)·
  • La creación de una rama o etiqueta·
  • La eliminación de una rama o etiqueta

Los disparadores pueden invocar acciones en los siguientes servicios de AWS: AWS Servicio de notificación simple (SNS) y AWS Lambda

También puede aprovechar la capacidad de SNS para integrarse con otros servicios de AWS como el servicio AWS Simple Queue (SQS).

AWS CodePipeline

Es un servicio de entrega continua. Proporciona las herramientas para modelar, visualizar y automatizar los muchos pasos que se requieren como parte de la versión del software.

Puede automatizar fácilmente todo el proceso de lanzamiento, desde el repositorio de origen hasta los servidores de producción.

AWS CodePipeline proporciona estos beneficios:

Es posible crear y repetir un conjunto coherente de pasos cada vez que desee liberar o actualizar su software.

Acelera el proceso de liberación mediante la automatización, CodePipeline se integra con muchos otros servicios de AWS (CodeCommit, CodeDeploy, S3, OpsWorks), así como otras grandes plataformas desarrolladoras y DevOps como Jenkins y GitHub.

Fácil de visualizar y visualizar cada etapa del proceso de liberación, su estado y posición.

AWS CodeDeploy

Es un servicio de AWS para automatizar el proceso de implementación de sus aplicaciones, desde sistemas de control de versiones basados en Git o compartimentos S3 a instancias de Amazon EC2, instancias locales o ambas.

AWS CodeDeploy proporciona estos beneficios

Puede automatizar fácilmente su implementación de código en entornos de desarrollo, prueba y producción.

Es posible implementar su código en una o miles de instancias a la vez y las actualizaciones dinámicas le permiten reducir el tiempo de inactividad al permitirle realizar un seguimiento de los despliegues de aplicación y parada / retroceso si hay errores.

Puede realizar un seguimiento fácil de sus implementaciones recibiendo informes que enumeran cuándo y dónde se implementa cada una de las revisiones de la aplicación. CodeDeploy está diseñado para trabajar con cualquier aplicación.

AWS CodeBuild

Es un servicio que compila su código fuente, ejecuta pruebas de unidad y produce artefactos que están listos para implementarse. AWS CodeBuild elimina la necesidad de proporcionar, administrar y escalar sus propios servidores de compilación.

Proporciona entornos de compilación para los lenguajes de programación más populares y herramientas de compilación como Apache Maven, Gradle y más. También puede personalizar entornos de creación en AWS CodeBuild para utilizar sus propias herramientas de compilación. AWS CodeBuild se escala automáticamente para satisfacer las solicitudes de generación de recursos.

AWS CodeBuild proporciona estos beneficios

Totalmente administrado, elimina la necesidad de configurar, revisar, actualizar y administrar sus propios servidores de compilación.

Bajo demanda, ofrece escalas bajo demanda para satisfacer sus necesidades de construcción. Usted paga solamente por el número de minutos de construcción que consume.

La fase del proceso DevOps, para el despliegue de aplicaciones en AWS consiste en los siguientes procesos e involucra las siguientes herramientas de desarrollo.

Ejemplo gráfico de cómo se puede implementar todo el proceso DevOps en AWS y utilizando repositorio git:

Además, es importante destacar la interacción de las personas con los procesos y las herramientas de desarrollo para una correcta cultura de DevOps en el desarrollo de aplicaciones e infraestructura en AWS.

Pablo Galeana
Pablo Galeana

Deja un comentario


*