SlideShare a Scribd company logo
© 2020, Amazon Web Services, Inc. or its Affiliates.
Marcia Villalba
Developer Advocate AWS
@mavi888uy
Como empezar a desarrollar
aplicaciones serverless?
© 2020, Amazon Web Services, Inc. or its Affiliates.
About me
AWS Developer Advocate
Coding for more than 15 years
Host of FooBar YouTube Channel
https://youtube.com/foobar_codes
© 2020, Amazon Web Services, Inc. or its Affiliates.© 2020, Amazon Web Services, Inc. or its Affiliates.
© 2020, Amazon Web Services, Inc. or its Affiliates.
Serverless
© 2020, Amazon Web Services, Inc. or its Affiliates.
Levelofabstraction
Focus on business logic
Physical machines Requires “guess” planning
Lives for years on-premises
Heavy investments (CAPEX)
Low innovation factor
Deploy in months
Computing evolution: A paradigm shift
© 2020, Amazon Web Services, Inc. or its Affiliates.
Levelofabstraction
Focus on business logic
Virtual machines
Hardware independence
Faster provisioning speed (minutes/hours)
Trade CAPEX for OPEX
More scale
Elastic resources
Faster speed and agility
Reduced maintenance
Computing evolution: A paradigm shift
© 2020, Amazon Web Services, Inc. or its Affiliates.
Levelofabstraction
Focus on business logic
Containerization
Platform independence
Consistent runtime environment
Higher resource utilization
Easier and faster deployments
Isolation and sandboxing
Start speed (deploy in seconds)
Computing evolution: A paradigm shift
© 2020, Amazon Web Services, Inc. or its Affiliates.
AWS Lambda
AWS Fargate
Levelofabstraction
Focus on business logic
Continuous scaling
Fault tolerance built in
Event-driven
Pay for value
Zero maintenance
Serverless
Computing evolution: A paradigm shift
© 2020, Amazon Web Services, Inc. or its Affiliates.
What it means that something is serverless?
No managing infrastructure High availability built in
Pay for what you useScales automagically
© 2020, Amazon Web Services, Inc. or its Affiliates.
Function as a Service (FaaS)
“AWS Lambda lets you run code without
provisioning or managing servers. ...
…Just upload your code and Lambda takes care
of everything required to run and scale your code
with high availability.
You can set up your code to automatically
trigger from other AWS services or call it directly
from any web or mobile app”
AWS – Lambda definition
AWS
Lambda
© 2020, Amazon Web Services, Inc. or its Affiliates.
© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.
How AWS Lambda works?
Event source Function Services
Node.js
Python
Java
C#
Go
Custom runtimes
Changes in
data state
Requests to
endpoints
Changes in
resource state
Amazon S3
DynamoDB
Amazon
SQS
© 2020, Amazon Web Services, Inc. or its Affiliates.
Comparison of operational responsibility
AWS Lambda
Serverless functions
AWS Fargate
Serverless containers
ECS/EKS
Container-management as a service
EC2
Infrastructure-as-a-Service
More opinionated
Less opinionated
AWS manages Customer manages
• Data source integrations
• Physical hardware, software, networking,
and facilities
• Provisioning
• Application code
• Container orchestration, provisioning
• Cluster scaling
• Physical hardware, host OS/kernel,
networking, and facilities
• Application code
• Data source integrations
• Security config and updates, network config,
management tasks
• Container orchestration control plane
• Physical hardware software,
networking, and facilities
• Application code
• Data source integrations
• Work clusters
• Security config and updates, network config,
firewall, management tasks
• Physical hardware software,
networking, and facilities
• Application code
• Data source integrations
• Scaling
• Security config and updates, network config,
management tasks
• Provisioning, managing scaling and
patching of servers
© 2020, Amazon Web Services, Inc. or its Affiliates.
Managed services
Amazon S3
Amazon SQS
DynamoDB
© 2020, Amazon Web Services, Inc. or its Affiliates.
AWS most common buildings blocks for serverless
applications
Compute Storage Databases
API management Messaging Analytics
Orchestration Monitoring User Management
API Gateway
AWS Lambda
AppSync
Step functions Event Brigde
Amazon S3
Amazon SNS Amazon SQS
CloudWatch
DynamoDB
Amazon Kinesis Amazon Athena
Amazon Cognito
© 2020, Amazon Web Services, Inc. or its Affiliates.
Let’s build something
© 2020, Amazon Web Services, Inc. or its Affiliates.
The simplest serverless example
Amazon API Gateway AWS Lambda Amazon DynamoDB
Client
© 2020, Amazon Web Services, Inc. or its Affiliates.
API Gateway
- Helps to create, maintain, monitor
and secure APIs at scale.
- REST APIs
- WebSockets APIs
Amazon API Gateway
© 2020, Amazon Web Services, Inc. or its Affiliates.
DynamoDB
- Dynamo is a key-value database
service
- Fully managed
- Super performant – 20 million
request per second
Amazon
DynamoDB
© 2020, Amazon Web Services, Inc. or its Affiliates.
Demo
© 2020, Amazon Web Services, Inc. or its Affiliates.
Get the code
https://github.com/mavi888/first-serverless-app
© 2020, Amazon Web Services, Inc. or its Affiliates.
AWS Amplify
© 2020, Amazon Web Services, Inc. or its Affiliates.
AWS Amplify recap
Broad support for the most popular OS
platforms and frameworks
Developer tools for building, testing,
deploying, and hosting the entire app –
frontend and backend
The Amplify Framework, an open-source
client framework, includes libraries, a CLI
toolchain, and UI components
The CLI toolchain enables easy integration with
AWS services, such as Amazon Cognito, AWS
AppSync, and Amazon Pinpoint
© 2020, Amazon Web Services, Inc. or its Affiliates.
Amplify – A Set of Open-Source Libraries
© 2020, Amazon Web Services, Inc. or its Affiliates.
Amplify Framework review
• Open source
• Among the top 5 fastest growing projects on GitHub
• Opinionated
• Best practices built-in
• Infrastructure as code
• Categories-based high-level abstractions
© 2020, Amazon Web Services, Inc. or its Affiliates.
Amplify Framework review: Categories
Analytics
Track user sessions, custom
user attributes, and in-app
metrics
API
HTTP requests using REST
and GraphQL with support
for real-time data
Auth
AuthN + AuthZ library with
prebuilt UI components for
your app
DataStore
On-device persistent storage
that automatically
synchronizes data between
your apps and the cloud
Interactions
Conversational bots
powered by deep learning
technologies
PubSub
Connect your app to
message-oriented
middleware on the cloud
Notifications
Push notifications with
campaign analytics and
targeting
XR
Work with augmented
reality and virtual reality
content in your apps
Predictions
Add AI/ML capabilities to
your app, powered by cloud
services
Storage
Securely manage user
content in public, protected,
and private storage
© 2020, Amazon Web Services, Inc. or its Affiliates.
Amplify Framework review: Categories
Analytics
Track user sessions, custom
user attributes, and in-app
metrics
API
HTTP requests using REST
and GraphQL with support
for real-time data
Auth
AuthN + AuthZ library with
prebuilt UI components for
your app
DataStore
On-device persistent storage
that automatically
synchronizes data between
your apps and the cloud
Interactions
Conversational bots
powered by deep learning
technologies
PubSub
Connect your app to
message-oriented
middleware on the cloud
Notifications
Push notifications with
campaign analytics and
targeting
XR
Work with augmented
reality and virtual reality
content in your apps
Predictions
Add AI/ML capabilities to
your app, powered by cloud
services
Storage
Securely manage user
content in public, protected,
and private storage
© 2020, Amazon Web Services, Inc. or its Affiliates.
Amplify Framework review: CLI
© 2020, Amazon Web Services, Inc. or its Affiliates.
Amplify Framework recap: Libraries
© 2020, Amazon Web Services, Inc. or its Affiliates.
Let’s get building
© 2020, Amazon Web Services, Inc. or its Affiliates.
Let’s enrich a React web app
© 2020, Amazon Web Services, Inc. or its Affiliates.
© 2020, Amazon Web Services, Inc. or its Affiliates.
Get the code
https://github.com/mavi888/demo-amplify-base
© 2020, Amazon Web Services, Inc. or its Affiliates.
© 2020, Amazon Web Services, Inc. or its Affiliates.
© 2020, Amazon Web Services, Inc. or its Affiliates.
© 2020, Amazon Web Services, Inc. or its Affiliates.
Initialise amplify
$ amplify init
© 2020, Amazon Web Services, Inc. or its Affiliates.
© 2020, Amazon Web Services, Inc. or its Affiliates.
© 2020, Amazon Web Services, Inc. or its Affiliates.
#1 add
authentication
© 2020, Amazon Web Services, Inc. or its Affiliates.
Provision the service
$ amplify add auth
© 2020, Amazon Web Services, Inc. or its Affiliates.© 2020, Amazon Web Services, Inc. or its Affiliates.
© 2020, Amazon Web Services, Inc. or its Affiliates.
Provision the service
$ amplify push
© 2020, Amazon Web Services, Inc. or its Affiliates.© 2020, Amazon Web Services, Inc. or its Affiliates.
© 2020, Amazon Web Services, Inc. or its Affiliates.
$ amplify add auth & amplify push
AWS Cloud
Clients
AWS Cognito User Pool
Accounts
Multi Factor
Authentication
Signup & Signin
© 2020, Amazon Web Services, Inc. or its Affiliates.
Hosted UI & Federated Authentication
AWS Cloud
Clients
AWS Cognito User Pool
Accounts
Multi Factor
Authentication
Signup & Signin
© 2020, Amazon Web Services, Inc. or its Affiliates.© 2020, Amazon Web Services, Inc. or its Affiliates.
© 2020, Amazon Web Services, Inc. or its Affiliates.© 2020, Amazon Web Services, Inc. or its Affiliates.
© 2020, Amazon Web Services, Inc. or its Affiliates.
#2 add an API
© 2020, Amazon Web Services, Inc. or its Affiliates.
/posts /comments /authors
REST API
posts comments authors
GraphQL API
What is GraphQL?
© 2020, Amazon Web Services, Inc. or its Affiliates.
Queries MutationsTypes
Subscriptions
GraphQL schema and operations
type User {
id: ID!
username: String!
firstName: String
lastName: String
daysActive: Int
}
A query language for APIs . . . and a runtime!
© 2020, Amazon Web Services, Inc. or its Affiliates.
A query language for APIs . . .
Queries
query GetPost {
getPost(id: ”1”) {
id
title
}
}
mutation CreatePost {
createPost(title: “Summit”) {
id
title
}
}
subscription OnCreatePost {
onCreatePost {
id
title
}
}
Mutations Subscriptions
© 2020, Amazon Web Services, Inc. or its Affiliates.
© 2020, Amazon Web Services, Inc. or its Affiliates.
Provision the API
$ amplify add api
© 2020, Amazon Web Services, Inc. or its Affiliates.© 2020, Amazon Web Services, Inc. or its Affiliates.
© 2020, Amazon Web Services, Inc. or its Affiliates.
Provision the API
$ amplify push
© 2020, Amazon Web Services, Inc. or its Affiliates.© 2020, Amazon Web Services, Inc. or its Affiliates.
© 2020, Amazon Web Services, Inc. or its Affiliates.
GraphQL Transform: Mix and match data sources
type Post {
id: ID!
content: String
description: String
ups: Int
downs: Int
}
© 2020, Amazon Web Services, Inc. or its Affiliates.
GraphQL Transform: Mix and match data sources
type Post
@model {
id: ID!
content: String
description: String
ups: Int
downs: Int
}
createPost
readPost
updatePost
deletePost
list
© 2020, Amazon Web Services, Inc. or its Affiliates.
GraphQL Transform: Mix and match data sources
type Post
@model {
id: ID!
content: String
description: String
ups: Int
downs: Int
}
createPost
readPost
updatePost
deletePost
list
Mutations
Queries
© 2020, Amazon Web Services, Inc. or its Affiliates.
GraphQL Transform: Mix and match data sources
Mutations
Queries
type Post
@model
@auth(rules: [{allow: owner}]){
id: ID!
content: String
description: String
ups: Int
downs: Int
}
createPost
readPost
updatePost
deletePost
list
© 2020, Amazon Web Services, Inc. or its Affiliates.© 2020, Amazon Web Services, Inc. or its Affiliates.
© 2020, Amazon Web Services, Inc. or its Affiliates.© 2020, Amazon Web Services, Inc. or its Affiliates.
© 2020, Amazon Web Services, Inc. or its Affiliates.
#3 deploy the app
© 2020, Amazon Web Services, Inc. or its Affiliates.
Amplify console: Full-stack deployments
$ amplify console
© 2020, Amazon Web Services, Inc. or its Affiliates.© 2020, Amazon Web Services, Inc. or its Affiliates.
© 2020, Amazon Web Services, Inc. or its Affiliates.© 2020, Amazon Web Services, Inc. or its Affiliates.
© 2020, Amazon Web Services, Inc. or its Affiliates.
Get the code
https://github.com/mavi888/demo-amplify-base
© 2020, Amazon Web Services, Inc. or its Affiliates.
Para resumir
- Qué es serverless?
- Aplicación de backend serverless
- Página estática que usa componentes serverless
- https://github.com/mavi888/first-serverless-app
- Desarrollo de una aplicación con frontend y backend en la nube totalmente
serverless
- https://github.com/mavi888/demo-amplify-base
Más información: YouTube: https://youtube.com/foobar_codes
© 2020, Amazon Web Services, Inc. or its Affiliates.
Preguntas!
Marcia Villalba
Developer Advocate AWS
Twitter: @mavi888uy
YouTube: https://youtube.com/foobar_codes

More Related Content

PDF
AWS Meetup Brussels 3rd Sep 2019 Simplify Frontend Apps with Serverless Backends
PDF
AWS DevDay Berlin 2019 - Simplify your Web & Mobile apps with cloud-based ser...
PDF
What can you do with Serverless in 2020
PDF
20200803 - Serverless with AWS @ HELTECH
PPTX
Serverless APIs and you
PDF
Modern Applications Development on AWS
PDF
No Hassle NoSQL - Amazon DynamoDB & Amazon DocumentDB | AWS Summit Tel Aviv ...
PDF
All the Ops you need to know to Dev Serverless
AWS Meetup Brussels 3rd Sep 2019 Simplify Frontend Apps with Serverless Backends
AWS DevDay Berlin 2019 - Simplify your Web & Mobile apps with cloud-based ser...
What can you do with Serverless in 2020
20200803 - Serverless with AWS @ HELTECH
Serverless APIs and you
Modern Applications Development on AWS
No Hassle NoSQL - Amazon DynamoDB & Amazon DocumentDB | AWS Summit Tel Aviv ...
All the Ops you need to know to Dev Serverless

Similar to 20200520 - Como empezar a desarrollar aplicaciones serverless (20)

PDF
Serverless applications with AWS
PDF
Simplify your Web & Mobile applications with cloud-based serverless backends
PDF
Modern Applications Web Day | Impress Your Friends with Your First Serverless...
PDF
Getting Started with Serverless Architectures
PDF
Wildrydes Serverless Workshop Tel Aviv
PDF
Introducing to serverless computing and AWS lambda - Israel Clouds Meetup
PDF
GraphQL backend with AWS AppSync & AWS Lambda
PDF
"Integrate your front end apps with serverless backend in the cloud", Sebasti...
POTX
Serverless: State of The Union I AWS Dev Day 2018
PPTX
MongoDB World 2018: Tutorial - How to Build Applications with MongoDB Atlas &...
PDF
Building Serverless Microservices with AWS
PDF
Serverless use cases with AWS Lambda - More Serverless Event
PDF
Introduction to Serverless Computing - OOP Munich
PDF
Introduction to Serverless Computing and AWS Lambda - AWS IL Meetup
PDF
Serverless meetup
PDF
Getting started building your first serverless web application on AWS
PDF
Building serverless backends - Tech talk 5 May 2017
PDF
Stephen Liedig: Building Serverless Backends with AWS Lambda and API Gateway
PDF
"Fast Start to Building on AWS", Igor Ivaniuk
PDF
Getting Started with AWS Lambda & Serverless Cloud
Serverless applications with AWS
Simplify your Web & Mobile applications with cloud-based serverless backends
Modern Applications Web Day | Impress Your Friends with Your First Serverless...
Getting Started with Serverless Architectures
Wildrydes Serverless Workshop Tel Aviv
Introducing to serverless computing and AWS lambda - Israel Clouds Meetup
GraphQL backend with AWS AppSync & AWS Lambda
"Integrate your front end apps with serverless backend in the cloud", Sebasti...
Serverless: State of The Union I AWS Dev Day 2018
MongoDB World 2018: Tutorial - How to Build Applications with MongoDB Atlas &...
Building Serverless Microservices with AWS
Serverless use cases with AWS Lambda - More Serverless Event
Introduction to Serverless Computing - OOP Munich
Introduction to Serverless Computing and AWS Lambda - AWS IL Meetup
Serverless meetup
Getting started building your first serverless web application on AWS
Building serverless backends - Tech talk 5 May 2017
Stephen Liedig: Building Serverless Backends with AWS Lambda and API Gateway
"Fast Start to Building on AWS", Igor Ivaniuk
Getting Started with AWS Lambda & Serverless Cloud
Ad

More from Marcia Villalba (17)

PPTX
20210608 - Desarrollo de aplicaciones en la nube
PDF
20201012 - Serverless Architecture Conference - Deploying serverless applicat...
PDF
20201013 - Serverless Architecture Conference - How to migrate your existing ...
PPTX
Building a personal brand
PDF
20200522 - How to migrate an existing app to serverless
PDF
20200513 - CloudComputing UCU
PDF
20200513 Getting started with AWS Amplify
PDF
2020-04-02 DevConf - How to migrate an existing application to serverless
PDF
JFokus 2020 - How to migrate an application to serverless
PDF
Serverless <3 GraphQL - AWS UG Tampere 2020
PDF
ReInvent 2019 reCap Nordics
PDF
Serverless Days Milano - Developing Serverless applications with GraphQL
PDF
AWS Stockholm Summit 19- Building serverless applications with GraphQL
PDF
Serverless <3 GraphQL | 2019 - Serverless Architecture Conference
PDF
Serverless Computing London 2018 - Migrating services to serverless in 10 steps
PDF
Octubre 2018 - AWS UG Montevideo - Intro a Serverless y buenas practicas
PDF
Serverless Empowering people
20210608 - Desarrollo de aplicaciones en la nube
20201012 - Serverless Architecture Conference - Deploying serverless applicat...
20201013 - Serverless Architecture Conference - How to migrate your existing ...
Building a personal brand
20200522 - How to migrate an existing app to serverless
20200513 - CloudComputing UCU
20200513 Getting started with AWS Amplify
2020-04-02 DevConf - How to migrate an existing application to serverless
JFokus 2020 - How to migrate an application to serverless
Serverless <3 GraphQL - AWS UG Tampere 2020
ReInvent 2019 reCap Nordics
Serverless Days Milano - Developing Serverless applications with GraphQL
AWS Stockholm Summit 19- Building serverless applications with GraphQL
Serverless <3 GraphQL | 2019 - Serverless Architecture Conference
Serverless Computing London 2018 - Migrating services to serverless in 10 steps
Octubre 2018 - AWS UG Montevideo - Intro a Serverless y buenas practicas
Serverless Empowering people
Ad

Recently uploaded (20)

PPTX
Lecture Notes Electrical Wiring System Components
PPT
Project quality management in manufacturing
PDF
Structs to JSON How Go Powers REST APIs.pdf
PPTX
IOT PPTs Week 10 Lecture Material.pptx of NPTEL Smart Cities contd
PPTX
Lesson 3_Tessellation.pptx finite Mathematics
PDF
Well-logging-methods_new................
PPTX
Foundation to blockchain - A guide to Blockchain Tech
PPTX
M Tech Sem 1 Civil Engineering Environmental Sciences.pptx
PPTX
bas. eng. economics group 4 presentation 1.pptx
DOCX
ASol_English-Language-Literature-Set-1-27-02-2023-converted.docx
PDF
Evaluating the Democratization of the Turkish Armed Forces from a Normative P...
PDF
BMEC211 - INTRODUCTION TO MECHATRONICS-1.pdf
PPT
Mechanical Engineering MATERIALS Selection
PPTX
MET 305 2019 SCHEME MODULE 2 COMPLETE.pptx
PPTX
Sustainable Sites - Green Building Construction
PDF
July 2025 - Top 10 Read Articles in International Journal of Software Enginee...
PDF
Operating System & Kernel Study Guide-1 - converted.pdf
PDF
Digital Logic Computer Design lecture notes
PPTX
Fluid Mechanics, Module 3: Basics of Fluid Mechanics
PPTX
CARTOGRAPHY AND GEOINFORMATION VISUALIZATION chapter1 NPTE (2).pptx
Lecture Notes Electrical Wiring System Components
Project quality management in manufacturing
Structs to JSON How Go Powers REST APIs.pdf
IOT PPTs Week 10 Lecture Material.pptx of NPTEL Smart Cities contd
Lesson 3_Tessellation.pptx finite Mathematics
Well-logging-methods_new................
Foundation to blockchain - A guide to Blockchain Tech
M Tech Sem 1 Civil Engineering Environmental Sciences.pptx
bas. eng. economics group 4 presentation 1.pptx
ASol_English-Language-Literature-Set-1-27-02-2023-converted.docx
Evaluating the Democratization of the Turkish Armed Forces from a Normative P...
BMEC211 - INTRODUCTION TO MECHATRONICS-1.pdf
Mechanical Engineering MATERIALS Selection
MET 305 2019 SCHEME MODULE 2 COMPLETE.pptx
Sustainable Sites - Green Building Construction
July 2025 - Top 10 Read Articles in International Journal of Software Enginee...
Operating System & Kernel Study Guide-1 - converted.pdf
Digital Logic Computer Design lecture notes
Fluid Mechanics, Module 3: Basics of Fluid Mechanics
CARTOGRAPHY AND GEOINFORMATION VISUALIZATION chapter1 NPTE (2).pptx

20200520 - Como empezar a desarrollar aplicaciones serverless

  • 1. © 2020, Amazon Web Services, Inc. or its Affiliates. Marcia Villalba Developer Advocate AWS @mavi888uy Como empezar a desarrollar aplicaciones serverless?
  • 2. © 2020, Amazon Web Services, Inc. or its Affiliates. About me AWS Developer Advocate Coding for more than 15 years Host of FooBar YouTube Channel https://youtube.com/foobar_codes
  • 3. © 2020, Amazon Web Services, Inc. or its Affiliates.© 2020, Amazon Web Services, Inc. or its Affiliates.
  • 4. © 2020, Amazon Web Services, Inc. or its Affiliates. Serverless
  • 5. © 2020, Amazon Web Services, Inc. or its Affiliates. Levelofabstraction Focus on business logic Physical machines Requires “guess” planning Lives for years on-premises Heavy investments (CAPEX) Low innovation factor Deploy in months Computing evolution: A paradigm shift
  • 6. © 2020, Amazon Web Services, Inc. or its Affiliates. Levelofabstraction Focus on business logic Virtual machines Hardware independence Faster provisioning speed (minutes/hours) Trade CAPEX for OPEX More scale Elastic resources Faster speed and agility Reduced maintenance Computing evolution: A paradigm shift
  • 7. © 2020, Amazon Web Services, Inc. or its Affiliates. Levelofabstraction Focus on business logic Containerization Platform independence Consistent runtime environment Higher resource utilization Easier and faster deployments Isolation and sandboxing Start speed (deploy in seconds) Computing evolution: A paradigm shift
  • 8. © 2020, Amazon Web Services, Inc. or its Affiliates. AWS Lambda AWS Fargate Levelofabstraction Focus on business logic Continuous scaling Fault tolerance built in Event-driven Pay for value Zero maintenance Serverless Computing evolution: A paradigm shift
  • 9. © 2020, Amazon Web Services, Inc. or its Affiliates. What it means that something is serverless? No managing infrastructure High availability built in Pay for what you useScales automagically
  • 10. © 2020, Amazon Web Services, Inc. or its Affiliates. Function as a Service (FaaS) “AWS Lambda lets you run code without provisioning or managing servers. ... …Just upload your code and Lambda takes care of everything required to run and scale your code with high availability. You can set up your code to automatically trigger from other AWS services or call it directly from any web or mobile app” AWS – Lambda definition AWS Lambda
  • 11. © 2020, Amazon Web Services, Inc. or its Affiliates. © 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved. How AWS Lambda works? Event source Function Services Node.js Python Java C# Go Custom runtimes Changes in data state Requests to endpoints Changes in resource state Amazon S3 DynamoDB Amazon SQS
  • 12. © 2020, Amazon Web Services, Inc. or its Affiliates. Comparison of operational responsibility AWS Lambda Serverless functions AWS Fargate Serverless containers ECS/EKS Container-management as a service EC2 Infrastructure-as-a-Service More opinionated Less opinionated AWS manages Customer manages • Data source integrations • Physical hardware, software, networking, and facilities • Provisioning • Application code • Container orchestration, provisioning • Cluster scaling • Physical hardware, host OS/kernel, networking, and facilities • Application code • Data source integrations • Security config and updates, network config, management tasks • Container orchestration control plane • Physical hardware software, networking, and facilities • Application code • Data source integrations • Work clusters • Security config and updates, network config, firewall, management tasks • Physical hardware software, networking, and facilities • Application code • Data source integrations • Scaling • Security config and updates, network config, management tasks • Provisioning, managing scaling and patching of servers
  • 13. © 2020, Amazon Web Services, Inc. or its Affiliates. Managed services Amazon S3 Amazon SQS DynamoDB
  • 14. © 2020, Amazon Web Services, Inc. or its Affiliates. AWS most common buildings blocks for serverless applications Compute Storage Databases API management Messaging Analytics Orchestration Monitoring User Management API Gateway AWS Lambda AppSync Step functions Event Brigde Amazon S3 Amazon SNS Amazon SQS CloudWatch DynamoDB Amazon Kinesis Amazon Athena Amazon Cognito
  • 15. © 2020, Amazon Web Services, Inc. or its Affiliates. Let’s build something
  • 16. © 2020, Amazon Web Services, Inc. or its Affiliates. The simplest serverless example Amazon API Gateway AWS Lambda Amazon DynamoDB Client
  • 17. © 2020, Amazon Web Services, Inc. or its Affiliates. API Gateway - Helps to create, maintain, monitor and secure APIs at scale. - REST APIs - WebSockets APIs Amazon API Gateway
  • 18. © 2020, Amazon Web Services, Inc. or its Affiliates. DynamoDB - Dynamo is a key-value database service - Fully managed - Super performant – 20 million request per second Amazon DynamoDB
  • 19. © 2020, Amazon Web Services, Inc. or its Affiliates. Demo
  • 20. © 2020, Amazon Web Services, Inc. or its Affiliates. Get the code https://github.com/mavi888/first-serverless-app
  • 21. © 2020, Amazon Web Services, Inc. or its Affiliates. AWS Amplify
  • 22. © 2020, Amazon Web Services, Inc. or its Affiliates. AWS Amplify recap Broad support for the most popular OS platforms and frameworks Developer tools for building, testing, deploying, and hosting the entire app – frontend and backend The Amplify Framework, an open-source client framework, includes libraries, a CLI toolchain, and UI components The CLI toolchain enables easy integration with AWS services, such as Amazon Cognito, AWS AppSync, and Amazon Pinpoint
  • 23. © 2020, Amazon Web Services, Inc. or its Affiliates. Amplify – A Set of Open-Source Libraries
  • 24. © 2020, Amazon Web Services, Inc. or its Affiliates. Amplify Framework review • Open source • Among the top 5 fastest growing projects on GitHub • Opinionated • Best practices built-in • Infrastructure as code • Categories-based high-level abstractions
  • 25. © 2020, Amazon Web Services, Inc. or its Affiliates. Amplify Framework review: Categories Analytics Track user sessions, custom user attributes, and in-app metrics API HTTP requests using REST and GraphQL with support for real-time data Auth AuthN + AuthZ library with prebuilt UI components for your app DataStore On-device persistent storage that automatically synchronizes data between your apps and the cloud Interactions Conversational bots powered by deep learning technologies PubSub Connect your app to message-oriented middleware on the cloud Notifications Push notifications with campaign analytics and targeting XR Work with augmented reality and virtual reality content in your apps Predictions Add AI/ML capabilities to your app, powered by cloud services Storage Securely manage user content in public, protected, and private storage
  • 26. © 2020, Amazon Web Services, Inc. or its Affiliates. Amplify Framework review: Categories Analytics Track user sessions, custom user attributes, and in-app metrics API HTTP requests using REST and GraphQL with support for real-time data Auth AuthN + AuthZ library with prebuilt UI components for your app DataStore On-device persistent storage that automatically synchronizes data between your apps and the cloud Interactions Conversational bots powered by deep learning technologies PubSub Connect your app to message-oriented middleware on the cloud Notifications Push notifications with campaign analytics and targeting XR Work with augmented reality and virtual reality content in your apps Predictions Add AI/ML capabilities to your app, powered by cloud services Storage Securely manage user content in public, protected, and private storage
  • 27. © 2020, Amazon Web Services, Inc. or its Affiliates. Amplify Framework review: CLI
  • 28. © 2020, Amazon Web Services, Inc. or its Affiliates. Amplify Framework recap: Libraries
  • 29. © 2020, Amazon Web Services, Inc. or its Affiliates. Let’s get building
  • 30. © 2020, Amazon Web Services, Inc. or its Affiliates. Let’s enrich a React web app
  • 31. © 2020, Amazon Web Services, Inc. or its Affiliates.
  • 32. © 2020, Amazon Web Services, Inc. or its Affiliates. Get the code https://github.com/mavi888/demo-amplify-base
  • 33. © 2020, Amazon Web Services, Inc. or its Affiliates.
  • 34. © 2020, Amazon Web Services, Inc. or its Affiliates.
  • 35. © 2020, Amazon Web Services, Inc. or its Affiliates.
  • 36. © 2020, Amazon Web Services, Inc. or its Affiliates. Initialise amplify $ amplify init
  • 37. © 2020, Amazon Web Services, Inc. or its Affiliates.
  • 38. © 2020, Amazon Web Services, Inc. or its Affiliates.
  • 39. © 2020, Amazon Web Services, Inc. or its Affiliates. #1 add authentication
  • 40. © 2020, Amazon Web Services, Inc. or its Affiliates. Provision the service $ amplify add auth
  • 41. © 2020, Amazon Web Services, Inc. or its Affiliates.© 2020, Amazon Web Services, Inc. or its Affiliates.
  • 42. © 2020, Amazon Web Services, Inc. or its Affiliates. Provision the service $ amplify push
  • 43. © 2020, Amazon Web Services, Inc. or its Affiliates.© 2020, Amazon Web Services, Inc. or its Affiliates.
  • 44. © 2020, Amazon Web Services, Inc. or its Affiliates. $ amplify add auth & amplify push AWS Cloud Clients AWS Cognito User Pool Accounts Multi Factor Authentication Signup & Signin
  • 45. © 2020, Amazon Web Services, Inc. or its Affiliates. Hosted UI & Federated Authentication AWS Cloud Clients AWS Cognito User Pool Accounts Multi Factor Authentication Signup & Signin
  • 46. © 2020, Amazon Web Services, Inc. or its Affiliates.© 2020, Amazon Web Services, Inc. or its Affiliates.
  • 47. © 2020, Amazon Web Services, Inc. or its Affiliates.© 2020, Amazon Web Services, Inc. or its Affiliates.
  • 48. © 2020, Amazon Web Services, Inc. or its Affiliates. #2 add an API
  • 49. © 2020, Amazon Web Services, Inc. or its Affiliates. /posts /comments /authors REST API posts comments authors GraphQL API What is GraphQL?
  • 50. © 2020, Amazon Web Services, Inc. or its Affiliates. Queries MutationsTypes Subscriptions GraphQL schema and operations type User { id: ID! username: String! firstName: String lastName: String daysActive: Int } A query language for APIs . . . and a runtime!
  • 51. © 2020, Amazon Web Services, Inc. or its Affiliates. A query language for APIs . . . Queries query GetPost { getPost(id: ”1”) { id title } } mutation CreatePost { createPost(title: “Summit”) { id title } } subscription OnCreatePost { onCreatePost { id title } } Mutations Subscriptions
  • 52. © 2020, Amazon Web Services, Inc. or its Affiliates.
  • 53. © 2020, Amazon Web Services, Inc. or its Affiliates. Provision the API $ amplify add api
  • 54. © 2020, Amazon Web Services, Inc. or its Affiliates.© 2020, Amazon Web Services, Inc. or its Affiliates.
  • 55. © 2020, Amazon Web Services, Inc. or its Affiliates. Provision the API $ amplify push
  • 56. © 2020, Amazon Web Services, Inc. or its Affiliates.© 2020, Amazon Web Services, Inc. or its Affiliates.
  • 57. © 2020, Amazon Web Services, Inc. or its Affiliates. GraphQL Transform: Mix and match data sources type Post { id: ID! content: String description: String ups: Int downs: Int }
  • 58. © 2020, Amazon Web Services, Inc. or its Affiliates. GraphQL Transform: Mix and match data sources type Post @model { id: ID! content: String description: String ups: Int downs: Int } createPost readPost updatePost deletePost list
  • 59. © 2020, Amazon Web Services, Inc. or its Affiliates. GraphQL Transform: Mix and match data sources type Post @model { id: ID! content: String description: String ups: Int downs: Int } createPost readPost updatePost deletePost list Mutations Queries
  • 60. © 2020, Amazon Web Services, Inc. or its Affiliates. GraphQL Transform: Mix and match data sources Mutations Queries type Post @model @auth(rules: [{allow: owner}]){ id: ID! content: String description: String ups: Int downs: Int } createPost readPost updatePost deletePost list
  • 61. © 2020, Amazon Web Services, Inc. or its Affiliates.© 2020, Amazon Web Services, Inc. or its Affiliates.
  • 62. © 2020, Amazon Web Services, Inc. or its Affiliates.© 2020, Amazon Web Services, Inc. or its Affiliates.
  • 63. © 2020, Amazon Web Services, Inc. or its Affiliates. #3 deploy the app
  • 64. © 2020, Amazon Web Services, Inc. or its Affiliates. Amplify console: Full-stack deployments $ amplify console
  • 65. © 2020, Amazon Web Services, Inc. or its Affiliates.© 2020, Amazon Web Services, Inc. or its Affiliates.
  • 66. © 2020, Amazon Web Services, Inc. or its Affiliates.© 2020, Amazon Web Services, Inc. or its Affiliates.
  • 67. © 2020, Amazon Web Services, Inc. or its Affiliates. Get the code https://github.com/mavi888/demo-amplify-base
  • 68. © 2020, Amazon Web Services, Inc. or its Affiliates. Para resumir - Qué es serverless? - Aplicación de backend serverless - Página estática que usa componentes serverless - https://github.com/mavi888/first-serverless-app - Desarrollo de una aplicación con frontend y backend en la nube totalmente serverless - https://github.com/mavi888/demo-amplify-base Más información: YouTube: https://youtube.com/foobar_codes
  • 69. © 2020, Amazon Web Services, Inc. or its Affiliates. Preguntas! Marcia Villalba Developer Advocate AWS Twitter: @mavi888uy YouTube: https://youtube.com/foobar_codes