El término "nativo de la nube" se refiere menos al lugar donde reside una aplicación y más a cómo se crea y se implementa. Una aplicación nativa de la nube está compuesta por componentes discretos y reutilizables, denominados microservicios, que están diseñados para integrarse en cualquier entorno de nube.
Los microservicios (también denominados "arquitectura de microservicios") son un método arquitectónico en el que una única aplicación está compuesta por muchos componentes o servicios más pequeños, que están ligeramente acoplados y se pueden implementar de forma independiente. Estos servicios (también llamados microservicios) suelen tener su propia pila tecnológica, incluyendo la base de datos y el modelo de datos. Se comunican entre sí a través de una combinación de API REST, transmisión de eventos y agentes de mensajes.
Porque los microservicios se pueden implementar y reimplementar de forma independiente, sin afectarse unos a otros ni interrumpir la experiencia del usuario final. Son la combinación perfecta para metodologías de entrega automatizadas e iterativas, como la integración continua/implementación continua (CI/CD) o DevOps.
Además de servir para crear aplicaciones nativas en la nube totalmente nuevas, los microservicios pueden utilizarse para modernizar las aplicaciones monolíticas tradicionales.
En una encuesta realizada por IBM a más de ejecutivos de TI, desarrollo y desarrollo de aplicaciones, el 87 % de los usuarios de microservicios coincidió en que la adopción de microservicios compensa el gasto y el esfuerzo.
Los desarrolladores suelen implementar los microservicios dentro de contenedores, que son componentes de aplicaciones ligeros y ejecutables que combinan el código fuente de la aplicación (en este caso, el código de los microservicios) con todas las bibliotecas y dependencias del sistema operativo necesarias para ejecutar el código en cualquier entorno. Más pequeños, más eficientes en recursos y más portátiles que las máquinas virtuales (VM), los contenedores son las unidades informáticas de facto de las aplicaciones nativas de la nube modernas.
Los contenedores potencian los beneficios de los microservicios al permitir una experiencia de implementación y gestión coherente en entornos de multicloud híbrido, es decir, nubes públicas, privadas e infraestructura local. Pero a medida que se multiplican las aplicaciones nativas de la nube, también lo hacen los contenedores y la complejidad de gestionarlos. La mayoría de las organizaciones que utilizan microservicios en contenedores también utilizan una plataforma de orquestación de contenedores, como Kubernetes, para automatizar la implementación y la gestión de contenedores a escala.
Los clientes de IBM se enfrentan cada vez más a la tarea de mejorar las aplicaciones existentes, crear nuevas aplicaciones y mejorar la experiencia del usuario. Las aplicaciones nativas de la nube satisfacen estas demandas mejorando el rendimiento, la flexibilidad y la extensibilidad de las aplicaciones.
Las aplicaciones nativas de la nube suelen tener funciones específicas. Considere cómo se podrían utilizar las aplicaciones nativas de la nube en un sitio web de viajes. Cada tema tratado en el sitio web (vuelos, hoteles, coches, ofertas especiales) es un microservicio independiente. Cada microservicio puede implementar nuevas características independientemente de los otros microservicios. Las ofertas especiales y los descuentos también pueden escalarse de forma independiente. Aunque el sitio web de viajes se presenta a los clientes como un todo, cada microservicio sigue siendo independiente y se puede ampliar o actualizar según sea necesario sin afectar a otros servicios.
IBM® Cloud Garage proporciona a los clientes de IBM experiencia en consultoría para crear rápidamente aplicaciones nativas de la nube escalables e innovadoras. Ofrece un centro de innovación donde las empresas de todos los tamaños pueden diseñar y crear aplicaciones que resuelvan las necesidades empresariales del mundo real.
Tanto si crean una nueva aplicación nativa de la nube como si modernizan una aplicación existente, los desarrolladores se adhieren a un conjunto coherente de principios:
Las aplicaciones nativas de la nube suelen depender de contenedores. El atractivo de los contenedores es que son flexibles, ligeros y portátiles. El uso inicial de contenedores tendía a centrarse en aplicaciones sin estado que no tenían necesidad de guardar datos de usuario de una sesión de usuario a la siguiente.
Sin embargo, a medida que más actividad principal se mueve a la nube, la cuestión del almacenamiento debe abordarse en un nativo de la nube. Esto requiere que los desarrolladores consideren nuevas formas de abordar el almacenamiento en la nube.
Del mismo modo que el desarrollo de aplicaciones nativas de la nube adopta un enfoque basado en microservicios y modular, también debe hacerlo el almacenamiento nativo de la nube. Los datos nativos de la nube pueden encontrarse en distintos lugares, como registros de eventos o del sistema, bases de datos relacionales y almacenes de documentos u objetos.
La ubicación de los datos, los requisitos 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 se desarrolló para su implementación en un centro de datos tradicional, pero que luego se modificó para que también pudiera ejecutarse en un entorno de nube. Sin embargo, las aplicaciones nativas de la nube están diseñadas para funcionar solo en la nube. Los desarrolladores diseñan aplicaciones nativas de la nube para que sean escalables, independientes de la plataforma y compuestas por microservicios.
En la corta historia del cloud computing, el significado de "preparado para la nube" ha cambiado varias veces. Inicialmente, el término se aplicaba a servicios o software diseñados para funcionar a través de Internet. Hoy en día, el término se utiliza con más frecuencia para describir una aplicación que funciona en un entorno de nube o una aplicación que se ha reconfigurado para un entorno de nube. El término "nativo de la nube" tiene una historia más corta y se refiere a una aplicación desarrollada desde el principio para funcionar solo en la nube. Y para beneficiarse de las características de la nube o una aplicación existente que se ha refactorizado y reconfigurado con principios nativos de la nube.
Un servicio o aplicación basada en la nube se entrega a través de Internet. Es un término general que se aplica libremente a cualquier número de ofertas en la nube. "Nativo de la nube" es un término más específico. Describe las aplicaciones que están diseñadas para funcionar en entornos de nube. El término denota aplicaciones que se basan en microservicios, integración continua y entrega continua (CI/CD) y se pueden utilizar a través de cualquier plataforma en la nube.
La nube describe primero una estrategia empresarial en la que las organizaciones se comprometen a utilizar los recursos de la nube en primer lugar al iniciar nuevos servicios de TI, actualizar los servicios existentes o sustituir la tecnología heredada. El ahorro de costes y la eficiencia operativa impulsan esta estrategia. Las aplicaciones nativas de la nube combinan bien con una estrategia que prioriza la nube, ya que solo utilizan recursos de la misma y están diseñadas para beneficiarse de las características de su arquitectura.
Un servicio totalmente gestionado y de inquilino único para desarrollar y entregar aplicaciones Java.
Utilice el software y las herramientas de DevOps para crear, implementar y gestionar aplicaciones nativas de la nube en varios dispositivos y entornos.
El desarrollo de aplicaciones en la nube significa crear una vez, iterar rápidamente e implementar en cualquier lugar.