Con la llegada del cloud computing se han abierto nuevos modelos que, además de agilizar el aprovisionamiento de infraestructura y servicio, permiten a las compañías utilizar una tecnología que se adapta a sus necesidades y así pagar solamente por los servicios que utilizan en cada momento.

Este nuevo paradigma permite, además, hacer un u****so “ilimitado” de recursos y servicios completamente gestionados por terceros, lo que posibilita que las compañías se centren en su negocio haciendo que la tecnología se convierta en una commodity.

Qué es Cloud Native

Cloud Native es una forma de trabajar que trata sobre cómo las aplicaciones son creadas y desplegadas, no dónde, explotando las ventajas del modelo de entrega que ofrece el cloud computing.

Los cuatro pilares sobre los que pivota Cloud Native son:

  1. Devops

A lo largo de los últimos años hemos trabajado en escenarios en los que equipos de desarrollo y operaciones trabajan de forma aislada, en silos, haciendo que no haya una visión compartida sobre lo verdaderamente importante: el producto. Estos equipos, en numerosas ocasiones, tienen objetivos completamente distintos.

Para desarrollo, la prioridad es entregar los cambios en el producto. Para operaciones garantizar estabilidad en la infraestructura que permitan explotar estos productos, lo que termina derivando en silos y un fracaso en el desarrollo y puesta en producción del producto.

Con la inclusión del término Devops rompemos con esta barrera entre equipos de operaciones y desarrollo, compartiendo una visión y objetivos para que el producto que estamos desarrollando sea lo único importante para todo el equipo.

“DevOps permite entregar software más rápidamente, con mayor calidad, menor coste y una altísima frecuencia de releases”.

  1. Continuous Delivery

Todavía siento escalofríos cuando, allá por el año 2002, tenía que apuntar en una libreta cada fichero que tocaba para desarrollar una nueva feature de un producto.

Y después poder identificar los que tenía que subir a mano a un FTP para posteriormente solicitar por mail al departamento de operaciones de la empresa X que los pusiera dentro del famoso directorio webapps de Weblogic.

Pero la cosa no acababa ahí, había que reiniciar el servidor de aplicaciones del entorno de desarrollo, que por cierto tenía un sistema operativo distinto a mi máquina de desarrollo (pero de eso hablaremos más adelante).

¡Alguna vez funcionaba a la primera!

Hoy en día no tiene sentido trabajar de forma manual. Todos los pasos en la construcción y despliegue de nuestro producto tienen que estar automatizados para así evitar errores humanos y agilizar el proceso de construcción y despliegue.

De esto trata Continuous Delivery. Es la forma de automatizar las tareas de construcción y despliegue, poner nuestros productos en producción en el menor tiempo posible, con el menor coste y con la máxima garantía de calidad.

  1. Contenedores sobre PaaS

¿De verdad es necesario seguir escuchando “en mi máquina esto funciona” cuando no está funcionando en entornos productivos o de test?

Los contenedores son la respuesta a la pregunta anterior. Con contenedores podemos garantizar que un producto se ejecuta de la misma manera en cualquier entorno en el que se despliegue.

Simplificando mucho, es una vuelta de tuerca a la virtualización, ya que los diferentes contenedores comparten capas del mismo sistema operativo, haciendo que sean mucho más ligeros que una máquina virtual.

  1. Microservicios

Si juntamos todo lo visto hasta ahora: Cloud, Continuous Delivery, Contenedores, Devops… podemos plantearnos la posibilidad de dar un paso más en el desarrollo de aplicaciones utilizando el patrón de microservicios para ir a una arquitectura distribuida.

Las grandes ventajas de utilizar este patrón son:

Es un patrón complejo no exento de retos que superar para implantarlo con éxito. Es imposible encontrar una bala de plata para estos retos que plantean el mercado y las compañías.

Afortunadamente, gracias a la experiencia y conocimientos, junto a patrones de diseño comunes y herramientas específicas, es posible sacar el máximo partido a esta arquitectura y obtener todos los beneficios anteriormente citados.

Los grandes actores del mercado han entendido que estos son los pilares sobre los que debe levantarse su tecnología para poder maximizar el rendimiento del negocio.

La pregunta no es tanto si debes apostar por cloud native, sino si vas a apostar ahora o lo harás tarde.

Cuéntanos qué te parece.

Enviar.

Los comentarios serán moderados. Serán visibles si aportan un argumento constructivo. Si no estás de acuerdo con algún punto, por favor, muestra tus opiniones de manera educada.