Skip to Content
Guía

¿Qué son las aplicaciones modernas? Una guía definitiva

Las aplicaciones modernas utilizan tecnologías nativas de la nube, como contenedores con prácticas recomendadas ágiles y de DevOps, para proporcionar portabilidad, fiabilidad y agilidad a escala.

¿Qué son Contenedores

Una aplicación moderna es cualquier aplicación creada e implementada con las últimas tecnologías, metodologías de desarrollo y buenas prácticas disponibles para proporcionar una experiencia de usuario óptima. Las aplicaciones modernas actuales son nativas de la nube. Están diseñados como microservicios que se comunican entre sí a través de API, en lugar de aplicaciones monolíticas estrechamente acopladas. Estas aplicaciones basadas en microservicios suelen utilizar tecnologías nativas de la nube, como contenedores y Kubernetes .

Las aplicaciones modernas se crean teniendo en cuenta la agilidad, la escalabilidad, la portabilidad y la fiabilidad.

Son microservicios en lugar de monolíticos, lo que los hace escalables, reutilizables y fáciles de usar.

A menudo se crean de acuerdo con metodologías de desarrollo ágiles y las mejores prácticas de DevOps, con un gran énfasis en la automatización en toda la canalización de integración y entrega continuas (CI/CD).

Así que, ¿cómo es esto en cuanto a las tecnologías actuales? En esta guía, veremos con más detalle las diversas características que hacen que una aplicación sea moderna.

Más información: Desarrollo de aplicaciones modernas desmitificado .

¿Cuáles son los beneficios de Contenedores

En el enfoque tradicional del desarrollo de aplicaciones, las aplicaciones se crean con bases de código únicas y estrechamente integradas. Por el contrario, una arquitectura de microservicios implica el diseño de una aplicación como una colección de servicios acoplados de manera suelta.

Este enfoque de desarrollo tiene muchas ventajas:

  • Código muy comprobable
  • Más fácil de depurar, mantener y actualizar
  • Control granular sobre el aprovisionamiento de recursos de almacenamiento y computación
  • Un mejor aislamiento de los fallos, lo que permite que las aplicaciones sean más resilientes.
  • Portátil y desplegable de manera independiente. Los componentes pueden desacoplarse de los entornos de software y hardware con tecnologías de virtualización como los contenedores.

Debido a que se enfrenta a una colección de servicios modulares de despliegue independiente, es posible trabajar en un servicio sin interrumpir los otros. La capacidad de crear, probar, desplegar, mantener y actualizar a nivel de servicio por servicio también reduce considerablemente el tiempo de desarrollo.

¿Quién se beneficia del uso Contenedores?

La arquitectura de microservicios permite que los desarrolladores aprovechen todo el potencial de las tecnologías de virtualización, como los contenedores y las máquinas virtuales. Echemos un vistazo a algunas de estas tecnologías de virtualización principales:

  • Máquinas virtuales (VM): Permitir la virtualización a nivel de hardware (incluidos el OS y el hardware). Un hipervisor permite que un único servidor ejecute múltiples aplicaciones con diferentes dependencias del sistema operativo.
  • Contenedores: Habilite la virtualización a nivel de software (todavía depende de un núcleo de OS anfitrión). Se necesitan unidades estandarizadas de software que contengan todo el código y las dependencias, incluidos binarios, bibliotecas y archivos de configuración, para que un servicio se ejecute.
  • Volúmenes virtuales (vVols): Son almacenes de datos desacoplados. Las aplicaciones contenedorizadas pueden beneficiarse mucho del almacenamiento contenedorizado. Los vVols pueden asignar 1:1 a microservicios contenedorizados, evitando cuellos de botella en la base de datos central.

La virtualización puede ayudar a mejorar los beneficios de una arquitectura de microservicios para el desarrollo de aplicaciones modernas, al proporcionarle granularidad sobre el grado de aislamiento que imparte en sus microservicios.

Puede aprovechar las máquinas virtuales para ejecutar servicios con diferentes dependencias del OS en la misma máquina. O bien, puede usar contenedores y vVols para aumentar considerablemente el número de servicios que puede ejecutar en una sola máquina.

Y lo que es más importante, la virtualización hace que sea más fácil escalar automáticamente el aprovisionamiento y el despliegue de los microservicios y sus recursos bajo demanda.

Obtenga más información sobre las concesiones entre las máquinas virtuales y los contenedores.

Contenedores y almacenamiento de datos

Para entender por qué es posible que quiera emparejar los contenedores sin estado con las arquitecturas sin servidor, tendremos que definir algunos términos:

  • Sin estado: Una aplicación no tiene estado si no lee o almacena información sobre su estado de un tiempo de ejecución a otro (por ejemplo, una aplicación de calculadora lee cero cuando la vuelve a abrir, sin recordar la última vez que se realizó un cálculo).
  • Sin servidor: Una aplicación no tiene servidor si un desarrollador confía en un tercero, como un proveedor de la nube, para gestionar los recursos del servidor, eliminando los detalles de la gestión del servidor.

Por diseño, los primeros contenedores eran sin estado, porque les permitía surgir cuando era necesario, hacer su trabajo y desaparecer, liberando recursos para el resto de la aplicación. Del mismo modo, las aplicaciones modernas hacen que los contenedores sean sencillos, lo que les permite surgir según sea necesario.

Cuando se combina con una arquitectura sin servidor, los desarrolladores de aplicaciones pueden llamar a funciones que aprovisionan recursos bajo demanda sin tener que gestionar la infraestructura subyacente ellos mismos. La combinación de contenedores sin estado con arquitecturas sin servidor simplifica en gran medida el desarrollo de aplicaciones muy escalables. Esto es especialmente adecuado para los entornos de computación perimetral en los que los dispositivos perimetrales transmiten datos constantemente en respuesta a los eventos. La combinación sin estado/sin servidor facilita que las aplicaciones realicen ajustes sobre la marcha en respuesta a la información en tiempo real.

Dicho esto, cuanto más compleja sea su aplicación, más probable es que siga necesitando un almacenamiento persistente para sus microservicios contenedorizados. Por este motivo, las soluciones de almacenamiento de datos de contenedores, como Portworx ®, simplifican la entrega de almacenamiento persistente a las aplicaciones contenedorizadas con estado. El mapeo 1:1 de los almacenes de datos ágiles puede mejorar la escalabilidad y permitir que el estado se conserve a medida que se ejecuta su aplicación.

¿Qué son la orquestación y la gestión de contenedores?

Las aplicaciones modernas son aplicaciones nativas de la nube. Si se combinan de manera vaga con la infraestructura subyacente necesaria para soportarlos, pueden aprovechar todos los beneficios de los ecosistemas de la nube, como Amazon Web Services (AWS), Google Cloud y Microsoft Azure .

Entonces, ¿qué hace que una aplicación sea nativa de la nube bajo el capó? La combinación de una arquitectura de microservicios con tecnologías de virtualización y computación sin servidor permite que las aplicaciones modernas puedan aprovisionarse dinámicamente en función de las demandas de los usuarios. Estos microservicios pueden comunicarse de manera independiente a través de API gestionadas a través de una capa de servicios.

Las aplicaciones nativas de la nube aprovechan al máximo los modelos de implementación de la computación en la nube, como el software como servicio (SaaS), la plataforma como servicio (PaaS) y la infraestructura como servicio (IaaS). Estos modelos sustituyen al modelo de pago CAPEX tradicional, en el que se paga un precio fijo por los recursos que se pueden usar o no con los modelos de pago OPEX, en los que se pagan los recursos a medida que se usan.

Obtenga más información sobre lo que significa ser nativo de la nube.

¿Qué es Docker?

Una gran diferencia entre las aplicaciones modernas y las heredadas reside en sus filosofías de desarrollo e implementación.

En el enfoque tradicional del desarrollo de aplicaciones, empieza con un plan general lineal y se atiene a él. El desarrollo va desde la recopilación de requisitos a través de fases claramente definidas hasta que despliega toda la aplicación en producción. La comunicación entre desarrolladores, operadores, partes interesadas y usuarios finales se ve afectada por los largos ciclos de vida del desarrollo de software (SDLC). Las bases de código son monolíticas, los parches son más grandes y los intentos de implementar una solución de errores, añadir una nueva función o actualizar la tecnología subyacente son vulnerables a las interrupciones prolongadas de los servicios o a los efectos secundarios inesperados que pueden ser difíciles de resolver.

¿La solución de aplicación moderna? Pasar de los sistemas monolíticos a los microservicios con unas buenas prácticas ágiles y de DevOps.

El desarrollo ágil adopta un enfoque iterativo del desarrollo de software. Cuando se combina con microservicios, esto permite que los desarrolladores creen, prueben e implementen funciones de manera gradual en múltiples iteraciones de diseño. El SDLC se mantiene ajustado, lo que permite unos bucles de retroalimentación más estrechos de comunicación entre los usuarios finales, las partes interesadas y los desarrolladores. Las metodologías de desarrollo ágil más populares incluyen Scrum, Extreme Programming (XP) y Test-driven Development (TDD).

DevOps es una práctica y una cultura de desarrollo de software que integra estrechamente a los equipos de desarrollo y operaciones dentro de una organización. El SDLC se reinventa como una canalización de CI/CD que utiliza la gestión de la configuración, la automatización y la supervisión en tiempo real para optimizar el desarrollo, las pruebas y el despliegue del software.

Se espera que las aplicaciones modernas estén muy disponibles y funcionen en todo momento. No pueden permitirse disrupciones en el servicio causadas por parches, actualizaciones o errores monolíticos. Por este motivo, las aplicaciones modernas utilizan metodologías de desarrollo ágiles y las mejores prácticas de DevOps para garantizar que se mantienen actualizadas y competitivas en un panorama digital que cambia rápidamente.

Obtenga más información sobre cómo las aplicaciones modernas reducen el tiempo de lanzamiento.

¿Qué es Kubernetes?

En un mundo cada vez más digital, la protección de datos es lo más importante. Las ventajas de la protección de datos de las aplicaciones modernas incluyen:

  • El aislamiento del código, lo que dificulta que los hackers comprometan todo el sistema. 
  • Arquitectura modular, que permite unas pruebas de seguridad incrementales más estrictas en todo el SDLC. 
  • Canalizaciones de CI/CD, que garantizan unos bucles de retroalimentación más ajustados entre desarrolladores y usuarios, lo que permite  que los desarrolladores parcheen rápidamente las vulnerabilidades a medida que aparecen.
  • Recuperación de desastres optimizada: los microservicios pueden realizarse copias de seguridad y restaurarse de manera independiente con una interrupción mínima o nula de toda la aplicación.
  • Mejores prácticas de seguridad mejoradas, como DevSecOps

Las aplicaciones modernas están equipadas para hacer frente a las amenazas de seguridad modernas. Los ciclos de desarrollo y los bucles de comunicación más estrictos permiten que los desarrolladores identifiquen y aborden los errores y las vulnerabilidades antes de que puedan aprovecharse.

Más información: Las ventajas de la protección de datos de las aplicaciones modernas

CONTACTAR CON NOSOTROS
¿Preguntas, comentarios?

¿Tiene alguna pregunta o comentario sobre los productos o las certificaciones de Pure?  Estamos aquí para ayudarle.

Programe una Demostración

Programe una demostración en vivo y vea personalmente cómo Pure puede ayudarle a convertir sus datos en unos resultados potentes. 

Llámenos al: +34 51 889 8963

Medios de comunicaciónpr@purestorage.com

 

Castellana 81

28046 Madrid

Oficinas Pure: 1415 y 1417 (planta 14)

info@purestorage.com

CERRAR
Your Browser Is No Longer Supported!

Older browsers often represent security risks. In order to deliver the best possible experience when using our site, please update to any of these latest browsers.