Inicio
Temas
cloud native
Nativo de la nube no se centra en dónde reside una aplicación, sino más bien en cómo se crea y se implementa.
En el video "¿Qué es nativo de la nube?", Andrea Crawford brinda una descripción general de algunos de los conceptos clave:
Los microservicios (también denominados arquitectura de microservicios) son un enfoque arquitectónico en el que una única aplicación se compone de muchos servicios o componentes más pequeños, de estructura flexible y que se pueden implementar de forma independiente. Estos servicios (también llamados microservicios) suelen tener su propio lote de tecnología, incluida la base de datos y el modelo de datos, y se comunican entre sí a mediante una combinación de API REST, streaming de eventos y message brokers.
Debido a que los microservicios se pueden implementar y volver a implementar de forma independiente, sin impactarse entre sí o interrumpir la experiencia del usuario final, representan una combinación perfecta para las metodologías de entrega automatizadas e iterativas, como la integración/implementación continua (CI/CD) o DevOps.
Además de utilizarse para crear nuevas aplicaciones nativas de la nube, los microservicios se pueden utilizar para modernizar las aplicaciones monolíticas tradicionales.
En una encuesta reciente de IBM realizada a ejecutivos de TI, ejecutivos de desarrolladores y desarrolladores de menor rango, el 87 % de los usuarios de microservicios estuvo de acuerdo en que la adopción de microservicios vale la pena el gasto y el esfuerzo.
Los desarrolladores suelen implementar microservicios dentro de contenedores: componentes de aplicación ligeros y ejecutables que combinan el código fuente de la aplicación (en este caso, el código de microservicios) con todas las bibliotecas y dependencias del sistema operativo (SO) necesarias para ejecutar el código en cualquier entorno. Debido a que son más pequeños, más eficientes en términos de recursos y más portátiles que las máquinas virtuales (VM), los contenedores se han convertido en las unidades informáticas de facto de las aplicaciones modernas nativas de la nube.
Los contenedores amplifican los beneficios de los microservicios al permitir una implementación y una experiencia de gestión consistentes en un entorno multinube híbrido: nubes públicas, nubes privadas e infraestructura local. Pero a medida que las aplicaciones nativas de la nube se multiplican, los contenedores y la complejidad de gestionarlos también crece. La mayoría de las organizaciones que usan microservicios contenerizados también usan una plataforma de orquestación de contenedores, como Kubernetes, para automatizar la implementación y gestión de contenedores a escala.
Los clientes de IBM se enfrentan cada vez más a la tarea de mejorar sus aplicaciones actuales, crear nuevas aplicaciones y mejorar la experiencia del usuario. Las aplicaciones nativas de la nube satisfacen estas demandas al mejorar el rendimiento, la flexibilidad y la extensibilidad de la aplicación.
Ventajas
Desventajas
Las aplicaciones nativas de la nube a menudo tienen funciones bastante específicas. Imagine cómo se pueden utilizar las aplicaciones nativas de la nube en un sitio web de viajes. Cada tema del sitio (vuelos, hoteles, vehículos, ofertas especiales) es su propio microservicio. Cada microservicio puede implementar nuevas características independientes de los otros microservicios. Ofertas especiales y descuentos también se pueden escalar de forma independiente. Si bien el sitio web de viajes se presenta a los clientes como un conjunto, cada microservicio sigue siendo independiente y se puede escalar o actualizar según sea necesario sin afectar los otros servicios. A continuación se describen algunos ejemplos de otras aplicaciones nativas de la nube.
IBM Cloud Garage proporciona a los clientes de IBM consultoría para crear aplicaciones nativas de la nube innovadoras y escalables. Ofrece un centro de innovación en el que las empresas de todos los tamaños pueden diseñar y crear aplicaciones que solucionen las necesidades empresariales reales.
Tanto si se crea una nueva aplicación nativa de la nube como si se moderniza una aplicación existente, los desarrolladores se adhieren a un conjunto consistente de principios:
Las aplicaciones nativas de la nube frecuentemente dependen de contenedores. El atractivo de los contenedores es que son flexibles, ligeros y portátiles. Al principio, el uso de contenedores tendió a centrarse en aplicaciones sin estado que no tenían la necesidad de guardar los datos de los usuarios de una sesión de usuario a la siguiente.
Sin embargo, a medida que más funciones empresariales principales migran a la nube, el problema del almacenamiento persistente se debe abordar en un entorno nativo de la nube. Esto requiere que los desarrolladores consideren nuevas formas de abordar el almacenamiento en la nube.
Al igual que el desarrollo de aplicaciones nativas de la nube, el almacenamiento nativo de la nube también requiere un enfoque modular y de microservicios. Los datos nativos de la nube pueden residir en cualquier lugar, como registros de eventos o sistemas, bases de datos relacionales y almacenes de documentos u objetos.
La ubicación de los datos, las demandas de retención, la portabilidad, la compatibilidad de plataformas y la seguridad son solo algunos de los aspectos que los desarrolladores deben tener en cuenta al planificar el almacenamiento nativo de la nube.
Una aplicación habilitada para la nube es una aplicación que fue desarrollada para implementarse en un centro de datos tradicional, pero que posteriormente se modificó para que también pueda ejecutarse en un entorno de nube. Las aplicaciones nativas de la nube, sin embargo, están diseñadas para funcionar solo en la nube. Los desarrolladores crean aplicaciones nativas de la nube escalables, independientes de cualquier plataforma y compuestas por microservicios.
En la breve historia de la computación en la nube, el significado de "lista para la nube" ha cambiado varias veces. Inicialmente, el término aplicaba a los servicios o software diseñados para trabajar a través de Internet. Actualmente, el término se utiliza más a menudo para describir una aplicación que funciona en un entorno de nube o una aplicación tradicional que se ha reconfigurado para ejecutarse en un entorno de nube. El término "nativa de la nube" tiene una historia mucho más corta y se refiere a una aplicación que fue desarrollada desde el principio para funcionar solo en la nube y aprovechar las características de la arquitectura de nube, o una aplicación existente que se ha refactorizado y reconfigurado con principios nativos de la nube.
Un servicio o una aplicación basada en la nube se entrega a través de Internet. Es un término general utilizado liberalmente para referirse a una variedad de soluciones en la nube. El término "nativa de la nube" es más específico, describe las aplicaciones diseñadas para trabajar en entornos de nube. El término denota las aplicaciones que dependen de los microservicios, la integración continua y la implementación continua (CI/CD) y que se pueden utilizar a través de cualquier plataforma en la nube.
La preferencia por la nube describe una estrategia empresarial en la que las organizaciones se comprometen a utilizar primero los recursos de la nube al lanzar nuevos servicios de TI, renovar los servicios existentes o reemplazar la tecnología heredada. El ahorro de costos y la eficiencia operacional impulsan esta estrategia. Las aplicaciones nativas de la nube funcionan bien con la estrategia de preferencia por la nube, porque solo utilizan recursos en la nube y están diseñadas para aprovechar las ventajas de la arquitectura de nube.
IBM Cloud es líder en el desarrollo de aplicaciones nativas de la nube y un socio de confianza para crear sus aplicaciones empresariales rápidamente en una plataforma abierta, segura e integrada.
Implemente clústeres de Kubernetes completamente gestionados y de alta disponibilidad para sus aplicaciones en contenedores con un solo clic.
Ejecute imágenes de contenedores, trabajos por lotes o código fuente como una carga de trabajo sin servidor, sin necesidad de dimensionamiento, implementación, redes o escalamiento.
En una arquitectura de microservicios, cada aplicación se compone de muchos servicios más pequeños, de estructura flexible y de implementación independiente.
Los contenedores son unidades ejecutables de software que empaquetan el código de la aplicación junto con las dependencias de sus bibliotecas y se pueden ejecutar en cualquier lugar, ya sea en desktop, en la TI tradicional o en la nube.
Kubernetes es una plataforma de orquestación de contenedores de código abierto que automatiza la implementación, la gestión y el escalamiento de aplicaciones en múltiples contenedores.