DevOps en AWS

Introducción

Este artículo es el primero de una serie de artículos relacionados con DevOps y AWS, por lo que vamos a empezar explicando, desde el punto de vista de AWS, qué es DevOps y las herramientas que AWS nos provee para aplicar DevOps en su plataforma.

La información de este artículo ha sido extraída de la documentación oficial de AWS y dejaremos los enlaces oficiales en el apartado de referencias.

Qué es DevOps

DevOps es una combinación de filosofías culturales, prácticas y herramientas que incrementan la capacidad de una organización de proporcionar aplicaciones y servicios a gran velocidad.

Beneficios de DevOps

Estos son los beneficios que conlleva aplicar DevOps en una organización:

  • Velocidad: te permite avanzar a mayor velocidad
  • Entrega rápida: incrementa la frecuencia y el ritmo de las versiones, a fin de innovar y mejorar el producto con mayor rapidez.
  • Confiabilidad: garantiza la calidad de las actualizaciones de la aplicación y los cambios en la infraestructura para poder realizar entregas más rápidas de forma confiable mientras ofrece una experiencia positiva a los usuarios finales
  • Escalado: te permite operar y administrar la infraestructura y los procesos de desarrollo a escala
  • Colaboración mejorada: permite desarrollar equipos más eficientes mediante un modelo colaborativo para reducir ineficacias y ahorrar tiempo
  • Seguridad: te permite avance con rapidez mientras retiene el control y mantiene la conformidad

Filosofía cultural DevOps

Adoptar un enfoque de DevOps requiere un cambio de cultura y mentalidad. Básicamente, DevOps consiste en eliminar las barreras entre dos equipos que anteriormente estaban aislados, el de desarrollo y el de operaciones. Con DevOps, los dos equipos colaboran para optimizar la productividad de los desarrolladores y la confiabilidad de las operaciones. Se esfuerzan por comunicarse con frecuencia, incrementar la eficacia y mejorar la calidad de los servicios que proporcionan a los clientes. Se hacen totalmente responsables de sus servicios, a menudo más allá de lo que tradicionalmente abarcarían sus funciones o puestos de trabajo, al pensar en las necesidades de los clientes y cómo pueden ayudar a satisfacerlas.

Prácticas DevOps

Las practicas fundamentales te ayudan a innovar con mayor rapidez mediante la automatización y la simplificación de los procesos de desarrollo de software y administración de la infraestructura. La mayoría de estas prácticas se llevan a cabo con las herramientas adecuadas.

En combinación, ayudan a las organizaciones a proporcionar actualizaciones más fiables y con mayor rapidez a sus clientes.

A continuación se proporciona una vista general de las prácticas de DevOps más importantes.

  • Integración continua (CI): es una práctica de desarrollo del software mediante la cual los desarrolladores combinan los cambios en el código en un repositorio central de forma periódica, tras lo cual se ejecutan versiones y pruebas automáticas.
  • Entrega continua (CD): es una práctica de desarrollo de software mediante la cual se compilan, prueban y preparan automáticamente los cambios en el código y se entregan a la fase de producción. Amplía la integración continua al implementar todos los cambios en el código en un entorno de pruebas o de producción después de la fase de creación
  • Microservicios: es un enfoque de diseño que sirve para crear una sola aplicación como conjunto de servicios pequeños
  • Infraestructura como código (IaC): es una práctica mediante la que se aprovisiona y administra infraestructura con técnicas de desarrollo de código y de software, como el control de versiones y la integración contínua
  • Monitoreo y registro: Las organizaciones monitorean métricas y registros para ver cómo el desempeño de las aplicaciones y la infraestructura afecta a la experiencia que el usuario final tiene de su producto
  • Comunicación y colaboración: El incremento en la comunicación y la colaboración en una organización es uno de los aspectos culturales clave de DevOps. El uso de las herramientas de DevOps y la automatización del proceso de entrega de software establece la colaboración al reunir físicamente los flujos de trabajo y las responsabilidades de los equipos de desarrollo y operaciones

devOps en AWS

DevOps en AWS

AWS proporciona un conjunto de servicios flexibles diseñados para permitir a las compañías crear y proporcionar productos de forma más rápida y fiable usando AWS y prácticas DevOps. Estos servicios simplifican el aprovisionamiento y la administración de la infraestructura, el despliegue de código de aplicación, la automatización de procesos de publicación de software y la monitorización del rendimiento de las aplicaciones y de la infraestructura.

Por qué utilizar AWS para DevOps

AWS enumera las siguientes razones para hacerlo:

Comienza con rapidez

  • Cada servicio de AWS está listo para usar si dispone de una cuenta de AWS. No se necesita realizar ninguna configuración ni instalar ningún software.

Servicios completamente administrados:

  • Estos servicios le ayudan a utilizar los recursos de AWS con mayor rapidez. No tiene que preocuparse tanto de configurar, instalar y operar infraestructura por su cuenta. Así se puede concentrar en su producto principal.

Diseñado para el escalado:

  • Con los servicios de AWS, puede administrar una sola instancia o escalar a miles. Estos servicios le ayudan a sacar el máximo partido a los recursos informáticos flexibles al simplificar el aprovisionamiento, la configuración y el escalado.

Programable:

  • Puede usar cada servicio mediante la interfaz de línea de comandos de AWS o mediante API y SDK. También puede modelar y aprovisionar recursos de AWS y toda la infraestructura de AWS con plantillas de AWS CloudFormation declarativas.

Automatización:

  • AWS le ayuda a utilizar la automatización, para que pueda crear con mayor rapidez y eficacia. Con los servicios de AWS, puede automatizar tareas o procesos manuales como implementaciones, flujos de trabajo de desarrollo y pruebas, administración de contenedores y administración de la configuración.

Seguridad

  • Use AWS Identity and Access Management (IAM) para configurar permisos y políticas de usuario. De este modo, dispondrá de control exhaustivo sobre quién puede acceder a sus recursos y cómo puede hacerlo.

Amplio ecosistema de socios

  • AWS dispone de un gran ecosistema de socios que se integran con AWS y amplían sus servicios. Utilice sus herramientas de terceros y de código abierto preferidas con AWS para crear una solución íntegra. Vaya aquí para obtener más información sobre nuestras soluciones de socios de DevOps.

Pago por uso

  • Con AWS adquiere servicios según los necesita y solamente durante el periodo en que piensa utilizarlos. Los precios de AWS no incluyen cuotas iniciales, tasas de cancelación ni contratos a largo plazo. La capa gratuita de AWS lo ayuda a comenzar con AWS. Para obtener más información, visite las páginas de precios de cada servicio.

Herramientas de DevOps de AWS

AWS proporciona servicios que le ayudan a practicar DevOps en su empresa y que están diseñados para su uso con AWS. Estas herramientas automatizan tareas manuales, ayudan a los equipos a administrar entornos complejos a escala y mantienen a los ingenieros en control de la gran velocidad que permite alcanzar DevOps.

Para cada una de las prácticas DevOps mencionadas anteriormente, se listarán los servicios AWS que lo cubren, pero no se explicará en qué consiste cada uno de los servicios, simplemente que identifiquemos que AWS tiene un servicio que cubre uno de los puntos, y en futuros artículos se entrará más en detalle.

Integración y entrega continuas (CI/CD):

  • Flujos de trabajo de publicación de software: AWS CodePipeline
  • Compilación y testeo de código: AWS CodeBuild
  • Automatización del despliegue: AWS CodeDeploy
  • Proyectos CI/CD unificados: AWS CodeStar
  • Control de versiones: AWS CodeCommit

Microservicios:

  • Plataforma Docker de producción: Amazon Elastic Container Service (ECS)
  • Serverless: AWS Lambda

Infraestructura como código (IaC)

  • Aprovisionamiento de la infraestructura con plantillas: AWS CloudFormation
  • Aprovisionamiento de la infraestructura con lenguajes de programación: CDK, cdk8s (Cloud Development Kit for Kubernetes)
  • Administración de la configuración de Chef/Puppet: AWS OpsWorks
  • Administración de la configuración: AWS Systems Manager
  • Política como código: AWS Config

Monitoreo y registro:

  • Monitorización de la nube y la red: Amazon CloudWatch (metrics, alarms, logs, events)
  • Rastreo distribuido: AWS X-Ray
  • Supervisión de la actividad y el uso de la API: AWS CloudTrail

Plataforma como servicio:

  • Ejecute y administre aplicaciones web: AWS Elastic Beanstalk
  • Control de versiones:
  • Alojamiento Git privado: AWS CodeCommit

Conclusión

En este artículo hemos visto qué es DevOps y qué herramientas tiene AWS para aplicar DevOps, y en futuros artículos entraremos más en detalle de alguna de estas partes.

El siguiente artículo de esta serie de DevOps en AWS será “Implementación de CI/CD en AWS”, en el que se explicarán los servicios de esta parte y se mostrará el ejemplo de cómo hacerlo de forma práctica.

Referencias

 

webinar AWS

Tags

He leído y acepto la política de privacidad
Acepto recibir emails sobre actividades de recruiting NTT DATA