El término "cloud native" se usó originalmente para describir arquitecturas con características que aprovechaban al máximo el alojamiento en la nube pública. Ejemplos de las mismas incluyen arquitecturas distribuidas compuestas por muchos pequeños procesos, stateless y colaborativos, y sistemas con altos niveles de automatización en la construcción, prueba y despliegue de aplicaciones. Sin embargo, estamos observando una creciente tendencia hacia los diseños cloud native superficiales que simplemente utilizan una gran cantidad de servicios propietarios de un determinado proveedor de la nube y se detienen ahí, sin revisar la naturaleza fundamentalmente monolítica, frágil o laboriosa de la aplicación en cuestión. Es importante recordar que las funciones serverless por sí solas no hacen que una aplicación sea más resiliente o más fácil de mantener y que la nube nativa es realmente una cuestión de diseño más que un conjunto de opciones de implementación.