Glosario
Términos complejos explicados de forma Simple, a lo Lowi.
Si alguna vez te has preguntado por qué algunas aplicaciones van como un tiro, nunca se caen y se actualizan cada dos por tres sin que te enteres, la respuesta tiene nombre propio: Cloud Native.
A continuación, te explicaremos este concepto técnico de forma que lo entiendas a la primera. Si buscas saber qué es el enfoque nativo de la nube y por qué está cambiando la forma en que usamos internet, quédate por aquí.
Cloud Native (o nativo de la nube) es un enfoque para diseñar, construir y ejecutar aplicaciones que aprovechan al máximo todas las ventajas del modelo de computación en la nube. No se trata solo de «estar en la nube», sino de haber nacido para vivir en ella, utilizando tecnologías que permiten que los programas sean rápidos, flexibles y muy difíciles de romper.
Es decir, no es lo mismo coger un coche antiguo y meterlo en un avión para llevarlo a otro país (eso sería «basado en la nube»), que diseñar directamente un avión desde cero para que vuele de forma eficiente.
Las aplicaciones nativas de la nube son ese avión: están pensadas para ser escalables, automáticas y para que, si algo falla, el sistema se recupere solo en un abrir y cerrar de ojos.
Este concepto se apoya en el uso de contenedores, microservicios y una automatización total, permitiendo que las empresas lancen novedades a sus usuarios de forma constante sin interrumpir el servicio.
Para que una aplicación pueda presumir de ser Cloud Native, tiene que apoyarse en cuatro patas fundamentales. Si falta una, la silla cojea. Estos pilares son los que permiten que la tecnología sea tan ágil y robusta como la que usamos en nuestro día a día.
Imagina que tu aplicación es un puzzle gigante. En el modelo antiguo (llamado monolítico), todas las piezas estaban pegadas con pegamento extrafuerte. Si querías cambiar una pieza, tenías que romper medio puzzle.
Con los microservicios, cada función de la aplicación es una pieza independiente que se comunica con las demás. Por ejemplo, en una app de compras, el carrito es un microservicio, el buscador es otro y el sistema de pagos es otro distinto.
¿Qué ventajas tiene esto?
Si los microservicios son las piezas del puzzle, los contenedores son las cajas donde guardamos cada pieza para que funcione en cualquier sitio.
Un contenedor (seguramente te suene Docker) incluye todo lo que la aplicación necesita para funcionar: el código, las librerías y la configuración.
Así, da igual si el programador lo prueba en su portátil o si se lanza en un servidor gigante en la otra punta del mundo, la aplicación siempre se comportará igual.
Pero claro, cuando tienes cientos de contenedores funcionando a la vez, necesitas a alguien que mande. Ahí entra la orquestación, liderada por Kubernetes. Imagina a Kubernetes como el director de una orquesta:
El tercer pilar no es solo tecnología, sino una forma de trabajar. DevOps es la unión de los que desarrollan la app (Dev) y los que se encargan de que los servidores funcionen (Ops). Antes se llevaban regular, pero en el mundo nativo de la nube, tienen que ser mejores amigos.
Para que esto funcione, usamos el CI/CD (Integración Continua y Despliegue Continuo). Es como una cinta transportadora automática:
Esto es lo que permite que apps como las redes sociales o las plataformas de streaming se actualicen varias veces al día sin que tú tengas que dejar de usarlas.
Este nombre suena muy serio, pero la idea es muy simple. En la informática tradicional, cuando un servidor fallaba, un técnico entraba, lo «parcheaba» y rezaba para que no volviera a romperse. Eso es infraestructura mutable (que cambia).
En la infraestructura inmutable, los servidores no se reparan: se sustituyen. Si algo falla o necesitamos actualizarlo, el sistema crea un servidor nuevo perfecto desde cero y borra el viejo.
Es mucho más limpio, evita errores humanos y asegura que siempre sepamos exactamente qué hay instalado en cada rincón de nuestra nube.
Adoptar una arquitectura de nube nativa no es solo un capricho de los informáticos, es una decisión de negocio que permite ser mucho más competitivo.
Estas son sus ventajas principales:
Además, este enfoque encaja perfectamente con el procesamiento de grandes volúmenes de datos o big data, ya que permite procesar la información de forma distribuida y mucho más eficiente.
A veces que algo esté «en la nube» no significa que sea «nativo de la nube». Aquí te explicamos la diferencia para que no te líes:
Es la misma diferencia que hay entre leer un PDF de un periódico en tu móvil (basado en la nube) o usar una app de noticias diseñada para que la navegues con el dedo, recibas notificaciones y se actualice al segundo (nativo de la nube).
En este ecosistema, también entra en juego el edge computing, que ayuda a que estas aplicaciones nativas respondan aún más rápido al procesar los datos más cerca de donde tú estás.
Para que una aplicación sea considerada verdaderamente nativa de la nube y siga los estándares de calidad de la industria, existe un «manual de buenas maneras» llamado la metodología de los 12 factores.
Fue creada por los ingenieros de Heroku y es la biblia para cualquier desarrollador que quiera hacer las cosas bien.
Aquí te los resumimos de forma sencilla:
Seguir estos 12 puntos asegura que una aplicación sea robusta, fácil de mantener y, sobre todo, una verdadera ciudadana de la nube.
Estamos para ayudarte