3 tipos de aplicaciones que se pueden ejecutar en la nube

Sebastián Henao
17 de septiembre de 2019
3 min. de lectura
3 tipos de aplicaciones que se pueden ejecutar en la nube

Una de las inquietudes más frecuentes cuando las empresas consideran migrar a la nube es sobre el tipo de aplicaciones que se pueden correr allí. Las ventajas del cloud computing son claras, ¿pero están disponibles para cualquier tipo de aplicación? 

La computación en la nube, diseñada con el propósito de distribuir geográficamente los recursos de cómputo y almacenamiento que soportan las aplicaciones tecnológicas, no impone barreras con respecto al tipo de aplicaciones que se puedan desplegar en ella. 

El cloud computing ha evolucionado tanto a través del tiempo que hoy en día puede ejecutar tanto las aplicaciones con arquitecturas tradicionales como las más recientes, por ejemplo, las arquitecturas basadas en microservicios y las arquitecturas serverless

Veamos en detalle de qué se tratan.

Aplicaciones de arquitecturas tradicionales

Las aplicaciones de arquitectura tradicional, también conocida como arquitectura monolítica, tienen una capa de procesamiento centralizada en una o varias máquinas físicas o virtuales. En ellas, el despliegue de las aplicaciones se da sobre el sistema operativo y en algún servidor de aplicaciones allí instalado. 

Desplegar en la nube aplicaciones de arquitectura tradicional es posible. Hoy en día se ofrecen servicios para el aprovisionamiento de máquinas virtuales, como es el caso de Amazon Elastic Compute Cloud (EC2). En cuestión de minutos, este servicio permite tener una máquina virtual con una capacidad de cómputo, memoria y almacenamiento definida por el usuario y sobre la cual podemos hacer todo lo que podríamos hacer en una máquina física. 

Así, migrar a la nube bajo este modelo de arquitectura sería completamente transparente. No se requeriría modificar la arquitectura base. Mientras tanto, el equipo de operaciones podría aplicar en la configuración, despliegue y administración de la aplicación los mismos conocimientos con los cuales ya está familiarizado en infraestructuras físicas

Aplicaciones de arquitecturas basadas en microservicios

Un microservicio es un componente que cumple una función particular y que puede hacerlo independiente del estado de los demás microservicios. 

Un ejemplo práctico de este tipo de arquitectura son aquellas que están basadas en contenedores. Cada contenedor tiene asignados recursos de hardware y de software, que son independientes del sistema operativo instalado en la máquina donde se ejecutan. 

Estos contenedores se construyen bajo múltiples plataformas, siendo Docker una de ellas. Además, se pueden correr y administrar a gran escala utilizando orquestadores de contenedores, como por ejemplo Kubernetes

Ambos servicios están disponibles para el consumo bajo el modelo PaaS en AWS. Elastic Container Service (ECS) es un orquestador de contenedores de Docker propio de AWS, y Elastic Kubernetes Service (EKS) es la implementation de Kubernetes administrada por AWS en su infraestructura. 

De esta manera vemos cómo el cloud computing está preparado para el despliegue de aplicaciones basadas en microservicios. Por eso, migrar desde una infraestructura física es aún más fácil que en la arquitectura tradicional, pues por definición los contenedores encapsulan todas las librerías y dependencias necesarias. Así, la función de ese contenedor en particular puede ejecutarse independiente de la máquina en la cual esté corriendo.

Aplicaciones de arquitecturas serverless

Este tipo de arquitecturas son propias de la computación en la nube. El proveedor es quien asume la responsabilidad de asignar y administrar los recursos de cómputo requeridos. Por consiguiente, la aplicación atiende de manera correcta la demanda de usuarios en cada instante. El modelo de cobro, por su parte, se basa en las solicitudes que atienda la aplicación. 

< Conoce aquí cómo crear una app serverless desde cero >

De esta manera, el usuario concentra todos sus esfuerzos en desarrollar una aplicación óptima a nivel de software, mientras que el proveedor de nube se encarga de realizar la optimización a nivel de infraestructura. 

Esto implica que el único insumo que requieren los usuarios para desplegar soluciones bajo un modelo de arquitectura serverless es el código fuente de sus aplicaciones. Además, será responsabilidad de estos garantizar la comunicación correcta entre los diferentes recursos que componen la aplicación. 

Ejemplos particulares de servicios bajo el modelo serverless en el portafolio de AWS son la funciones Lambda para la ejecución de código fuente y DynamoDB como motor de base de datos no relacional. Por tanto, la arquitectura completa de la aplicación, incluyendo tanto la capa de procesamiento y de persistencia, se puede desplegar utilizando el modelo serverless.

En conclusión, estos tres modelos de arquitecturas abarcan todos los tipos de aplicaciones que existen en la actualidad, y observamos cómo todas se pueden desplegar como soluciones en la nube. 

En particular me gustaría destacar la relevancia que tienen las arquitecturas serverless. Estas aprovechan los beneficios de la computación en la nube al máximo, pues entregan soluciones escalables, tolerantes a fallos y optimizadas en términos de costos. En definitiva, permiten minimizar la intervención del usuario en términos de administración para enfocar los esfuerzos en el desarrollo continuo de las aplicaciones.

Guía para crear una aplicación serverless en 4 pasos

Te puede interesar

Otros artículos de Transformación digital

Suscríbete