Skip to Content
Guía

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

Las aplicaciones modernas aprovechan las tecnologías nativas en la nube, como los contenedores con las mejores prácticas ágiles y de desarrollo y DevOps, para ofrecer portabilidad, confiabilidad y agilidad a escala.

¿Qué son Containers

Una aplicación moderna es cualquier aplicación desarrollada e implementada con las últimas tecnologías, metodologías de desarrollo y mejores prácticas disponibles para ofrecer 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, a diferencia de las aplicaciones monolíticas estrechamente acopladas. Estas aplicaciones basadas en microservicios generalmente aprovechan las tecnologías nativas de la nube, como contenedores y Kubernetes.

Las aplicaciones modernas se desarrollan teniendo en cuenta la agilidad, escalabilidad, portabilidad y confiabilidad.

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 desarrollo y DevOps, con un gran énfasis en la automatización en todo el proceso de integración continua (CI/CD).

Entonces, ¿cómo se ve eso en términos de las tecnologías actuales? En esta guía, analizaremos más de cerca las diversas funciones que hacen que una aplicación sea moderna.

Lea más: Desarrollo de aplicaciones modernas desmitificadas.

¿Cuáles son los beneficios de Containers

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

Este enfoque de desarrollo tiene muchas ventajas:

  • Código altamente comprobable
  • Más fácil de depurar, mantener y actualizar
  • Control granular sobre el aprovisionamiento de recursos informáticos y de almacenamiento
  • Mejor aislamiento de fallas, lo que lleva a aplicaciones más resilientes
  • Portátil e implementable de manera independiente. Los componentes se pueden desacoplar de los entornos de software y hardware con tecnologías de virtualización, como contenedores.

Debido a que está lidiando con una colección de servicios modulares que se pueden implementar de forma independiente, es posible trabajar en un servicio sin interrumpir los demás. La capacidad de crear, probar, implementar, mantener y actualizar a nivel de servicio por servicio también reduce en gran medida el tiempo de desarrollo.

¿Quién se beneficia de usar Containers

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

  • Máquinas virtuales (VM): Habilite la virtualización a nivel de hardware (incluido el OS y el hardware). Un hipervisor permite que un solo servidor ejecute varias aplicaciones con diferentes dependencias del sistema operativo.
  • Containers: Habilite la virtualización a nivel de software (todavía depende de un kernel del OS operativo host). 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 se ejecute un servicio.
  • Volúmenes virtuales (vVols): Son almacenamientos de datos desacoplados. Las aplicaciones en contenedores pueden beneficiarse en gran medida del almacenamiento en contenedores. vVols puede asignar 1:1 a los microservicios en contenedores para evitar 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 moderno de aplicaciones al brindarle 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 en gran medida la cantidad de servicios que puede ejecutar en una sola máquina.

Lo que es más importante, la virtualización hace que sea más fácil escalar automáticamente el aprovisionamiento y la implementación de microservicios y sus recursos según demanda.

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

Containers y almacenamiento de datos

Para comprender por qué es posible que desee emparejar contenedores sin estado con arquitecturas sin servidor, tendremos que definir algunos términos:

  • Sin estado: Una aplicación no tiene estado si no lee ni almacena información sobre su estado de un tiempo de ejecución a otro (p. ej., 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 depende de un tercero, como un proveedor de nube, para administrar los recursos del servidor, abstrayendo los detalles de la administración del servidor.

Por diseño, los primeros contenedores estaban sin estado porque les permitían comenzar a existir cuando fuera necesario, hacer su trabajo y desaparecer, liberando recursos para el resto de la aplicación. De manera similar, las aplicaciones modernas simplifican los contenedores, lo que les permite comenzar a existir según sea necesario.

Cuando se combina con una arquitectura sin servidor, es posible que los desarrolladores de aplicaciones llamen a funciones que aprovisionan recursos según demanda sin tener que administrar la infraestructura subyacente ellos mismos. La combinación de contenedores sin estado con arquitecturas sin servidor simplifica en gran medida el desarrollo de aplicaciones altamente escalables. Esto es particularmente adecuado para entornos de computación en el borde de la red donde los dispositivos en el borde de la red transmiten datos constantemente en respuesta a 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 aún necesite almacenamiento persistente para sus microservicios en contenedores. Por esta razón, las soluciones de almacenamiento de datos en contenedores, como Portworx ®, simplifican la entrega de almacenamiento persistente a aplicaciones en contenedores con estado. El mapeo 1:1 de los almacenamientos de datos ágiles puede mejorar la escalabilidad y permitir que se preserve el estado a medida que se ejecuta su aplicación.

¿Qué son la organización de contenedores y la administración de contenedores?

Las aplicaciones modernas son aplicaciones nativas de la nube. Acoplados de forma suelta a la infraestructura subyacente necesaria para respaldarlos, pueden aprovechar todos los beneficios de los ecosistemas en la nube, como Amazon Web Services (AWS), Google Cloud y Microsoft Azure.

Entonces, ¿qué hace que una aplicación sea nativa en la nube? La combinación de una arquitectura de microservicios con tecnologías de virtualización y computación sin servidor significa que las aplicaciones modernas se pueden aprovisionar dinámicamente según la demanda del usuario. Estos microservicios pueden comunicarse de manera independiente a través de API administradas a través de una capa de servicios.

Las aplicaciones nativas en la nube aprovechan al máximo los modelos de implementación de computación en la nube, como software como servicio (SaaS ), plataforma como servicio (PaaS ) e infraestructura como servicio (IaaS ). Estos modelos reemplazan el modelo de pago de gastos de capital tradicional, donde paga un precio fijo por los recursos que puede o no usar con los modelos de pago de OPEX, donde paga por los recursos a medida que los usa.

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 aplicaciones heredadas radica en sus filosofías de desarrollo e implementación.

En el enfoque tradicional para el desarrollo de aplicaciones, comienza con un plan global lineal y se apega a él. El desarrollo pasa de la recopilación de requisitos a través de fases claramente definidas hasta que implementa toda la aplicación a la producción. La comunicación entre desarrolladores, operadores, partes interesadas y usuarios finales se ve limitada por largos ciclos de vida de 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, agregar una nueva función o actualizar la tecnología subyacente son vulnerables a interrupciones prolongadas de los servicios o efectos secundarios inesperados que pueden ser difíciles de solucionar.

¿La solución de aplicaciones moderna? Pasar de sistemas monolíticos a microservicios con las mejores prácticas ágiles y de desarrollo y DevOps.

El desarrollo ágil adopta un enfoque iterativo para el desarrollo de software. Cuando se combina con microservicios , esto permite a los desarrolladores crear, probar e implementar funciones de forma incremental en varias iteraciones de diseño. El SDLC se mantiene ajustado, lo que permite bucles de comunicación de retroalimentación más estrictos entre usuarios finales, partes interesadas y desarrolladores. Las metodologías de desarrollo ágil populares incluyen Scrum, Extreme Programming (XP) y Test-Drived Development (TDD).

DevOps es una práctica y 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 un proceso de CI/CD que utiliza la administración de la configuración, la automatización y el monitoreo en tiempo real para optimizar el desarrollo, las pruebas y la implementación del software.

Se espera que las aplicaciones modernas estén altamente disponibles y funcionen en todo momento. No pueden permitirse tener interrupciones en el servicio causadas por parches monolíticos, actualizaciones o errores. Por esta razón, las aplicaciones modernas aprovechan las metodologías de desarrollo ágiles y las mejores prácticas de desarrollo y DevOps para garantizar que se mantengan 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 al mercado.

¿Qué es Kubernetes?

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

  • Aislamiento de códigos, lo que dificulta que los hackers comprometan todo el sistema 
  • Arquitectura modular, que permite pruebas de seguridad incrementales más estrictas en todo el SDLC. 
  • Procesos de CI/CD, que garantizan bucles de retroalimentación más estrictos entre desarrolladores y usuarios, lo que permite  a los desarrolladores reparar rápidamente las vulnerabilidades a medida que aparecen.
  • Recuperación ante desastres optimizada: los microservicios se pueden respaldar y restaurar de forma 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 lidiar con las amenazas de seguridad modernas. Los ciclos de desarrollo más estrictos y los bucles de retroalimentación de comunicación permiten a los desarrolladores identificar y abordar errores y vulnerabilidades antes de que puedan ser explotados.

Lea más: Los beneficios de la protección de datos de las aplicaciones modernas

CONTÁCTENOS
¿Preguntas, comentarios?

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

Programe una demostración

Programe una demostración en vivo y compruebe usted mismo cómo Pure puede ayudarlo a transformar sus datos en potentes resultados. 

Llámenos: 800-976-6494

Medios de comunicación: pr@purestorage.com

 

Pure Storage, Inc.

2555 Augustine Dr.

Santa Clara, CA 95054

800-379-7873 (información general)

info@purestorage.com

CERRAR
¡Su navegador ya no es compatible!

Los navegadores más antiguos a menudo representan riesgos de seguridad. Para brindar la mejor experiencia posible al utilizar nuestro sitio, actualice a cualquiera de estos navegadores más recientes.