¿Qué es nativo de la nube?
Una aplicación nativa de la nube consta de componentes discretos y reutilizables conocidos como microservicios, diseñados para integrarse en cualquier entorno de nube.
Fondo negro y azul
¿Qué es nativo de la nube?

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.

  • Una aplicación nativa de la nube consta de componentes discretos y reutilizables conocidos como microservicios, diseñados para integrarse en cualquier entorno de nube.

  • Estos microservicios actúan como elementos básicos y a menudo se empaquetan en contenedores.

  • Los microservicios trabajan en conjunto para componer una aplicación, pero cada uno se puede escalar independientemente, mejorar continuamente e iterar rápidamente a través de procesos de automatización y orquestación.

  • La flexibilidad de cada microservicio se suma a la agilidad y mejora continua de las aplicaciones nativas de la nube.

En el video "¿Qué es nativo de la nube?", Andrea Crawford brinda una descripción general de algunos de los conceptos clave:

 

Microservicios y contenedores

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.

¿Por qué debería usar microservicios y contenedores?
Ventajas y desventajas

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

  • En comparación con las aplicaciones monolíticas tradicionales, las aplicaciones nativas de la nube pueden ser más fáciles de gestionar, ya que se pueden usar los procesos Agile y DevOps para producir mejoras iterativas.

  • Las aplicaciones nativas de la nube, compuestas por microservicios individuales, se pueden mejorar de forma incremental y automática para añadir continuamente características nuevas y mejoradas.

  • Las mejoras se pueden realizar de forma no intrusiva, sin causar tiempo de inactividad o interrumpir la experiencia del usuario final.

  • Es más fácil escalar vertical u horizontalmente gracias a la infraestructura flexible que forma la base de las aplicaciones nativas de la nube.

  • El proceso de desarrollo nativo de la nube coincide más estrechamente con la velocidad y la innovación que demanda el entorno empresarial actual.

Desventajas

  • Aunque los microservicios permiten aplicar un enfoque iterativo para mejorar las aplicaciones, también crean la necesidad de gestionar más elementos. En lugar de gestionar una gran aplicación, se hace necesario gestionar servicios más pequeños y discretos.

  • Las aplicaciones nativas de la nube exigen conjuntos de herramientas adicionales para gestionar la línea de trabajo de DevOps, sustituir las estructuras de supervisión tradicionales y controlar la arquitectura de microservicios.

  • Las aplicaciones nativas de la nube permiten un rápido desarrollo e implementación, pero también exigen una cultura empresarial que pueda adaptarse al ritmo de esa innovación.
Ejemplos de aplicaciones

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.

  • American Airlines (2:50) se asoció con IBM para crear una aplicación de cambio de reserva de boletos (Dynamic Rebooking) que se implementó durante un patrón meteorológico adverso. La aplicación mejoró la experiencia del cliente, ya que ofrecía a los usuarios más información y un proceso mejorado para cambiar las reservas.

  • XComP Analytics (1:56), una plataforma de analítica para la educación y la formación, necesitaba resolver un problema de analítica, pero en el proceso de corrección, la empresa consiguió desarrollar seis nuevos productos tras colaborar con IBM Cloud Garage. La solución incluía el uso de la arquitectura de microservicios y la combinación con IBM Watson para resolver problemas específicos de analítica.

  • UBank (2:45) tenía la necesidad empresarial de mejorar su oferta de préstamos hipotecarios y ayudar a los clientes a completar el proceso. La aplicación del asistente inteligente de la empresa, RoboChat, respondió a esa necesidad y se creó utilizando la cadena de herramientas de IBM DevOps. Los clientes que usaron RoboChat presentaron un aumento del 15 % en la tasa de terminación del préstamo.

  • Un factor importante de la investigación médica es asesorar a los médicos acerca de las mejores prácticas de la atención a los pacientes. Sin embargo, la investigación médica que revela las mejores prácticas tarda 17 años en llegar a la práctica médica real. ThinkResearch (2:06) utiliza IBM Cloud para ofrecer la mejor información médica en el punto de atención. Al utilizar la infraestructura de IBM Cloud y los servicios gestionados de Kubernetes, el equipo de ThinkResearch DevOps puede centrarse en la innovación y la atención a los pacientes en lugar de en la infraestructura.

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.

Principios de desarrollo

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:

  • Seguir el enfoque arquitectónico de microservicios: dividir las aplicaciones en servicios de una función única conocidos como microservicios. Los microservicios están ligeramente relacionados entre sí, pero siguen siendo independientes, lo que permite mejorar una aplicación de forma progresiva, automatizada y continua sin provocar tiempo de inactividad.

  • Utilizar los contenedores para obtener la máxima flexibilidad y escalabilidad: los contenedores empaquetan el software con todo su código y dependencias en un solo lugar, lo que permite que el software se ejecute en cualquier lugar. Esto permite obtener la máxima flexibilidad y portabilidad en un entorno multinube. Los contenedores también permiten escalar de forma vertical u horizontal rápidamente con Kubernetes, según las políticas de orquestación definidas por el usuario.

  • Adoptar metodología Agile: la metodología Agile acelera el proceso de creación y mejora. Los desarrolladores pueden iterar rápidamente las actualizaciones con base en la retroalimentación de los usuarios y así permitir que la versión en funcionamiento cumpla lo mejor posible con las expectativas de los usuarios finales.
Almacenamiento

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.

Descubra más acerca del almacenamiento de datos nativo de la nube
Aplicaciones nativas de la nube vs. aplicaciones tradicionales

Nativa de la nube vs. habilitada para 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.

Nativa de la nube vs. lista para la nube

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.

Nativa de la nube vs. basada en 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.

Nativa de la nube vs. preferencia por 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.

Soluciones relacionadas
IBM para aplicaciones nativas de la 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.

Explore IBM para aplicaciones nativas de la nube
Red Hat OpenShift on IBM Cloud

Implemente clústeres de Kubernetes completamente gestionados y de alta disponibilidad para sus aplicaciones en contenedores con un solo clic.

Conozca Red Hat OpenShift on IBM Cloud
IBM Cloud Code Engine

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.

Explore IBM Cloud Code Engine
Recursos ¿Qué son los microservicios?

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.

¿Qué son los contenedores?

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.

¿Qué es Kubernetes?

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.

Dé el siguiente paso

Durante los últimos 20 años, IBM ha invertido significativamente en código fuente abierto, comunidades y gestión, incluida la Cloud Native Computing Foundation. Con más de 20,000 clústeres de Kubernetes actualmente en producción y en ejecución, IBM Cloud fue creado para dar resultados. Proporciona uno de los estándares más altos de la industria para el cifrado de datos y se adhiere a más de 30 programas de conformidad.

Explore lo nativo de la nube en IBM Cloud