Cloud-native
Software pensado desde el principio para aprovechar la nube, no solo mudado a ella.
Cloud-native (nativo de la nube) describe al software armado para sacarle el jugo a cómo funciona la nube: recursos que aparecen y desaparecen según la demanda, máquinas que pueden fallar en cualquier momento y servicios que alquilás en vez de operar. Lo opuesto es una aplicación diseñada para un servidor grande en una oficina, copiada tal cual a una máquina virtual en la nube. Funciona, pero aprovecha pocos de los beneficios.
En la práctica, los sistemas cloud-native suelen compartir un kit de herramientas: la app se divide en servicios más chicos (muchas veces microservicios) empaquetados en contenedores, corridos por un orquestador como Kubernetes o en plataformas serverless, con la infraestructura descrita como código y publicada con pipelines de CI/CD automáticos. Los servidores se tratan como descartables: si uno se rompe no se repara, se reemplaza. Los datos viven en servicios administrados, y cada parte puede escalar por su cuenta cuando crece el tráfico.
El término está muy ligado a la Cloud Native Computing Foundation (CNCF), fundada en 2015 dentro de la Linux Foundation, que aloja a Kubernetes y a muchos proyectos open source relacionados. Su definición pone el foco en sistemas resilientes, fáciles de gestionar y observables, para que los equipos puedan cambiarlos seguido y con confianza. Ser cloud-native no es gratis: más piezas móviles implican más complejidad para operar y monitorear, y para una app chica y estable un servidor simple puede ser la mejor opción.
Para quedarse
- Hecho para la nube, no solo mudado a la nube.
- Piezas típicas: contenedores, microservicios, Kubernetes o serverless, IaC, CI/CD.
- Los servidores son descartables; las fallas se esperan y se manejan solas.
- Más flexibilidad viene con más complejidad para operar.
Para seguir leyendo
- ¿Qué es la tecnología nativa de la nube? (AWS)
- Aplicaciones nativas de la nube (Red Hat)
- Definición de cloud native de la CNCF (en inglés)