¡Participa de la Maratón Behind the Code, la competencia de programación más desafiante! Inscríbete aqui

Aplicaciones nativas de la nube

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

¿Qué significa nativo de la nube?

El término “nativo de la nube” no se refiere tanto al lugar donde se aloja una aplicación, sino a cómo se crea e implementa.

  • Una aplicación nativa de la nube consta de componentes discretos y reutilizables, conocidos como microservicios, que están diseñados para integrarse en cualquier entorno de nube.
  • Estos microservicios actúan como componentes básicos y a menudo se empaquetan en contenedores.
  • Los microservicios trabajan de forma conjunta para conformar una aplicación, pero cada uno de ellos puede escalarse de forma independiente, mejorarse continuamente y repetirse rápidamente mediante procesos de automatización y orquestación.
  • La flexibilidad de cada microservicio aporta agilidad y mejora continua a las aplicaciones nativas de la nube.

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


También es posible profundizar en el Podcast de IBM Cloud, que tiene 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 está formada por muchos componentes o servicios más pequeños, ligeramente acoplados e implementables de forma independiente. Estos servicios (también denominados microservicios) suelen tener su propia pila de tecnología, que incluye la base y el modelo de datos, y se comunican entre sí a través de una combinación de API REST, transmisión de eventos y message brokers.

Dado que los microservicios se pueden implementar y volver a implementar de forma independiente, sin que se vean afectados unos por otros ni se interrumpa la experiencia del usuario final, son un complemento perfecto para las metodologías de entrega automatizadas e iterativas, como la integración continua y la 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 reciente encuesta de IBM realizada a ejecutivos de TI, ejecutivos de desarrollo y desarrolladores, el 87 % de los usuarios de microservicios coincidió en que la adopción de microservicios compensa el gasto y esfuerzo.

¿Qué opinan los profesionales de TI y desarrollo?

Los desarrolladores a menudo implementan microservicios dentro de contenedores (componentes de aplicación ejecutables y ligeros 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 (SO) necesarias para ejecutar el código en cualquier entorno. Al ser más pequeños, más eficientes en cuanto a recursos y más portátiles que las máquinas virtuales (VM), los contenedores son las unidades de cómputo por excelencia para las aplicaciones modernas nativas de la nube.

Los contenedores amplifican las ventajas de los microservicios al permitir una experiencia consistente de implementación y gestión en un entorno híbrido de múltiples nubes: nubes públicas, privadas e infraestructura on-premises. Sin embargo, a medida que se multiplican las aplicaciones nativas de la nube, también lo hacen los contenedores y la complejidad de su gestión. 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 gestión de contenedores a escala.

Para obtener más información sobre los contenedores y la contenedorización, consulta “Contenedores: Guía completa” y “ Contenedorización: Guía completa”.

Aprende más sobre las razones por las que debes utilizar microservicios y contenedores como solución arquitectónica.

Ventajas y desventajas

Los clientes de IBM se encuentran cada vez más con la necesidad de optimizar las aplicaciones existentes, crear nuevas aplicaciones y mejorar la experiencia del usuario. Las aplicaciones nativas de la nube satisfacen estas demandas mejorando el rendimiento, flexibilidad y extensibilidad de las aplicaciones.

Ventajas

  • En comparación con las aplicaciones monolíticas tradicionales, las aplicaciones nativas de la nube pueden ser más fáciles de gestionar a medida que se producen mejoras iterativas mediante procesos Agile y DevOps.
  • Compuesta por microservicios individuales, las aplicaciones nativas de la nube se pueden mejorar de forma incremental y automática para agregar continuamente nuevas y mejores funciones a la aplicación.
  • Las mejoras pueden llevarse a cabo de forma no intrusiva, sin causar tiempo de inactividad ni interrumpir la experiencia del usuario final.
  • Ampliar o reducir la escala resulta más fácil con la infraestructura elástica que sustenta las aplicaciones nativas de la nube.
  • El proceso de desarrollo nativo de la nube se ajusta más a la velocidad e innovación que exige el entorno empresarial actual.

Desventajas

  • Aunque los microservicios permiten un enfoque iterativo para la mejora de las aplicaciones, también crean la necesidad de gestionar más elementos. En lugar de una aplicación grande, es necesario gestionar muchos más servicios pequeños y discretos.
  • Las aplicaciones nativas de la nube exigen conjuntos de herramientas adicionales para gestionar el pipeline de DevOps, reemplazar las estructuras de supervisión tradicionales y controlar la arquitectura de microservicios.
  • Las aplicaciones nativas de la nube permiten un desarrollo e implementación rápidos, pero también exigen una cultura empresarial que pueda hacer frente al ritmo de esa innovación.

Ejemplos de aplicaciones

Las aplicaciones nativas de la nube suelen tener funciones bastante específicas. Piensa en cómo podrían utilizarse las aplicaciones nativas de la nube en un sitio web de viajes. Cada aspecto que cubre el sitio (vuelos, hoteles, automóviles, ofertas) es su propio microservicio. Cada microservicio puede implementar nuevas funciones independientemente de los demás microservicios. Las ofertas y los descuentos también pueden escalarse de forma independiente. Si bien el sitio de viajes se presenta a los clientes como un todo, cada microservicio sigue siendo independiente y se puede escalar o actualizar según sea necesario sin afectar a otros servicios. A continuación, se muestran algunos ejemplos de otras aplicaciones nativas de la nube.

IBM Cloud Garage proporciona a los clientes de IBM conocimientos de consultoría para crear rápidamente aplicaciones nativas de la nube escalables e innovadoras. Ofrece un centro de innovación en el que empresas de todos los tamaños pueden diseñar y crear aplicaciones que resuelvan las necesidades empresariales del mundo real.

American Airlines (2:50) se asoció con IBM para crear la aplicación Dynamic Rebooking, que se puso en marcha durante una situación de condiciones meteorológicas adversas. La aplicación mejoró la experiencia del cliente proporcionando a los usuarios más información y un proceso de cambio de reserva mejorado.

XComP Analytics (1:56), una plataforma de analítica para la educación y la formación, necesitaba resolver un problema de análisis, pero durante el proceso de corrección de un problema, la empresa fue capaz de desarrollar seis nuevos productos gracias a la colaboración con IBM Cloud Garage. La solución incluía el uso de la arquitectura de microservicios y la conexión de 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 de préstamos. La aplicación del asistente inteligente de la empresa, RoboChat, respondía a esa necesidad y se creó utilizando la cadena de herramientas DevOps de IBM. Los clientes que utilizaron RoboChat tuvieron una tasa de finalización de préstamos hipotecarios un 15 % mayor.

Un punto crítico de la investigación médica es asesorar a los médicos sobre las mejores prácticas para el cuidado de 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 DevOps de ThinkResearch puede centrarse en la innovación y la atención al paciente, en lugar de en la infraestructura.

Principios de desarrollo

Tanto si crean una nueva aplicación nativa de la nube, como si modernizan una aplicación existente, los desarrolladores aplican un conjunto coherente de principios:

  • Seguir el enfoque arquitectónico de microservicios: Descomponer las aplicaciones en servicios de función única conocidos como microservicios. Los microservicios están ligeramente acoplados, pero siguen siendo independientes, lo que permite la mejora incremental, automatizada y continua de una aplicación sin provocar tiempos de inactividad.
  • Confiar en los contenedores para obtener la máxima flexibilidad y escalabilidad: Los contenedores empaquetan el software con su código y sus dependencias en un solo lugar, lo que permite que el software se ejecute en cualquier lugar. Esto permite la máxima flexibilidad y portabilidad en un entorno multinube. Los contenedores también permiten escalar o reducir rápidamente con las políticas de orquestación de Kubernetes definidas por el usuario.
  • Adoptar métodos Agile: Los métodos Agile aceleran el proceso de creación y mejora. Los desarrolladores pueden iterar rápidamente las actualizaciones en función de los comentarios de los usuarios, lo que permite que la versión de la aplicación en funcionamiento se ajuste lo más posible a las expectativas del usuario final.

Almacenamiento

Las aplicaciones nativas de la nube dependen con frecuencia de los contenedores. El aspecto más atractivo de los contenedores es que son flexibles, ligeros y portátiles. El uso inicial de los contenedores tendía a centrarse en aplicaciones sin estado que no necesitaban guardar los datos del usuario de una sesión a otra.

Sin embargo, a medida que más funciones empresariales básicas se trasladan a la nube, es necesario abordar la cuestión del almacenamiento persistente en un entorno nativo de la nube. Esto requiere que los desarrolladores consideren nuevas formas de abordar el almacenamiento de la nube.

Así como el desarrollo de aplicaciones nativas de la nube adopta un enfoque modular y microservicios, también debe hacerlo el almacenamiento nativo de la nube. Los datos nativos de la nube pueden residir en cualquier número de lugares, como registros de eventos o sistemas, bases de datos relacionales y almacenes de documentos u objetos.

La ubicación de los datos, las exigencias de retención, la portabilidad, la compatibilidad de la plataforma y la seguridad son solo algunos de los aspectos que los desarrolladores deben tener en cuenta a la hora de planificar el almacenamiento nativo de la nube.

Descubre cómo IBM Cloud Object Storage crea un almacenamiento de datos persistente para las aplicaciones nativas de la nube.

Aplicaciones nativas de la nube frente a aplicaciones tradicionales

“Nativo de la nube” frente a “habilitado para la nube”

Una aplicación habilitada para la nube es una aplicación desarrollada para su implementación en un centro de datos tradicional, pero que se modificó posteriormente 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 las aplicaciones nativas de la nube para que sean escalables, independientes de la plataforma y estén compuestas por microservicios.

“Nativo de la nube” frente a “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 se aplicaba a servicios o software diseñados para funcionar en Internet. Hoy en día, el término se usa con más frecuencia para describir una aplicación que funciona en un entorno de nube o en una aplicación tradicional que se ha reconfigurado para un entorno de nube. El término “nativo de la nube” tiene un historial mucho más corto y hace referencia a una aplicación desarrollada desde el principio para funcionar solo en la nube y aprovechar las características de la arquitectura de nube o de una aplicación existente que se ha refactorizado y reconfigurado con principios nativos en la nube.

“Nativo de la nube” frente a “basado en la nube”

Un servicio o aplicación basado en la nube se entrega a través de Internet. Es un término general que se aplica de forma generalizada a cualquier número de soluciones en la nube. “Nativo de la nube” es un término más específico, que se refiere a las aplicaciones diseñadas para funcionar en entornos de nube. El término hace referencia a aplicaciones que dependen de los microservicios, la integración continua y la entrega continua (CI/CD) y que se pueden utilizar a través de cualquier plataforma en la nube.

“Nativo de la nube” frente a “primero en la nube”

El término “primero en la nube” describe una estrategia empresarial en la que las organizaciones se comprometen a utilizar los recursos de la nube primero cuando lanzan nuevos servicios de TI, actualizan los servicios existentes o sustituyen la tecnología anterior. El ahorro de costos y la eficiencia operativa impulsan esta estrategia. Las aplicaciones nativas de la nube combinan bien con una estrategia de “primero en la nube” porque solo utilizan recursos de la nube y están diseñadas para aprovechar las características beneficiosas de la arquitectura de la nube.

Nativo de la nube e IBM

Satisfacer las expectativas de los usuarios más exigentes significa adoptar las arquitecturas, prácticas y tecnologías adecuadas. Mientras tu empresa busca mejorar la experiencia del usuario creando nuevas aplicaciones y modernizando las aplicaciones existentes en tu proceso de cambio hacia la nube, las soluciones nativas de la nube pueden ayudar mejorando el rendimiento, flexibilidad y extensibilidad de las aplicaciones.

Da el siguiente paso:

  • Descubre cómo puede empezar a avanzar utilizando IBM for cloud native.
  • Descubre cómo IBM puede ayudar a guiar el camino con los servicios profesionales nativos de la nube.
  • Prueba a modernizar una aplicación existente para la implementación nativa de la nube con este tutorial.
  • Explora el curso “Cloud Native and Multicloud” (Nativo de la nube y multinube) y el certificado digital incluidos en la certificación basada en roles de IBM Cloud Associate Solution Advisor.
  • Desarrolla tus habilidades a través de los modernos cursos de integración, seguridad e identidad, como “Deploying Cloud-Native Architectures and Applications” (Implementación de arquitecturas y aplicaciones nativas de la nube) y “Preparing for Cloud-Native Security” (Preparación para la seguridad nativa de la nube), contenidos en la formación y certificación basada en roles de IBM Cloud Professional Developer.

Comienza creando una cuenta de IBM Cloud hoy mismo.