Está en la página 1de 11

Taller de Proyectos

Guía Tutorial sobre:


ARQUITECTURA SERVERLESS

Elaborado por Katia García Florindez

CURSO DE TALLER DE PROYECTOS


FACULTAD DE INGENIERIA Y ARQUITECTURA
AV. LA FONTANA 1250 – LA MOLINA
TELEFONO: 2086000 ANEXO 1123
INDICE

1. ¿Qué es Serverless?----------------------------------------------------------------------3

2. ¿Qué es la arquitectura Serverless o sin servidor? ------------------------------3

3. Ventajas y Desventajas-------------------------------------------------------------------5

4. Ejemplos de servicios sin servidor-----------------------------------------------------5

4.1. Serveless en AWS-------------------------------------------------------------------5

4.2.- Arquitectura básica de una aplicación Web con Serverless-------------5

4.3. Serverless en Microsoft Azure----------------------------------------------------7

5. Conclusiones--------------------------------------------------------------------------------10

6. Bibliografía-----------------------------------------------------------------------------------10

CURSO DE TALLER DE PROYECTOS


FACULTAD DE INGENIERIA Y ARQUITECTURA
AV. LA FONTANA 1250 – LA MOLINA
TELEFONO: 2086000 ANEXO 1123
1. ¿Qué es Serverless?
Serverless significa sin servidor, es una solución que permite crear y
ejecutar aplicaciones con rapidez y menor costo total de propiedad, ya
que no es necesario aprovisionar y administrar infraestructura. Por
detrás existen servidores para ejecutar las aplicaciones, pero el
proveedor de nube se encarga de la administración, por lo tanto, de
nuestro lado dejamos de preocuparnos por administrar servidores,
sistemas operativos, software y demás recursos, y únicamente nos
centramos en el código de la aplicación.

2. ¿Qué es la arquitectura Serverless o sin servidor?

La arquitectura serverless no especifica estrictamente cuál debe ser


técnicamente nuestra función. Es sólo una unidad de trabajo que
queremos que se haga. Las funciones se pueden activar de muchas
maneras. Puede ser un temporizador que ejecuta una función
periódicamente, pero también puede ser una petición HTTP o algún
evento en algún servicio relacionado.

Cuando se habla de Serverless computing, se refiere a informática sin


servidor, sin embargo, es preciso aclarar que Serverless no se limita
únicamente a cómputo, también podemos utilizar bases de datos,
almacenamiento y otros servicios de integración de aplicaciones.

La modernización de las aplicaciones con características nativas de la


nube se basa en la arquitectura Serverless. Para migrar a la nube hay
varias estrategias posibles, por supuesto, se debe evaluar cual se
adapta mejor tu escenario, una de ellas es la Refactorización /
Rearquitectura, que consiste en volver a imaginar la arquitectura y el
desarrollo de la aplicación, con características nativas de la nube.

CURSO DE TALLER DE PROYECTOS


FACULTAD DE INGENIERIA Y ARQUITECTURA
AV. LA FONTANA 1250 – LA MOLINA
TELEFONO: 2086000 ANEXO 1123
CURSO DE TALLER DE PROYECTOS
FACULTAD DE INGENIERIA Y ARQUITECTURA
AV. LA FONTANA 1250 – LA MOLINA
TELEFONO: 2086000 ANEXO 1123
Arquitectura serverless. Fuente: http://martinfowler.com

3. Ventajas y Desventajas:

Cualquier decisión de diseño arquitectónico involucra ventajas y


desventajas.
Uno de los principales beneficios de la estrategia serverless es el ahorro
en costo. En sistemas que tienen patrones de tráfico con picos
repentinos, tener un servidor con grandes recursos continuamente
disponible es costoso; en cambio, en el modelo FaaS se cobra por
petición atendida. Otro componente de costo que te ahorras con
serverless es el del personal y del esfuerzo requerido para administrar el
servidor.
En cuanto a las desventajas, la primera sería la complejidad que se
agrega al estructurar las aplicaciones de esta forma. También puede
haber un impacto en el desempeño de la aplicación debido a la carga y
latencia introducida al estar continuamente invocando servicios que no
están inmediatamente disponibles

4. Ejemplos de servicios sin servidor

A continuación, mencionaré algunos de los servicios Serverless que tenemos a


disposición en los dos principales proveedores de nube pública, AWS (Amazon
Web Service) y Microsoft Azure.

4.1. Serveless en AWS

  AWS Lambda

AWS Lambda es uno se los Serverless más conocidos en AWS y se


encuentra entre los servicios de cómputo. En Lambda perfectamente
podemos ejecutar el Backend de una aplicación, solo necesitamos
configurar y cargar el código o una imagen de contenedor y Lambda se
encarga del resto. Algo muy importante para los desarrolladores es que
soporta diferentes lenguajes de programación, por lo que puedes escribir
funciones en el leguaje preferido, ya sea Node, Python, Go, Java, etc.

 AWS Lambda funciona muy bien para responder a eventos o interactuar


con otros servicios, por ejemplo, podríamos tener políticas internas de
cumplimiento para garantizar que los grupos de seguridad cumplan con
ciertas reglas, en AWS esto se puede definir en un servicio llamado AWS
CURSO DE TALLER DE PROYECTOS
FACULTAD DE INGENIERIA Y ARQUITECTURA
AV. LA FONTANA 1250 – LA MOLINA
TELEFONO: 2086000 ANEXO 1123
Config. Para cumplir con las políticas, podemos ejecutar una función
Lambda para revisar los grupos de seguridad y eliminar o agregar reglas
de acuerdo a la configuración definida, en este caso estaría respondiendo
a un evento, y a su vez interactúa con otro servicio dentro de AWS. En
definitiva, son muchos los casos de uso de AWS Lambda.

  AWS Fargate

 Fargate es un servicio para implementación de aplicaciones en


contenedores. Es un Serverless, así que elimina la tarea de levantar y
administrar instancias para ejecutar un clúster, y, por ende, permite
centrarse únicamente en el desarrollo de las aplicaciones. En cuanto al
costo, se paga por el consumo de recursos (memoria, CPU,
almacenamiento) que hagan los contenedores hasta que termina de
ejecutar la tarea. El desarrollo y despliegue de aplicaciones en
contenedores aumenta cada vez más, y este es un servicio interesante
para arquitecturas de microservicios.

  Amazon S3

 Amazon Simple Storage Service (Amazon S3) es un servicio de


almacenamiento de objetos resistente con una alta disponibilidad y
durabilidad de los datos, esto es porque Amazon replica automáticamente
los datos en diferentes zonas de disponibilidad. Es casi un servicio de
propósito general, es decir, se puede utilizar en diferentes escenarios, pero
es especialmente útil para almacenar copias de seguridad, guardar
archivos estáticos o multimedia como fotos y vídeos para aplicaciones web
o móviles. De hecho, un sitio web estático se puede alojar sin problemas
en Amazon S3. Si hablamos de desacoplar aplicaciones y lo relacionamos
con AWS Lambda, podemos tener el Front-End en Amazon S3 y el Back-
End en AWS Lambda.

  Amazon DynamoDB

 Es un servicio de bases de datos no relacional o NoSQL, que ofrece un


gran rendimiento a escalada, se trata de una base de datos de clave-valor
y documentos para aplicaciones que deben acceder a los datos con baja
latencia, dicho esto, si necesitas velocidad, DynamoDB es una gran
opción, es capaz de responder en milisegundos. Es completamente
escalable, básicamente disponemos de un almacenamiento ilimitado.
Volviendo a relacionar con los demás servicios, lo normal es que una
aplicación lea o escriba en una base de datos, por tanto, DynamoDB sería
una alternativa para las aplicaciones que ejecutemos con AWS Lambda.

CURSO DE TALLER DE PROYECTOS


FACULTAD DE INGENIERIA Y ARQUITECTURA
AV. LA FONTANA 1250 – LA MOLINA
TELEFONO: 2086000 ANEXO 1123
  AWS API Gateway

 Las API son sumamente importante en el desarrollo de software, en Cloud


Computing y por supuesto, en AWS todo se comunica por API. API
Gateway permite crear, gestionar y publicar las llamadas por API, tanto
para servicios internos en AWS como servicios que estemos publicando
hacia Internet. Por ejemplo, volviendo al caso de la aplicación desacoplada
en servicios sin servidor, tenemos el Front-End en Amazon S3 y el Back-
End en AWS Lambda, estos componentes se comunican por API, es ahí
donde aparece la figura de API Gateway para facilitarnos las tareas y
desde luego, aportarnos seguridad.

4.2.- Arquitectura básica de una aplicación Web con Serverless

En la figura que tenemos a continuación, se muestra una arquitectura sencilla de


una aplicación web con servicios sin servidor en AWS. Como puedes observar,
los archivos estáticos del Front-End están alojados en Amazon S3,
comunicándose por medio de API con el Back-End que se ejecuta en AWS
Lambda, para la integración se utiliza Amazon API Gateway, y la base de datos
se encuentra en Amazon DynamoDB.

CURSO DE TALLER DE PROYECTOS


FACULTAD DE INGENIERIA Y ARQUITECTURA
AV. LA FONTANA 1250 – LA MOLINA
TELEFONO: 2086000 ANEXO 1123
4.3. Serverless en Microsoft Azure

Azure ofrece servicios con funciones similares a los servicios de AWS antes
mencionados, no entraré en detalle en las diferencias, la idea es que tengas
noción de las opciones disponibles en ambos proveedores.

  Azure Functions

Es un servicio de cómputo para el desarrollo de aplicaciones sin servidor


basadas en eventos y que también se puede integrar con otros servicios
mediante triggers o desencadenadores. Como puedes comprobar, tiene
cierta similitud con AWS Lambda.

  Azure Container Instances

Es la solución sin servidor para ejecutar contenedores en Azure.


Evidentemente, permite agilizar el desarrollo de aplicaciones, ya que
elimina totalmente la necesidad de administrar máquinas virtuales para
ejecutar los contenedores. Este es el servicio que podemos comparar con
Fargate de AWS.

  Azure Blob Storage

Es la solución de almacenamiento de objetos de Microsoft para guardar


datos de texto y binarios. Similar a Amazon S3, es útil para diferentes
escenarios, almacenamientos de copias de seguridad, logs, archivos
multimedia, etc.

  Azure Cosmos DB

Es un servicio de bases de dados no relacional o NoSQL con alta


disponibilidad y capacidad para responder en milisegundos. Esta es la
solución de Azure que podemos comparar con Amazon DynamoDB,
igualmente, es importante para aplicaciones que requieren acceder a los
datos y responder con baja latencia.

CURSO DE TALLER DE PROYECTOS


FACULTAD DE INGENIERIA Y ARQUITECTURA
AV. LA FONTANA 1250 – LA MOLINA
TELEFONO: 2086000 ANEXO 1123
  Azure API Management

Es el servicio de Azure que permite administrar las API para la interacción


y comunicación entre componentes, imprescindible en una arquitectura de
microservicios. Importante mencionar que no se limita a recursos internos
en la nube de Azure, también se pueden gestionar de forma centralizada
API de entornos híbridos y multicloud.

Ya hay empresas que funcionan como un servicio. Aquí están algunos de ellos:
 Microsoft – Azure Functions
 Amazon Web Services – AWS Lambda
 IBM – IBM Cloud Functions
 Google Cloud – Serverless Computing
 Alibaba Cloud – Function Compute
 Auth0 – webtask
 Iron.io – IronWorker
 Planet Rational – webscript
Hay muchos otros servicios disponibles, y todos ellos se diferencian por sus
capacidades técnicas e implementaciones.

CURSO DE TALLER DE PROYECTOS


FACULTAD DE INGENIERIA Y ARQUITECTURA
AV. LA FONTANA 1250 – LA MOLINA
TELEFONO: 2086000 ANEXO 1123
5. Conclusiones:

La arquitectura serverless nos permite construir piezas de código que hacen


algo útil, y al mismo tiempo, ejecutarse rápidamente sin consumir grandes
cantidades de recursos del servidor. Esto no significa que FaaS sea útil sólo en
escenarios pequeños. Aunque una función es una unidad pequeña, puede ser
invocada millones de veces por segundo.

Realmente el uso Serverless es cada vez mayor y como has podido comprobar,
los beneficios que nos aportan son importantes, dejar de preocuparse por
aprovisionar servidores y administrar infraestructura, para concentrarse en el
desarrollo de aplicaciones es genial, a la empresa le viene bien, ya que los
equipos estarán ocupados más en la entrega rápida de productos que generen
valor para los clientes y a costos menores, ya que solo se paga lo que se usa, en
este caso se paga por el tiempo que dura la ejecución, en lugar de pagar por una
instancia.

Serverless cuenta con una variedad de servicios sin servidor para diferentes
propósitos, pero que se pueden integrar entre sí para construir soluciones
completas.

6. Bibliografía:

 codigofacilito. (2019, 15 de
enero). Arquitectura Serverless Explicada [Video].
YouTube. https://www.youtube.com/watch?v=J9O9MN0octs

 Vida MRR - Diseño y desarrollo web. (2019, 19 de


febrero). ¿Qué es y cómo funciona el Serverless? #CafecitoConRivas [Vi
deo]. YouTube. https://www.youtube.com/watch?v=kazdSx7_-Bs

 Vida MRR - Diseño y desarrollo web. (2020, 20 de


octubre). EJEMPLO DE ARQUITECTURA SERVERLESS [Video].
YouTube. https://www.youtube.com/watch?v=CuI-3ZlMw6Q

CURSO DE TALLER DE PROYECTOS


FACULTAD DE INGENIERIA Y ARQUITECTURA
AV. LA FONTANA 1250 – LA MOLINA
TELEFONO: 2086000 ANEXO 1123
 McCumskey, G. (2022, 17 de mayo). A Guide to Serverless Architecture.
Serverless: Develop & Monitor Apps On AWS
Lambda. https://www.serverless.com/blog/serverless-architecture

 Beltrán, J. (s. f.). Functions as a service: Introducción a arquitecturas


serverless - Blog Nubity. Blog Nubity. https://blog.nubity.com/functions-
as-a-service-introduccion-a-arquitecturas-serverless/

 Flores, F. (2021, 11 de octubre). Qué es Serverless, ventajas y servicios.


OpenWebinars.net. https://openwebinars.net/blog/que-es-serverless-
ventajas-y-servicios/

 Galván, P. (s. f.). Un Vistazo a la Arquitectura Serverless. SG


Buzz. https://sg.com.mx/revista/52/un-vistazo-la-arquitectura-serverless
 https://martinfowler.com/

CURSO DE TALLER DE PROYECTOS


FACULTAD DE INGENIERIA Y ARQUITECTURA
AV. LA FONTANA 1250 – LA MOLINA
TELEFONO: 2086000 ANEXO 1123

También podría gustarte