¿Qué es nativo en cloud?
Una aplicación nativa en cloud consta de distintos componentes reutilizables, denominados microservicios, diseñados para integrarse en cualquier entorno en cloud.
Fondo negro y azul
¿Qué es nativo en cloud?

Nativo en cloud no se centra en dónde reside una aplicación, sino más bien en cómo se crea y se despliega.

  • Una aplicación nativa en cloud consta de distintos componentes reutilizables, denominados microservicios, diseñados para integrarse en cualquier entorno en cloud.

  • Estos microservicios actúan como elementos básicos y se suelen empaquetar en contenedores.

  • Los microservicios funcionan como un todo y conforman una aplicación, pero cada uno se puede escalar de forma independiente, se puede mejorar continuamente y se puede iterar rápidamente mediante procesos de automatización y orquestación.

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

En el vídeo "What is Cloud Native?", Andrea Crawford describe de forma general 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 de menor tamaño y sin conexión directa que se pueden desplegar de forma independiente. Estos servicios (también denominados microservicios) normalmente tienen su propia pila de tecnología, que incluye el modelo de datos y la base de datos, y se comunican entre sí a través de una combinación de API REST, transmisión de sucesos e intermediarios de mensajes.

Dado que los microservicios se pueden desplegar y volver a desplegar de forma independiente, sin afectar a los demás ni alterar la experiencia del usuario final, son una opción perfecta para metodologías de entrega automatizada e iterativa, como integración continua/despliegue continuo (CI/CD) o DevOps

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

En una encuesta de IBM realizada a ejecutivos de TI, desarrolladores y ejecutivos de desarrollo, el 87 % de los usuarios de microservicios afirmó que el gasto y el esfuerzo necesarios para adoptar los microservicios valen la pena.

Los desarrolladores suelen desplegar los microservicios dentro de contenedores, que son componentes de aplicaciones ligeros y ejecutables que combinan 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. Más pequeños, más portátiles y con un uso más eficiente de los recursos que las máquinas virtuales (MV), los contenedores son las unidades de cálculo de facto de las aplicaciones nativas en cloud modernas.

Los contenedores amplían las ventajas de los microservicios ya que permiten un despliegue y una experiencia de gestión coherentes en un entorno multicloud híbrido: cloud público, cloud privado e infraestructura local. Sin embargo, a medida que las aplicaciones nativas en cloud se multiplican, también lo hacen los contenedores y, por lo tanto, 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 el despliegue y la gestión de los contenedores a escala.

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

Los clientes de IBM cada vez asumen más tareas de mejora de las aplicaciones existentes, creación de nuevas aplicaciones y mejora de la experiencia del usuario. Las aplicaciones nativas en cloud satisfacen estas demandas e incrementan el rendimiento, la flexibilidad y la extensibilidad de las aplicaciones.

Ventajas

  • En comparación con las aplicaciones monolíticas tradicionales, las aplicaciones nativas en cloud pueden ser más fáciles de gestionar, ya que se realizan mejoras iterativas mediante los procesos de Agile y DevOps.

  • Las aplicaciones nativas en cloud, 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.

  • El escalado resulta más sencillo con la infraestructura elástica que sustenta las aplicaciones nativas en cloud.

  • El proceso de desarrollo nativo en cloud ofrece la velocidad y la innovación que demanda el entorno empresarial actual.

Desventajas

  • Aunque los microservicios favorecen un enfoque iterativo a la mejora de las aplicaciones, también generan la necesidad de gestionar más elementos. En lugar de una gran aplicación, hay que gestionar servicios distintos y mucho más pequeños.

  • Las aplicaciones nativas en cloud requieren conjuntos de herramientas adicionales para gestionar el conducto de DevOps, sustituir las estructuras de supervisión tradicionales y controlar la arquitectura de microservicios.

  • Las aplicaciones nativas en cloud permiten un rápido desarrollo y despliegue, pero también requieren una cultura empresarial que pueda seguir el ritmo de esa innovación.
Ejemplos de aplicación

Las aplicaciones nativas en cloud suelen tener funciones bastante específicas. Piense en cómo se pueden utilizar las aplicaciones nativas en cloud en un sitio web de viajes. Cada tema que aborda el sitio —vuelos, hoteles, coches, ofertas especiales— es su propio microservicio. Cada microservicio puede desplegar nuevas características de forma independiente a los demás microservicios. Las ofertas especiales y los descuentos también se pueden ampliar 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 en cloud.

  • American Airlines (2:50) se asoció con IBM para crear la aplicación Dynamic Rebooking, que se lanzó ante condiciones meteorológicas adversas. La aplicación mejoró la experiencia del cliente, ya que ofrecía a los usuarios más información y un proceso mejorado para realizar 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 análisis, 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 arquitectura de microservicios y la conexión en IBM Watson para resolver problemas específicos de análisis.

  • UBank (2:45) tenía la necesidad de negocio de mejorar su oferta de préstamos hipotecarios y ayudar a los clientes a completar el proceso de préstamo hipotecario. La aplicación de 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 finalización del préstamo.

  • Un punto crítico de la investigación médica es asesorar a los médicos sobre las mejores prácticas de atención a los pacientes. Sin embargo, los estudios médicos que revelan las mejores prácticas tardan 17 años en aplicarse totalmente en 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, y no en la infraestructura.

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

Principios de desarrollo

Tanto para crear una nueva aplicación nativa en cloud como para modernizar una aplicación existente, los desarrolladores siguen una serie de principios coherentes:

  • Seguir el método arquitectónico de microservicios: descomponer las aplicaciones en servicios de una sola función conocidos como microservicios. Los microservicios, independientes y sin conexión directa, permiten mejorar una aplicación de forma incremental, automática y continua sin provocar tiempo de inactividad.

  • Utilizar contenedores para obtener la máxima flexibilidad y escalabilidad: los contenedores incluyen paquetes de software con todo su código y dependencias en un solo lugar, por lo que el software se puede ejecutar en cualquier lugar. De este modo, se ofrece la máxima flexibilidad y portabilidad en un entorno multicloud. Los contenedores también permiten escalar rápidamente con políticas de orquestación de Kubernetes que define el usuario.

  • Adoptar métodos Agile: los métodos Agile aceleran el proceso de creación y mejora. Los desarrolladores pueden iterar actualizaciones rápidamente en función de los comentarios de los usuarios, lo que permite que la versión funcional de la aplicación cumpla lo máximo posible las expectativas del usuario final.
Almacenamiento

Las aplicaciones nativas en cloud se suelen basar en contenedores. El atractivo de los contenedores es que son flexibles, ligeros y portátiles. Al principio, el uso de los 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 se han ido trasladando al cloud más funciones principales de negocio, se debe abordar el problema del almacenamiento persistente en un entorno nativo en cloud. Para ello, es necesario que los desarrolladores consideren nuevas formas de afrontar el almacenamiento en cloud.

Del mismo modo que el desarrollo de aplicaciones nativas en cloud, el almacenamiento nativo en cloud debe adoptar un enfoque modular y de microservicios. Los datos nativos en cloud 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 en cloud.

Más información sobre el almacenamiento de datos nativo en cloud
Comparación entre aplicaciones nativas en cloud y aplicaciones tradicionales

Nativo en cloud frente a habilitado para cloud

Una aplicación habilitada para cloud es una aplicación que se ha desarrollado para desplegarla en un centro de datos tradicional, pero que posteriormente se ha modificado para poder ejecutarla también en un entorno en cloud. Las aplicaciones nativas en cloud, sin embargo, se crean para funcionar solo en el cloud. Los desarrolladores diseñan aplicaciones nativas en cloud que son escalables, no dependen de ninguna plataforma y están compuestas de microservicios.

Nativo en cloud frente a preparado para cloud

En la breve historia del cloud computing, el significado de "preparado para el cloud" ha cambiado varias veces. Inicialmente, el término se refería a software o servicios diseñados para funcionar a través de Internet. Hoy en día, el término se utiliza más a menudo para describir una aplicación que funciona en un entorno en cloud, o una aplicación tradicional que se ha reconfigurado para un entorno en cloud. La historia del término "nativo en cloud" es mucho más breve y se refiere a una aplicación desarrollada desde el principio para funcionar solo en el cloud y utilizar las características de la arquitectura en cloud, o una aplicación existente que se ha refactorizado y reconfigurado con principios nativos en cloud.

Nativo en cloud frente a basado en cloud

Una aplicación o servicio basado en cloud se entrega a través de Internet. Es un término general que se aplica ampliamente a una gran cantidad de ofertas en cloud. Nativo en cloud es un término más específico. Nativo en cloud describe las aplicaciones diseñadas para funcionar en entornos en cloud. El término denota las aplicaciones que utilizan microservicios, integración continua y entrega continua (CI/CD) y se pueden utilizar a través de cualquier plataforma en cloud.

Nativo en cloud frente a cloud first

Cloud first describe una estrategia de negocio en la que las organizaciones se comprometen a utilizar primero los recursos de cloud al lanzar nuevos servicios de TI, renovar los servicios actuales o sustituir la tecnología existente. Los factores principales de esta estrategia son el ahorro de costes y la eficiencia operativa. Las aplicaciones nativas en cloud combinan bien con la estrategia cloud first, porque solo utilizan recursos en cloud y están diseñadas para aprovechar las ventajas de la arquitectura de cloud.

Soluciones relacionadas
IBM para el cloud nativo

IBM Cloud es un líder destacado en el desarrollo de aplicaciones nativas en cloud y un socio fiable para crear aplicaciones empresariales de forma rápida en una plataforma abierta, segura e integrada.

Explore IBM para el cloud nativo
Red Hat OpenShift on IBM Cloud

Despliegue clústeres de Kubernetes altamente disponibles y totalmente gestionados para sus aplicaciones en contenedores con un solo clic.

Explore Red Hat OpenShift on IBM Cloud
IBM Cloud Code Engine

Ejecute imágenes de contenedor, trabajos por lotes o código fuente como cargas de trabajo sin servidor, sin necesidad de dimensionamiento, despliegue, conexión en red o escalado.

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, débilmente acoplados y de despliegue independiente.

¿Qué son los contenedores?

Los contenedores son unidades ejecutables de software que empaquetan código de aplicación junto con sus dependencias de bibliotecas y pueden ejecutarse en cualquier lugar, ya sea en un escritorio, TI tradicional o el cloud.

¿Qué es Kubernetes?

Kubernetes es una plataforma de orquestación de contenedores de código abierto que automatiza el despliegue, la gestión y el escalado de aplicaciones en contenedores.

Dé el siguiente paso

Durante los últimos 20 años, IBM ha realizado una importante inversión en código, comunidades y gobierno de código abierto, 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 está diseñado para cumplir.Proporciona uno de los estándares del sector más elevados para el cifrado de datos y se adhiere a más de 30 programas de conformidad.

Explore el cloud nativo en IBM Cloud