La nube de AWS
La nube de AWS
Introducción a AWS

Las operaciones de desarrollo constituyen 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: desarrollar y mejorar productos con mayor rapidez que las organizaciones que utilizan procesos tradicionales de desarrollo de software y administración de la infraestructura. Esta velocidad permite a las organizaciones servir mejor a sus clientes y competir de forma más eficaz en el mercado.

¿En qué consisten las operaciones de desarrollo?

Bajo un modelo de operaciones de desarrollo, los equipos de desarrollo y operaciones ya no están "aislados". A veces, los dos equipos se fusionan en uno solo, donde los ingenieros trabajan en todo el ciclo de vida de la aplicación, desde el desarrollo y las pruebas hasta la implementación y las operaciones, y desarrollan una variedad de habilidades no limitadas a una única función. Los equipos de control de calidad y de seguridad también se integran más con el desarrollo y las operaciones e intervienen durante todo el ciclo de vida de la aplicación.

Los equipos utilizan prácticas para automatizar los procesos que anteriormente habían sido manuales y lentos. Utilizan una pila de tecnología y herramientas que les ayudan a operar y mejorar aplicaciones de forma rápida y fiable. Además, estas herramientas también ayudan a los ingenieros a realizar de forma independiente tareas que normalmente hubieran requerido la ayuda de otros equipos (por ejemplo, implementar código o aprovisionar infraestructura), incrementando así todavía más la velocidad del equipo.

Velocidad

Avance a gran velocidad e innove para sus clientes con mayor rapidez, adáptese mejor a los cambios en los mercados y adquiera mayor eficacia en la consecución de los resultados empresariales. El modelo de operaciones de desarrollo permite a sus equipos de desarrollo y operaciones lograr estos resultados. Por ejemplo, los microservicios y la entrega continua permiten que los equipos se hagan responsables de los servicios y los actualicen con mayor rapidez.

Entrega rápida

Incremente la frecuencia y el ritmo de las versiones, a fin de innovar y mejorar el producto con mayor rapidez. Cuando más rápido publique nuevas características y arregle errores, más rápido podrá responder a las necesidades de los clientes y desarrollar una ventaja competitiva. La integración continua y la entrega continua son prácticas que automatizan el proceso de publicación de software, desde la creación hasta la implementación.

DevOps-What-is_reliability

Garantice la calidad de las actualizaciones de la aplicación y los cambios en la infraestructura a fin de poder realizar entregas más rápidas de forma fiable a la par que ofrecer una experiencia positiva a los usuarios finales. Utilice prácticas como la integración continua y la entrega continua para comprobar que cada cambio es funcional y seguro. Las prácticas de monitorización y registro le ayudan a mantenerse informado del desempeño en tiempo real.

DevOps-What-is_scale

Opere y administre su infraestructura y procesos de desarrollo a escala. La automatización y coherencia le ayudan a administrar sistemas complejos o cambiantes de forma eficaz con menos riesgo. Por ejemplo, la infraestructura como código le ayuda a administrar los entornos de desarrollo, pruebas y producción de forma repetible y más eficaz.

DevOps-What-is_collaboration

Desarrolle equipos más eficaces con un modelo cultural de operaciones de desarrollo, que enfatiza valores como la propiedad y la responsabilidad. Los desarrolladores y equipos de operaciones colaboran estrechamente, comparten muchas responsabilidades y combinan sus flujos de trabajo. Así se reducen las ineficacias y se ahorra tiempo (p. ej. se reducen los periodos de transferencia entre desarrolladores y operaciones, al escribir código que tiene en cuenta el entorno en el que se ejecuta).

DevOps-What-is_security

Avance con rapidez a la par que retiene el control y mantiene la conformidad. Puede adoptar un modelo de operaciones de desarrollo sin sacrificar la seguridad al utilizar políticas de conformidad automatizadas, controles minuciosos y técnicas de administración de la configuración. Por ejemplo, al utilizar la infraestructura como código y la política como código, puede definir y supervisar la conformidad a escala.

El software e Internet han transformado el mundo y sus industrias, desde las compras hasta el entretenimiento y la banca. El software ya no se limita a respaldar un negocio, sino que se convierte en componente integral de cada aspecto del mismo. Las compañías interactúan con sus clientes a través de software proporcionado como aplicaciones o servicios en línea en todo tipo de dispositivos. También utilizan software para incrementar la eficacia operativa al transformar cada sección de la cadena de valor, como la logística, la comunicación y las operaciones. Al igual que las compañías de productos físicos transformaron el modo en que diseñaban, fabricaban y entregaban productos gracias a la automatización industrial que se produjo en el siglo XX, las compañías de hoy en día deben transformar el modo en que crean y entregan software.

Adoptar un enfoque de operaciones de desarrollo requiere un cambio de cultura y mentalidad. Básicamente, las operaciones de desarrollo consisten en eliminar las barreras entre dos equipos que anteriormente estaban aislados, el de desarrollo y el de operaciones. En algunas organizaciones, es posible que no existan equipos de desarrollo y operaciones distintos y que los ingenieros se encarguen de todo. Con las operaciones de desarrollo, los dos equipos colaboran para optimizar la productividad de los desarrolladores y la fiabilidad 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. Los equipos de control de calidad y seguridad también podrían integrarse estrechamente en estos equipos. Independientemente de su estructura organizativa, las organizaciones que utilizan un modelo de operaciones de desarrollo disponen de equipos que visualizan todo el ciclo de vida de desarrollo y de la infraestructura como parte de sus responsabilidades.

Existen unas cuantas prácticas fundamentales que ayudan a las organizaciones 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.

Una práctica fundamental consiste en realizar actualizaciones muy frecuentes, pero pequeñas. De ese modo, las organizaciones innovan con mayor rapidez para sus clientes. Por lo general, estas actualizaciones son más incrementales que las actualizaciones ocasionales realizadas de acuerdo con las prácticas de publicación tradicionales. Las actualizaciones frecuentes pero pequeñas reducen el riesgo de cada implementación. Ayudan a los equipos a solucionar los errores con mayor rapidez, ya que les permiten identificar la última implementación que ha provocado el error. Aunque la cadencia y el tamaño de las actualizaciones varían, las organizaciones con un modelo de operaciones de desarrollo implementan actualizaciones con mucha más frecuencia que las organizaciones que utilizan prácticas de desarrollo de software tradicionales.

Las organizaciones también pueden utilizar una arquitectura de microservicios para dar mayor flexibilidad a sus aplicaciones y permitir una innovación más rápida. La arquitectura de microservicios divide sistemas complejos de gran tamaño en proyectos sencillos e independientes. Las aplicaciones se dividen en muchos componentes individuales (servicios) y cada servicio abarca un solo propósito o función y se opera independientemente de los demás servicios y de la aplicación general. Esta arquitectura reduce los gastos de coordinación necesarios para actualizar las aplicaciones. Cuando cada servicio se asigna a equipos pequeños y ágiles que se hacen responsables del mismo, las organizaciones pueden avanzar con rapidez.

Sin embargo, la combinación de unos microservicios y una mayor frecuencia de publicación se traduce en una mayor cantidad de implementaciones, lo que puede suponer varios retos operativos. Para ello, las prácticas de operaciones de desarrollo como la integración y la entrega continuas se encargan de resolver estos problemas y permitir que las organizaciones realicen entregas rápidas, seguras y fiables. Las prácticas de automatización de la infraestructura, como la infraestructura como código y la administración de la configuración, ayudan a mantener la elasticidad de los recursos informáticos y la capacidad de respuesta ante cambios frecuentes. Además, el uso de la monitorización y los registros ayuda a los ingenieros a supervisar el desempeño de las aplicaciones y la infraestructura a fin de poder reaccionar con rapidez ante los problemas.

En combinación, estas prácticas 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 operaciones de desarrollo importantes.


Integración continua

La integración continua es una práctica de desarrollo de 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. Los objetivos clave de la integración continua consisten en encontrar y arreglar errores con mayor rapidez, mejorar la calidad del software y reducir el tiempo que se tarda en validar y publicar nuevas actualizaciones de software.

Más información sobre la integración continua »


Entrega continua

La entrega continua es una práctica de desarrollo de software mediante la cual se crean, prueban y preparan automáticamente los cambios en el código y se entregan para 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 y/o de producción después de la fase de creación. Cuando se la entrega continua se implementa de manera adecuada, los desarrolladores dispondrán siempre de un artefacto listo para su implementación que se ha sometido a un proceso de pruebas estandarizado.

Más información sobre la entrega continua y AWS CodePipeline »


Microservicios

La arquitectura de microservicios es un enfoque de diseño que sirve para crear una sola aplicación como conjunto de servicios pequeños. Cada servicio se ejecuta en su propio proceso y se comunica con otros servicios mediante una interfaz bien definida utilizando un mecanismo ligero, normalmente una interfaz de programación de aplicaciones basada en HTTP (API). Los microservicios se crean en torno a las capacidades empresariales. Cada servicio abarca un único propósito. Puede utilizar distintos marcos o lenguajes de programación para escribir microservicios e implementarlos independientemente, como servicio único, o como grupo de servicios.

Más información sobre Amazon EC2 Container Service »

Más información sobre AWS Lambda »


Infraestructura como código

La infraestructura como código es una práctica mediante la que se aprovisiona y administra infraestructura utilizando técnicas de desarrollo de código y de software, como el control de versiones y la integración continua. El modelo orientado a la API de la nube permite a los desarrolladores y administradores de sistemas interactuar con la infraestructura mediante programación y a escala, en lugar de configurar y ajustar recursos manualmente. Así, los ingenieros pueden interactuar con la infraestructura con herramientas basadas en código y tratar la infraestructura de un modo parecido a como tratan el código de la aplicación. Como están definidos por el código, la infraestructura y los servidores se pueden implementar con rapidez con patrones estandarizados, actualizar con las últimas revisiones y versiones o duplicar de forma repetible.

Aprenda a administrar la infraestructura como código con AWS CloudFormation »

Los desarrolladores y administradores de sistemas utilizan código para automatizar la configuración del sistema operativo y el host, las tareas operativas y más. El uso de código hace que los cambios a la configuración sean repetibles y estandarizados. Evita que los desarrolladores y administradores de sistemas tengan que configurar manualmente sistemas operativos, aplicaciones del sistema o software del servidor.

Averigüe cómo puede configurar y administrar los sistemas on-premise y Amazon EC2 con el Amazon EC2 Systems Manager »

Aprenda a utilizar la administración de la configuración con AWS OpsWorks »

Con la infraestructura y su configuración codificadas en la nube, las organizaciones pueden monitorizar y garantizar la conformidad de forma dinámica y a escala. La infraestructura descrita por el código se puede supervisar, validar y reconfigurar de forma automática. De este modo, las organizaciones pueden controlar los cambios en los recursos con mayor facilidad y garantizar que se siguen las medidas de seguridad de forma distribuida (p. ej. seguridad de la información o conformidad con PCI-DSS o HIPAA). Así, los equipos de la organización pueden avanzar a mayor velocidad, ya que los recursos no conformes se identifican de forma automática para su investigación o incluso se los dota de conformidad automáticamente.

Descubra cómo puede utilizar AWS Config y las reglas de Config para monitorizar y garantizar la conformidad de su infraestructura » 


Monitorización y registro

Las organizaciones monitorizan métricas y logs 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. Al recopilar, categorizar y analizar los datos y logs generados por las aplicaciones y la infraestructura, las organizaciones pueden entender cómo los cambios y actualizaciones afectan a los usuarios, lo que les aporta información sobre la causa raíz de los problemas o cambios inesperados. La monitorización activa se vuelve cada vez más importante, ya que los servicios deben estar disponibles las 24 horas del día, los 7 días de la semana, a medida que la frecuencia de actualizaciones de las aplicaciones e infraestructura incrementa. La creación de alertas y el análisis en tiempo real de los datos también ayuda a las organizaciones a monitorizar sus servicios de forma proactiva.

Descubra cómo puede utilizar Amazon CloudWatch para supervisar las métricas y logs de su infraestructura »

Descubra cómo puede utilizar AWS CloudTrail para grabar y registrar llamadas a las API de AWS »


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 las operaciones de desarrollo. El uso de las herramientas de operaciones de desarrollo 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. Además, estos equipos establecen normas culturales sólidas que giran en torno a compartir información y facilitar la comunicación mediante el uso de aplicaciones de chat, sistemas de seguimiento de proyectos o problemas y wikis. De este modo, se acelera la comunicación entre los equipos de desarrollo y operaciones e incluso con otros equipos, como marketing y ventas, lo que permite que todos los departamentos de la organización se alineen mejor con los objetivos y proyectos.

El modelo de operaciones de desarrollo depende de herramientas eficaces para ayudar a los equipos a implementar e innovar con rapidez y fiabilidad para sus clientes. 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 permiten alcanzar las operaciones de desarrollo. AWS proporciona servicios diseñados para las operaciones de desarrollo y creados para uso en la nube de AWS. Estos servicios le ayudan a utilizar las prácticas de operaciones de desarrollo descritas anteriormente.

Más información sobre los servicios de operaciones de desarrollo de AWS »

Más información sobre las soluciones de socios de AWS »

Introducción

Introducción a
los servicios de operaciones de desarrollo de AWS