SlideShare a Scribd company logo
1 of 37
Download to read offline
¡Bienvenidos!
Agenda:
• 19:00 – 19:05 - Apertura
• 19:05 – 20:00 - Serverless... ¡en local! con Serverless Framework
en AWS
• 20:00 – 21:00 - Bebida y picoteo para conocernos
https://enmilocalfunciona.io
Comenzamos el blog en 2016
Y poco a poco hemos ido creciendo:
¡Gracias a todos los que lo hacéis posible!
Más de 100 posts de
más de 60 compañeros y
ex-compañeros
¡Gracias a ti por tu
asistencia y visitas!
Serverless... ¡en local!
con Serverless
Framework en AWS
¿Y por dónde empiezo?
https://enmilocalfunciona.io/aprendiendo-serverless-framework-parte-1-introduccion/
https://enmilocalfunciona.io/aprendiendo-serverless-framework-parte-2-instalacion/
Próximamente muchos más…
Índice
1. Introducción
2. Entornos de Ejecución
3. Desarrollo “Serverless”
4. Laboratorio
5. Preguntas
1. Introducción
En un mundo ideal ¿Serverless significa? … SIN Servidor
Un paso más en la evolución
Sistemas
monolíticos
Sistemas
distribuidos
Microservicios
Serverless
Mundo Síncrono
• Enfoque Request-Driven
Mundo Asíncrono
• Enfoque Message-Driven
• Enfoque Event-Driven
Patrones : Orquestador vs. Coreográfico
Photo by Manuel Nägeli on Unsplash Photo by Michael Afonso on Unsplash
• Requiere un coordinador central
• El coordinador central “da las órdenes” (centralización)
• Facilita la implementación
• Enfoque síncrono (aunque también puede ser asíncrono)
• NO requiere un coordinador central
• Normalmente existe un plan aunque cada uno es responsable
de dar y recibir órdenes (distribuido)
• Mayor dificultad de implementación -> requiere mecanismo
de mensajería
• Enfoque asíncrono
¿Cuál es la siguiente gran revolución?
Teoría : No hay balas de plata
“No sólo no hay balas de plata a la vista, sino que la
misma naturaleza del software impide que las haya”
Frederick P. Brooks (1987)
Cada cierto tiempo aparece una gran solución a todos los
problemas
Open Source Frameworks Agile
Cloud Contenedores Microservicios
Blockchain Serverless …
Aplicaciones Twelve-Factor
Metodología para construir aplicaciones
con ejecución como un servicio
• https://12factor.net/
• https://12factor.net/es/
• Applying the Twelve-Factor App
Methodology to Serverless
Applications
2. Entornos de Ejecución
Clásico / Mascota
Cloud / Ganado
Infraestructura como Código / IaC
Serverless
Entorno de ejecución “Clásico” / “Mascota”
Photo by Alicia Jones on Unsplash
Tipo Características
Máquina Tamaño presupuestado
Entornos diferentes
PRO “cuidados especiales”
Software base
Redimensionamiento
Carga y rendimiento
Problemas escalado
Problemas Seguridad
Despliegues lentos
Problemas cambio SW
Problemas cambio HW
Personal
Problemas de tiempos respuesta
Problemas por cortes
Máquina virtual Inmutabilidad de entornos
Mejora de despliegues
Multi-tenancy
Redimensionamiento dinámico
Aislamiento
Entorno completo totalmente configurable y
exportable (Test)
Despliegues más dinámicos, menos
comprometidos y menos intrusivos
Problemas de gestión de recursos SO
Host
Tiempos de respuesta en función recursos consumidos en SO Host
Más tolerancia a problemas por cortes
Contenedor Inmutabilidad de entornos
TEST = PRO
Mejora de despliegues
High Multi-tenancy
Ligero (pocos recursos)
Principio Responsabilidad única
Reproducible en local
Despliegues muy rápidos => Mejora
autoescalado bajo demanda
Tiempos de respuesta en función recursos consumidos en SO Host y
gestión de contenedores y orquestración
Más tolerancia que MV a problemas por cortes
Servidor físico con una asignación específica de sus recursos, una definición
concreta de los lenguajes/versiones a utilizar donde se ejecutan las diferentes
aplicaciones
● Separación entre entornos -> DEV, INT, UAT, QA, PRE y PRO
● Surge una serie de problemas en base a su elección
Entorno de ejecución “Cloud” / “Ganado”
Servidor físico proporcionado por un proveedor (Azure, Aws, Google, etc.) asignación
específica o dinámica de sus recursos, una definición concreta de los lenguajes/versiones
a utilizar donde se ejecutan las diferentes aplicaciones
● Dependencia del modelos de servicios a la hora de realizar la distribución de SW
● Surge una serie de problemas en base a su elección
Modelo Descripción
IaaS Infraestructura como servicio : Modelo basado en que un proveedor se encarga de la distribución de la infraestructura necesaria -> También se denomina HaaS (Hardware as a Service)
Objetivo : externalizar el servidor (espacio disco, tiempo computación y/o base de datos)
Facilita : escalabilidad, elasticidad, disponibilidad, seguridad, automatización, mantenibilidad, etc.
Pago por configuración y por uso
PaaS Plataforma como servicio : Modelo basado en que un proveedor se encarga de proporcionar TODO lo necesario para soportar un ciclo de vida completo de puesta en marcha de aplicaciones y servidores
Objetivo : externalizar la aplicación (base de datos, SSOO, servidor de aplicaciones)
Pago por licenciamiento, configuración y por uso
SaaS Software como servicio : Modelo basado en que un proveedor se encarga de proporcionar mantenimiento, soporte y operación a un cliente durante un periodo de contratación de servicio
Objetivo : externalizar el uso
Pago por volumen de usuarios, módulos utilizados, plan de soporte, acceso por dispositivo
XaaS Todo como servicio : Modelo basado en proporcionar todo para pago por “uso” : BI, Seguridad, Desktop, Backup, Email, ...
Photo by Samuel González Izquierdo on Unsplash
Entorno de ejecución “Infraestructura como Código” / “IaC”
Evolución “natural” del entorno de ejecución “Cloud”
● Foco en la mejora de la creación y mantenimiento de entornos
● Surge una serie de problemas en base a su elección
● Características :
● Creación de infraestructura versionable, reproducible,
consistente e independiente del entorno
● Entornos limpios y sin estados anterior
● Automatización del proceso manual mediante una explotación
programáticos sobre los entornos de ejecución : clásico y cloud
● Facilita la creación / destrucción de entornos como ciclo de
integración / entrega continua
● Uso de herramientas específicas
Modelo Cloud FaaS (Function as a Service)
Modelo de distribución de SW donde el proveedor facilita todo lo necesario para que únicamente los desarrolladores se
limiten a codificar el comportamiento de una función (pieza de lógica de negocio)
● Minimización del desarrollo a la mínima expresión : la función -> Cumplimiento “PSR”
● Toda la infraestructura está delegada -> escalabilidad, pago por tiempo de ejecución, etc.
● Una función consume menos recursos que un microservicios -> problema de mantenerlo levantado
● El lenguaje de implementación depende del proveedor
● Funciones SIN estado -> si se quiere estado hay que utilizar apoyarse en otros servicios
● Funcionalidad específica como : scheduled task / jobs, procesar peticiones web, procesar mensajes de colas, ejecución manual , etc.
● Requiere un puerta de enlace “API” o API Gateway
Servicio de ejecución de funciones proporcionado por diferentes proveedores : AWS Lambda, Google Cloud Functions,
Azure Functions , Iron.io, Webtask.io etc.
Diferencias con BaaS (Backend as a Service)
Combinación con otros servicios externos (servicios de computación sin servidores) -> “Juntar Piezas”
○ Autenticación (Auth0, Amazon Cognito)
○ Productos API (Api Gateway,etc)
○ Sistemas de mensajería (SQS, SNS,etc)
○ Streaming de datos (Kinesis, etc)
○ ...
Funcionalidades complejas -> requieren más de una función -> Patrón Orquestador vs Patrón Coreográfico
Entorno de ejecución “Serverless”
Servicio proporcionado por un proveedor (Azure, Aws, Google, etc.)
donde se facilita un servidor (físicos o cloud), la asignación dinámica
de sus recursos, una definición concreta de los lenguajes/versiones a
utilizar y una única función de entrada como contrato
● No hay aprovisionamiento, gestión y mantenimiento de servidores
● Funcionamiento basado en el uso y reaprovechamiento de contenedores
● Se factura por tiempo de ejecución y por su configuración
● Escalado continuo debido al uso
● Disponibilidad y tolerancia a fallos por defecto
● Un evento invoca a esta función que genera el “ambiente” y una vez
ejecutado el “ambiente” desaparece -> arranque “frío” / “caliente” ->
latencia
● Buen comportamiento frente a cargas de trabajo relacionadas con
eventos entrantes
Photo by eberhard grossgasteiger on Unsplash
Símil Entorno de ejecución “Serverless”
3. Desarrollo “Serverless”
Enfoque Arquitectónico “Serverless”
Cualquier desarrollo se despliega en un “entornos de ejecución Serverless” proporcionados por los diferentes
proveedores (Azure, Aws, Google, etc.) donde solamente hay que introducir el código para poder ejecutarlo
● Cloud-First
● Less Ops -> Abstracción de la infraestructura -> Desaparecen los servidores para el desarrollador -> NO mantenimiento
● Agnóstico del proveedor
● Uso On-Demand
● Pay-for-Use o Pay-for-execution-time (si no se usa se apaga)
● El código que se ejecuta se corresponde con una función -> Depende del criterio del desarrollador
● Tiene similitudes con la Arq. de Microservicios
● Focalización en la construcción y mantenimiento de aplicaciones -> Productividad
● Requiere un cambio cultural no solo técnico
● Fuente de invocación : API , otro FaaS o bien evento del proveedor / otros productos
Tipos de Arranque “Serverless”
Casi “todos” los proveedores serverless usan contenedores para generar
los entornos de ejecución
● Se requieren varios “segundos” o algunos “minutos”
● Depende de : proveedor, límites de lenguajes, tiempo / limites de
ejecución , tamaño de la función, etc.
● Los lenguajes interpretados suelen tener mejores tiempos de arranque y
consumo de recursos -> Depende del uso
Mejor para comunicación síncrona que asíncrona
Evitar arranques “Cold Start” -> Mantener las funciones “calientes”
● Los microservicios mantienen el servidor activo todo el tiempo
● Problema 1: ¿qué se entiende por microservicio?
● Problema 2: ¿se puede comparar con una función?
¿Y dónde lo puedo utilizar?
PoCs y pilotos
Extensión backend
aplicaciones
(web/mobile/IoT)
APIs Microservicios
Orientación a
eventos -> EDA
(Event Driven
Architectures)
Uso de servicios
externos
Webhooks ETL
Tareas
programadas
Procesamiento de
datos
CDC (Change Data
Capture)
Pipelines CI / CD ...
Ventajas vs. Inconvenientes
● Evitar tener que mantener infraestructuras de servidores
(actualizaciones, ssh, backups, etc.) -> Ahorro costes
● Despliegue independiente y automatizado
● Facilita la IC
● Definición de funciones “pequeñas” -> única responsabilidad
● Definición de funciones desacopladas y a poder ser SIN estado
● Heterogeneidad de lenguajes
● Pago por uso
● “Cuando algo no se necesita entonces se apaga” -> ajuste costes
● Facilita la integración con otros servicios del proveedor (log,
monitorización,etc)
● Escalado particular (“grano fino”) horizontal con enfoque “elástico”
● -> Cuidado con los tiempos de arranque
● Desarrollo en la nube pública -> Aspectos de seguridad
● Desarrollo casi siempre acoplado al proveedor -> vendor lock-in
● Limitaciones -> enfoque de “caja negra”
● Entorno cerrado -> no se pueden realizar muchas personalizaciones u
optimizaciones
● Lenguajes y versiones proporcionados por el proveedor
● Tiempo máximo de ejecución de una función
● Tamaño máximo de la función y del uso de memoria
● Latencia inicial : arranque frío / caliente
● Pérdida del control cuando el nº de funciones crece mucho
● Detección de la trazabilidad de las peticiones
● Dificulta el despliegue cuando se trabaja con varias funciones
● Dificulta la monitorización -> requiere herramientas extra
● Inmadurez de herramientas a la hora de automatizar despliegues
● Dificultad de las organizaciones para romper el monolito
● Mejor para aplicaciones con una vida útil “corta”
4. Laboratorio
AWS Lambda
https://aws.amazon.com/es/lambda/
AWS (Amazon Web Service) es uno de los negocios de Amazon
● Objetivo facilitar a las empresas /desarrolladores construir SW avanzado y escalable
haciendo uso de los servicios web
● Conceptos : instancia , monitorización , zona de disponibilidad, regiones, autoescalado,
elasticidad, pago por uso, etc.
● Servicios : Elastic Compute Cloud (EC2), Elastic Block Storage (EBS), Simple Storage Service
(S3), Almacenamiento [Glacier], Base de datos [DynamoDB, RDS, Simple DB], Aplicación
[CloudFront, SQS] y Otros [SNS, SES,Cloud Formation, etc] -> Cada día aparecen nuevos
AWS Lambda : Serverless FaaS orientado para Event-driven y proporcionado por AWS
● Diferentes lenguajes : Node.j, Python, C#, Go, Ruby, Java, etc
● Origen en 2014
● Requiere para su uso Amazon API Gateway
● Aplicar buenas prácticas : https://docs.aws.amazon.com/es_es/lambda/latest/dg/best-
practices.html
● Ejecuciones bajo petición de usuario , otro lambda o bien una alarma / métrica
● TRUCO : Especializar al máximo cada lambda -> Patrón “PSR”
Ejemplo Lambda
exports.myHandler = function (event, context,
callback) {
console.log('Hello World!')
callback(null, 'OK’)
}
Framework Serverless
https://serverless.com/
Herramienta por línea de comandos que permite trabajar con múltiples proveedores y que
permite automatizar una serie de tareas a través de comandos
• Se comunica directamente con el CLI de los proveedores
• Homogeniza el uso en los proyectos
• Soporta diferentes lenguajes
• Production-Ready
• Buena documentación y ejemplos -> https://github.com/serverless/examples
• Facilita el trabajo en modo Offline
• Extensibilidad de funciones con el uso de plugins
• Requiere tener instalado Node.js …
Local Stack
https://github.com/localstack/localstack
Herramienta que permite emular/mockear los servicios cloud de AWS en
local
● Originalmente era un proyecto de Atlassian
● Facilita poder probar antes de subir el código a PRO
● Para cada servicio establece un puerto para su uso
● La comunicación con cada uno de los servicios se realiza con el AWS CLI
● …
Plugins de Serverless
https://github.com/serverless/plugins
Se puede ampliar la funcionalidad de Serverless con plugins ya existentes o bien custom
Ejemplo Práctico Node.js
https://github.com/vjmadrid/enmilocalfunciona-aprendiendo-serverless/tree/master/meetup-bcn-mayo-2019
https://github.com/vjmadrid/enmilocalfunciona-aprendiendo-serverless
• Ejercicio Práctico : demo-nodejs-dynamodb-serverless
• Otros recursos
Resultado del Ejemplo Práctico Node.js
Ejemplo Práctico Python
https://gitlab.com/ruben-gil/serverless-framework-meetup/tree/solved
Nota : Tiene otra casuística
PREGUNTAS
Meetup En mi local funciona - Serverless... ¡en local! con Serverless Framework en AWS
Meetup En mi local funciona - Serverless... ¡en local! con Serverless Framework en AWS

More Related Content

What's hot

Apex nuevas caracteristicas
Apex nuevas caracteristicasApex nuevas caracteristicas
Apex nuevas caracteristicasDaniel Bozzolo
 
Alta disponibilidad SQL Server 2012
Alta disponibilidad SQL Server 2012Alta disponibilidad SQL Server 2012
Alta disponibilidad SQL Server 2012Eduardo Castro
 
Windows Azure, Lo mejor del PDC
Windows Azure, Lo mejor del PDCWindows Azure, Lo mejor del PDC
Windows Azure, Lo mejor del PDCJuan Pablo
 
Dev ops best practices - spanish v4
Dev ops best practices - spanish v4Dev ops best practices - spanish v4
Dev ops best practices - spanish v4Vemn1
 
Windows Server2008 R2 Overview
Windows Server2008 R2 OverviewWindows Server2008 R2 Overview
Windows Server2008 R2 OverviewPablo Campos
 
Desarrollo en oracle a bajo costo apex
Desarrollo en oracle a bajo costo   apexDesarrollo en oracle a bajo costo   apex
Desarrollo en oracle a bajo costo apexDaniel Bozzolo
 
AWS Marketplace: Busque, obtenga y despliegue software empresarial en minutos!
AWS Marketplace: Busque, obtenga y despliegue software empresarial en minutos!AWS Marketplace: Busque, obtenga y despliegue software empresarial en minutos!
AWS Marketplace: Busque, obtenga y despliegue software empresarial en minutos!Amazon Web Services LATAM
 
Destino la Nube 2012 - ALM para Azure
Destino la Nube 2012 - ALM para AzureDestino la Nube 2012 - ALM para Azure
Destino la Nube 2012 - ALM para AzureJose Luis Soria
 
Webinar: Mejores prácticas de Seguridad de la Información
Webinar: Mejores prácticas de Seguridad de la InformaciónWebinar: Mejores prácticas de Seguridad de la Información
Webinar: Mejores prácticas de Seguridad de la InformaciónAmazon Web Services LATAM
 
Microservicios con ASP.NET Core
Microservicios con ASP.NET CoreMicroservicios con ASP.NET Core
Microservicios con ASP.NET CoreEduardo Campañó
 
Microsoft Summit 2016 - Migrando IaaS Clásico a Azure Resource Manager ARM
Microsoft Summit 2016 - Migrando IaaS Clásico a Azure Resource Manager ARMMicrosoft Summit 2016 - Migrando IaaS Clásico a Azure Resource Manager ARM
Microsoft Summit 2016 - Migrando IaaS Clásico a Azure Resource Manager ARMAlejandro Almeida
 
Windows server 2012 jose luis
Windows server 2012 jose luisWindows server 2012 jose luis
Windows server 2012 jose luisyanez1814
 
[Evento] Microsoft Azure | Azure Compute: una mirada en 360°
[Evento] Microsoft Azure | Azure Compute: una mirada en 360°[Evento] Microsoft Azure | Azure Compute: una mirada en 360°
[Evento] Microsoft Azure | Azure Compute: una mirada en 360°Pablo Ariel Di Loreto
 
Web matrix razor_aspnetmvc_finalv2_techdays2010
Web matrix razor_aspnetmvc_finalv2_techdays2010Web matrix razor_aspnetmvc_finalv2_techdays2010
Web matrix razor_aspnetmvc_finalv2_techdays2010Gonzalo C.
 

What's hot (20)

Apex nuevas caracteristicas
Apex nuevas caracteristicasApex nuevas caracteristicas
Apex nuevas caracteristicas
 
La nube. Cloud computting
La nube. Cloud computtingLa nube. Cloud computting
La nube. Cloud computting
 
Usando plsq
Usando plsqUsando plsq
Usando plsq
 
Comenzando a usar el Continuous Delivery
 Comenzando a usar el Continuous Delivery Comenzando a usar el Continuous Delivery
Comenzando a usar el Continuous Delivery
 
Alta disponibilidad SQL Server 2012
Alta disponibilidad SQL Server 2012Alta disponibilidad SQL Server 2012
Alta disponibilidad SQL Server 2012
 
Windows Azure, Lo mejor del PDC
Windows Azure, Lo mejor del PDCWindows Azure, Lo mejor del PDC
Windows Azure, Lo mejor del PDC
 
Microservicios
MicroserviciosMicroservicios
Microservicios
 
Dev ops best practices - spanish v4
Dev ops best practices - spanish v4Dev ops best practices - spanish v4
Dev ops best practices - spanish v4
 
Windows Server2008 R2 Overview
Windows Server2008 R2 OverviewWindows Server2008 R2 Overview
Windows Server2008 R2 Overview
 
Progress Rollbase
Progress RollbaseProgress Rollbase
Progress Rollbase
 
Desarrollo en oracle a bajo costo apex
Desarrollo en oracle a bajo costo   apexDesarrollo en oracle a bajo costo   apex
Desarrollo en oracle a bajo costo apex
 
AWS Marketplace: Busque, obtenga y despliegue software empresarial en minutos!
AWS Marketplace: Busque, obtenga y despliegue software empresarial en minutos!AWS Marketplace: Busque, obtenga y despliegue software empresarial en minutos!
AWS Marketplace: Busque, obtenga y despliegue software empresarial en minutos!
 
Destino la Nube 2012 - ALM para Azure
Destino la Nube 2012 - ALM para AzureDestino la Nube 2012 - ALM para Azure
Destino la Nube 2012 - ALM para Azure
 
Webinar: Mejores prácticas de Seguridad de la Información
Webinar: Mejores prácticas de Seguridad de la InformaciónWebinar: Mejores prácticas de Seguridad de la Información
Webinar: Mejores prácticas de Seguridad de la Información
 
Microservicios con ASP.NET Core
Microservicios con ASP.NET CoreMicroservicios con ASP.NET Core
Microservicios con ASP.NET Core
 
Microsoft Summit 2016 - Migrando IaaS Clásico a Azure Resource Manager ARM
Microsoft Summit 2016 - Migrando IaaS Clásico a Azure Resource Manager ARMMicrosoft Summit 2016 - Migrando IaaS Clásico a Azure Resource Manager ARM
Microsoft Summit 2016 - Migrando IaaS Clásico a Azure Resource Manager ARM
 
5. rollbase
5. rollbase5. rollbase
5. rollbase
 
Windows server 2012 jose luis
Windows server 2012 jose luisWindows server 2012 jose luis
Windows server 2012 jose luis
 
[Evento] Microsoft Azure | Azure Compute: una mirada en 360°
[Evento] Microsoft Azure | Azure Compute: una mirada en 360°[Evento] Microsoft Azure | Azure Compute: una mirada en 360°
[Evento] Microsoft Azure | Azure Compute: una mirada en 360°
 
Web matrix razor_aspnetmvc_finalv2_techdays2010
Web matrix razor_aspnetmvc_finalv2_techdays2010Web matrix razor_aspnetmvc_finalv2_techdays2010
Web matrix razor_aspnetmvc_finalv2_techdays2010
 

Similar to Meetup En mi local funciona - Serverless... ¡en local! con Serverless Framework en AWS

Comenzando con aplicaciones serverless en AWS
Comenzando con aplicaciones serverless en AWSComenzando con aplicaciones serverless en AWS
Comenzando con aplicaciones serverless en AWSAmazon Web Services LATAM
 
Seguridad en arquitecturas serverless y entornos cloud
Seguridad en arquitecturas serverless y entornos cloudSeguridad en arquitecturas serverless y entornos cloud
Seguridad en arquitecturas serverless y entornos cloudJose Manuel Ortega Candel
 
Introducción a Azure App Service - MUG Buenos Aires
Introducción a Azure App Service - MUG Buenos AiresIntroducción a Azure App Service - MUG Buenos Aires
Introducción a Azure App Service - MUG Buenos AiresGuillermo Javier Bellmann
 
Futuro de Desarrollo en SharePoint
Futuro de Desarrollo en SharePointFuturo de Desarrollo en SharePoint
Futuro de Desarrollo en SharePointHaaron Gonzalez
 
Serverless: La evolucion de la arquitectura a la nube
Serverless: La evolucion de la arquitectura a la nubeServerless: La evolucion de la arquitectura a la nube
Serverless: La evolucion de la arquitectura a la nubeQuito Lambda
 
azure-logic elementos de seleccion cuando utilizarlos
azure-logic elementos de seleccion cuando utilizarlosazure-logic elementos de seleccion cuando utilizarlos
azure-logic elementos de seleccion cuando utilizarloscarlos_eduardo_84
 
Azure 360º para Desarrolaldores
Azure 360º para DesarrolaldoresAzure 360º para Desarrolaldores
Azure 360º para DesarrolaldoresGermán Küber
 
The azure platform TechDay2010
The azure platform TechDay2010The azure platform TechDay2010
The azure platform TechDay2010Juan Pablo
 
SQL Azure Administración, Desempeño y Mantenimiento
SQL Azure Administración, Desempeño y MantenimientoSQL Azure Administración, Desempeño y Mantenimiento
SQL Azure Administración, Desempeño y MantenimientoEduardo Castro
 
Despliegue de aplicaciones OS en entornos Cloud Computing con Bitnami- OpenEx...
Despliegue de aplicaciones OS en entornos Cloud Computing con Bitnami- OpenEx...Despliegue de aplicaciones OS en entornos Cloud Computing con Bitnami- OpenEx...
Despliegue de aplicaciones OS en entornos Cloud Computing con Bitnami- OpenEx...OpenExpoES
 
Expert Day 2013 - ¿Y Las Bases de Datos en Azure?
Expert Day 2013 - ¿Y Las Bases de Datos en Azure?Expert Day 2013 - ¿Y Las Bases de Datos en Azure?
Expert Day 2013 - ¿Y Las Bases de Datos en Azure?John Bulla
 
Serverless application repository
Serverless application repositoryServerless application repository
Serverless application repositoryPaola Velazquez
 
Windows azure: Introducción a la Nube y HoL de Azure MICTT
Windows azure: Introducción a la Nube y HoL de Azure MICTTWindows azure: Introducción a la Nube y HoL de Azure MICTT
Windows azure: Introducción a la Nube y HoL de Azure MICTTMICTT Palma
 
Migration Day - Migración de Microsoft a AWS
Migration Day - Migración de Microsoft a AWSMigration Day - Migración de Microsoft a AWS
Migration Day - Migración de Microsoft a AWSAmazon Web Services LATAM
 
WorkShop SQL Azure
WorkShop SQL AzureWorkShop SQL Azure
WorkShop SQL AzureJohn Bulla
 
Azure Bootcamp 2017 - Azure functions
Azure Bootcamp 2017 - Azure functionsAzure Bootcamp 2017 - Azure functions
Azure Bootcamp 2017 - Azure functionsDiego Bersano
 

Similar to Meetup En mi local funciona - Serverless... ¡en local! con Serverless Framework en AWS (20)

Comenzando con aplicaciones serverless en AWS
Comenzando con aplicaciones serverless en AWSComenzando con aplicaciones serverless en AWS
Comenzando con aplicaciones serverless en AWS
 
Seguridad en arquitecturas serverless y entornos cloud
Seguridad en arquitecturas serverless y entornos cloudSeguridad en arquitecturas serverless y entornos cloud
Seguridad en arquitecturas serverless y entornos cloud
 
Introducción a Azure App Service - MUG Buenos Aires
Introducción a Azure App Service - MUG Buenos AiresIntroducción a Azure App Service - MUG Buenos Aires
Introducción a Azure App Service - MUG Buenos Aires
 
Descubriendo windows azure
Descubriendo windows azureDescubriendo windows azure
Descubriendo windows azure
 
Futuro de Desarrollo en SharePoint
Futuro de Desarrollo en SharePointFuturo de Desarrollo en SharePoint
Futuro de Desarrollo en SharePoint
 
Serverless: La evolucion de la arquitectura a la nube
Serverless: La evolucion de la arquitectura a la nubeServerless: La evolucion de la arquitectura a la nube
Serverless: La evolucion de la arquitectura a la nube
 
azure-logic elementos de seleccion cuando utilizarlos
azure-logic elementos de seleccion cuando utilizarlosazure-logic elementos de seleccion cuando utilizarlos
azure-logic elementos de seleccion cuando utilizarlos
 
Azure 360º para Desarrolaldores
Azure 360º para DesarrolaldoresAzure 360º para Desarrolaldores
Azure 360º para Desarrolaldores
 
Serverless Wars
Serverless WarsServerless Wars
Serverless Wars
 
The azure platform TechDay2010
The azure platform TechDay2010The azure platform TechDay2010
The azure platform TechDay2010
 
SQL Azure Administración, Desempeño y Mantenimiento
SQL Azure Administración, Desempeño y MantenimientoSQL Azure Administración, Desempeño y Mantenimiento
SQL Azure Administración, Desempeño y Mantenimiento
 
Despliegue de aplicaciones OS en entornos Cloud Computing con Bitnami- OpenEx...
Despliegue de aplicaciones OS en entornos Cloud Computing con Bitnami- OpenEx...Despliegue de aplicaciones OS en entornos Cloud Computing con Bitnami- OpenEx...
Despliegue de aplicaciones OS en entornos Cloud Computing con Bitnami- OpenEx...
 
Expert Day 2013 - ¿Y Las Bases de Datos en Azure?
Expert Day 2013 - ¿Y Las Bases de Datos en Azure?Expert Day 2013 - ¿Y Las Bases de Datos en Azure?
Expert Day 2013 - ¿Y Las Bases de Datos en Azure?
 
Comenzando con Arquitecturas sin servidores
Comenzando con Arquitecturas sin servidoresComenzando con Arquitecturas sin servidores
Comenzando con Arquitecturas sin servidores
 
Serverless application repository
Serverless application repositoryServerless application repository
Serverless application repository
 
Windows azure: Introducción a la Nube y HoL de Azure MICTT
Windows azure: Introducción a la Nube y HoL de Azure MICTTWindows azure: Introducción a la Nube y HoL de Azure MICTT
Windows azure: Introducción a la Nube y HoL de Azure MICTT
 
Azure
AzureAzure
Azure
 
Migration Day - Migración de Microsoft a AWS
Migration Day - Migración de Microsoft a AWSMigration Day - Migración de Microsoft a AWS
Migration Day - Migración de Microsoft a AWS
 
WorkShop SQL Azure
WorkShop SQL AzureWorkShop SQL Azure
WorkShop SQL Azure
 
Azure Bootcamp 2017 - Azure functions
Azure Bootcamp 2017 - Azure functionsAzure Bootcamp 2017 - Azure functions
Azure Bootcamp 2017 - Azure functions
 

More from atSistemas

Agile itsm con atlassian
Agile itsm con atlassianAgile itsm con atlassian
Agile itsm con atlassianatSistemas
 
Bizz Chat metamorfosis digital
Bizz Chat metamorfosis digital Bizz Chat metamorfosis digital
Bizz Chat metamorfosis digital atSistemas
 
Webinar 5 net5-2021
Webinar 5 net5-2021Webinar 5 net5-2021
Webinar 5 net5-2021atSistemas
 
Webinar Speed Up Academy: Acelera la incorporación de talento.
Webinar Speed Up Academy: Acelera la incorporación de talento.Webinar Speed Up Academy: Acelera la incorporación de talento.
Webinar Speed Up Academy: Acelera la incorporación de talento.atSistemas
 
Webinar: Descubre los diferentes servicios Cloud Native en Azure
Webinar: Descubre los diferentes servicios Cloud Native en AzureWebinar: Descubre los diferentes servicios Cloud Native en Azure
Webinar: Descubre los diferentes servicios Cloud Native en AzureatSistemas
 
El futuro del trabajo en equipo
El futuro del trabajo en equipoEl futuro del trabajo en equipo
El futuro del trabajo en equipoatSistemas
 
La tecnología al servicio de la agilidad empresarial
La tecnología al servicio de la agilidad empresarialLa tecnología al servicio de la agilidad empresarial
La tecnología al servicio de la agilidad empresarialatSistemas
 
Transformación Agile
Transformación AgileTransformación Agile
Transformación AgileatSistemas
 
Transformación cultural
Transformación culturalTransformación cultural
Transformación culturalatSistemas
 
Technical considerations for Blockchain networks with AWS
Technical considerations for Blockchain networks with AWSTechnical considerations for Blockchain networks with AWS
Technical considerations for Blockchain networks with AWSatSistemas
 
Blockchain Spain II Edición - Ángel Miguel Martínez
Blockchain Spain II Edición - Ángel Miguel MartínezBlockchain Spain II Edición - Ángel Miguel Martínez
Blockchain Spain II Edición - Ángel Miguel MartínezatSistemas
 
Blockchain Spain - Néstor Gándara
Blockchain Spain - Néstor GándaraBlockchain Spain - Néstor Gándara
Blockchain Spain - Néstor GándaraatSistemas
 
Blockchain Spain - Juan Luis Gozalo
Blockchain Spain - Juan Luis GozaloBlockchain Spain - Juan Luis Gozalo
Blockchain Spain - Juan Luis GozaloatSistemas
 
Blockchain Spain - Ramón Abruña
Blockchain Spain - Ramón AbruñaBlockchain Spain - Ramón Abruña
Blockchain Spain - Ramón AbruñaatSistemas
 
Blockchain Spain - Santiago Chamat
Blockchain Spain - Santiago ChamatBlockchain Spain - Santiago Chamat
Blockchain Spain - Santiago ChamatatSistemas
 
Blockchain Spain - Antonio Gómez
Blockchain Spain - Antonio GómezBlockchain Spain - Antonio Gómez
Blockchain Spain - Antonio GómezatSistemas
 
Blockchain Spain - Miguel Ángel Rojas
Blockchain Spain - Miguel Ángel RojasBlockchain Spain - Miguel Ángel Rojas
Blockchain Spain - Miguel Ángel RojasatSistemas
 
Blockchain Spain - Andrés Sánchez
Blockchain Spain - Andrés SánchezBlockchain Spain - Andrés Sánchez
Blockchain Spain - Andrés SánchezatSistemas
 
Blockchain Spain II Edición - Autoridad Portuaria de Cartagena, Ilboc, Repsol
Blockchain Spain II Edición - Autoridad Portuaria de Cartagena, Ilboc, RepsolBlockchain Spain II Edición - Autoridad Portuaria de Cartagena, Ilboc, Repsol
Blockchain Spain II Edición - Autoridad Portuaria de Cartagena, Ilboc, RepsolatSistemas
 
Blockchain Spain II Edición - Juan Manuel Martínez
Blockchain Spain II Edición - Juan Manuel MartínezBlockchain Spain II Edición - Juan Manuel Martínez
Blockchain Spain II Edición - Juan Manuel MartínezatSistemas
 

More from atSistemas (20)

Agile itsm con atlassian
Agile itsm con atlassianAgile itsm con atlassian
Agile itsm con atlassian
 
Bizz Chat metamorfosis digital
Bizz Chat metamorfosis digital Bizz Chat metamorfosis digital
Bizz Chat metamorfosis digital
 
Webinar 5 net5-2021
Webinar 5 net5-2021Webinar 5 net5-2021
Webinar 5 net5-2021
 
Webinar Speed Up Academy: Acelera la incorporación de talento.
Webinar Speed Up Academy: Acelera la incorporación de talento.Webinar Speed Up Academy: Acelera la incorporación de talento.
Webinar Speed Up Academy: Acelera la incorporación de talento.
 
Webinar: Descubre los diferentes servicios Cloud Native en Azure
Webinar: Descubre los diferentes servicios Cloud Native en AzureWebinar: Descubre los diferentes servicios Cloud Native en Azure
Webinar: Descubre los diferentes servicios Cloud Native en Azure
 
El futuro del trabajo en equipo
El futuro del trabajo en equipoEl futuro del trabajo en equipo
El futuro del trabajo en equipo
 
La tecnología al servicio de la agilidad empresarial
La tecnología al servicio de la agilidad empresarialLa tecnología al servicio de la agilidad empresarial
La tecnología al servicio de la agilidad empresarial
 
Transformación Agile
Transformación AgileTransformación Agile
Transformación Agile
 
Transformación cultural
Transformación culturalTransformación cultural
Transformación cultural
 
Technical considerations for Blockchain networks with AWS
Technical considerations for Blockchain networks with AWSTechnical considerations for Blockchain networks with AWS
Technical considerations for Blockchain networks with AWS
 
Blockchain Spain II Edición - Ángel Miguel Martínez
Blockchain Spain II Edición - Ángel Miguel MartínezBlockchain Spain II Edición - Ángel Miguel Martínez
Blockchain Spain II Edición - Ángel Miguel Martínez
 
Blockchain Spain - Néstor Gándara
Blockchain Spain - Néstor GándaraBlockchain Spain - Néstor Gándara
Blockchain Spain - Néstor Gándara
 
Blockchain Spain - Juan Luis Gozalo
Blockchain Spain - Juan Luis GozaloBlockchain Spain - Juan Luis Gozalo
Blockchain Spain - Juan Luis Gozalo
 
Blockchain Spain - Ramón Abruña
Blockchain Spain - Ramón AbruñaBlockchain Spain - Ramón Abruña
Blockchain Spain - Ramón Abruña
 
Blockchain Spain - Santiago Chamat
Blockchain Spain - Santiago ChamatBlockchain Spain - Santiago Chamat
Blockchain Spain - Santiago Chamat
 
Blockchain Spain - Antonio Gómez
Blockchain Spain - Antonio GómezBlockchain Spain - Antonio Gómez
Blockchain Spain - Antonio Gómez
 
Blockchain Spain - Miguel Ángel Rojas
Blockchain Spain - Miguel Ángel RojasBlockchain Spain - Miguel Ángel Rojas
Blockchain Spain - Miguel Ángel Rojas
 
Blockchain Spain - Andrés Sánchez
Blockchain Spain - Andrés SánchezBlockchain Spain - Andrés Sánchez
Blockchain Spain - Andrés Sánchez
 
Blockchain Spain II Edición - Autoridad Portuaria de Cartagena, Ilboc, Repsol
Blockchain Spain II Edición - Autoridad Portuaria de Cartagena, Ilboc, RepsolBlockchain Spain II Edición - Autoridad Portuaria de Cartagena, Ilboc, Repsol
Blockchain Spain II Edición - Autoridad Portuaria de Cartagena, Ilboc, Repsol
 
Blockchain Spain II Edición - Juan Manuel Martínez
Blockchain Spain II Edición - Juan Manuel MartínezBlockchain Spain II Edición - Juan Manuel Martínez
Blockchain Spain II Edición - Juan Manuel Martínez
 

Recently uploaded

pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...JohnRamos830530
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxMiguelAtencio10
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanamcerpam
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21mariacbr99
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfAnnimoUno1
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxJorgeParada26
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxAlan779941
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.FlorenciaCattelani
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estossgonzalezp1
 
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfvladimiroflores1
 

Recently uploaded (11)

pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
 

Meetup En mi local funciona - Serverless... ¡en local! con Serverless Framework en AWS

  • 2. Agenda: • 19:00 – 19:05 - Apertura • 19:05 – 20:00 - Serverless... ¡en local! con Serverless Framework en AWS • 20:00 – 21:00 - Bebida y picoteo para conocernos
  • 4. Comenzamos el blog en 2016 Y poco a poco hemos ido creciendo:
  • 5. ¡Gracias a todos los que lo hacéis posible! Más de 100 posts de más de 60 compañeros y ex-compañeros ¡Gracias a ti por tu asistencia y visitas!
  • 6. Serverless... ¡en local! con Serverless Framework en AWS
  • 7. ¿Y por dónde empiezo? https://enmilocalfunciona.io/aprendiendo-serverless-framework-parte-1-introduccion/ https://enmilocalfunciona.io/aprendiendo-serverless-framework-parte-2-instalacion/ Próximamente muchos más…
  • 8. Índice 1. Introducción 2. Entornos de Ejecución 3. Desarrollo “Serverless” 4. Laboratorio 5. Preguntas
  • 10. En un mundo ideal ¿Serverless significa? … SIN Servidor
  • 11. Un paso más en la evolución Sistemas monolíticos Sistemas distribuidos Microservicios Serverless Mundo Síncrono • Enfoque Request-Driven Mundo Asíncrono • Enfoque Message-Driven • Enfoque Event-Driven
  • 12. Patrones : Orquestador vs. Coreográfico Photo by Manuel Nägeli on Unsplash Photo by Michael Afonso on Unsplash • Requiere un coordinador central • El coordinador central “da las órdenes” (centralización) • Facilita la implementación • Enfoque síncrono (aunque también puede ser asíncrono) • NO requiere un coordinador central • Normalmente existe un plan aunque cada uno es responsable de dar y recibir órdenes (distribuido) • Mayor dificultad de implementación -> requiere mecanismo de mensajería • Enfoque asíncrono
  • 13. ¿Cuál es la siguiente gran revolución? Teoría : No hay balas de plata “No sólo no hay balas de plata a la vista, sino que la misma naturaleza del software impide que las haya” Frederick P. Brooks (1987) Cada cierto tiempo aparece una gran solución a todos los problemas Open Source Frameworks Agile Cloud Contenedores Microservicios Blockchain Serverless …
  • 14. Aplicaciones Twelve-Factor Metodología para construir aplicaciones con ejecución como un servicio • https://12factor.net/ • https://12factor.net/es/ • Applying the Twelve-Factor App Methodology to Serverless Applications
  • 15. 2. Entornos de Ejecución Clásico / Mascota Cloud / Ganado Infraestructura como Código / IaC Serverless
  • 16. Entorno de ejecución “Clásico” / “Mascota” Photo by Alicia Jones on Unsplash Tipo Características Máquina Tamaño presupuestado Entornos diferentes PRO “cuidados especiales” Software base Redimensionamiento Carga y rendimiento Problemas escalado Problemas Seguridad Despliegues lentos Problemas cambio SW Problemas cambio HW Personal Problemas de tiempos respuesta Problemas por cortes Máquina virtual Inmutabilidad de entornos Mejora de despliegues Multi-tenancy Redimensionamiento dinámico Aislamiento Entorno completo totalmente configurable y exportable (Test) Despliegues más dinámicos, menos comprometidos y menos intrusivos Problemas de gestión de recursos SO Host Tiempos de respuesta en función recursos consumidos en SO Host Más tolerancia a problemas por cortes Contenedor Inmutabilidad de entornos TEST = PRO Mejora de despliegues High Multi-tenancy Ligero (pocos recursos) Principio Responsabilidad única Reproducible en local Despliegues muy rápidos => Mejora autoescalado bajo demanda Tiempos de respuesta en función recursos consumidos en SO Host y gestión de contenedores y orquestración Más tolerancia que MV a problemas por cortes Servidor físico con una asignación específica de sus recursos, una definición concreta de los lenguajes/versiones a utilizar donde se ejecutan las diferentes aplicaciones ● Separación entre entornos -> DEV, INT, UAT, QA, PRE y PRO ● Surge una serie de problemas en base a su elección
  • 17. Entorno de ejecución “Cloud” / “Ganado” Servidor físico proporcionado por un proveedor (Azure, Aws, Google, etc.) asignación específica o dinámica de sus recursos, una definición concreta de los lenguajes/versiones a utilizar donde se ejecutan las diferentes aplicaciones ● Dependencia del modelos de servicios a la hora de realizar la distribución de SW ● Surge una serie de problemas en base a su elección Modelo Descripción IaaS Infraestructura como servicio : Modelo basado en que un proveedor se encarga de la distribución de la infraestructura necesaria -> También se denomina HaaS (Hardware as a Service) Objetivo : externalizar el servidor (espacio disco, tiempo computación y/o base de datos) Facilita : escalabilidad, elasticidad, disponibilidad, seguridad, automatización, mantenibilidad, etc. Pago por configuración y por uso PaaS Plataforma como servicio : Modelo basado en que un proveedor se encarga de proporcionar TODO lo necesario para soportar un ciclo de vida completo de puesta en marcha de aplicaciones y servidores Objetivo : externalizar la aplicación (base de datos, SSOO, servidor de aplicaciones) Pago por licenciamiento, configuración y por uso SaaS Software como servicio : Modelo basado en que un proveedor se encarga de proporcionar mantenimiento, soporte y operación a un cliente durante un periodo de contratación de servicio Objetivo : externalizar el uso Pago por volumen de usuarios, módulos utilizados, plan de soporte, acceso por dispositivo XaaS Todo como servicio : Modelo basado en proporcionar todo para pago por “uso” : BI, Seguridad, Desktop, Backup, Email, ... Photo by Samuel González Izquierdo on Unsplash
  • 18. Entorno de ejecución “Infraestructura como Código” / “IaC” Evolución “natural” del entorno de ejecución “Cloud” ● Foco en la mejora de la creación y mantenimiento de entornos ● Surge una serie de problemas en base a su elección ● Características : ● Creación de infraestructura versionable, reproducible, consistente e independiente del entorno ● Entornos limpios y sin estados anterior ● Automatización del proceso manual mediante una explotación programáticos sobre los entornos de ejecución : clásico y cloud ● Facilita la creación / destrucción de entornos como ciclo de integración / entrega continua ● Uso de herramientas específicas
  • 19. Modelo Cloud FaaS (Function as a Service) Modelo de distribución de SW donde el proveedor facilita todo lo necesario para que únicamente los desarrolladores se limiten a codificar el comportamiento de una función (pieza de lógica de negocio) ● Minimización del desarrollo a la mínima expresión : la función -> Cumplimiento “PSR” ● Toda la infraestructura está delegada -> escalabilidad, pago por tiempo de ejecución, etc. ● Una función consume menos recursos que un microservicios -> problema de mantenerlo levantado ● El lenguaje de implementación depende del proveedor ● Funciones SIN estado -> si se quiere estado hay que utilizar apoyarse en otros servicios ● Funcionalidad específica como : scheduled task / jobs, procesar peticiones web, procesar mensajes de colas, ejecución manual , etc. ● Requiere un puerta de enlace “API” o API Gateway Servicio de ejecución de funciones proporcionado por diferentes proveedores : AWS Lambda, Google Cloud Functions, Azure Functions , Iron.io, Webtask.io etc. Diferencias con BaaS (Backend as a Service) Combinación con otros servicios externos (servicios de computación sin servidores) -> “Juntar Piezas” ○ Autenticación (Auth0, Amazon Cognito) ○ Productos API (Api Gateway,etc) ○ Sistemas de mensajería (SQS, SNS,etc) ○ Streaming de datos (Kinesis, etc) ○ ... Funcionalidades complejas -> requieren más de una función -> Patrón Orquestador vs Patrón Coreográfico
  • 20. Entorno de ejecución “Serverless” Servicio proporcionado por un proveedor (Azure, Aws, Google, etc.) donde se facilita un servidor (físicos o cloud), la asignación dinámica de sus recursos, una definición concreta de los lenguajes/versiones a utilizar y una única función de entrada como contrato ● No hay aprovisionamiento, gestión y mantenimiento de servidores ● Funcionamiento basado en el uso y reaprovechamiento de contenedores ● Se factura por tiempo de ejecución y por su configuración ● Escalado continuo debido al uso ● Disponibilidad y tolerancia a fallos por defecto ● Un evento invoca a esta función que genera el “ambiente” y una vez ejecutado el “ambiente” desaparece -> arranque “frío” / “caliente” -> latencia ● Buen comportamiento frente a cargas de trabajo relacionadas con eventos entrantes Photo by eberhard grossgasteiger on Unsplash
  • 21. Símil Entorno de ejecución “Serverless”
  • 23. Enfoque Arquitectónico “Serverless” Cualquier desarrollo se despliega en un “entornos de ejecución Serverless” proporcionados por los diferentes proveedores (Azure, Aws, Google, etc.) donde solamente hay que introducir el código para poder ejecutarlo ● Cloud-First ● Less Ops -> Abstracción de la infraestructura -> Desaparecen los servidores para el desarrollador -> NO mantenimiento ● Agnóstico del proveedor ● Uso On-Demand ● Pay-for-Use o Pay-for-execution-time (si no se usa se apaga) ● El código que se ejecuta se corresponde con una función -> Depende del criterio del desarrollador ● Tiene similitudes con la Arq. de Microservicios ● Focalización en la construcción y mantenimiento de aplicaciones -> Productividad ● Requiere un cambio cultural no solo técnico ● Fuente de invocación : API , otro FaaS o bien evento del proveedor / otros productos
  • 24. Tipos de Arranque “Serverless” Casi “todos” los proveedores serverless usan contenedores para generar los entornos de ejecución ● Se requieren varios “segundos” o algunos “minutos” ● Depende de : proveedor, límites de lenguajes, tiempo / limites de ejecución , tamaño de la función, etc. ● Los lenguajes interpretados suelen tener mejores tiempos de arranque y consumo de recursos -> Depende del uso Mejor para comunicación síncrona que asíncrona Evitar arranques “Cold Start” -> Mantener las funciones “calientes” ● Los microservicios mantienen el servidor activo todo el tiempo ● Problema 1: ¿qué se entiende por microservicio? ● Problema 2: ¿se puede comparar con una función?
  • 25. ¿Y dónde lo puedo utilizar? PoCs y pilotos Extensión backend aplicaciones (web/mobile/IoT) APIs Microservicios Orientación a eventos -> EDA (Event Driven Architectures) Uso de servicios externos Webhooks ETL Tareas programadas Procesamiento de datos CDC (Change Data Capture) Pipelines CI / CD ...
  • 26. Ventajas vs. Inconvenientes ● Evitar tener que mantener infraestructuras de servidores (actualizaciones, ssh, backups, etc.) -> Ahorro costes ● Despliegue independiente y automatizado ● Facilita la IC ● Definición de funciones “pequeñas” -> única responsabilidad ● Definición de funciones desacopladas y a poder ser SIN estado ● Heterogeneidad de lenguajes ● Pago por uso ● “Cuando algo no se necesita entonces se apaga” -> ajuste costes ● Facilita la integración con otros servicios del proveedor (log, monitorización,etc) ● Escalado particular (“grano fino”) horizontal con enfoque “elástico” ● -> Cuidado con los tiempos de arranque ● Desarrollo en la nube pública -> Aspectos de seguridad ● Desarrollo casi siempre acoplado al proveedor -> vendor lock-in ● Limitaciones -> enfoque de “caja negra” ● Entorno cerrado -> no se pueden realizar muchas personalizaciones u optimizaciones ● Lenguajes y versiones proporcionados por el proveedor ● Tiempo máximo de ejecución de una función ● Tamaño máximo de la función y del uso de memoria ● Latencia inicial : arranque frío / caliente ● Pérdida del control cuando el nº de funciones crece mucho ● Detección de la trazabilidad de las peticiones ● Dificulta el despliegue cuando se trabaja con varias funciones ● Dificulta la monitorización -> requiere herramientas extra ● Inmadurez de herramientas a la hora de automatizar despliegues ● Dificultad de las organizaciones para romper el monolito ● Mejor para aplicaciones con una vida útil “corta”
  • 28. AWS Lambda https://aws.amazon.com/es/lambda/ AWS (Amazon Web Service) es uno de los negocios de Amazon ● Objetivo facilitar a las empresas /desarrolladores construir SW avanzado y escalable haciendo uso de los servicios web ● Conceptos : instancia , monitorización , zona de disponibilidad, regiones, autoescalado, elasticidad, pago por uso, etc. ● Servicios : Elastic Compute Cloud (EC2), Elastic Block Storage (EBS), Simple Storage Service (S3), Almacenamiento [Glacier], Base de datos [DynamoDB, RDS, Simple DB], Aplicación [CloudFront, SQS] y Otros [SNS, SES,Cloud Formation, etc] -> Cada día aparecen nuevos AWS Lambda : Serverless FaaS orientado para Event-driven y proporcionado por AWS ● Diferentes lenguajes : Node.j, Python, C#, Go, Ruby, Java, etc ● Origen en 2014 ● Requiere para su uso Amazon API Gateway ● Aplicar buenas prácticas : https://docs.aws.amazon.com/es_es/lambda/latest/dg/best- practices.html ● Ejecuciones bajo petición de usuario , otro lambda o bien una alarma / métrica ● TRUCO : Especializar al máximo cada lambda -> Patrón “PSR” Ejemplo Lambda exports.myHandler = function (event, context, callback) { console.log('Hello World!') callback(null, 'OK’) }
  • 29. Framework Serverless https://serverless.com/ Herramienta por línea de comandos que permite trabajar con múltiples proveedores y que permite automatizar una serie de tareas a través de comandos • Se comunica directamente con el CLI de los proveedores • Homogeniza el uso en los proyectos • Soporta diferentes lenguajes • Production-Ready • Buena documentación y ejemplos -> https://github.com/serverless/examples • Facilita el trabajo en modo Offline • Extensibilidad de funciones con el uso de plugins • Requiere tener instalado Node.js …
  • 30. Local Stack https://github.com/localstack/localstack Herramienta que permite emular/mockear los servicios cloud de AWS en local ● Originalmente era un proyecto de Atlassian ● Facilita poder probar antes de subir el código a PRO ● Para cada servicio establece un puerto para su uso ● La comunicación con cada uno de los servicios se realiza con el AWS CLI ● …
  • 31. Plugins de Serverless https://github.com/serverless/plugins Se puede ampliar la funcionalidad de Serverless con plugins ya existentes o bien custom
  • 33. Resultado del Ejemplo Práctico Node.js