SlideShare a Scribd company logo
Application
Server-less Web Apps
www.seed.run
SEED is a fully-managed
CI/CD for Serverless.
Frank Jay
💎
@fanjiewang @jayair
www.seed.run
serverless-stack.com
Serverless Stack is an open source guide for
building full-stack production ready
Serverless applications on AWS.
★ 1.2K 30K 👤 7K ✉
Application Server-less Web Applications - Serverless Toronto Meetup
🧐
3-Tier Architecture
🖥
CLIENT APP SERVER DB SERVER
Provides an API
Handles requests
Handles file uploads
Authenticates users
Secures the application
Runs scheduled jobs & tasks
APP SERVER
The App Server
does everything…
Everything except
storing data 😮
🖥
CLIENT APP SERVER
DB SERVER
S3 UPLOADS
SEARCH
App Server is the
“gatekeeper”
⚡
Serverless Architecture
🖥
SPA
COGNITO
DYNAMO
S3 UPLOADS
ELASTIC
🔑
IAM
🔐
LAMBDA
SERVERLESS
⚡
Client coordinates services
Fully-managed architecture
Glued together with Lambda
Use a separate auth provider
Secure all services with IAM
Services auto-scale to traffic
SERVERLESS
⚡
1. User authenticates client side
2. Make signed requests to a service
3. Service checks if user has access
4. Service responds over HTTPS
🔥
Code
Project files
handler.js
serverless.yml
package.json
serverless.yml
service: posts
provider:
name: aws
runtime: nodejs8.10
iamRoleStatements:
- Effect: Allow
Action:
- dynamodb:PutItem
Resource: “arn:aws:dynamodb:us-east-1:*:*"
functions:
create:
handler: handler.create
- http:
path: posts/create
method: post
cors: true
authorizer: aws_iam
handler.js
module.create = function(evt, context, callback) {
// Federated user id
const userId = evt.requestContext.identity.cognitoIdentityId;
. . .
await dynamoDbLib.call("put", params);
callback(null, success(params.Item));
};
S3 Uploads
<CORSConfiguration>
<CORSRule>
<AllowedOrigin>*</AllowedOrigin>
<AllowedMethod>GET</AllowedMethod>
<AllowedMethod>PUT</AllowedMethod>
<AllowedMethod>POST</AllowedMethod>
<AllowedMethod>HEAD</AllowedMethod>
<AllowedMethod>DELETE</AllowedMethod>
<MaxAgeSeconds>3000</MaxAgeSeconds>
<AllowedHeader>*</AllowedHeader>
</CORSRule>
</CORSConfiguration>
COGNITO
🔑
1. Create a User Pool
2. Configure user attributes
3. Create an app client
4. Done!
🔐
AWS IAM
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [ "s3:*" ],
"Resource": [
"arn:aws:s3:::S3_BUCKET/${cognito-identity.amazonaws.com:sub}/*"
]
},
{
"Effect": "Allow",
"Action": [ "execute-api:Invoke" ],
"Resource": [
"arn:aws:execute-api:us-east-1:*:API_GATEWAY_ID/*"
]
}
]
}
AWS Amplify
h"ps://aws-amplify.github.io/amplify-js/
Amplify.configure({
Auth: {
region: COGNITO_REGION,
userPoolId: COGNITO_USER_POOL,
identityPoolId: COGNITO_IDENTITY_POOL,
userPoolWebClientId: COGNITO_APP_CLIENT
},
Storage: {
region: S3_REGION,
bucket: S3_BUCKET
},
API: {
endpoints: [{
name: "posts",
endpoint: API_GATEWAY_URL,
region: API_GATEWAY_REGION
}]
}
});
Sign in a User
import { Auth } from “aws-amplify”;
. . .
// Sign up
await Auth.signUp({ username, password });
await Auth.confirmSignUp(username, confirmationCode);
. . .
// Login
await Auth.signIn(username, password);
Upload a File
import { Storage } from “aws-amplify";
. . .
await Storage.vault.put(
filename,
file,
{ contentType }
);
Call an API
import { API } from "aws-amplify";
. . .
await API.post("posts", "/posts", {
body: post
});
Static Hosting
HOSTING
1. Create a public S3 bucket
2. Link to a CloudFront distribution
3. Attach a domain on Route 53
4. Add SSL with Certificate Manager
$ npm run build
$ aws s3 sync build/ s3://S3_HOSTING_BUCKET
🎉
Recap
PARTY
Massively scalable web app
Fully-managed architecture
Extremely low-cost to run
And no application servers!
🎉
🙌
Closing
Learn to build Serverless apps
Serverless-Stack.com
Fully-managed Serverless CI/CD
SEED.run
Frank Jay
💎
@fanjiewang @jayair
Questions?

More Related Content

PDF
Screencast dave dev-introtoask-andecho-july2015
PDF
Creating Rich Server API’s for your Mobile Apps - Best Practices and Guidelines
PDF
Amazon API Gateway
PPTX
AWS API Gateway
PPTX
Amazon API Gateway
PDF
AWSSummitDevSecOpsCodeContestReport
PPTX
Going serverless
PPTX
2016 - Serverless Microservices on AWS with API Gateway and Lambda
Screencast dave dev-introtoask-andecho-july2015
Creating Rich Server API’s for your Mobile Apps - Best Practices and Guidelines
Amazon API Gateway
AWS API Gateway
Amazon API Gateway
AWSSummitDevSecOpsCodeContestReport
Going serverless
2016 - Serverless Microservices on AWS with API Gateway and Lambda

What's hot (9)

PDF
Amazon API Gateway and AWS Lambda: Better Together
PDF
AWS Serverless Workshop
PDF
Build a Server-less Event-driven Backend with AWS Lambda and Amazon API Gateway
PDF
Ember CLI & Ember Tooling
PDF
Serverless Applications on AWS
PPT
Mobile Interface to CMS Based On HTML5 and Drupal: A Case Study
PDF
Microservice Architecture on AWS using AWS Lambda and Docker Containers
PPTX
Azure Web Apps - Introduction
PDF
Exposing Salesforce REST Services Using Swagger
Amazon API Gateway and AWS Lambda: Better Together
AWS Serverless Workshop
Build a Server-less Event-driven Backend with AWS Lambda and Amazon API Gateway
Ember CLI & Ember Tooling
Serverless Applications on AWS
Mobile Interface to CMS Based On HTML5 and Drupal: A Case Study
Microservice Architecture on AWS using AWS Lambda and Docker Containers
Azure Web Apps - Introduction
Exposing Salesforce REST Services Using Swagger
Ad

Similar to Application Server-less Web Applications - Serverless Toronto Meetup (20)

PDF
Como construir suas aplicações escaláveis sem servidores
PDF
Websites go Serverless - AWS Summit Berlin
PDF
Going Serverless
PDF
Serverless use cases with AWS Lambda - More Serverless Event
PDF
Serverless meetup
PDF
Building event driven serverless apps by Danilo Poccia at Codemotion Dubai
PDF
Voxxed Athens 2018 - Serverless by Design
PDF
2022 Presentation | Serverless Innovation with AWS
PDF
PyConIE 2017 Writing and deploying serverless python applications
PDF
Jumpstart your idea with AWS Serverless [Oct 2020]
PDF
Building Event-Driven Serverless Applications - AWS - Danilo Poccia
PDF
20200520 - Como empezar a desarrollar aplicaciones serverless
PPTX
Serverless solution architecture in AWS
PPTX
Serverless meetup Auckland #6
PPTX
Serverless beyond AWS Lambda
PDF
Build a mobile app serverless with AWS Lambda
PPTX
Serverless APIs and you
PDF
Super lazy side projects - Hamik Mukelyan
PPTX
Serverless Architecture
PDF
AWS Application Service Workshop - Serverless Architecture
Como construir suas aplicações escaláveis sem servidores
Websites go Serverless - AWS Summit Berlin
Going Serverless
Serverless use cases with AWS Lambda - More Serverless Event
Serverless meetup
Building event driven serverless apps by Danilo Poccia at Codemotion Dubai
Voxxed Athens 2018 - Serverless by Design
2022 Presentation | Serverless Innovation with AWS
PyConIE 2017 Writing and deploying serverless python applications
Jumpstart your idea with AWS Serverless [Oct 2020]
Building Event-Driven Serverless Applications - AWS - Danilo Poccia
20200520 - Como empezar a desarrollar aplicaciones serverless
Serverless solution architecture in AWS
Serverless meetup Auckland #6
Serverless beyond AWS Lambda
Build a mobile app serverless with AWS Lambda
Serverless APIs and you
Super lazy side projects - Hamik Mukelyan
Serverless Architecture
AWS Application Service Workshop - Serverless Architecture
Ad

More from Daniel Zivkovic (20)

PDF
'The Art & Science of LLM Reliability - Building Trustworthy AI Systems' by M...
PDF
AI - Your Startup Sidekick (Leveraging AI to Bootstrap a Lean Startup).pdf
PDF
All in AI: LLM Landscape & RAG in 2024 with Mark Ryan (Google) & Jerry Liu (L...
PDF
Canadian Experts Discuss Modern Data Stacks and Cloud Computing for 5 Years o...
PDF
Opinionated re:Invent recap with AWS Heroes & Builders
PDF
Google Cloud Next '22 Recap: Serverless & Data edition
PDF
Conversational Document Processing AI with Rui Costa
PDF
How to build unified Batch & Streaming Pipelines with Apache Beam and Dataflow
PDF
Gojko's 5 rules for super responsive Serverless applications
PDF
Retail Analytics and BI with Looker, BigQuery, GCP & Leigha Jarett
PDF
What's new in Serverless at AWS?
PDF
Intro to Vertex AI, unified MLOps platform for Data Scientists & ML Engineers
PDF
Empowering Developers to be Healthcare Heroes
PDF
Get started with Dialogflow & Contact Center AI on Google Cloud
PDF
Building a Data Cloud to enable Analytics & AI-Driven Innovation - Lak Lakshm...
PDF
Smart Cities of Italy: Integrating the Cyber World with the IoT
PDF
Running Business Analytics for a Serverless Insurance Company - Joe Emison & ...
PDF
This is my Architecture to prevent Cloud Bill Shock
PDF
Lunch & Learn BigQuery & Firebase from other Google Cloud customers
PDF
Azure for AWS & GCP Pros: Which Azure services to use?
'The Art & Science of LLM Reliability - Building Trustworthy AI Systems' by M...
AI - Your Startup Sidekick (Leveraging AI to Bootstrap a Lean Startup).pdf
All in AI: LLM Landscape & RAG in 2024 with Mark Ryan (Google) & Jerry Liu (L...
Canadian Experts Discuss Modern Data Stacks and Cloud Computing for 5 Years o...
Opinionated re:Invent recap with AWS Heroes & Builders
Google Cloud Next '22 Recap: Serverless & Data edition
Conversational Document Processing AI with Rui Costa
How to build unified Batch & Streaming Pipelines with Apache Beam and Dataflow
Gojko's 5 rules for super responsive Serverless applications
Retail Analytics and BI with Looker, BigQuery, GCP & Leigha Jarett
What's new in Serverless at AWS?
Intro to Vertex AI, unified MLOps platform for Data Scientists & ML Engineers
Empowering Developers to be Healthcare Heroes
Get started with Dialogflow & Contact Center AI on Google Cloud
Building a Data Cloud to enable Analytics & AI-Driven Innovation - Lak Lakshm...
Smart Cities of Italy: Integrating the Cyber World with the IoT
Running Business Analytics for a Serverless Insurance Company - Joe Emison & ...
This is my Architecture to prevent Cloud Bill Shock
Lunch & Learn BigQuery & Firebase from other Google Cloud customers
Azure for AWS & GCP Pros: Which Azure services to use?

Recently uploaded (20)

PPTX
EPIDURAL ANESTHESIA ANATOMY AND PHYSIOLOGY.pptx
PDF
Phytochemical Investigation of Miliusa longipes.pdf
PPTX
neck nodes and dissection types and lymph nodes levels
PPTX
Fluid dynamics vivavoce presentation of prakash
PPTX
C1 cut-Methane and it's Derivatives.pptx
PDF
Formation of Supersonic Turbulence in the Primordial Star-forming Cloud
PPTX
Microbiology with diagram medical studies .pptx
PPTX
famous lake in india and its disturibution and importance
PDF
The scientific heritage No 166 (166) (2025)
PPT
POSITIONING IN OPERATION THEATRE ROOM.ppt
PPTX
POULTRY PRODUCTION AND MANAGEMENTNNN.pptx
PPTX
7. General Toxicologyfor clinical phrmacy.pptx
PPTX
2. Earth - The Living Planet Module 2ELS
PPTX
2. Earth - The Living Planet earth and life
PPTX
Taita Taveta Laboratory Technician Workshop Presentation.pptx
PDF
Lymphatic System MCQs & Practice Quiz – Functions, Organs, Nodes, Ducts
PPTX
Overview of calcium in human muscles.pptx
PDF
ELS_Q1_Module-11_Formation-of-Rock-Layers_v2.pdf
PDF
Warm, water-depleted rocky exoplanets with surfaceionic liquids: A proposed c...
PDF
lecture 2026 of Sjogren's syndrome l .pdf
EPIDURAL ANESTHESIA ANATOMY AND PHYSIOLOGY.pptx
Phytochemical Investigation of Miliusa longipes.pdf
neck nodes and dissection types and lymph nodes levels
Fluid dynamics vivavoce presentation of prakash
C1 cut-Methane and it's Derivatives.pptx
Formation of Supersonic Turbulence in the Primordial Star-forming Cloud
Microbiology with diagram medical studies .pptx
famous lake in india and its disturibution and importance
The scientific heritage No 166 (166) (2025)
POSITIONING IN OPERATION THEATRE ROOM.ppt
POULTRY PRODUCTION AND MANAGEMENTNNN.pptx
7. General Toxicologyfor clinical phrmacy.pptx
2. Earth - The Living Planet Module 2ELS
2. Earth - The Living Planet earth and life
Taita Taveta Laboratory Technician Workshop Presentation.pptx
Lymphatic System MCQs & Practice Quiz – Functions, Organs, Nodes, Ducts
Overview of calcium in human muscles.pptx
ELS_Q1_Module-11_Formation-of-Rock-Layers_v2.pdf
Warm, water-depleted rocky exoplanets with surfaceionic liquids: A proposed c...
lecture 2026 of Sjogren's syndrome l .pdf

Application Server-less Web Applications - Serverless Toronto Meetup