Top Banner
Comenzando con arquitecturas sin servidores Angel Leon Arquitecto de Soluciones Sector Público Agosto 2017
56

Comenzando con Arquitecturas sin servidores

Jan 21, 2018

Download

Technology

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Comenzando con Arquitecturas sin servidores

Comenzando con arquitecturas sin servidores

Angel Leon

Arquitecto de Soluciones

Sector Público

Agosto 2017

Page 2: Comenzando con Arquitecturas sin servidores

Antecedente

¿Por qué los patrones de arquitecturas Serverless con AWS Lambda son

la siguiente evolución del diseño de aplicaciones?

Page 3: Comenzando con Arquitecturas sin servidores

La arquitectura monolítica

Page 4: Comenzando con Arquitecturas sin servidores

La arquitectura orientada a servicios

Capa de presentación Capa lógica

Capa de datos

Page 5: Comenzando con Arquitecturas sin servidores

La arquitectura de microservicios

Page 6: Comenzando con Arquitecturas sin servidores

La arquitectura de microservicios

Page 7: Comenzando con Arquitecturas sin servidores

Evolución del cómputo en la nube hacia

“Serverless”

Page 8: Comenzando con Arquitecturas sin servidores

Evolución del cómputo – Nube pública

InfraestructuraInstancias

Código de la aplicación

Page 9: Comenzando con Arquitecturas sin servidores

Evolución del cómputo – Contenedores

InfraestructuraInstancias

Código de la aplicaciónContenedores

Page 10: Comenzando con Arquitecturas sin servidores

Evolución del cómputo – Serverless

Código de la aplicación

Page 11: Comenzando con Arquitecturas sin servidores

Las herramientas para ayudar son MUCHAS

Servidores Web

Librerías de código

Servicios Web/Frameworks de Aplicación

Herramientas de administración de

configuraciones

Plataformas de administración de APIs

Patrones de despliegue

Patrones de CI/CD

Contenedores

Etc. Etc. Etc.

Page 12: Comenzando con Arquitecturas sin servidores

AWS ha ayudado también!

Amazon EC2

EC2 Auto-Scaling

AWS Elastic Load Balancer

EC2 Auto-Recovery

AWS Trusted Advisor

AWS Elastic Beanstalk

AWS OpsWorks

AWS EC2 Container Service

Etc. Etc. Etc.

Page 13: Comenzando con Arquitecturas sin servidores

Pero….

muchas de estas herramientas e

innovaciones están acopladas a

una dependencia común…

Page 14: Comenzando con Arquitecturas sin servidores

Servidores (Ouch!)

¿Qué tamaño de servidores son

adecuados para mi presupuesto?

¿Cuántos usuarios generan

mucha carga a mis servidores?

¿Cuánta capacidad sobrante le

queda a mis servidores?

¿Cómo puedo detectar si un

servidor ha sido comprometido?

¿Cuántos servidores debería

presupuestar?

¿Cuál SO deberían tener mis

servidores?

¿Cuáles usuarios deberían

tener acceso a mis servidores?

¿Cómo puedo controlar el

acceso desde mis servidores?

¿Quién hará los parches de SO

de mis servidores?

¿Cómo despliegará el nuevo

código a mis servidores?

¿Cómo puedo incrementar la

utilización de mis servidores?

¿Cuándo debería decidir escalar

el número de servidores?

¿Qué tamaño de servidor es

adecuado para mi rendimiento?

¿Debo de ajustar los valores del

SO para optimizar mi aplicación?

¿Qué paquetes deben estar

creados en las imágenes?

¿Cuándo debería decidir crecer mis

servidores?

¿Cómo controlo los cambios en la

configuración del servidor?

¿Cómo las aplicaciones soportarán

fallas en el Hardware?

Page 15: Comenzando con Arquitecturas sin servidores

Arquitectura para ser Serverless

Totalmente administrado

No aprovisionamiento

Cero administración

Alta disponibilidad

Productividad del desarrollador

Enfocarse en el código que

importa

Innovar rápidamente

Reducir el time to market

Escalamiento continuo

Automatizado

Escala hacia arriba/abajo

Page 16: Comenzando con Arquitecturas sin servidores

Anatomía de una aplicación Web

Page 17: Comenzando con Arquitecturas sin servidores

¿Qué conforma a una aplicación Web?

Vamos a separarlo…

Page 18: Comenzando con Arquitecturas sin servidores

¿Qué conforma a una aplicación Web?

Page 19: Comenzando con Arquitecturas sin servidores

¿Qué conforma a una aplicación Web?

Page 20: Comenzando con Arquitecturas sin servidores

¿Qué conforma a una aplicación Web?

Page 21: Comenzando con Arquitecturas sin servidores

Aplicación Web Serverless

Page 22: Comenzando con Arquitecturas sin servidores

¿A dónde se fueron los servidores?

Page 23: Comenzando con Arquitecturas sin servidores

Sitio web estático hospedado en S3

Especifique un documento índice (ej. index.html)

Especifique un documento de error

Los objetos deben ser de lectura pública

Soporta redireccionamientos

Todas las solcitudes

Condicional

bucket with

objects

Page 24: Comenzando con Arquitecturas sin servidores

Configuración dinámica

Una buena opción:

Obtener configuraciones de DynamoDB

Escriba los valores a variables globales

El código utiliza las variables globales

Lambda

Function

Amazon

DynamoDB

Page 25: Comenzando con Arquitecturas sin servidores

DynamoDB – recordatorio

Base de datos NoSQL

Llaves: Hash Key y Range Key (opcional)

Tips:

Planeé sus llaves

Piense en sus queries

Page 26: Comenzando con Arquitecturas sin servidores

AWS Lambda

Page 27: Comenzando con Arquitecturas sin servidores

Servicio de cómputo, detonado por eventos y sin servidores

Lambda = microservicios sin servidores

Page 28: Comenzando con Arquitecturas sin servidores

Componentes de Lambda

Una función Lambda (que usted escribe)

Un evento externo

El servicio AWS Lambda

Un ambiente de red para la función

Page 29: Comenzando con Arquitecturas sin servidores

La función Lambda

Su código

(Java, NodeJS, Python, C#)

El rol de IAM que toma el

código durante la ejecución

La cantidad de memoria

reservada a su código

(afecta CPU y red también)

Una función completa

Lambda válida

Page 30: Comenzando con Arquitecturas sin servidores

Un evento externo

¿Cuándo se debe ejecutar su función?

Muchos servicios de AWS pueden ser eventos hoy:

• S3

• Kinesis

• SNS

• DynamoDB

• CloudWatch

• Config Rules

• Amazon Echo

• IoT

• Etc.

• …y Amazon API Gateway (más adelante)

Page 31: Comenzando con Arquitecturas sin servidores

El servicio AWS Lambda

Ejecuta el código de su función sin que tenga que

administrar o escalar servidores.

Provee un API para detonar la ejecución.

Asegura que la función es ejecutada cuando se detona,

en paralelo, sin importar la escala.

Provee capacidades adicionales para su función (logs,

monitoreo).

Page 32: Comenzando con Arquitecturas sin servidores

Ambiente de red para la función

Default – un ambiente de red

por defecto dentro de VPC está

incluido

El acceso a Internet siempre está

permitido para su función

Sin acceso a componentes

contenidos en una VPC propia

Customer VPC – Su función se

ejecuta dentro del contexto de su

propia VPC

Comunicación privada con otros

recursos dentro de su VPC

Configuración y comportamiento

familiar con:

– Subnets

– Elastic Network Interfaces (ENIs)

– EC2 Security Groups

– VPC Route Tables

– NAT Gateway

Page 33: Comenzando con Arquitecturas sin servidores

Muchas opciones sin servidores

Storage DatabaseNetwork

Compute Content DeliveryMessaging and QueuesSecurity

Gateways

User Management Monitoring & Logging

Internet of Things

Machine Learning

Streaming Analytics

Page 34: Comenzando con Arquitecturas sin servidores

Amazon API Gateway

Page 35: Comenzando con Arquitecturas sin servidores

Un servicio totalmente administrado para APIs

Crear Configurar Publicar

Mantener Monitorear Seguro

Page 36: Comenzando con Arquitecturas sin servidores

Demo

Page 37: Comenzando con Arquitecturas sin servidores
Page 38: Comenzando con Arquitecturas sin servidores

App Frontend

Page 39: Comenzando con Arquitecturas sin servidores

Amazon S3

Page 40: Comenzando con Arquitecturas sin servidores

Amazon API Gateway

Page 41: Comenzando con Arquitecturas sin servidores

AWS Lambda

Page 42: Comenzando con Arquitecturas sin servidores

Amazon DynamoDB

Page 43: Comenzando con Arquitecturas sin servidores

Patrones de arquitecturas “Serverless”

Microservicios

Backend de aplicaciones móviles

Procesamiento de datos

Sitios Web

APIs

Analíticos en tiempo real

Procesamiento de multimedia

Page 44: Comenzando con Arquitecturas sin servidores

Microservicios

Page 45: Comenzando con Arquitecturas sin servidores

Backend de aplicaciones móviles

Page 46: Comenzando con Arquitecturas sin servidores

Upload

to S3

S3 Bucket Lambda

S3 Notification

Compressed

Image

Compress Image

Upload back to S3

Procesamiento de datos

Page 47: Comenzando con Arquitecturas sin servidores

Static

Content

Dynamic

Content

API Gateway Lambda DynamoDB

Sitio Web “Serverless”

Page 48: Comenzando con Arquitecturas sin servidores

Internet

Mobile Apps

Websites

Services

AWS Lambda

functions

API Gateway

Cache

Endpoints on

Amazon EC2

Any other publicly

accessible endpointAmazon

CloudWatch

Amazon

CloudFront

Amazon

API Gateway

API “Serverless” con API Gateway

Page 49: Comenzando con Arquitecturas sin servidores

Motor de analíticos en tiempo real

Page 50: Comenzando con Arquitecturas sin servidores

CloudFront S3

Ingest

Lambda functions

HQ Copy

480p

Transcode

360p

Transcode

Audio Only

Transcode

S3

Playback

CloudFront

streaming

Thumbnails

Procesamiento de archivos de video

Page 51: Comenzando con Arquitecturas sin servidores

¡Nuevo!

AWS Step Functions

Page 52: Comenzando con Arquitecturas sin servidores

Beneficios de AWS Step functions

Diagnostique y

rastreé problemas

más rápido

Adáptese al

cambio

Fácil de conectar y

coordinar componentes

distribuidos y

microservicios para

crear aplicaciones más

rápido

Administra la

operación e

infraestructura de la

coordinación de

servicios para

asegurar la

disponibilidad

Productividad Agilidad Resiliencia

Page 53: Comenzando con Arquitecturas sin servidores

Qué sigue?

Page 54: Comenzando con Arquitecturas sin servidores

¡Construya algo!

Amazon API

GatewayAWS Lambda Amazon

DynamoDB

https://aws.amazon.com/serverless

Page 55: Comenzando con Arquitecturas sin servidores

Remember to complete

your evaluations!¡No olvide llenar su

evaluación!

Page 56: Comenzando con Arquitecturas sin servidores

¡Gracias!