Slide 1

Slide 1 text

© 2024, UGConf “The Cloud Conference”, UGPerú Cloud y sus afiliadas. Todos los derechos reservados .

Slide 2

Slide 2 text

© 2024, UGConf “The Cloud Conference”, UGPerú Cloud y sus afiliadas. Todos los derechos reservados . Serverless: Mejores prácticas para desarrolladores Lino Espinoza (he/him) AWS Community Builder @Serverless

Slide 3

Slide 3 text

© 2024, UGConf “The Cloud Conference”, UGPerú Cloud y sus afiliadas. Todos los derechos reservados . Agenda • Serverless • Service-full serverless • Functions • From prototype to prod

Slide 4

Slide 4 text

© 2024, UGConf “The Cloud Conference”, UGPerú Cloud y sus afiliadas. Todos los derechos reservados . Serverless

Slide 5

Slide 5 text

© 2024, UGConf “The Cloud Conference”, UGPerú Cloud y sus afiliadas. Todos los derechos reservados . Los inicios de “Serverless” 2006 Lanzamiento de Amazon S3 Lanzamiento de AWS SQS 2008 Amazon EC2 en producción 2014 AWS Lambda preview 2015 AWS Lambda – Generally Available

Slide 6

Slide 6 text

© 2024, UGConf “The Cloud Conference”, UGPerú Cloud y sus afiliadas. Todos los derechos reservados . Desarrollo de software en la nube en estos días Requiere cierta experiencia en la nube • Desarrollo para servicios distribuídos • Administrar fallos a larga escala (resilience) • Manejo de errores (error handling) • Administrar una alta disponibilidad (availability) • Administrar un rendimiento óptimo (performance) • Administrar una larga flota de capacidades de cómputo efímeras y almacenamiento • Conectividad en redes y permisos (networking & roles/policies)

Slide 7

Slide 7 text

© 2024, UGConf “The Cloud Conference”, UGPerú Cloud y sus afiliadas. Todos los derechos reservados . Well-Architected Framework orientado a Serverless Disponibilidad Utilización de recursos Escalabilidad Seguridad Rendimiento

Slide 8

Slide 8 text

© 2024, UGConf “The Cloud Conference”, UGPerú Cloud y sus afiliadas. Todos los derechos reservados . Evolucionando el uso de soluciones en la nube Componentes de infraestructura • Balanceadores • Tipos de instancias (EC2) • Componentes de red • Almacenamiento en disco • Reglas de firewall Aplicaciones • Bases de datos • Funciones • Colas / Streams • Servicios administrados • Flujos de trabajo (workflows) • Eventos

Slide 9

Slide 9 text

© 2024, UGConf “The Cloud Conference”, UGPerú Cloud y sus afiliadas. Todos los derechos reservados . Serverless como un: Pensamiento estratégico Un forma, una práctica, una cultura, una forma de trabajar Foco Entrega de valor al negocio en vez de un solo ser un habilitador tecnológico

Slide 10

Slide 10 text

© 2024, UGConf “The Cloud Conference”, UGPerú Cloud y sus afiliadas. Todos los derechos reservados . Serverless como un: Modelo de operación Sin la administración de capacidades complejas de infraestructura Construye en la nube, no solo dentro de la nube

Slide 11

Slide 11 text

© 2024, UGConf “The Cloud Conference”, UGPerú Cloud y sus afiliadas. Todos los derechos reservados . Service-full serverless

Slide 12

Slide 12 text

© 2024, UGConf “The Cloud Conference”, UGPerú Cloud y sus afiliadas. Todos los derechos reservados . Una aplicación serverless AWS Lambda

Slide 13

Slide 13 text

© 2024, UGConf “The Cloud Conference”, UGPerú Cloud y sus afiliadas. Todos los derechos reservados . Una aplicación serverless Node.js Python Java .NET Go Ruby Rust PowerShell Runtime API Function

Slide 14

Slide 14 text

© 2024, UGConf “The Cloud Conference”, UGPerú Cloud y sus afiliadas. Todos los derechos reservados . Una aplicación serverless Node.js Python Java .NET Go Ruby Rust PowerShell Runtime API Function Event source Cambios en el estado de la data Solicitudes hacia endpoints Cambios en el estado de un recurso

Slide 15

Slide 15 text

© 2024, UGConf “The Cloud Conference”, UGPerú Cloud y sus afiliadas. Todos los derechos reservados . Una aplicación serverless Node.js Python Java .NET Go Ruby Rust PowerShell Runtime API Function Event source Cambios en el estado de la data Solicitudes hacia endpoints Cambios en el estado de un recurso Services

Slide 16

Slide 16 text

© 2024, UGConf “The Cloud Conference”, UGPerú Cloud y sus afiliadas. Todos los derechos reservados . Una aplicación serverless Event source Cambios en el estado de la data Solicitudes hacia endpoints Cambios en el estado de un recurso Services

Slide 17

Slide 17 text

© 2024, UGConf “The Cloud Conference”, UGPerú Cloud y sus afiliadas. Todos los derechos reservados . Es una función lambda siempre necesaria? Usa una función lambda para transformar, no transportar

Slide 18

Slide 18 text

© 2024, UGConf “The Cloud Conference”, UGPerú Cloud y sus afiliadas. Todos los derechos reservados . Que tanta Están colocando dentro del código de tu función lambda

Slide 19

Slide 19 text

© 2024, UGConf “The Cloud Conference”, UGPerú Cloud y sus afiliadas. Todos los derechos reservados . Que tan poca Están colocando dentro de tu código

Slide 20

Slide 20 text

© 2024, UGConf “The Cloud Conference”, UGPerú Cloud y sus afiliadas. Todos los derechos reservados . App Tradicional Auth Caching logic Throttling logic Routing Storage Backend Error handling Retry logic Frontend

Slide 21

Slide 21 text

© 2024, UGConf “The Cloud Conference”, UGPerú Cloud y sus afiliadas. Todos los derechos reservados . App Tradicional Auth Caching logic Throttling logic Routing Backend Error handling Retry logic Frontend Storage

Slide 22

Slide 22 text

© 2024, UGConf “The Cloud Conference”, UGPerú Cloud y sus afiliadas. Todos los derechos reservados . App Tradicional Auth Caching log Backend Storage Frontend Throttling logic Routing Error handling Retry logic

Slide 23

Slide 23 text

© 2024, UGConf “The Cloud Conference”, UGPerú Cloud y sus afiliadas. Todos los derechos reservados . Funciones modulares y con un solo propósito

Slide 24

Slide 24 text

© 2024, UGConf “The Cloud Conference”, UGPerú Cloud y sus afiliadas. Todos los derechos reservados .

Slide 25

Slide 25 text

© 2024, UGConf “The Cloud Conference”, UGPerú Cloud y sus afiliadas. Todos los derechos reservados . What should my function contain? /getuser /getusers /getproduct /getproducts /createuser /updateuser /createproduct /updateproduct /deleteuser /deleteproduct Agrupar funciones por: • Contexto (bound contexts) • Organización del equipo • Grupo de permisos IAM • Dependencias comunes en el downstream • Tiempo en el que deben inicializarse • Configuración de memoria

Slide 26

Slide 26 text

© 2024, UGConf “The Cloud Conference”, UGPerú Cloud y sus afiliadas. Todos los derechos reservados . Orquestación / coreografía

Slide 27

Slide 27 text

© 2024, UGConf “The Cloud Conference”, UGPerú Cloud y sus afiliadas. Todos los derechos reservados . Orquestación / coreografía Orquestación Coreografía AWS Step Functions AWS EventBridge

Slide 28

Slide 28 text

© 2024, UGConf “The Cloud Conference”, UGPerú Cloud y sus afiliadas. Todos los derechos reservados . Integraciones usando el SDK de Step Functions

Slide 29

Slide 29 text

© 2024, UGConf “The Cloud Conference”, UGPerú Cloud y sus afiliadas. Todos los derechos reservados . Amazon API Gateway: Integraciones directas

Slide 30

Slide 30 text

© 2024, UGConf “The Cloud Conference”, UGPerú Cloud y sus afiliadas. Todos los derechos reservados . Functions

Slide 31

Slide 31 text

© 2024, UGConf “The Cloud Conference”, UGPerú Cloud y sus afiliadas. Todos los derechos reservados . ¿Qué es AWS Lambda? • Provee tu código o imagen • Paga por milisegundo • Empaqueta como un .zip file (250 MB) o como un container image (10 GB) • Soporta lenguajes como (Java, Go, Node.js, .NET, Python, Ruby) • Sin aprovisionamiento o administración de servidores • Escalamiento en milisegundos en respuesta al tráfico ES LA FORMA MÁS RÁPIDA DE CONSTRUIR APLICACIONES MODERNAS CON EL MÁS BAJO COSTO DE OPORTUNIDAD

Slide 32

Slide 32 text

© 2024, UGConf “The Cloud Conference”, UGPerú Cloud y sus afiliadas. Todos los derechos reservados . ¿Qué es AWS Lambda? ES LA FORMA MÁS RÁPIDA DE CONSTRUIR APLICACIONES MODERNAS CON EL MÁS BAJO COSTO DE OPORTUNIDAD • Función a ejecutarse después de la invocación • Contiene la información enviada durante la invocación de la lambda Event (object) • Metadata para obtener información del runtime (requestId, authorizers, log group, etc) Handler Context (object)

Slide 33

Slide 33 text

© 2024, UGConf “The Cloud Conference”, UGPerú Cloud y sus afiliadas. Todos los derechos reservados . Ciclo de vida de una function lambda

Slide 34

Slide 34 text

© 2024, UGConf “The Cloud Conference”, UGPerú Cloud y sus afiliadas. Todos los derechos reservados . Tipos de invocación de una función lambda SÍNCRONA, ASÍNCRONA Y BASADA EN EVENTOS

Slide 35

Slide 35 text

© 2024, UGConf “The Cloud Conference”, UGPerú Cloud y sus afiliadas. Todos los derechos reservados . Habilitar AWS X-Ray en tus funciones lambda const AWSXRay = require('aws-xray-sdk-core’); const AWS = AWSXRay.captureAWS(require('aws-sdk')); // Capture all outgoing https requests AWSXRay.captureHTTPsGlobal(require('https')); const https = require('https'); Habilitar Xray para obtener información del rendimiento actual de las lambdas

Slide 36

Slide 36 text

© 2024, UGConf “The Cloud Conference”, UGPerú Cloud y sus afiliadas. Todos los derechos reservados . AWS Xray Trace de ejemplo

Slide 37

Slide 37 text

© 2024, UGConf “The Cloud Conference”, UGPerú Cloud y sus afiliadas. Todos los derechos reservados . AWS Lambda con Cpu Graviton 2 https://aws.amazon.com/blogs/aws/aws-lambda-functions-powered-by-aws-graviton2-processor-run-your-functions- on-arm-and-get-up-to-34-better-price-performance/

Slide 38

Slide 38 text

© 2024, UGConf “The Cloud Conference”, UGPerú Cloud y sus afiliadas. Todos los derechos reservados . https://aws.amazon.com/blogs/aws/aws-lambda-functions-powered-by-aws-graviton2-processor-run-your-functions- on-arm-and-get-up-to-34-better-price-performance/ AWS Lambda Provisioned Concurrency Concurrency: Es el número de requests que tu función puede manejar al mismo tiempo Reserved Concurrency: Es el máximo número de instancias concurrentes que quieres habilitar para tu función lambda. Esto no incurre en costos. Provisioned Concurrency: Es el número de entornos de ejecución pre- inicializadas que quieres habilitar para tu función lambda. Si incurre en costos.

Slide 39

Slide 39 text

© 2024, UGConf “The Cloud Conference”, UGPerú Cloud y sus afiliadas. Todos los derechos reservados . AWS Compute Optimizer

Slide 40

Slide 40 text

© 2024, UGConf “The Cloud Conference”, UGPerú Cloud y sus afiliadas. Todos los derechos reservados . Desde el prototipo a producción

Slide 41

Slide 41 text

© 2024, UGConf “The Cloud Conference”, UGPerú Cloud y sus afiliadas. Todos los derechos reservados . Infraestructure as Code (IAC)

Slide 42

Slide 42 text

© 2024, UGConf “The Cloud Conference”, UGPerú Cloud y sus afiliadas. Todos los derechos reservados . AWS Application Composer

Slide 43

Slide 43 text

© 2024, UGConf “The Cloud Conference”, UGPerú Cloud y sus afiliadas. Todos los derechos reservados . Serverless patterns

Slide 44

Slide 44 text

© 2024, UGConf “The Cloud Conference”, UGPerú Cloud y sus afiliadas. Todos los derechos reservados . Unit testing

Slide 45

Slide 45 text

© 2024, UGConf “The Cloud Conference”, UGPerú Cloud y sus afiliadas. Todos los derechos reservados .

Slide 46

Slide 46 text

© 2024, UGConf “The Cloud Conference”, UGPerú Cloud y sus afiliadas. Todos los derechos reservados .

Slide 47

Slide 47 text

© 2024, UGConf “The Cloud Conference”, UGPerú Cloud y sus afiliadas. Todos los derechos reservados . Gracias por asistir! Conectemos por Linked In Lino Espinoza AWS Community Builder @Serverless