Conecta con nosotros

A Fondo

Las 5 operaciones que todo arquitecto cloud debería automatizar

Publicado el

Las 5 operaciones que todo arquitecto cloud debería automatizar

La nube ofrece muchas ventajas al proceso de desarrollo de aplicaciones. Una de ellas es la posibilidad de automatizar acciones críticas que de otra manera se hacen a mano cada cierto tiempo. Por lo tanto, los arquitectos cloud pueden ahorrar mucho tiempo y esfuerzo si automatizan tareas y pueden dedicar su tiempo y esfuerzo a otros aspecto más relevantes de su trabajo. Pero ¿cuáles son las tareas de la nube que se pueden automatizar y que están entre las principales para un arquitecto cloud? A continuación te mostramos cinco de ellas

El escalado

La automatización del escalado es quizá la más básica y a la vez más necesaria de todas las que se pueden hacer al usar la nube. Tanto si se trata de el escalado automático de recursos del servidor como el escalado elástico integrados en los servicios nativos cloud, como Amazon S3, escalar es una de las principales partes de la nube. De hecho, la posibilidad de contar con una infraestructura escalable es una de las principales razones por las que las empresas y los profesionales empiezan a utilizar la nube.

Eso sí, es necesario tener en cuenta que la automatización del escalado requiere el lanzamiento rápido de nuevas instancias del servidor. También necesita que no haya barreras para poder llevarse a cabo. Por eso, esta automatización no puede realizarse de manera independiente, sino que hay que hacer mínimo otra más, relacionada con los servidores.

Aprovisionamiento de servidores

Antes de la llegada de la nube el aprovisionamiento de un servidor, es decir, su configuración para utilizarlo en una red, podía llevar varios días. O incluso meses. Pero la llegada de la nube y sus posibilidades de automatización permiten realizar el aprovisionamiento en una instancia de servidor completamente funcional y operativa, y tener todo el software y los servicios que necesitas listos para utilizarlos en solo unos minutos.

El aprovisionamiento automatizado de servidores es una de las claves del escalado automatizado, como hemos visto. Pero también es clave para las infraestructuras que se reparan automáticamente. Eliminar una instancia de servidor que falla o que está comprometida, y dejar que la automatización lo sustituya por una instancia de servidor nueva cambia además la forma en la que los problemas se solucionan en la nube. Esta capacidad es muy importante para mejorar el tiempo de resolución de muchos tipos de problemas y fallos.

El aprovisionamiento de servidores automatizado funciona de forma parecida al lanzamiento de nuevas instancias de máquinas virtuales en un servicio de computación como Amazon EC2. También nuevas instancias de contenedor en un entorno de Kubernetes. En cualquier caso, la automatización mejora tanto la velocidad como la fiabilidad en los lanzamientos y escalados. También en la reparación de instancias de servidor, básica para la mayoría de aplicaciones en la nube.

Otra ventaja del aprovisionamiento automatizado de los servidores es la mejora de la disponibilidad. La automatización del aprovisionamiento implica que se puede sustituir un número menor de servidores más grandes por un número mayor de servidores más pequeños. Con este modelo se puede mejorar mucho la disponibilidad de una aplicación y reducir el impacto de los fallos.

Pero el aprovisionamiento automático de servidores solo funciona si el resto de la infraestructura que se necesita para hacer funcionar los servidores también se puede configurar de manera rápida y sencilla. En esto interviene en gran medida la automatización que veremos a continuación.

Creación de infraestructura

La automatización del aprovisionamiento no es, per se, suficiente para que consigas que tus aplicaciones en la nube se ejecuten y den servicio a los usuarios. Además necesitas aprovisionar tus balanceadores de carga, los firewalls, los segmentos de red y las bases de datos. En general, necesitas hacerlo con todos los servicios que necesita tu aplicación, como las colas y las cachés. Toda la infraestructura de apoyo tiene que prepararse, configurarse y conectarse a tu aplicación antes de que sea completamente funcional.

Todo este aprovisionamiento puede llevar mucho tiempo si se hace a mano. Si estás haciendo despliegues en un centro de datos en local, preparar y poner a punto todos los componentes necesarios te puede llevar días. Pero en la nube basta con utilizar una técnica de automatización conocida como Infraestructura como código (IaC) para aprovisionar la infraestructura para tus aplicaciones a base de llamadas a APIs.

Con IaC puedes especificar cómo quieres configurar tu infraestructura en el código fuente. El archivo que lo contendrá se puede gestionar en muchos casos con sistemas de control de versiones por software convencionales, com oGit. A partir de ahí puedes pasar la configuración de infraestructura codificada a través de una herramienta que se encargará automáticamente de realizar el aprovisionamiento, la configuración y la conexión de los componentes de tu infraestructura a una red en funcionamiento.

Hay muchas herramientas disponibles para realizar este tipo de automatización. Dos de las más populares son TerraForm y CloudFormation. La Infraestructura como código, por tanto, ofrece muchas ventajas a un proceso de aprovisionamiento de infraestructura, incluyendo control de cambios y aprobación de los mismos, seguimiento de los cambios y reutilización de código de infraestructura. Eso sí, solo se puede utilizar en un centro de datos cloud o con prestaciones similares a los que ofrece uno en la nube. En ellos, las APIs de infraestructura permiten la creación de infraestructura de manera automatizada.

Despliegue de código

La configuración de la infraestructura automatizada que se basa en la gestión del código lleva a la siguiente automatización: el despliegue de código. En este caso hay que tener en cuenta que los flujos de despliegue de código automatizado no son exclusivos de la nube. Pero dado el uso intensivo de otros tipos de automatización, los despliegues de código automatizado son una extensión natural para las aplicaciones que funciona en la nube, en las que se apoyan mucho los arquitectos cloud.

Uno de los métodos de automatización del despliegue del código más utilizados es el canal CI/CD. Es decir, la integración continua y la entrega continua. Se trata de un modelo que permite aplicar automáticamente los despliegues de código a las aplicaciones de producción basándose en código comprobado en un sistema de control de versiones, como Git. En función de la aplicación y de las políticas de la empresa, el despliegue automatizado puede programarse o activarse cuando se hace un cambio al código base y está disponible para el despliegue.

Hay muchas herramientas para permitir los despliegues de código automatizados. Entre ellos están Jenkins, GitLab y AWS CodeDeploy. Cada uno de ellos funciona de manera distinta, por lo que cada arquitecto tiene que elegir el que más le convenga en cada caso.

Servicios cloud nativos

Muchas veces se pasa por alto, pero el escalado dinámico automático que se desarrolla en muchos servicios cloud, se automatiza con mucha frecuencia. De hecho, los servicios de cola cloud, el almacenamiento de datos en la nube y las bases de datos en la nube dependen mucho de la automatización para gestionar las necesidades de escalado de las aplicaciones dinámicas que los utilizan.

En muchos casos, los arquitectos cloud prefieren utilizar un almacenamiento de datos como S3 en vez de crear el suyo a partir de un disco en local. Esto se debe a que son servicios sencillos, seguros y fiables. Además, se integran con facilidad y sus funciones son muchas veces automáticas. Pasa lo mismo con muchos otros servicios que ofrecen las nubes públicas. Al usarlos sacas partido a la automatización que llevan incorporada y que se ejecuta de manera prácticamente invisible y en segundo plano.

Estas son las principales automatizaciones que puede aprovechar un arquitecto cloud. No solo puede, sino que para mejorar en su trabajo es recomendable que las haga, además de apoyar y animar a la automatización en todas las aplicaciones basadas en la nube. Cuanto más automatice, más tiempo tendrá para desarrollar otras tareas más relevante, y menos complicaciones en su día a día.

Redactora de tecnología con más de 15 años de experiencia, salté del papel a la Red y ya no me muevo de ella. Inquieta y curiosa por naturaleza, siempre estoy al día de lo que pasa en el sector.

Lo más leído