Cómo trabajar DevOps con AWS

6 min read
3 de mayo de 2022

Quizá muchos de nosotros en nuestro día a día nos hemos topado con la palabra DevOps. Si hemos sido algo curiosos vamos a encontrar que se trata de un movimiento organizacional-cultural que se encuentra apoyado por un conjunto de herramientas que facilitan y dinamizan la entrega continua de software.

Dichas herramientas están enfocadas en facilitar cada uno de los procesos que hacen parte del flujo de despliegue y entrega de software, cubriendo desde la generación de código hasta publicación en ambientes de cara a un usuario final.

Así mismo, dentro del marco del trabajo que plantea DevOps encontramos dos prácticas fundamentales: la Integración Continua y la Entrega Continua; éstas se encargan de organizar el procedimiento en las fases de construcción de producto y entrega a ambientes productivos, respectivamente. Dichas prácticas pueden ver ilustradas dentro del marco de trabajo a continuación:

devops

Cabe resaltar que las más grandes empresas fabricantes de software y proveedores de nube se han interesado mucho en apropiarse de estos procesos, para brindarle más fluidez a sus clientes en cuanto a las actividades de despliegue y entrega de sus productos finales.

La facilidad de integración de productos de terceros sumada a la experiencia que tienen estas plataformas para construir productos a la medida según la necesidad, han dejado como resultado suites muy completas para la práctica DevOps como las muy conocidas Azure DevOps, Git CI/CD, Jenkins y demás.

Pero ¿qué hay de Amazon Web services? el más grande proveedor de nube de la actualidad no podía quedarse atrás, para ello ofrece un conjunto de herramientas y servicios que pueden cumplir todas las necesidades en cuanto al ciclo de vida de un desarrollo de software se refiere.

Estas herramientas están diseñadas de manera que no se dependa de un tercero para lograr el proceso, que su versatilidad, desacoplamiento y costo sean el plus para DevOps en AWS. Dichas herramientas son las siguientes:

AWS Cloud9 (Entorno de Desarrollo)

Cloud9 es un entorno de desarrollo integrado(IDE) basado en la nube que ofrece un experiencia enriquecida en la construcción de código, permitiendo la escritura, ejecución y depuración de éste solo con un navegador. De igual forma, al ser un IDE basado en la nube de Amazon, podemos encontrar que por debajo éste se está ejecutando sobre una instancia de Amazon EC2. dicha instancia no aprovisiona de los recursos necesarios para compilar y depurar nuestro código.

Por otro lado Cloud9 facilita el trabajo colaborativo mediante código, ya que puedes compartir tu entorno de desarrollo con tu equipo de trabajo y ver en tiempo real quién, cuándo y en dónde se está inyectando código nuevo. Así mismo incorpora un chat donde el equipo puede comunicarse de manera inmediata y resolver cualquier duda o inquietud que se presente.

Beneficios de AWS Cloud9

Aws Cloud9 como esta aprovisionado bajo un Amazon EC2, para poder usarlo solo necesitas habilitar una instancia (Puede ser una por defecto de Amazon) y conectarte por medio de un navegador para empezar escribir y probar tu código, por lo que no te debes preocupar por temas como recursos, configuración de entorno de desarrollo y muchos menos de mantener tu IDE, ya que Aws cloud9 se encargada de hacerlo por ti.

Sumando a esto, Aws Cloud9 promueve el trabajo colaborativo mediante un conjunto de herramientas como la configuración Environments predefinidos, las ediciones en tiempo real de tus compañeros de equipo y el chat embebido.

Costo de AWS Cloud9

No se aplican cargos adicionales para AWS Cloud9.siempre y cuando se este utilizando alguna instancia de EC2, por lo que solo se pagará por los recursos de cómputo y almacenamiento (p. ej., una instancia de EC2, un volumen de EBS) utilizados para ejecutar y almacenar el código.

AWS CodeCommit (Control de Versiones)

Es un servicio de control de versiones en la nube basado en GIT y en el cual podemos alojar y administrar cualquier tipo de recursos como código, archivos binarios y/o documentos. Este elimina la necesidad de administrar un sistema propio por lo que no debemos preocuparnos por escalar recursos de almacenamiento.

Además, como es un sistemas basado en GIT, es compatible con las funcionalidades básicas y se acopla perfectamente a herramientas existentes basadas en GIT.

¿Cuándo usar CodeCommit?

Si requieres aprovisionar un servidor de control de versiones a varios equipos de trabajos, podrías aprovechar al máximo este servicio ya que nos brinda beneficios como alta disponibilidad, seguridad y es complementante administrado.

En cambio si solo requieres aprovisionar el servicio para poco proyectos la ganancia es mínima si usas este o cualquier otro ofrecido en el mercado.

¿Cuál es el costo de CodeCommit?

La capa gratuita de Amazon nos brinda un límite de 5 usuarios que tiene acceso repositorios ilimitados, 10.000 solicitudes en GIT y 50 GB/Mes de almacenamiento. Si excedes alguna de esas restricciones, Amazon empezará a cobrar 1 USD al mes.

AWS CodeDeploy (Despliegue)

Este servicio de Amazon nos facilita la administración y automatización de los despliegues de múltiples aplicaciones basadas en servicios como EC2, AWS Fargate, Aws Lambda y servidores locales. Es decir, que agiliza el lanzamiento de nuevos componentes el producto software.

Además, nos ofrece hacer despliegues por grupo lo que facilita la segmentación por ambientes. Adicional a esto, CodeDeploy tiene afinidad con herramientas como CodeCommit, GitHub, GitLab, Jenkins, Travis o CodePipeLine, por lo que se integra muy bien con estos.

Ventajas de usar AWS CodeDeploy

CodeDeploy nos otorga un gran ventaja en cuanto a la administración de los despliegues de la aplicación debido a que nos facilita la configuración tiempos de inactividad de ésta, el escalamiento de las aplicaciones para maximizar la disponibilidad del producto.

Sumando a esto se integra de manera sencilla casi que transparente con productos de Amazon como EC2, ECS o aplicaciones sin servidor. De igual forma se puede integrar con cadena de herramientas de entrega constante como AWS CodePipeline, GitHub o Jenkins.

AWS Code Build (Compilación)

Es un servicio de integración continua completamente administrado que compila código fuente, ejecuta pruebas y produce paquetes de software listos para su implementación. Con CodeBuild, no es necesario aprovisionar, administrar y escalar sus propios servidores de compilación. CodeBuild se escala constantemente y procesa numerosas compilaciones a la vez, de manera que estas no permanecen a la espera en una cola.

Puede comenzar con rapidez mediante entornos de compilación preempaquetados, o crear entornos de compilación propios personalizados que utilicen sus herramientas de compilación.

¿Por qué AWS Code Build?

Algunas de las principales ventajas de usar este servicio son su flexibilidad, escalabilidad y personalización, aunque cuenta con su propio software de compilación, este puede integrar herramientas adicionales e incorporar características personalizadas y externas, además de ser capaz de soportar altas cargas de trabajo de compilación ya que posee la cualidad de adicionar más capacidad de cómputo y recursos según se requiera.

Puedes automatizar las tareas de compilación mediante creación de flujos de trabajo automáticos que se activen cada vez que se produce un cambio en el código fuente y adicional a esto puedes asegurar los elementos de tu compilación ya que Code Build posee cifrado de elementos y contenido.

¿Cuál es el costo de AWS Code Build?

Este servicio no conlleva costos iniciales, únicamente se cobran los recursos informáticos en función de lo que tarde la compilación en ejecutarse. La tarifa por minuto depende del tipo de instancia seleccionada para el cómputo.

AWS CodePipeline (Flujo de procesos)

Es un servicio de entrega continua completamente administrado que permite automatizar pipelines de lanzamiento para lograr actualizaciones de infraestructura y aplicaciones rápidas y fiables.

CodePipeline automatiza las fases de compilación, prueba e implementación del proceso de despliegue cada vez que se realiza una modificación en el código, en función del modelo de despliegue que defina.

Esto le permite entregar características y actualizaciones de forma rápida y fiable. Puede integrar fácilmente AWS CodePipeline con servicios de terceros, como GitHub o su propio complemento personalizado.

Beneficios de AWS CodePipeline

Además de las posibles integraciones con servicios de AWS como CodeCommit, ECR, S3 para la extracción del código fuente, AWS CodePipeline permite implementar sus cambios con CodeDeploy, ECS en mediante instancias o contenedores Fargate.

Permite ejecutar en paralelo varios segmentos del flujo de trabajo con el fin de optimizar los tiempos de despliegue; además de controlar el acceso para realizar cambios, mediante IAM para usuarios, roles o usuarios federados.

También puedes saber el estado de tu pipeline configurando alertas SNS que aparecerán como notificaciones de acuerdo a los eventos que se vayan ejecutando.

¿Cuánto vale AWS CodePipeline?

Con AWS CodePipeline sólo paga por lo que utiliza. El costo de AWS CodePipeline es de 1,00 USD por Pipeline activo al mes. Amazon nos ofrece para fines de pruebas y demás pipelines gratuitos durante los primeros 30 días a partir de su creación.

En pocas palabras Amazon Web Services hizo muy bien la tarea de poner en manos de sus clientes todas las herramientas necesarias para sus procesos de integración y despliegue continuo.

La posibilidad de integrar todos estos servicios en una sola plataforma de nube, hace que sea una opción altamente considerable y beneficiosa, el modelo de costos y la gran cantidad de características ofrecidas nos llevan a replantear la manera en cómo las empresas pueden adentrarse en el mundo DevOps, teniendo las herramientas de AWS como pilar de sus procesos y despliegues.

Nuevo llamado a la acción

Suscríbete al
Blog Pragma

Recibirás cada mes nuestra selección de contenido en Transformación digital.

Imagen form