Aplicaciones nativas en la nube

menu icon

Aplicaciones nativas en la nube

Explore las aplicaciones nativas en la nube y cómo impulsan la innovación y la velocidad dentro de su empresa.

¿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 en 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 en la nube.

En el video "¿Qué es nativo de la nube?"(4:36), Andrea Crawford ofrece una visión general de algunos de los conceptos clave:

También puede obtener más información en IBM Cloud Podcast, donde encontrará una miniserie de siete episodios titulada "Everything Cloud Native".

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 de menor tamaño y sin conexión directa que se pueden implementar de forma independiente. Estos servicios normalmente tienen sus propios lotes de tecnología, incluidos el modelo de datos y la base de datos, y se comunican entre sí a través de 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 que se impacten entre sí ni alteren la experiencia del usuario final, son el complemento perfecto para metodologías de entrega automatizadas e iterativas como la integración continua/el despliegue continuo (CI/CD) o DevOps.

Además de utilizarse para crear nuevas aplicaciones nativas en la nube, los microservicios sirven para modernizar aplicaciones monolíticas tradicionales.

En una encuesta reciente de IBM a ejecutivos de TI, ejecutivos de desarrollo y desarrolladores, el 87 % de los usuarios de microservicios afirmó que el gasto y el esfuerzo necesarios para adoptar los microservicios valen la pena. Utilice la herramienta a continuación para revisar con más detalle sus puntos de vista sobre las ventajas de los microservicios y los retos que plantean:

(Fuente:"Microservicios en la empresa en 2021: beneficios reales que justifican los retos").

Los desarrolladores suelen implementar microservicios dentro de contenedores , componentes de aplicación ligeros y ejecutables que combinan 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. Los contenedores, más pequeños, más eficientes en cuanto a recursos y más portátiles que las máquinas virtuales (VM), son de hecho las unidades de computación de las aplicaciones nativas en la nube modernas.

Los contenedores amplían los beneficios de los microservicios al permitir una implementación consistente y una experiencia de gestión en un entorno multinube híbrido: nubes públicas, nube privada e infraestructura local. Pero a medida que las aplicaciones nativas en la nube se multiplican, los contenedores y la complejidad de gestionarlos también crece. La mayoría de las organizaciones que utilizan microservicios contenedorizados también usan una plataforma de orquestación de contenedores, como Kubernetes, para automatizar la implementación y la gestión de contenedores a escala.

Para obtener más información acerca de contenedores y contenedorización, vea "Contenedores: guía completa" y "Contenedorización: guía completa".

Descubra por qué debe utilizar microservicios y contenedores como un enfoque arquitectónico.

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 en la nube satisfacen estas demandas al mejorar el rendimiento, la flexibilidad y la escalabilidad de las aplicaciones.

Ventajas

  • En comparación con las aplicaciones monolíticas tradicionales, las aplicaciones nativas en la nube pueden ser más fáciles de gestionar, ya que se producen mejoras reiteradas utilizando los procesos de Agile y DevOps.
  • Las aplicaciones nativas en la nube, compuestas por microservicios individuales, se pueden mejorar de forma incremental y automática para añadir continuamente características de aplicación nuevas y mejoradas.
  • Las mejoras se pueden hacer de forma no intrusiva, sin provocar tiempo de inactividad ni alterar la experiencia del usuario final.
  • La escalabilidad vertical u horizontal es más fácil con la infraestructura flexible que forma la base de las aplicaciones nativas en la nube.
  • El proceso de desarrollo nativo en la nube coincide más estrechamente con la velocidad y la innovación que demanda el entorno empresarial actual.

Desventajas

  • Aunque los microservicios permiten un enfoque iterativo de la mejora de las aplicaciones, también crean la necesidad de gestionar más elementos. En lugar de una gran aplicación, se hace necesario gestionar servicios más pequeños y discretos.
  • Las aplicaciones nativas en 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 en 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 en la nube a menudo tienen funciones bastante específicas. Imagine cómo se pueden utilizar las aplicaciones nativas en 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 en la nube.

IBM Cloud Garage proporciona a los clientes de IBM consultoría para crear aplicaciones nativas en 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.

American Airlines (2:50) se asoció con IBM para crear una aplicación 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 de cambios en las reservas.

XComp Analytics (1:56), una plataforma de análisis 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 conexió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 por ciento 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 para la atención a los pacientes. Sin embargo, la investigación médica que muestra las mejores prácticas tarda 17 años en incorporarse a la práctica médica real. ThinkResearch (2:06) utiliza IBM Cloud para entregar la mejor información médica en los puntos 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.

Principios de desarrollo

Tanto si se crea una nueva aplicación nativa en la nube como si se moderniza una aplicación existente, los desarrolladores se adhieren a un conjunto consistente de principios:

  • Seguir el método arquitectónico de microservicios: descomponer las aplicaciones en servicios de una sola función 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.
  • Depender de contenedores para obtener la máxima flexibilidad y escalabilidad: los contenedores almacenan software con todo su código y dependencias en una sola ubicación, 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 las políticas de orquestación definidas por el usuario de Kubernetes.
  • Adoptar métodos ágiles: los métodos ágiles aceleran el proceso de creación y mejora. Los desarrolladores pueden iterar rápidamente las actualizaciones con base en la retroalimentación de los usuarios, permitiendo que la versión en funcionamiento cumpla lo mejor posible con las expectativas de los usuarios finales.

Almacenamiento

Las aplicaciones nativas en 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 implementar el almacenamiento en la nube.

Al igual que el desarrollo de aplicaciones nativas en la nube requiere un enfoque modular y de microservicios, así debe ser el almacenamiento nativo en la nube. Los datos nativos en la nube pueden residir en cualquier lugar, como registros de eventos o sistemas, bases de datos relacionales y almacenes de documentos o 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 en la nube.

Descubra cómo IBM Cloud Object Storage crea un almacén de datos duradero para aplicaciones nativas en la nube.

Aplicaciones nativas en la nube vs. aplicaciones tradicionales

Nativo de la nube vs. Habilitado 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 en la nube, sin embargo, se crean para funcionar solo en la nube. Los desarrolladores diseñan aplicaciones nativas en la nube para que sean escalables, independientes de plataformas y compuestas por microservicios.

Nativo de la nube vs. Listo para la nube

En la breve historia de la computación en la nube, el significado de "listo 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 "nativo 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.

Nativo de la nube vs. Basado 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 "nativo 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.

Nativo de la nube vs. Cloud first

Cloud first 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 en la nube combinan bien con la estrategia cloud first, porque solo utilizan recursos en la nube y están diseñadas para aprovechar las ventajas de la arquitectura en la nube.

Nativo de la nube e IBM

Satisfacer expectativas más exigentes de los usuarios significa adoptar las arquitecturas, las prácticas y las tecnologías adecuadas. A medida que busca mejorar la experiencia del usuario mediante la creación de nuevas aplicaciones y la modernización de aplicaciones existentes en su ruta hacia la nube, lo nativo de la nube puede ayudarle a mejorar el rendimiento, la flexibilidad y la escalabilidad de las aplicaciones.

Dé el siguiente paso:

Empiece hoy mismo con una cuenta de IBM Cloud.