El documento describe la evolución de la arquitectura de aplicaciones desde modelos monolíticos y orientados a servicios hacia modelos serverless y sin servidores utilizando funciones como AWS Lambda. Explica cómo los patrones de arquitectura serverless permiten enfocarse en el código sin preocuparse por la administración de servidores, además de proveer escalamiento automático y alta disponibilidad. Finalmente, presenta algunos ejemplos comunes de uso de arquitecturas serverless como microservicios, procesamiento de datos y sitios web.
11. 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.
12. 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.
13. Pero….
muchas de estas herramientas e
innovaciones están acopladas a
una dependencia común…
14. 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?
15. 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
23. 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
24. 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
25. DynamoDB – recordatorio
Base de datos NoSQL
Llaves: Hash Key y Range Key (opcional)
Tips:
Planeé sus llaves
Piense en sus queries
27. Servicio de cómputo, detonado por eventos y sin servidores
Lambda = microservicios sin servidores
28. 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
29. 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
30. 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)
31. 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).
32. 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
33. Muchas opciones sin servidores
Storage DatabaseNetwork
Compute Content DeliveryMessaging and QueuesSecurity
Gateways
User Management Monitoring & Logging
Internet of Things
Machine Learning
Streaming Analytics
43. Patrones de arquitecturas “Serverless”
Microservicios
Backend de aplicaciones móviles
Procesamiento de datos
Sitios Web
APIs
Analíticos en tiempo real
Procesamiento de multimedia
52. 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
ProductivitySpend more time thinking about innovating the business logic that makes your application unique, and your applications are easier to operate and maintain.
AgilityAWS Step Functions records a history of each execution, so you can review in one place, all the events in sequence, in one location. Scale instantly from one execution to hundreds of thousands of concurrent executions, especially when used with other serverless AWS resources such as AWS Lambda, Amazon S3, and Amazon DynamoDB. With AWS Step Functions, you pay only for what you use, when you use it.
ResilienceAWS Step Functions supports automatic error handling for graceful exits, and operates at scale without you needing to configure or manage its underlying resources.