OpenWebinars

Cloud Computing

Herramientas de AWS que un desarrollador debe conocer

Te descubrimos las mejores herramientas AWS que te permitirán desarrollar software de forma rápida y segura, con una integración insuperable entre ellas.

Frankier Flores

Frankier Flores

Lectura 8 minutos

Publicado el 20 de agosto de 2021

Compartir

Para el desarrollo de aplicaciones existe una variedad de herramienta con funciones diferentes, pero utilizadas en conjunto para llegar al mismo objetivo. No se trata solo de programar en un lenguaje, hay que evaluar y elegir las herramientas que nos den mejores resultados, por lo que es totalmente válido plantearse algunas interrogantes, ¿qué editor utilizar? ¿dónde almacenar el código fuente? ¿cómo probar e implementar aplicaciones? Aunque probablemente ya tengas algunas herramientas preferidas, siempre es buenos conocer otras opciones y ver qué valor diferencial te pueden aportar.

Las herramientas AWS para desarrolladores están enfocados en ayudar a entregar software de forma rápida y segura. Obviamente, la integración que tienen los servicios de AWS entre sí, es de lo mejor. Estas herramientas te ayudarán a mantener repositorios de código fuente seguros, tener un control de versiones, compilar y probar aplicaciones, hacer integración, entrega e implementación continua. Básicamente, AWS nos ofrece un conjunto de servicios para implementar DevOps.

Para conocer más sobre AWS y los principales servicios, te recomiendo el artículo Qué es AWS. Igualmente, puedes consultar la documentación oficial. También, en la plataforma tenemos cursos y talleres sobre servicios de AWS.

Hay que tener claro que no estamos tratando de algo totalmente nuevo, en su mayoría existen herramientas que hacen la misma función o similar, sin embargo, al usar AWS contamos con otros beneficios adicionales, fundamentalmente las ventajas de Cloud Computing.

Beneficios de las herramientas de AWS para desarrolladores

Agilidad: Son servicios administrados por AWS, no necesitas administrar servidores, ni realizar grandes configuraciones. Con unos pocos clics en la consola de administración o comandos desde la CLI, puedes tener todo listo para desarrollar e implementar aplicaciones, en cuestión de minutos.

Seguridad: Todas las herramientas de AWS tienen integración con AWS IAM (Identity and Access Management), por lo tanto, puedes administrar el acceso a los recursos de forma segura, dado que te permite asignar permisos específicos a cada usuario. Además, con los usuarios de IAM, puedes tener otra capa de seguridad como MFA (Multi-Factor Authentication).

Implementar DevOps: Las herramientas de AWS para desarrolladores son de utilidad para acelerar la entrega de software, automatizando los procesos y permitiendo implementar integración y entrega continua (CI/CD).

Integración con otros servicios: Las herramientas para desarrolladores de AWS no solo tienen integración entre sí, también se integran perfectamente con los demás servicios de AWS, por lo tanto, en conjunto puedes montar una solución completa para cubrir todo el ciclo de desarrollo hasta los despliegues en producción.

Alta disponibilidad: Cuando pones en marcha una de estas herramientas en AWS, se crea en una arquitectura redundante, escalable y, por ende, tolerante a fallos, puedes estar seguro que el servicio siempre estará disponible y podrás acceder a tus proyectos cuando sea necesario.

Pago por uso: Es una de las principales características de Cloud Computing. Evidentemente, funciona igual, pagas por lo que consumes. Algunos servicios no tienen costo, sin embargo, se paga por el consumo que hagan de otros recursos como instancias EC2 o algún tipo de almacenamiento, al final sigue siendo pago por uso.

Herramientas de AWS para desarrolladores

Herramientasde de AWS para desarrolladores

AWS Cloud9

AWS Cloud9 es un IDE (Entorno de desarrollo Integrado) completo basado en la nube, incluye un editor de código, un debugger o depurador y una terminal. Ofrece todas las herramientas fundamentales para el desarrollo de aplicaciones, puedes desarrollar en cualquier lenguaje de programación, incluyendo los más conocidos como Python, Go, JavaScript, PHP, entre otros. El entorno de desarrollo se ejecuta sobre una instancia EC2, que puede ser administrada por AWS o puedes elegir una instancia ya creada, y tienes acceso con privilegios de sudo, si necesitas algo más, puedes instalar software adicional.

Para consumir el servicio de Cloud9 no necesitas más que un navegador web y una buena conexión a Internet, por lo que puedes escribir, ejecutar y probar aplicaciones desde cualquier lugar, ya sea que estés en la oficina o en la casa. Otra ventaja importante, es la facilidad para colaboración con otros integrantes del equipo, puedes compartir el entorno rápidamente y todos los miembros involucrados podrán ver los cambios en tiempo real.

Entorno AWS Cloud9

AWS CodeCommit

Para desarrolladores y SydAdmins, utilizar un sistema de control de versiones es básico, Git es el sistema de control de versiones más utilizado en el mundo. También, es necesario guardar los repositorios con el código fuente en algún lugar, tenemos a disposición soluciones como GitHub, GitLab o BitBucket, seguramente has trabajado con alguno de ellos. No obstante, hay empresas que optan por montar su propio servidor Git para alojar los repositorios por temas se seguridad, etc., nos podemos hacer una idea del trabajo que conlleva administrar un servidor propio para tal fin.

Por su parte, AWS CodeCommit sigue la misma filosofía de este tipo de sistemas, es un servicio administrado por AWS que sirve para alojar repositorios Git privados, ofreciendo un nivel alto de seguridad, dado que utilizada roles y usuarios IAM para limitar el acceso a los repositorios. Y no olvidemos la escalabilidad que está fuera de duda en AWS, por lo antes descrito, CodeCommit simplifica la necesidad de instalar tu propio servidor para el control de versiones, y por supuesto, no tienes que preocuparte por la infraestructura, solo vas a consumir el servicio. ¿La curva de aprendizaje? Es muy simple crear un repositorio en AWS CodeCommit, soporta los mismos protocolos que otros sistemas, SSH y HTTPS. Por lo demás, no hay cambios, sigues usando Git.

AWS CodeBuild

Después de crear un repositorio, hay que meterle mano al código, los desarrolladores del equipo envían cambios de forma periódica al repositorio central, luego se combinan los cambios, por lo que es necesario ejecutar pruebas de unidad automáticas en los nuevos cambios para detectar errores tempranamente y corregir antes de pasar a la siguiente fase. Básicamente, esta es la práctica llamada integración continua (CI) en el desarrollo de software. En este punto es donde aparece AWS CodeBuild, un servicio que permite realizar el proceso de CI, compilando, probando y generando paquetes listos para ser implementados.

AWS CodeBuild es un servicio administrado por AWS, por lo tanto, nos evitamos la tarea de aprovisionar recursos y administrar servidores de compilación. También, aplican las ventajas principales como la elasticidad de la infraestructura y el pago por uso, en este caso, se paga únicamente por el tiempo de compilación utilizado, es decir, el tiempo que tarda en ejecutarse la compilación del código.

AWS CodeDeploy

Después de la fase de integración continua, sigue la entrega continua que consiste en preparar los cambios para ser entregados a producción. También, tenemos la fase de implementación continua. La diferencia es que, en la entrega continua se hace el despliegue en entornos de pruebas o pre producción y requiere aprobación manual para actualizar en producción, en el caso de la implementación continua, el proceso es automático en su totalidad, la implementación del software de hace directamente en producción. Para esta fase tenemos a disposición AWS CodeDeploy, un servicio administrado por AWS que permite automatizar la implementación de aplicaciones en instancias de AWS (Amazon EC2), AWS Lambda, contenedores (Amazon ECS) y servidores en tu centro de datos on-premise.

Con AWS CodeDeploy es posible implementar aplicaciones de la misma forma en diferentes ambientes, ya sea desarrollo, pruebas y producción, sin importar en qué tipo de recursos informáticos se realice el despliegue. Además, permite hacer un seguimiento monitorizando las aplicaciones y el estado de la implementación fácilmente desde la consola. Adicionalmente, puedes configurar notificaciones para estar al tanto del estado de lo que sucede en las implementaciones en tiempo real. Importante, los cambios se aplican paulatinamente por AWS CodeDeploy, esto para garantizar la disponibilidad de la aplicación durante el proceso.

AWS CodePipeline

Llega el momento de AWS CodePipeline, un servicio más completo y totalmente administrado por AWS, que también realiza integración continua, pero va más allá, ejecuta pruebas y además implementa el código cada vez que se producen cambios, de acuerdo a unos parámetros definidos en la configuración. Es decir, es un servicio de integración y entrega continua. Podemos afirmar que AWS CodePipeline te permite automatizar todas las etapas en el proceso de lanzamiento de una aplicación, como también la visualización del proceso desde la interfaz gráfica de usuario. Sin duda, esto representa un valor importante para tu empresa y los clientes, ya que puedes desplegar nuevas aplicaciones o agregar nuevas características con mayor velocidad.

AWS CodePipeline cuenta con un flujo de trabajo flexible que permite configurar las diferentes etapas del lanzamiento del software a través de la interfaz gráfica. Crear un Pipeline en AWS no es tan complejo, en principio se debe definir el origen del repositorio, el cual puede estar en AWS CodeCommit, también tiene soporte para otros proveedores como GitHub o BitBucket. Para compilar el código utiliza AWS CodeBuild, aunque también se puede agregar Jenkins como proveedor de compilación. Para elegir el proveedor de implementación hay varias opciones, incluyendo AWS CodeDeploy.

AWS CodeStar

AWS CodeStar reúne varias herramientas y ofrece una interfaz unificada para configurar y utilizar las herramientas de desarrollo, integración continua y entrega continua (CI/CD), esto me parece tremendo porque te ayuda mantener las fases del ciclo de desarrollo en un solo lugar o un único proyecto, y evidentemente, agiliza la entrega de software que es el principal objetivo. En resumen, AWS CodeStar proporciona todas las herramientas que necesitas para desarrollar, compilar e implementar aplicaciones de una forma más rápida y eficiente.

Con AWS CodeStar puedes tener tu proyecto en cuestión de minutos, ya que puedes elegir plantillas entre una variedad que hay disponibles, para Amazon EC2, AWS Elastic Beanstalk y AWS Lambda, en estas plantillas también puedes elegir el tipo de aplicación, entre ellos aplicaciones web, sitios web estáticos, y servicios web. De igual manera, puedes elegir entre diferentes lenguajes de programación. Posteriormente, se definen los parámetros de la instancia donde se alojará el proyecto, sin olvidar el repositorio con el código de la aplicación que puede estar en CodeCommit o GitHub. Una vez creado el proyecto, los próximos pasos son agregar otras herramientas, fundamentalmente un IDE como Cloud9 y CodePipeline para la integración continua y entrega continua. Finalmente, agregar los usuarios que meterán mano al proyecto y listo, a codificar e implementar las aplicaciones.

Compartir este post

También te puede interesar

Icono de la tecnología
Taller

Kubernetes en AWS

Intermedio
50 min.

Conoce el servicio EKS en Amazon Web Services, cómo ponerlo en marcha y empieza a desplegar contenedores rápidamente,...

Ignacio Millán García
4.5