SlideShare ist ein Scribd-Unternehmen logo
1 von 103
Downloaden Sie, um offline zu lesen
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Serverless Applications with
AWS
Javier Ramirez
@supercoco9
AWS Technical Evangelist
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Development transformation at Amazon:
1994-2001 2002+
Monolithic architecture +
hierarchical organization
Decoupled services +
Two-pizza teams
Two-pizza team responsibility Venn diagram
Responsible for
THEIR
PRODUCT
Deployment tools
CI/CD tools
Monitoring tools
Metrics tool
Logging tools
APM tools
Infrastructure
provisioning tools
Security tools
Database management
tools
Testing tools
….
Not responsible for
*
*Unless their product belongs in the blue
Two-pizza team responsibility Venn diagram
Responsible for Not responsible for
*
NOT
THEIR
PRODUCT
*Unless their product belongs in the blue
Application development
Infrastructure management
Application configuration
Pipeline configuration
Alarms
Runbooks
Testing
Compliance
Roadmap tracking
Goals tracking
On-call
Support escalation
….
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Determining the right balance
The more time spent on operational tasks, the
less time spent on development tasks
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Two-pizza team responsibility Venn diagram
Responsible for
THEIR
PRODUCT
Not responsible for
NOT
THEIR
PRODUCT
Can we shift more from a
team’s responsibility to the
platform/shared services?
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark
7
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
AWS operational responsibility models
On-Premises Cloud
Less More
Compute Virtual Machine
EC2 Elastic Beanstalk AWS LambdaFargate
Databases MySQL MySQL on EC2
RDS MySQL RDS Aurora Aurora Serverless DynamoDB
Storage Storage
S3
Messaging ESBs
Amazon MQ Kinesis SQS / SNS
Analytics
Hadoop Hadoop on EC2 EMR Elasticsearch Service Athena
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Serverless means …
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Serverless means …
No servers to provision
or manage
Scales with usage
Never pay for idle Availability and fault
tolerance built in
No server is easier to manage than "no
server.”
Werner Vogels—Amazon CTO
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Serverless means:
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Serverless means:
Greater agility
Less overhead
Better focus
Increased scale
More flexibility
Faster time to market
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark
13
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
AWS
Lambda
AWS
Fargate
Amazon
API Gateway
Amazon
SNS
Amazon
SQS
AWS
Step Functions
COMPUTE
DATA STORES
INTEGRATION
Amazon Aurora
Serverless
Amazon
S3
Amazon
DynamoDB
AWS
AppSync
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Event-driven compute
Functions as a service
Serverless FaaS
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Serverless applications
Services (anything)
Changes in
data state
Requests to
endpoints
Changes in
resource state
Event source Function
Node.js
Python
Java
C#
Go
Ruby
BYOR (Bring your own runtime)NEW!
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
AWS Lambda runtime API and layers
Features that allow developers to share, discover, and deploy both libraries
and languages as part of their serverless applications
Runtime API enables
developers to use
Lambda with any
programming language.
Layers let functions
easily share code.
Upload layer once,
reference within any
function.
Layers promote
separation of
responsibilities, lets
developers focus on
writing business logic.
Combined, runtime API
and layers allow
developers to share any
programming language
or language version with
others
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Anatomy of a Lambda function
Handler() function
Function to be executed
upon invocation
Event object
Data sent during
Lambda function
Invocation
Context object
Methods available to
interact with runtime
information (request ID,
log group, more)
public String handleRequest(Book book, Context context) {
saveBook(book);
return book.getName() + " saved!";
}
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Fine-grained pricing
Buy compute time in 100ms
increments
Low request charge
No hourly, daily, or monthly
minimums
No per-device fees
Never pay for idle
Free Tier
1M requests and 400,000 GBs of compute.
Every month, every customer.
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
AWS Lambda release history
LambdaPreview
Announcement
re:Invent2014
2015 2016 2017 2018
?
*As of October 2018, does not include region launches
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Common Lambda use cases
Web
applications
• Static
websites
• Complex web
apps
• Packages for
Flask and
Express
Data
processing
• Real time
• MapReduce
• Batch
Chatbots
• Powering
chatbot logic
Backends
• Apps &
services
• Mobile
• IoT
</></>
Amazon
Alexa
• Powering
voice-enabled
apps
• Alexa Skills
Kit
IT
Automation
• Policy engines
• Extending
AWS services
• Infrastructure
management
© 2019 Amazon Web Services, Inc. or its affiliates. All rights reserved.
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark
23
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Changes to the architectural patterns
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark
24
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
When the impact of change is small,
release velocity can increase
Monolith
Does everything
Microservices
Does one thing
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark
25
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
MICROSERVICE
API
API
MICROSERVICE
MICROSERVICE
EVENT
API
MICROSERVICE
EVENT
API
MICROSERVICE
APPLICATION
Mobile client
Client
IoT
PERSISTENCE PERSISTENCE
Microservices architectures
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark
26
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Event-driven architectures
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark
27
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Decouple state from code using messaging
Queues
Simple
Fully-managed
Any volume
Pub/sub
Simple
Fully-managed
Flexible
Amazon Simple
Queue Service
Amazon Simple
Notification
Service
Messaging
Synchronization
Rapid
Fully-managed
Real-time
Amazon
CloudWatch
Events
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark
28
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
And data streams
Ingest
Data streams
Data processing
Real-time
Data Store
Microservices
Performance at
scale
Fast and Flexible
Amazon Kinesis
Data Streams
Amazon
Dynamo DB
Data Stream Capture
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark
29
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
APIs are the front door of microservices
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Amazon API Gateway
Create a unified
API frontend for
multiple micro-
services
Authenticate and
authorize
requests to a
backend
DDoS protection
and throttling for
your backend
Throttle, meter,
and monetize API
usage by third-
party developers
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
API Gateway
Internet
Mobile apps
Websites
Services
AWS Lambda
functions
AWS
API Gateway
Cache
Endpoints on
Amazon EC2
Amazon
CloudWatch
monitoring
Amazon
CloudFront
Any other
AWS service
YOUR VPC
Endpoints in
Your VPC
Regional API endpoints
All publicly
accessible endpoints
AWS Lambda
functions
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
API Gateway WebSockets
Invoke AWS services
like Lambda, Kinesis, or any
HTTP endpoint based on
message content
Build real-time two-way
communication applications
chat, alerts and notifications,
and streaming dashboards
Fully managed APIs
to handle connections and
messages transfer between
users and backend services
Pay for what you use
based on connection minutes
and messages transferred
Stateful connection Stateless connection
Amazon API Gateway
WebSockets API
Public
endpoints on
Amazon EC2
Lambda
functions
Any other
AWS service
All publicly
accessible
endpoints
Amazon
Kinesis
Mobile apps
Chat
AWS IoT
devices
Dashboards
© 2019 Amazon Web Services, Inc. or its affiliates. All rights reserved.
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
REST API versus GraphQL
GraphQLTraditional data-fetching
/posts
/postInfo
/postJustTitle
/postsByAuthor
/postNameStartsWithX
/commentsOnPost
GraphQL
query {
getPostNameComments {
postID
postName
postAuthor
commentID
commentText
}
}
With a REST-based interface, I
might need to make several calls
sequentially based on responses
from the previous call With GraphQL I can make one call
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
AWS AppSync
Real-time and offline data using GraphQL
Real-time
collaboration
Offline programming
model with sync
Your data sources
Fine-grained
access control
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Serverless web application with API Gateway
API Gateway handles all your
application routing. It can
handle authentication and
authorization, throttling,
DDOS protection, and more.
Amazon S3
API Gateway
Lambda runs all the logic
behind your website and
interfaces with databases,
other backend services, or
anything else your site needs.
AWS Lambda
Amazon Simple Storage
Service (Amazon S3) stores all
of your static content: CSS,
JS, images, and more. You
would typically front this with
a CDN such as CloudFront.
Amazon
CloudFront
Serverless web application with AWS AppSync
AWS AppSync handles all of your
GraphQL query resolution. It can
retrieve data from data sources
such as Amazon DynamoDB,
Amazon Elasticsearch Service,
Lambda, and HTTP endpoints.
Data sources and/or Lambda
provide customer data or
backend logic.
Amazon S3
AWS Lambda
Amazon
CloudFront AWS AppSync
Amazon S3 stores all your
static content: CSS, JS,
images, more. You would
typically front this with a CDN
such as CloudFront.
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark
40
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Track status of data
and execution
Remove
redundant code
Build workflows to orchestrate everything
DBMS
Modern app
Queu
e
Modern app
Coordination by method call
Coordination by function chaining
Coordination by database
Coordination by queues
“I want
try/catch/finally”
“I want to select tasks
based on data”
“I want to retry
failed tasks”
A
B C
A
?
“I want to
sequence tasks”
BA
“I want to run tasks
in parallel”
CBA
Is this you?
Coordination must-haves
• Scales out
• Doesn’t lose state
• Deals with errors/timeouts
• Easy to build & operate
• Auditable
• Keep orchestration out of code
AWS
Step Functions
Application lifecycle in AWS Step Functions
Visualize in the
Console
Define
in JSON
Monitor
Executions
Execute One or One Million
Start
End
HelloWorld
Start
End
HelloWorld
Start
End
HelloWorld
Start
End
HelloWorld
Start
End
HelloWorld
Start
End
HelloWorld
Start
End
HelloWorld
Start
End
HelloWorld
Maximum Execution Time
AWS Lambda
Functions
15 minutes
AWS Step Functions
State Machines
1 year
O
pen
Source
Apache
License
https://states-language.net/spec.html
Seven state types
Task A single unit of work
Choice Adds branching logic
Parallel Fork and join the data across tasks
Wait Delay for a specified time
Fail Stops an execution and marks it as a failure
Succeed Stops an execution successfully
Pass Passes its input to its output
© 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
State Example: Task
@technovangelist
© 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
State Example: Choice
@technovangelist
© 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
State Example: Succeed/Fail
@technovangelist
© 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
State Example: Pass
@technovangelist
© 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
State Example: Wait
@technovangelist
© 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
State Example: Parallel
@technovangelist
Task states for any compute
Long poll
Traditional server
Request or
Callback
Worker requests
tasks from Step
Functions
Step Functions
invokes the Task
Supported Service Integrations
Service Integration Patterns
Request Response
Call a service and let Step Functions progress to the next state
immediately after it gets an HTTP response.
"Send message to SNS": {
"Type":"Task",
"Resource":"arn:aws:states:::sns:publish",
"Parameters":{
"TopicArn":"arn:aws:sns:us-east-1:123456789012:myTopic",
"Message":"Hello from Step Functions!"
},
"Next":"NEXT_STATE"
}
Service Integration Patterns
Run a Job (.sync)
Call a service and have Step Functions wait for a job to complete.
"Manage Batch task": {
"Type": "Task",
"Resource": "arn:aws:states:::batch:submitJob.sync",
"Parameters": {
"JobDefinition": "arn:aws:batch:us-east-2:123456789012:job-definition/testJobDefinition",
"JobName": "testJob",
"JobQueue": "arn:aws:batch:us-east-2:123456789012:job-queue/testQueue"
},
"Next": "NEXT_STATE"
}
Service Integration Patterns
Wait for a Callback (.waitForTaskToken)
Call a service with a task token and have Step Functions wait until that
token is returned along with a payload.
"Send message to SQS": {
"Type": "Task",
"Resource": "arn:aws:states:::sqs:sendMessage.waitForTaskToken",
"Parameters": {
"QueueUrl": "https://sqs.us-east-2.amazonaws.com/123456789012/myQueue",
"MessageBody": {
"Message": "Hello from Step Functions!",
"TaskToken.$": "$$.Task.Token"
}
},
"Next": "NEXT_STATE"
}
Task Token Example
Configure a Heartbeat Timeout for a Waiting Task
"Send message to SNS": {
"Type":"Task",
"Resource":"arn:aws:states:::sns:publish.waitForTaskToken",
"HeartbeatSeconds": 600,
"Parameters":{
"TopicArn":"arn:aws:sns:us-east-1:123456789012:myTopic",
"Message":"Let me know if everything is ok!"
},
"Next":"NEXT_STATE"
}
Set heartbeat timeout
interval to 10 minutes
Send task heartbeat/success/failure in JavaScript
const stepfunctions = new AWS.StepFunctions();
let data;
data = await stepfunctions.sendTaskHeartbeat({
taskToken: 'TASK_TOKEN'
}).promise();
data = await stepfunctions.sendTaskSuccess({
output: 'YOUR_OUTPUT',
taskToken: 'TASK_TOKEN'
}).promise();
data = await stepfunctions.sendTaskFailure({
error: 'ERROR_CODE’,
cause: 'EXPLANATION’,
taskToken: 'TASK_TOKEN'
}).promise();
Create service object
Send heartbeat
Send success + output
Send failure + error/cause
or
About WHOSAY
• WHOSAY is the largest and most
trusted influence marketer in the
world. Founded in 2010, WHOSAY is
built from the best of entertainment,
technology and advertising. WHOSAY
powers influence marketing
campaigns across all verticals and
utilizes every level of celebrity and
influencer, delivering measurably
superior results to other social and
mobile advertising.
• Step Functions is a part of the
WHOSAY MATCH application for
searching and identifying influencers
that match with brand campaigns
• When a celeb social media
post happens…
• Kick off a scheduled sequence
of analytics runs
Analytics data collection problem
Analytics data collection solution
Takeaways
“We can set it and
forget it, with no
maintenance, and it
is easy to support.
It was very easy to
get going.”
“Step Functions and
Lambda are a perfect
combination for building
event-driven and delayed
applications, even when
tasks need to run longer
than 5 minutes.”
About Thomson Reuters
• Global organization, HQ
in Toronto, 5,000+
employees
• Preparing news video
clips for global
broadcast and online
delivery
• Transcode 350 clips/day into
14 formats, fast
• It’s all done with FFmpeg. The
processing time is just about
100% of the video length
• Aargh!
Video processing problem
• Derive keyframe locations
within the source
• Split the source at the
keyframes
• Process segments (typically
0.5 sec per) in parallel
• Concatenate segments
• Elapsed time: ~20 min down
to ~2 minutes
Video processing solution
About Frame.io
• Frame.io is the world’s leading
workflow management platform for
video teams
• From small production agencies to
major broadcast media companies,
video teams of all sizes rely on
Frame.io to streamline their media
review and collaboration process
• Frame.io uses Step Functions to
process media, transcode to
different formats, create
thumbnails, and much more
1. Sometimes Lambda is best, sometimes ECS
2. Previously, all tied together with
pub/sub and
procedural code
3. Aargh!
Media transcoding problem
1. Use state machines to pick
execution engine
2. Use CloudWatch Events for
messaging and triggering
Step Functions
Media transcoding solution
Let’s peek at the code!
"Encoder Decider": {
"Type": "Choice",
"Default": "Run ECS Encoder",
"Choices": [
{
"Next": "Run Lambda Encoder",
"And": [
{
"Variable": "$.asset.size",
"NumericLessThanEquals": 2000000000
},
{
"Variable": "$.asset.duration_ms",
"NumericLessThanEquals": 10000
}
]
}
]
}
Let’s peek at the code!
"Run ECS Encoder": {
"Type": "Task",
"Resource": "arn:…SubmitECSTask",
"Retry": [
{
"ErrorEquals": [
"NoResourceInCluster"
],
"IntervalSeconds": 5,
"MaxAttempts": 720,
"BackoffRate": 1.0
}
],
"ResultPath": "$.task",
"Next": "Wait X Seconds"
}
"Wait X Seconds": {
"Type": "Wait",
"SecondsPath": "$.task.wait_time",
"Next": "Get ECS Task Status"
},
"Get ECS Task Status": {
"Type": "Task",
"Resource": "arn:…ECSTaskStatus",
"Next": "ECS Task Complete?",
"ResultPath": "$.task.status"
}
Let’s peek at the code!
"ECS Task Complete?": {
"Type": "Choice",
"Choices": [
{
"And": [
{
"Variable": "$.task.status",
"StringEquals": "FAILED"
},
{
"Variable": "$.task.attempt",
"NumericGreaterThanEquals": 3
}
],
"Next": "Fire Failed Event"
},
{
"Variable": "$.task.status",
"StringEquals": "FAILED",
"Next": "Run ECS Encoder"
},
{
"Variable": "$.task.status",
"StringEquals": "SUCCEEDED",
"Next": "Fire Successful Event"
}
],
"Default": "Wait X Seconds"
},
"Fire Successful Event": {
"Type": "Task",
"Resource": "aws:…SendSuccessfulEvent",
"End": true
},
"Fire Failed Event": {
"Type": "Task",
"Resource": "aws:…SendFailedEvent",
"End": true
}
These fire
CloudWatch
Events
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Build PCI and HIPAA compliant serverless applications!
Serverless platform services that can be used in both:
AWS
Lambda
Amazon
S3
Amazon
CloudFront
Amazon
DynamoDB
Amazon
Kinesis
Data
Streams
Amazon
Cognito
Amazon API
Gateway
Amazon
SNS
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Where do you ...
https://secure.flickr.com/photos/stevendepolo/57491920?
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Start with a framework
AWS
Chalice
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
AWS Serverless Application Model (SAM)
AWS CloudFormation extension optimized for
serverless
New serverless resource types: functions, APIs,
and tables
Supports anything AWS CloudFormation supports
Open specification (Apache 2.0)
https://aws.amazon.com/serverless/sam
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
AWS Command Line Interface (AWS CLI)
CLI tool for local development, debugging, testing,
deploying, and monitoring of serverless applications
Supports API Gateway “proxy-style” and Lambda service
API testing
Response object and function logs available on your local
machine
Uses open source docker-lambda images to mimic
Lambda’s execution environment such as timeout, memory
limits, runtimes
Can tail production logs from CloudWatch logs
https://aws.amazon.com/serverless/sam
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Infrastructure as code
✓
Make infrastructure
changes repeatable
and predictable
✓
Release infrastructure
changes using the
same tools as code
changes
✓
Replicate production
environment in a
staging environment
to enable continuous
testing
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Infrastructure as code
Declarative
I tell you
what I need
I tell you
what to do
Imperative
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Infrastructure as code best practices
✓
Infrastructure
and application
in the same
source repository
For example:
AWS CloudFormation
HashiCorp Terraform
✓
Deployments
include
infrastructure
updates
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Infrastructure as code for serverless apps
For example:
AWS Serverless Application Model (SAM)
Serverless Framework
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
SAM template
AWSTemplateFormatVersion: '2010-09-09’
Transform: AWS::Serverless-2016-10-31
Resources:
GetFunction:
Type: AWS::Serverless::Function
Properties:
Handler: index.get
Runtime: nodejs8.10
CodeUri: src/
Policies:
- DynamoDBReadPolicy:
TableName: !Ref MyTable
Events:
GetResource:
Type: Api
Properties:
Path: /resource/{resourceId}
Method: get
MyTable:
Type: AWS::Serverless::SimpleTable
Just 20 lines to create:
• Lambda function
• IAM role
• API Gateway
• DynamoDB table
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
SAM CLI
https://github.com/awslabs/aws-sam-cli
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T
Nested apps to simplify solving recurring problems
Standard
Component
TweetSource:
Type: AWS::Serverless::Application
Properties:
Location:
ApplicationId: arn:aws:serverlessrepo:...
SemanticVersion: 2.0.0
Parameters:
TweetProcessorFunctionName: !Ref MyFunction
SearchText: '#serverless -filter:nativeretweets’
Custom
Business
Logic
© 2019 Amazon Web Services, Inc. or its affiliates. All rights reserved.
https://github.com/danilop/first-step-functions
https://github.com/danilop/first-step-functions
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
© 2019 Amazon Web Services, Inc. or its affiliates. All rights reserved.
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Centrica
Energy & services company: UK,
Ireland, & North America
Focus areas: Energy supply,
services, connected home,
distributed energy & power, energy
marketing, & trading
Over 25MN customer accounts and
£28 BN annual revenue
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
British Gas business—Digital
View
bills
Quote &
buy
Meter
readings
Pay
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Old monolithic architecture
Monolith Highly coupled, server-side architecture
All changes needed comprehensive testing
Infrastructure monitoring, maintenance, &
upgrades
Slow & expensive
Introduction of new components & services
Very difficult
Monthly releases
Cycle time was in months & quarters
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Approach
Proof of
concept
Engage Pilot Expand
Learn and
familiarize
Microservice ported
to Lambda
CloudFormation
Manual deployment
Serverless working
group:
Enterprise
architecture
Security
Networks
Service design &
introduction
Thin & deep slice
Guest meter read
journey
Phased rollout with
failover
Team: one
architect, two
developers, one QA
Amazon Cognito
Agent access
More journeys to
Lambdas
Database—Amazon
Relational Database
Service (Amazon
RDS)
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Benefits
Cost reduction
An order of magnitude reduction in operational cost
Focus
Focus on the core business logic & customer experience without worrying about the
underlying infrastructure
Agility
Short release cycles with cycle time in days & weeks
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
aws.amazon.com/serverless
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Obrigado
Javier Ramirez
@supercoco9
AWS Technical Evangelist

Weitere ähnliche Inhalte

Was ist angesagt?

Microservices on AWS: Architectural Patterns and Best Practices | AWS Summit ...
Microservices on AWS: Architectural Patterns and Best Practices | AWS Summit ...Microservices on AWS: Architectural Patterns and Best Practices | AWS Summit ...
Microservices on AWS: Architectural Patterns and Best Practices | AWS Summit ...AWS Summits
 
Innovating SAP the Easy Way – Migrate it to AWS
Innovating SAP the Easy Way – Migrate it to AWSInnovating SAP the Easy Way – Migrate it to AWS
Innovating SAP the Easy Way – Migrate it to AWSAmazon Web Services
 
Tech Talk: Cloud Data Management with Veeam & AWS
Tech Talk: Cloud Data Management with Veeam & AWSTech Talk: Cloud Data Management with Veeam & AWS
Tech Talk: Cloud Data Management with Veeam & AWSAmazon Web Services
 
AWS Startup Day Kyiv - AI/ML services for developers
AWS Startup Day Kyiv - AI/ML services for developersAWS Startup Day Kyiv - AI/ML services for developers
AWS Startup Day Kyiv - AI/ML services for developersAmazon Web Services
 
Machine Learning for innovation and transformation
Machine Learning for innovation and transformationMachine Learning for innovation and transformation
Machine Learning for innovation and transformationAmazon Web Services
 
Build Intelligent Apps with Amazon ML
Build Intelligent Apps with Amazon ML Build Intelligent Apps with Amazon ML
Build Intelligent Apps with Amazon ML Amazon Web Services
 
雲上打造資料湖 (Data Lake):智能化駕馭商機 (Level 300)
雲上打造資料湖 (Data Lake):智能化駕馭商機 (Level 300)雲上打造資料湖 (Data Lake):智能化駕馭商機 (Level 300)
雲上打造資料湖 (Data Lake):智能化駕馭商機 (Level 300)Amazon Web Services
 
Create an ML Factory in Financial Services with CI CD - FSI301 - New York AWS...
Create an ML Factory in Financial Services with CI CD - FSI301 - New York AWS...Create an ML Factory in Financial Services with CI CD - FSI301 - New York AWS...
Create an ML Factory in Financial Services with CI CD - FSI301 - New York AWS...Amazon Web Services
 
Connecting the dots - How Amazon Neptune and Graph Databases can transform yo...
Connecting the dots - How Amazon Neptune and Graph Databases can transform yo...Connecting the dots - How Amazon Neptune and Graph Databases can transform yo...
Connecting the dots - How Amazon Neptune and Graph Databases can transform yo...Amazon Web Services
 
No Hassle NoSQL - Amazon DynamoDB & Amazon DocumentDB | AWS Summit Tel Aviv ...
 No Hassle NoSQL - Amazon DynamoDB & Amazon DocumentDB | AWS Summit Tel Aviv ... No Hassle NoSQL - Amazon DynamoDB & Amazon DocumentDB | AWS Summit Tel Aviv ...
No Hassle NoSQL - Amazon DynamoDB & Amazon DocumentDB | AWS Summit Tel Aviv ...AWS Summits
 
Developing-Effective-Mass-Migration-Strategy-out-of-a-Tool-based-Portfolio-As...
Developing-Effective-Mass-Migration-Strategy-out-of-a-Tool-based-Portfolio-As...Developing-Effective-Mass-Migration-Strategy-out-of-a-Tool-based-Portfolio-As...
Developing-Effective-Mass-Migration-Strategy-out-of-a-Tool-based-Portfolio-As...Amazon Web Services
 
Reinventing SAP on AWS: Scale & Simplify SAP Operations on AWS
Reinventing SAP on AWS: Scale & Simplify SAP Operations on AWSReinventing SAP on AWS: Scale & Simplify SAP Operations on AWS
Reinventing SAP on AWS: Scale & Simplify SAP Operations on AWSAmazon Web Services
 
BDA304 Build Deep Learning Applications with TensorFlow and Amazon SageMaker
BDA304 Build Deep Learning Applications with TensorFlow and Amazon SageMakerBDA304 Build Deep Learning Applications with TensorFlow and Amazon SageMaker
BDA304 Build Deep Learning Applications with TensorFlow and Amazon SageMakerAmazon Web Services
 
AWS Technical Day Riyadh Nov 2019 [Migration]
AWS Technical Day Riyadh Nov 2019 [Migration]AWS Technical Day Riyadh Nov 2019 [Migration]
AWS Technical Day Riyadh Nov 2019 [Migration]AWS Riyadh User Group
 
Leveraging Data Analytics in the Cloud to Support Data-Driven Decisions
Leveraging Data Analytics in the Cloud to Support Data-Driven DecisionsLeveraging Data Analytics in the Cloud to Support Data-Driven Decisions
Leveraging Data Analytics in the Cloud to Support Data-Driven DecisionsAmazon Web Services
 
Budget management with Cloud Economics | AWS Summit Tel Aviv 2019
Budget management with Cloud Economics | AWS Summit Tel Aviv 2019Budget management with Cloud Economics | AWS Summit Tel Aviv 2019
Budget management with Cloud Economics | AWS Summit Tel Aviv 2019Amazon Web Services
 
Building-Event-Driven-Serverless-Apps-with-AWS-Event-Forkines
Building-Event-Driven-Serverless-Apps-with-AWS-Event-ForkinesBuilding-Event-Driven-Serverless-Apps-with-AWS-Event-Forkines
Building-Event-Driven-Serverless-Apps-with-AWS-Event-ForkinesAmazon Web Services
 
How to go from zero to data lakes in days - ADB202 - New York AWS Summit
How to go from zero to data lakes in days - ADB202 - New York AWS SummitHow to go from zero to data lakes in days - ADB202 - New York AWS Summit
How to go from zero to data lakes in days - ADB202 - New York AWS SummitAmazon Web Services
 

Was ist angesagt? (20)

Microservices on AWS: Architectural Patterns and Best Practices | AWS Summit ...
Microservices on AWS: Architectural Patterns and Best Practices | AWS Summit ...Microservices on AWS: Architectural Patterns and Best Practices | AWS Summit ...
Microservices on AWS: Architectural Patterns and Best Practices | AWS Summit ...
 
Innovating SAP the Easy Way – Migrate it to AWS
Innovating SAP the Easy Way – Migrate it to AWSInnovating SAP the Easy Way – Migrate it to AWS
Innovating SAP the Easy Way – Migrate it to AWS
 
Tech Talk: Cloud Data Management with Veeam & AWS
Tech Talk: Cloud Data Management with Veeam & AWSTech Talk: Cloud Data Management with Veeam & AWS
Tech Talk: Cloud Data Management with Veeam & AWS
 
AWS Startup Day Kyiv - AI/ML services for developers
AWS Startup Day Kyiv - AI/ML services for developersAWS Startup Day Kyiv - AI/ML services for developers
AWS Startup Day Kyiv - AI/ML services for developers
 
Machine Learning for innovation and transformation
Machine Learning for innovation and transformationMachine Learning for innovation and transformation
Machine Learning for innovation and transformation
 
Amazon Container Services
Amazon Container ServicesAmazon Container Services
Amazon Container Services
 
Build Intelligent Apps with Amazon ML
Build Intelligent Apps with Amazon ML Build Intelligent Apps with Amazon ML
Build Intelligent Apps with Amazon ML
 
雲上打造資料湖 (Data Lake):智能化駕馭商機 (Level 300)
雲上打造資料湖 (Data Lake):智能化駕馭商機 (Level 300)雲上打造資料湖 (Data Lake):智能化駕馭商機 (Level 300)
雲上打造資料湖 (Data Lake):智能化駕馭商機 (Level 300)
 
Create an ML Factory in Financial Services with CI CD - FSI301 - New York AWS...
Create an ML Factory in Financial Services with CI CD - FSI301 - New York AWS...Create an ML Factory in Financial Services with CI CD - FSI301 - New York AWS...
Create an ML Factory in Financial Services with CI CD - FSI301 - New York AWS...
 
Connecting the dots - How Amazon Neptune and Graph Databases can transform yo...
Connecting the dots - How Amazon Neptune and Graph Databases can transform yo...Connecting the dots - How Amazon Neptune and Graph Databases can transform yo...
Connecting the dots - How Amazon Neptune and Graph Databases can transform yo...
 
No Hassle NoSQL - Amazon DynamoDB & Amazon DocumentDB | AWS Summit Tel Aviv ...
 No Hassle NoSQL - Amazon DynamoDB & Amazon DocumentDB | AWS Summit Tel Aviv ... No Hassle NoSQL - Amazon DynamoDB & Amazon DocumentDB | AWS Summit Tel Aviv ...
No Hassle NoSQL - Amazon DynamoDB & Amazon DocumentDB | AWS Summit Tel Aviv ...
 
Analysing Data in Real-time
Analysing Data in Real-timeAnalysing Data in Real-time
Analysing Data in Real-time
 
Developing-Effective-Mass-Migration-Strategy-out-of-a-Tool-based-Portfolio-As...
Developing-Effective-Mass-Migration-Strategy-out-of-a-Tool-based-Portfolio-As...Developing-Effective-Mass-Migration-Strategy-out-of-a-Tool-based-Portfolio-As...
Developing-Effective-Mass-Migration-Strategy-out-of-a-Tool-based-Portfolio-As...
 
Reinventing SAP on AWS: Scale & Simplify SAP Operations on AWS
Reinventing SAP on AWS: Scale & Simplify SAP Operations on AWSReinventing SAP on AWS: Scale & Simplify SAP Operations on AWS
Reinventing SAP on AWS: Scale & Simplify SAP Operations on AWS
 
BDA304 Build Deep Learning Applications with TensorFlow and Amazon SageMaker
BDA304 Build Deep Learning Applications with TensorFlow and Amazon SageMakerBDA304 Build Deep Learning Applications with TensorFlow and Amazon SageMaker
BDA304 Build Deep Learning Applications with TensorFlow and Amazon SageMaker
 
AWS Technical Day Riyadh Nov 2019 [Migration]
AWS Technical Day Riyadh Nov 2019 [Migration]AWS Technical Day Riyadh Nov 2019 [Migration]
AWS Technical Day Riyadh Nov 2019 [Migration]
 
Leveraging Data Analytics in the Cloud to Support Data-Driven Decisions
Leveraging Data Analytics in the Cloud to Support Data-Driven DecisionsLeveraging Data Analytics in the Cloud to Support Data-Driven Decisions
Leveraging Data Analytics in the Cloud to Support Data-Driven Decisions
 
Budget management with Cloud Economics | AWS Summit Tel Aviv 2019
Budget management with Cloud Economics | AWS Summit Tel Aviv 2019Budget management with Cloud Economics | AWS Summit Tel Aviv 2019
Budget management with Cloud Economics | AWS Summit Tel Aviv 2019
 
Building-Event-Driven-Serverless-Apps-with-AWS-Event-Forkines
Building-Event-Driven-Serverless-Apps-with-AWS-Event-ForkinesBuilding-Event-Driven-Serverless-Apps-with-AWS-Event-Forkines
Building-Event-Driven-Serverless-Apps-with-AWS-Event-Forkines
 
How to go from zero to data lakes in days - ADB202 - New York AWS Summit
How to go from zero to data lakes in days - ADB202 - New York AWS SummitHow to go from zero to data lakes in days - ADB202 - New York AWS Summit
How to go from zero to data lakes in days - ADB202 - New York AWS Summit
 

Ähnlich wie Serverless applications with AWS

Let Your Business Logic go Serverless | AWS Summit Tel Aviv 2019
 Let Your Business Logic go Serverless | AWS Summit Tel Aviv 2019 Let Your Business Logic go Serverless | AWS Summit Tel Aviv 2019
Let Your Business Logic go Serverless | AWS Summit Tel Aviv 2019AWS Summits
 
Let Your Business Logic go Serverless | AWS Summit Tel Aviv 2019
 Let Your Business Logic go Serverless | AWS Summit Tel Aviv 2019 Let Your Business Logic go Serverless | AWS Summit Tel Aviv 2019
Let Your Business Logic go Serverless | AWS Summit Tel Aviv 2019Amazon Web Services
 
Leadership Session: Using DevOps, Microservices, and Serverless to Accelerate...
Leadership Session: Using DevOps, Microservices, and Serverless to Accelerate...Leadership Session: Using DevOps, Microservices, and Serverless to Accelerate...
Leadership Session: Using DevOps, Microservices, and Serverless to Accelerate...Amazon Web Services
 
The Future of Enterprise Applications is Serverless (ENT314-R1) - AWS re:Inve...
The Future of Enterprise Applications is Serverless (ENT314-R1) - AWS re:Inve...The Future of Enterprise Applications is Serverless (ENT314-R1) - AWS re:Inve...
The Future of Enterprise Applications is Serverless (ENT314-R1) - AWS re:Inve...Amazon Web Services
 
Microservices on AWS: Architectural Patterns and Best Practices | AWS Summit ...
Microservices on AWS: Architectural Patterns and Best Practices | AWS Summit ...Microservices on AWS: Architectural Patterns and Best Practices | AWS Summit ...
Microservices on AWS: Architectural Patterns and Best Practices | AWS Summit ...Amazon Web Services
 
Introduction to AWS Lambda and Serverless Applications
Introduction to AWS Lambda and Serverless ApplicationsIntroduction to AWS Lambda and Serverless Applications
Introduction to AWS Lambda and Serverless ApplicationsAmazon Web Services
 
Intro to AWS Lambda and Serverless Applications: re:Invent 2018 Recap at the ...
Intro to AWS Lambda and Serverless Applications: re:Invent 2018 Recap at the ...Intro to AWS Lambda and Serverless Applications: re:Invent 2018 Recap at the ...
Intro to AWS Lambda and Serverless Applications: re:Invent 2018 Recap at the ...Amazon Web Services
 
Introduction to Serverless Computing - OOP Munich
 Introduction to Serverless Computing - OOP Munich Introduction to Serverless Computing - OOP Munich
Introduction to Serverless Computing - OOP MunichBoaz Ziniman
 
AWS Webinar Series - Developing and Implementing APIs at Scale
AWS Webinar Series - Developing and Implementing APIs at ScaleAWS Webinar Series - Developing and Implementing APIs at Scale
AWS Webinar Series - Developing and Implementing APIs at ScaleAmazon Web Services
 
Serverless APIs and you
Serverless APIs and youServerless APIs and you
Serverless APIs and youJames Beswick
 
Modern Applications Web Day | Impress Your Friends with Your First Serverless...
Modern Applications Web Day | Impress Your Friends with Your First Serverless...Modern Applications Web Day | Impress Your Friends with Your First Serverless...
Modern Applications Web Day | Impress Your Friends with Your First Serverless...AWS Germany
 
Serverless Architectural Patterns and Best Practices
Serverless Architectural Patterns and Best PracticesServerless Architectural Patterns and Best Practices
Serverless Architectural Patterns and Best PracticesAmazon Web Services
 
Getting Started with Serverless Architectures
Getting Started with Serverless ArchitecturesGetting Started with Serverless Architectures
Getting Started with Serverless ArchitecturesAmazon Web Services
 
DevOps - Moving to DevOps the Amazon Way
DevOps - Moving to DevOps the Amazon WayDevOps - Moving to DevOps the Amazon Way
DevOps - Moving to DevOps the Amazon WayAmazon Web Services
 
Modern Applications Development on AWS
Modern Applications Development on AWSModern Applications Development on AWS
Modern Applications Development on AWSBoaz Ziniman
 
Developing and Implementing APIs at Scale, the Servless Way - Ed Lima - AWS T...
Developing and Implementing APIs at Scale, the Servless Way - Ed Lima - AWS T...Developing and Implementing APIs at Scale, the Servless Way - Ed Lima - AWS T...
Developing and Implementing APIs at Scale, the Servless Way - Ed Lima - AWS T...Amazon Web Services
 
Websites Go Serverless: AWS Developer Workshop - Web Summit 2018
Websites Go Serverless: AWS Developer Workshop - Web Summit 2018Websites Go Serverless: AWS Developer Workshop - Web Summit 2018
Websites Go Serverless: AWS Developer Workshop - Web Summit 2018Amazon Web Services
 
How Websites go Serverless - WebSummit Lisbon 2018
How Websites go Serverless - WebSummit Lisbon 2018How Websites go Serverless - WebSummit Lisbon 2018
How Websites go Serverless - WebSummit Lisbon 2018Boaz Ziniman
 
Thinking Asynchronously Full Vesion - Utah UG
Thinking Asynchronously Full Vesion - Utah UGThinking Asynchronously Full Vesion - Utah UG
Thinking Asynchronously Full Vesion - Utah UGEric Johnson
 

Ähnlich wie Serverless applications with AWS (20)

Microservices for Startups
Microservices for StartupsMicroservices for Startups
Microservices for Startups
 
Let Your Business Logic go Serverless | AWS Summit Tel Aviv 2019
 Let Your Business Logic go Serverless | AWS Summit Tel Aviv 2019 Let Your Business Logic go Serverless | AWS Summit Tel Aviv 2019
Let Your Business Logic go Serverless | AWS Summit Tel Aviv 2019
 
Let Your Business Logic go Serverless | AWS Summit Tel Aviv 2019
 Let Your Business Logic go Serverless | AWS Summit Tel Aviv 2019 Let Your Business Logic go Serverless | AWS Summit Tel Aviv 2019
Let Your Business Logic go Serverless | AWS Summit Tel Aviv 2019
 
Leadership Session: Using DevOps, Microservices, and Serverless to Accelerate...
Leadership Session: Using DevOps, Microservices, and Serverless to Accelerate...Leadership Session: Using DevOps, Microservices, and Serverless to Accelerate...
Leadership Session: Using DevOps, Microservices, and Serverless to Accelerate...
 
The Future of Enterprise Applications is Serverless (ENT314-R1) - AWS re:Inve...
The Future of Enterprise Applications is Serverless (ENT314-R1) - AWS re:Inve...The Future of Enterprise Applications is Serverless (ENT314-R1) - AWS re:Inve...
The Future of Enterprise Applications is Serverless (ENT314-R1) - AWS re:Inve...
 
Microservices on AWS: Architectural Patterns and Best Practices | AWS Summit ...
Microservices on AWS: Architectural Patterns and Best Practices | AWS Summit ...Microservices on AWS: Architectural Patterns and Best Practices | AWS Summit ...
Microservices on AWS: Architectural Patterns and Best Practices | AWS Summit ...
 
Introduction to AWS Lambda and Serverless Applications
Introduction to AWS Lambda and Serverless ApplicationsIntroduction to AWS Lambda and Serverless Applications
Introduction to AWS Lambda and Serverless Applications
 
Intro to AWS Lambda and Serverless Applications: re:Invent 2018 Recap at the ...
Intro to AWS Lambda and Serverless Applications: re:Invent 2018 Recap at the ...Intro to AWS Lambda and Serverless Applications: re:Invent 2018 Recap at the ...
Intro to AWS Lambda and Serverless Applications: re:Invent 2018 Recap at the ...
 
Introduction to Serverless Computing - OOP Munich
 Introduction to Serverless Computing - OOP Munich Introduction to Serverless Computing - OOP Munich
Introduction to Serverless Computing - OOP Munich
 
AWS Webinar Series - Developing and Implementing APIs at Scale
AWS Webinar Series - Developing and Implementing APIs at ScaleAWS Webinar Series - Developing and Implementing APIs at Scale
AWS Webinar Series - Developing and Implementing APIs at Scale
 
Serverless APIs and you
Serverless APIs and youServerless APIs and you
Serverless APIs and you
 
Modern Applications Web Day | Impress Your Friends with Your First Serverless...
Modern Applications Web Day | Impress Your Friends with Your First Serverless...Modern Applications Web Day | Impress Your Friends with Your First Serverless...
Modern Applications Web Day | Impress Your Friends with Your First Serverless...
 
Serverless Architectural Patterns and Best Practices
Serverless Architectural Patterns and Best PracticesServerless Architectural Patterns and Best Practices
Serverless Architectural Patterns and Best Practices
 
Getting Started with Serverless Architectures
Getting Started with Serverless ArchitecturesGetting Started with Serverless Architectures
Getting Started with Serverless Architectures
 
DevOps - Moving to DevOps the Amazon Way
DevOps - Moving to DevOps the Amazon WayDevOps - Moving to DevOps the Amazon Way
DevOps - Moving to DevOps the Amazon Way
 
Modern Applications Development on AWS
Modern Applications Development on AWSModern Applications Development on AWS
Modern Applications Development on AWS
 
Developing and Implementing APIs at Scale, the Servless Way - Ed Lima - AWS T...
Developing and Implementing APIs at Scale, the Servless Way - Ed Lima - AWS T...Developing and Implementing APIs at Scale, the Servless Way - Ed Lima - AWS T...
Developing and Implementing APIs at Scale, the Servless Way - Ed Lima - AWS T...
 
Websites Go Serverless: AWS Developer Workshop - Web Summit 2018
Websites Go Serverless: AWS Developer Workshop - Web Summit 2018Websites Go Serverless: AWS Developer Workshop - Web Summit 2018
Websites Go Serverless: AWS Developer Workshop - Web Summit 2018
 
How Websites go Serverless - WebSummit Lisbon 2018
How Websites go Serverless - WebSummit Lisbon 2018How Websites go Serverless - WebSummit Lisbon 2018
How Websites go Serverless - WebSummit Lisbon 2018
 
Thinking Asynchronously Full Vesion - Utah UG
Thinking Asynchronously Full Vesion - Utah UGThinking Asynchronously Full Vesion - Utah UG
Thinking Asynchronously Full Vesion - Utah UG
 

Mehr von javier ramirez

¿Se puede vivir del open source? T3chfest
¿Se puede vivir del open source? T3chfest¿Se puede vivir del open source? T3chfest
¿Se puede vivir del open source? T3chfestjavier ramirez
 
QuestDB: The building blocks of a fast open-source time-series database
QuestDB: The building blocks of a fast open-source time-series databaseQuestDB: The building blocks of a fast open-source time-series database
QuestDB: The building blocks of a fast open-source time-series databasejavier ramirez
 
Como creamos QuestDB Cloud, un SaaS basado en Kubernetes alrededor de QuestDB...
Como creamos QuestDB Cloud, un SaaS basado en Kubernetes alrededor de QuestDB...Como creamos QuestDB Cloud, un SaaS basado en Kubernetes alrededor de QuestDB...
Como creamos QuestDB Cloud, un SaaS basado en Kubernetes alrededor de QuestDB...javier ramirez
 
Ingesting Over Four Million Rows Per Second With QuestDB Timeseries Database ...
Ingesting Over Four Million Rows Per Second With QuestDB Timeseries Database ...Ingesting Over Four Million Rows Per Second With QuestDB Timeseries Database ...
Ingesting Over Four Million Rows Per Second With QuestDB Timeseries Database ...javier ramirez
 
Deduplicating and analysing time-series data with Apache Beam and QuestDB
Deduplicating and analysing time-series data with Apache Beam and QuestDBDeduplicating and analysing time-series data with Apache Beam and QuestDB
Deduplicating and analysing time-series data with Apache Beam and QuestDBjavier ramirez
 
Your Database Cannot Do this (well)
Your Database Cannot Do this (well)Your Database Cannot Do this (well)
Your Database Cannot Do this (well)javier ramirez
 
Your Timestamps Deserve Better than a Generic Database
Your Timestamps Deserve Better than a Generic DatabaseYour Timestamps Deserve Better than a Generic Database
Your Timestamps Deserve Better than a Generic Databasejavier ramirez
 
Cómo se diseña una base de datos que pueda ingerir más de cuatro millones de ...
Cómo se diseña una base de datos que pueda ingerir más de cuatro millones de ...Cómo se diseña una base de datos que pueda ingerir más de cuatro millones de ...
Cómo se diseña una base de datos que pueda ingerir más de cuatro millones de ...javier ramirez
 
QuestDB-Community-Call-20220728
QuestDB-Community-Call-20220728QuestDB-Community-Call-20220728
QuestDB-Community-Call-20220728javier ramirez
 
Processing and analysing streaming data with Python. Pycon Italy 2022
Processing and analysing streaming  data with Python. Pycon Italy 2022Processing and analysing streaming  data with Python. Pycon Italy 2022
Processing and analysing streaming data with Python. Pycon Italy 2022javier ramirez
 
QuestDB: ingesting a million time series per second on a single instance. Big...
QuestDB: ingesting a million time series per second on a single instance. Big...QuestDB: ingesting a million time series per second on a single instance. Big...
QuestDB: ingesting a million time series per second on a single instance. Big...javier ramirez
 
Servicios e infraestructura de AWS y la próxima región en Aragón
Servicios e infraestructura de AWS y la próxima región en AragónServicios e infraestructura de AWS y la próxima región en Aragón
Servicios e infraestructura de AWS y la próxima región en Aragónjavier ramirez
 
Primeros pasos en desarrollo serverless
Primeros pasos en desarrollo serverlessPrimeros pasos en desarrollo serverless
Primeros pasos en desarrollo serverlessjavier ramirez
 
How AWS is reinventing the cloud
How AWS is reinventing the cloudHow AWS is reinventing the cloud
How AWS is reinventing the cloudjavier ramirez
 
Analitica de datos en tiempo real con Apache Flink y Apache BEAM
Analitica de datos en tiempo real con Apache Flink y Apache BEAMAnalitica de datos en tiempo real con Apache Flink y Apache BEAM
Analitica de datos en tiempo real con Apache Flink y Apache BEAMjavier ramirez
 
Getting started with streaming analytics
Getting started with streaming analyticsGetting started with streaming analytics
Getting started with streaming analyticsjavier ramirez
 
Getting started with streaming analytics: Setting up a pipeline
Getting started with streaming analytics: Setting up a pipelineGetting started with streaming analytics: Setting up a pipeline
Getting started with streaming analytics: Setting up a pipelinejavier ramirez
 
Getting started with streaming analytics: Deep Dive
Getting started with streaming analytics: Deep DiveGetting started with streaming analytics: Deep Dive
Getting started with streaming analytics: Deep Divejavier ramirez
 
Getting started with streaming analytics: streaming basics (1 of 3)
Getting started with streaming analytics: streaming basics (1 of 3)Getting started with streaming analytics: streaming basics (1 of 3)
Getting started with streaming analytics: streaming basics (1 of 3)javier ramirez
 
Monitorización de seguridad y detección de amenazas con AWS
Monitorización de seguridad y detección de amenazas con AWSMonitorización de seguridad y detección de amenazas con AWS
Monitorización de seguridad y detección de amenazas con AWSjavier ramirez
 

Mehr von javier ramirez (20)

¿Se puede vivir del open source? T3chfest
¿Se puede vivir del open source? T3chfest¿Se puede vivir del open source? T3chfest
¿Se puede vivir del open source? T3chfest
 
QuestDB: The building blocks of a fast open-source time-series database
QuestDB: The building blocks of a fast open-source time-series databaseQuestDB: The building blocks of a fast open-source time-series database
QuestDB: The building blocks of a fast open-source time-series database
 
Como creamos QuestDB Cloud, un SaaS basado en Kubernetes alrededor de QuestDB...
Como creamos QuestDB Cloud, un SaaS basado en Kubernetes alrededor de QuestDB...Como creamos QuestDB Cloud, un SaaS basado en Kubernetes alrededor de QuestDB...
Como creamos QuestDB Cloud, un SaaS basado en Kubernetes alrededor de QuestDB...
 
Ingesting Over Four Million Rows Per Second With QuestDB Timeseries Database ...
Ingesting Over Four Million Rows Per Second With QuestDB Timeseries Database ...Ingesting Over Four Million Rows Per Second With QuestDB Timeseries Database ...
Ingesting Over Four Million Rows Per Second With QuestDB Timeseries Database ...
 
Deduplicating and analysing time-series data with Apache Beam and QuestDB
Deduplicating and analysing time-series data with Apache Beam and QuestDBDeduplicating and analysing time-series data with Apache Beam and QuestDB
Deduplicating and analysing time-series data with Apache Beam and QuestDB
 
Your Database Cannot Do this (well)
Your Database Cannot Do this (well)Your Database Cannot Do this (well)
Your Database Cannot Do this (well)
 
Your Timestamps Deserve Better than a Generic Database
Your Timestamps Deserve Better than a Generic DatabaseYour Timestamps Deserve Better than a Generic Database
Your Timestamps Deserve Better than a Generic Database
 
Cómo se diseña una base de datos que pueda ingerir más de cuatro millones de ...
Cómo se diseña una base de datos que pueda ingerir más de cuatro millones de ...Cómo se diseña una base de datos que pueda ingerir más de cuatro millones de ...
Cómo se diseña una base de datos que pueda ingerir más de cuatro millones de ...
 
QuestDB-Community-Call-20220728
QuestDB-Community-Call-20220728QuestDB-Community-Call-20220728
QuestDB-Community-Call-20220728
 
Processing and analysing streaming data with Python. Pycon Italy 2022
Processing and analysing streaming  data with Python. Pycon Italy 2022Processing and analysing streaming  data with Python. Pycon Italy 2022
Processing and analysing streaming data with Python. Pycon Italy 2022
 
QuestDB: ingesting a million time series per second on a single instance. Big...
QuestDB: ingesting a million time series per second on a single instance. Big...QuestDB: ingesting a million time series per second on a single instance. Big...
QuestDB: ingesting a million time series per second on a single instance. Big...
 
Servicios e infraestructura de AWS y la próxima región en Aragón
Servicios e infraestructura de AWS y la próxima región en AragónServicios e infraestructura de AWS y la próxima región en Aragón
Servicios e infraestructura de AWS y la próxima región en Aragón
 
Primeros pasos en desarrollo serverless
Primeros pasos en desarrollo serverlessPrimeros pasos en desarrollo serverless
Primeros pasos en desarrollo serverless
 
How AWS is reinventing the cloud
How AWS is reinventing the cloudHow AWS is reinventing the cloud
How AWS is reinventing the cloud
 
Analitica de datos en tiempo real con Apache Flink y Apache BEAM
Analitica de datos en tiempo real con Apache Flink y Apache BEAMAnalitica de datos en tiempo real con Apache Flink y Apache BEAM
Analitica de datos en tiempo real con Apache Flink y Apache BEAM
 
Getting started with streaming analytics
Getting started with streaming analyticsGetting started with streaming analytics
Getting started with streaming analytics
 
Getting started with streaming analytics: Setting up a pipeline
Getting started with streaming analytics: Setting up a pipelineGetting started with streaming analytics: Setting up a pipeline
Getting started with streaming analytics: Setting up a pipeline
 
Getting started with streaming analytics: Deep Dive
Getting started with streaming analytics: Deep DiveGetting started with streaming analytics: Deep Dive
Getting started with streaming analytics: Deep Dive
 
Getting started with streaming analytics: streaming basics (1 of 3)
Getting started with streaming analytics: streaming basics (1 of 3)Getting started with streaming analytics: streaming basics (1 of 3)
Getting started with streaming analytics: streaming basics (1 of 3)
 
Monitorización de seguridad y detección de amenazas con AWS
Monitorización de seguridad y detección de amenazas con AWSMonitorización de seguridad y detección de amenazas con AWS
Monitorización de seguridad y detección de amenazas con AWS
 

Kürzlich hochgeladen

The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 

Kürzlich hochgeladen (20)

The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 

Serverless applications with AWS

  • 1. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Serverless Applications with AWS Javier Ramirez @supercoco9 AWS Technical Evangelist
  • 2. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Development transformation at Amazon: 1994-2001 2002+ Monolithic architecture + hierarchical organization Decoupled services + Two-pizza teams
  • 3. Two-pizza team responsibility Venn diagram Responsible for THEIR PRODUCT Deployment tools CI/CD tools Monitoring tools Metrics tool Logging tools APM tools Infrastructure provisioning tools Security tools Database management tools Testing tools …. Not responsible for * *Unless their product belongs in the blue
  • 4. Two-pizza team responsibility Venn diagram Responsible for Not responsible for * NOT THEIR PRODUCT *Unless their product belongs in the blue Application development Infrastructure management Application configuration Pipeline configuration Alarms Runbooks Testing Compliance Roadmap tracking Goals tracking On-call Support escalation ….
  • 5. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Determining the right balance The more time spent on operational tasks, the less time spent on development tasks
  • 6. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Two-pizza team responsibility Venn diagram Responsible for THEIR PRODUCT Not responsible for NOT THEIR PRODUCT Can we shift more from a team’s responsibility to the platform/shared services?
  • 7. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark 7 © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. AWS operational responsibility models On-Premises Cloud Less More Compute Virtual Machine EC2 Elastic Beanstalk AWS LambdaFargate Databases MySQL MySQL on EC2 RDS MySQL RDS Aurora Aurora Serverless DynamoDB Storage Storage S3 Messaging ESBs Amazon MQ Kinesis SQS / SNS Analytics Hadoop Hadoop on EC2 EMR Elasticsearch Service Athena
  • 8. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Serverless means …
  • 9. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Serverless means … No servers to provision or manage Scales with usage Never pay for idle Availability and fault tolerance built in
  • 10. No server is easier to manage than "no server.” Werner Vogels—Amazon CTO
  • 11. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Serverless means:
  • 12. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Serverless means: Greater agility Less overhead Better focus Increased scale More flexibility Faster time to market
  • 13. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark 13 © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. AWS Lambda AWS Fargate Amazon API Gateway Amazon SNS Amazon SQS AWS Step Functions COMPUTE DATA STORES INTEGRATION Amazon Aurora Serverless Amazon S3 Amazon DynamoDB AWS AppSync
  • 14. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
  • 15. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Event-driven compute Functions as a service Serverless FaaS
  • 16. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Serverless applications Services (anything) Changes in data state Requests to endpoints Changes in resource state Event source Function Node.js Python Java C# Go Ruby BYOR (Bring your own runtime)NEW!
  • 17. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. AWS Lambda runtime API and layers Features that allow developers to share, discover, and deploy both libraries and languages as part of their serverless applications Runtime API enables developers to use Lambda with any programming language. Layers let functions easily share code. Upload layer once, reference within any function. Layers promote separation of responsibilities, lets developers focus on writing business logic. Combined, runtime API and layers allow developers to share any programming language or language version with others
  • 18. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Anatomy of a Lambda function Handler() function Function to be executed upon invocation Event object Data sent during Lambda function Invocation Context object Methods available to interact with runtime information (request ID, log group, more) public String handleRequest(Book book, Context context) { saveBook(book); return book.getName() + " saved!"; }
  • 19. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Fine-grained pricing Buy compute time in 100ms increments Low request charge No hourly, daily, or monthly minimums No per-device fees Never pay for idle Free Tier 1M requests and 400,000 GBs of compute. Every month, every customer.
  • 20. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. AWS Lambda release history LambdaPreview Announcement re:Invent2014 2015 2016 2017 2018 ? *As of October 2018, does not include region launches
  • 21. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Common Lambda use cases Web applications • Static websites • Complex web apps • Packages for Flask and Express Data processing • Real time • MapReduce • Batch Chatbots • Powering chatbot logic Backends • Apps & services • Mobile • IoT </></> Amazon Alexa • Powering voice-enabled apps • Alexa Skills Kit IT Automation • Policy engines • Extending AWS services • Infrastructure management
  • 22. © 2019 Amazon Web Services, Inc. or its affiliates. All rights reserved.
  • 23. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark 23 © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Changes to the architectural patterns
  • 24. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark 24 © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. When the impact of change is small, release velocity can increase Monolith Does everything Microservices Does one thing
  • 25. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark 25 © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. MICROSERVICE API API MICROSERVICE MICROSERVICE EVENT API MICROSERVICE EVENT API MICROSERVICE APPLICATION Mobile client Client IoT PERSISTENCE PERSISTENCE Microservices architectures
  • 26. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark 26 © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Event-driven architectures
  • 27. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark 27 © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Decouple state from code using messaging Queues Simple Fully-managed Any volume Pub/sub Simple Fully-managed Flexible Amazon Simple Queue Service Amazon Simple Notification Service Messaging Synchronization Rapid Fully-managed Real-time Amazon CloudWatch Events
  • 28. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark 28 © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. And data streams Ingest Data streams Data processing Real-time Data Store Microservices Performance at scale Fast and Flexible Amazon Kinesis Data Streams Amazon Dynamo DB Data Stream Capture
  • 29. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark 29 © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. APIs are the front door of microservices
  • 30. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon API Gateway Create a unified API frontend for multiple micro- services Authenticate and authorize requests to a backend DDoS protection and throttling for your backend Throttle, meter, and monetize API usage by third- party developers
  • 31. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. API Gateway Internet Mobile apps Websites Services AWS Lambda functions AWS API Gateway Cache Endpoints on Amazon EC2 Amazon CloudWatch monitoring Amazon CloudFront Any other AWS service YOUR VPC Endpoints in Your VPC Regional API endpoints All publicly accessible endpoints AWS Lambda functions
  • 32. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. API Gateway WebSockets Invoke AWS services like Lambda, Kinesis, or any HTTP endpoint based on message content Build real-time two-way communication applications chat, alerts and notifications, and streaming dashboards Fully managed APIs to handle connections and messages transfer between users and backend services Pay for what you use based on connection minutes and messages transferred Stateful connection Stateless connection Amazon API Gateway WebSockets API Public endpoints on Amazon EC2 Lambda functions Any other AWS service All publicly accessible endpoints Amazon Kinesis Mobile apps Chat AWS IoT devices Dashboards
  • 33. © 2019 Amazon Web Services, Inc. or its affiliates. All rights reserved.
  • 34. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. REST API versus GraphQL GraphQLTraditional data-fetching /posts /postInfo /postJustTitle /postsByAuthor /postNameStartsWithX /commentsOnPost GraphQL query { getPostNameComments { postID postName postAuthor commentID commentText } } With a REST-based interface, I might need to make several calls sequentially based on responses from the previous call With GraphQL I can make one call
  • 35. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. AWS AppSync Real-time and offline data using GraphQL Real-time collaboration Offline programming model with sync Your data sources Fine-grained access control
  • 36. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Serverless web application with API Gateway API Gateway handles all your application routing. It can handle authentication and authorization, throttling, DDOS protection, and more. Amazon S3 API Gateway Lambda runs all the logic behind your website and interfaces with databases, other backend services, or anything else your site needs. AWS Lambda Amazon Simple Storage Service (Amazon S3) stores all of your static content: CSS, JS, images, and more. You would typically front this with a CDN such as CloudFront. Amazon CloudFront
  • 37. Serverless web application with AWS AppSync AWS AppSync handles all of your GraphQL query resolution. It can retrieve data from data sources such as Amazon DynamoDB, Amazon Elasticsearch Service, Lambda, and HTTP endpoints. Data sources and/or Lambda provide customer data or backend logic. Amazon S3 AWS Lambda Amazon CloudFront AWS AppSync Amazon S3 stores all your static content: CSS, JS, images, more. You would typically front this with a CDN such as CloudFront.
  • 38. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential and Trademark 40 © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Track status of data and execution Remove redundant code Build workflows to orchestrate everything
  • 45. “I want try/catch/finally” “I want to select tasks based on data” “I want to retry failed tasks” A B C A ? “I want to sequence tasks” BA “I want to run tasks in parallel” CBA Is this you?
  • 46. Coordination must-haves • Scales out • Doesn’t lose state • Deals with errors/timeouts • Easy to build & operate • Auditable • Keep orchestration out of code
  • 48. Application lifecycle in AWS Step Functions Visualize in the Console Define in JSON Monitor Executions
  • 49. Execute One or One Million Start End HelloWorld Start End HelloWorld Start End HelloWorld Start End HelloWorld Start End HelloWorld Start End HelloWorld Start End HelloWorld Start End HelloWorld
  • 50. Maximum Execution Time AWS Lambda Functions 15 minutes AWS Step Functions State Machines 1 year
  • 52. Seven state types Task A single unit of work Choice Adds branching logic Parallel Fork and join the data across tasks Wait Delay for a specified time Fail Stops an execution and marks it as a failure Succeed Stops an execution successfully Pass Passes its input to its output
  • 53. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved. State Example: Task @technovangelist
  • 54. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved. State Example: Choice @technovangelist
  • 55. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved. State Example: Succeed/Fail @technovangelist
  • 56. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved. State Example: Pass @technovangelist
  • 57. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved. State Example: Wait @technovangelist
  • 58. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved. State Example: Parallel @technovangelist
  • 59. Task states for any compute Long poll Traditional server Request or Callback Worker requests tasks from Step Functions Step Functions invokes the Task
  • 61. Service Integration Patterns Request Response Call a service and let Step Functions progress to the next state immediately after it gets an HTTP response. "Send message to SNS": { "Type":"Task", "Resource":"arn:aws:states:::sns:publish", "Parameters":{ "TopicArn":"arn:aws:sns:us-east-1:123456789012:myTopic", "Message":"Hello from Step Functions!" }, "Next":"NEXT_STATE" }
  • 62. Service Integration Patterns Run a Job (.sync) Call a service and have Step Functions wait for a job to complete. "Manage Batch task": { "Type": "Task", "Resource": "arn:aws:states:::batch:submitJob.sync", "Parameters": { "JobDefinition": "arn:aws:batch:us-east-2:123456789012:job-definition/testJobDefinition", "JobName": "testJob", "JobQueue": "arn:aws:batch:us-east-2:123456789012:job-queue/testQueue" }, "Next": "NEXT_STATE" }
  • 63. Service Integration Patterns Wait for a Callback (.waitForTaskToken) Call a service with a task token and have Step Functions wait until that token is returned along with a payload. "Send message to SQS": { "Type": "Task", "Resource": "arn:aws:states:::sqs:sendMessage.waitForTaskToken", "Parameters": { "QueueUrl": "https://sqs.us-east-2.amazonaws.com/123456789012/myQueue", "MessageBody": { "Message": "Hello from Step Functions!", "TaskToken.$": "$$.Task.Token" } }, "Next": "NEXT_STATE" }
  • 65. Configure a Heartbeat Timeout for a Waiting Task "Send message to SNS": { "Type":"Task", "Resource":"arn:aws:states:::sns:publish.waitForTaskToken", "HeartbeatSeconds": 600, "Parameters":{ "TopicArn":"arn:aws:sns:us-east-1:123456789012:myTopic", "Message":"Let me know if everything is ok!" }, "Next":"NEXT_STATE" } Set heartbeat timeout interval to 10 minutes
  • 66. Send task heartbeat/success/failure in JavaScript const stepfunctions = new AWS.StepFunctions(); let data; data = await stepfunctions.sendTaskHeartbeat({ taskToken: 'TASK_TOKEN' }).promise(); data = await stepfunctions.sendTaskSuccess({ output: 'YOUR_OUTPUT', taskToken: 'TASK_TOKEN' }).promise(); data = await stepfunctions.sendTaskFailure({ error: 'ERROR_CODE’, cause: 'EXPLANATION’, taskToken: 'TASK_TOKEN' }).promise(); Create service object Send heartbeat Send success + output Send failure + error/cause or
  • 67. About WHOSAY • WHOSAY is the largest and most trusted influence marketer in the world. Founded in 2010, WHOSAY is built from the best of entertainment, technology and advertising. WHOSAY powers influence marketing campaigns across all verticals and utilizes every level of celebrity and influencer, delivering measurably superior results to other social and mobile advertising. • Step Functions is a part of the WHOSAY MATCH application for searching and identifying influencers that match with brand campaigns
  • 68. • When a celeb social media post happens… • Kick off a scheduled sequence of analytics runs Analytics data collection problem
  • 70. Takeaways “We can set it and forget it, with no maintenance, and it is easy to support. It was very easy to get going.” “Step Functions and Lambda are a perfect combination for building event-driven and delayed applications, even when tasks need to run longer than 5 minutes.”
  • 71. About Thomson Reuters • Global organization, HQ in Toronto, 5,000+ employees • Preparing news video clips for global broadcast and online delivery
  • 72. • Transcode 350 clips/day into 14 formats, fast • It’s all done with FFmpeg. The processing time is just about 100% of the video length • Aargh! Video processing problem
  • 73. • Derive keyframe locations within the source • Split the source at the keyframes • Process segments (typically 0.5 sec per) in parallel • Concatenate segments • Elapsed time: ~20 min down to ~2 minutes Video processing solution
  • 74. About Frame.io • Frame.io is the world’s leading workflow management platform for video teams • From small production agencies to major broadcast media companies, video teams of all sizes rely on Frame.io to streamline their media review and collaboration process • Frame.io uses Step Functions to process media, transcode to different formats, create thumbnails, and much more
  • 75. 1. Sometimes Lambda is best, sometimes ECS 2. Previously, all tied together with pub/sub and procedural code 3. Aargh! Media transcoding problem
  • 76. 1. Use state machines to pick execution engine 2. Use CloudWatch Events for messaging and triggering Step Functions Media transcoding solution
  • 77. Let’s peek at the code! "Encoder Decider": { "Type": "Choice", "Default": "Run ECS Encoder", "Choices": [ { "Next": "Run Lambda Encoder", "And": [ { "Variable": "$.asset.size", "NumericLessThanEquals": 2000000000 }, { "Variable": "$.asset.duration_ms", "NumericLessThanEquals": 10000 } ] } ] }
  • 78. Let’s peek at the code! "Run ECS Encoder": { "Type": "Task", "Resource": "arn:…SubmitECSTask", "Retry": [ { "ErrorEquals": [ "NoResourceInCluster" ], "IntervalSeconds": 5, "MaxAttempts": 720, "BackoffRate": 1.0 } ], "ResultPath": "$.task", "Next": "Wait X Seconds" } "Wait X Seconds": { "Type": "Wait", "SecondsPath": "$.task.wait_time", "Next": "Get ECS Task Status" }, "Get ECS Task Status": { "Type": "Task", "Resource": "arn:…ECSTaskStatus", "Next": "ECS Task Complete?", "ResultPath": "$.task.status" }
  • 79. Let’s peek at the code! "ECS Task Complete?": { "Type": "Choice", "Choices": [ { "And": [ { "Variable": "$.task.status", "StringEquals": "FAILED" }, { "Variable": "$.task.attempt", "NumericGreaterThanEquals": 3 } ], "Next": "Fire Failed Event" }, { "Variable": "$.task.status", "StringEquals": "FAILED", "Next": "Run ECS Encoder" }, { "Variable": "$.task.status", "StringEquals": "SUCCEEDED", "Next": "Fire Successful Event" } ], "Default": "Wait X Seconds" }, "Fire Successful Event": { "Type": "Task", "Resource": "aws:…SendSuccessfulEvent", "End": true }, "Fire Failed Event": { "Type": "Task", "Resource": "aws:…SendFailedEvent", "End": true } These fire CloudWatch Events
  • 80. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Build PCI and HIPAA compliant serverless applications! Serverless platform services that can be used in both: AWS Lambda Amazon S3 Amazon CloudFront Amazon DynamoDB Amazon Kinesis Data Streams Amazon Cognito Amazon API Gateway Amazon SNS
  • 81. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Where do you ... https://secure.flickr.com/photos/stevendepolo/57491920?
  • 82. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Start with a framework AWS Chalice
  • 83. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. AWS Serverless Application Model (SAM) AWS CloudFormation extension optimized for serverless New serverless resource types: functions, APIs, and tables Supports anything AWS CloudFormation supports Open specification (Apache 2.0) https://aws.amazon.com/serverless/sam
  • 84. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. AWS Command Line Interface (AWS CLI) CLI tool for local development, debugging, testing, deploying, and monitoring of serverless applications Supports API Gateway “proxy-style” and Lambda service API testing Response object and function logs available on your local machine Uses open source docker-lambda images to mimic Lambda’s execution environment such as timeout, memory limits, runtimes Can tail production logs from CloudWatch logs https://aws.amazon.com/serverless/sam
  • 85. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Infrastructure as code ✓ Make infrastructure changes repeatable and predictable ✓ Release infrastructure changes using the same tools as code changes ✓ Replicate production environment in a staging environment to enable continuous testing
  • 86. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Infrastructure as code Declarative I tell you what I need I tell you what to do Imperative
  • 87. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Infrastructure as code best practices ✓ Infrastructure and application in the same source repository For example: AWS CloudFormation HashiCorp Terraform ✓ Deployments include infrastructure updates
  • 88. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Infrastructure as code for serverless apps For example: AWS Serverless Application Model (SAM) Serverless Framework
  • 89. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. SAM template AWSTemplateFormatVersion: '2010-09-09’ Transform: AWS::Serverless-2016-10-31 Resources: GetFunction: Type: AWS::Serverless::Function Properties: Handler: index.get Runtime: nodejs8.10 CodeUri: src/ Policies: - DynamoDBReadPolicy: TableName: !Ref MyTable Events: GetResource: Type: Api Properties: Path: /resource/{resourceId} Method: get MyTable: Type: AWS::Serverless::SimpleTable Just 20 lines to create: • Lambda function • IAM role • API Gateway • DynamoDB table
  • 90. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. SAM CLI https://github.com/awslabs/aws-sam-cli
  • 91. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T Nested apps to simplify solving recurring problems Standard Component TweetSource: Type: AWS::Serverless::Application Properties: Location: ApplicationId: arn:aws:serverlessrepo:... SemanticVersion: 2.0.0 Parameters: TweetProcessorFunctionName: !Ref MyFunction SearchText: '#serverless -filter:nativeretweets’ Custom Business Logic
  • 92. © 2019 Amazon Web Services, Inc. or its affiliates. All rights reserved.
  • 95. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
  • 96. © 2019 Amazon Web Services, Inc. or its affiliates. All rights reserved.
  • 97. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Centrica Energy & services company: UK, Ireland, & North America Focus areas: Energy supply, services, connected home, distributed energy & power, energy marketing, & trading Over 25MN customer accounts and £28 BN annual revenue
  • 98. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. British Gas business—Digital View bills Quote & buy Meter readings Pay
  • 99. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Old monolithic architecture Monolith Highly coupled, server-side architecture All changes needed comprehensive testing Infrastructure monitoring, maintenance, & upgrades Slow & expensive Introduction of new components & services Very difficult Monthly releases Cycle time was in months & quarters
  • 100. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Approach Proof of concept Engage Pilot Expand Learn and familiarize Microservice ported to Lambda CloudFormation Manual deployment Serverless working group: Enterprise architecture Security Networks Service design & introduction Thin & deep slice Guest meter read journey Phased rollout with failover Team: one architect, two developers, one QA Amazon Cognito Agent access More journeys to Lambdas Database—Amazon Relational Database Service (Amazon RDS)
  • 101. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Benefits Cost reduction An order of magnitude reduction in operational cost Focus Focus on the core business logic & customer experience without worrying about the underlying infrastructure Agility Short release cycles with cycle time in days & weeks
  • 102. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. aws.amazon.com/serverless
  • 103. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Obrigado Javier Ramirez @supercoco9 AWS Technical Evangelist