SlideShare a Scribd company logo
1 of 34
Download to read offline
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Applying the Twelve-Factor App
Methodology to Serverless
Applications
Rory Jacob
Software Engineer
AWS Lambda
S R V 2 1 8
James Hood
Sr. Software Engineer
AWS Serverless Applications
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
About Us
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Agenda
What is the Twelve-Factor App Methodology?
How does this apply to Serverless Applications?
Q&A
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Twelve-Factor App Methodology
• Developed by developers at Heroku and first presented in
2011 by Adam Wiggins
• Best practices for building modern, cloud-native
applications
• Declarative
• Clean Contract
• Deployments
• Minimize divergence in environments
• Scale up
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Twelve-Factor App Methodology
• Broken down into twelve separate categories
1. Codebase
2. Dependencies
3. Config
4. Backing services
5. Build, release, run
6. Processes
7. Port Binding
8. Concurrency
9. Disposability
10. Dev/prod parity
11. Logs
12. Admin processes
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Twelve-Factor App Methodology
• Broken down into twelve separate categories
1. Codebase
2. Dependencies
3. Config
4. Backing services
5. Build, release, run
6. Processes
7. Port Binding
8. Concurrency
9. Disposability
10. Dev/prod parity
11. Logs
12. Admin processes
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Twelve-Factor App Methodology
• Broken down into twelve separate categories
1. Codebase
2. Dependencies
3. Config
4. Backing services
5. Build, release, run
6. Processes
7. Port Binding
8. Concurrency
9. Disposability
10. Dev/prod parity
11. Logs
12. Admin processes
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
“Store config in the environment”
The Twelve Factor App
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
3. Config
const tableName = “beta-table”
const endpoint = “beta.endpoint.com”
func Handler(request string) (string, error) {
// do some work
}
func main() { lambda.Start(Handler) }
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
3. Config
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
3. Config
Env Vars:
Endpoint: beta.endpoint.com
beta-table
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
3. Config
Env Vars:
Endpoint: beta.endpoint.com
beta-table
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
3. Config
Env Vars:
Endpoint: beta.endpoint.com
beta-table
Env Vars:
Endpoint: prod.endpoint.com
prod-table
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
3. Config
var tableName string
func init() {
tableName = os.Getenv(“TableName”)
}
func Handler(request string) (string, error) {
// do some work
}
func main() { lambda.Start(Handler) }
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
“Treat backing services as attached
resources”
The Twelve Factor App
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
4. Backing Services
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
“Scale out via the process model”
The Twelve Factor App
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
8. Concurrency
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
8. Concurrency
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
8. Concurrency
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
8. Concurrency
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
8. Concurrency
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
8. Concurrency
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
8. Concurrency
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Twelve-Factor App Methodology
1. Codebase
2. Dependencies
3. Config
4. Backing services
5. Build, release, run
6. Processes
7. Port Binding
8. Concurrency
9. Disposability
10. Dev/prod parity
11. Logs
12. Admin processes
Thank you!
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
James Hood
jahood@amazon.com
Rory Jacob
roryj@amazon.com
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.

More Related Content

What's hot

DevOps Concepts for Data Science (DEV347-R2) - AWS re:Invent 2018
DevOps Concepts for Data Science (DEV347-R2) - AWS re:Invent 2018DevOps Concepts for Data Science (DEV347-R2) - AWS re:Invent 2018
DevOps Concepts for Data Science (DEV347-R2) - AWS re:Invent 2018Amazon Web Services
 
使用 AWS Step Functions 靈活調度 AWS Lambda (Level:200)
使用 AWS Step Functions 靈活調度 AWS Lambda (Level:200)使用 AWS Step Functions 靈活調度 AWS Lambda (Level:200)
使用 AWS Step Functions 靈活調度 AWS Lambda (Level:200)Amazon Web Services
 
Predictive Scaling for More Responsive Applications (API330) - AWS re:Invent ...
Predictive Scaling for More Responsive Applications (API330) - AWS re:Invent ...Predictive Scaling for More Responsive Applications (API330) - AWS re:Invent ...
Predictive Scaling for More Responsive Applications (API330) - AWS re:Invent ...Amazon Web Services
 
0x32 Shades of #7f7f7f: The Tension Between Absolutes and Ambiguity in Securi...
0x32 Shades of #7f7f7f: The Tension Between Absolutes and Ambiguity in Securi...0x32 Shades of #7f7f7f: The Tension Between Absolutes and Ambiguity in Securi...
0x32 Shades of #7f7f7f: The Tension Between Absolutes and Ambiguity in Securi...Amazon Web Services
 
Cloud Ops Engineer: A Day in the Life (ENT312-R1) - AWS re:Invent 2018
Cloud Ops Engineer: A Day in the Life (ENT312-R1) - AWS re:Invent 2018Cloud Ops Engineer: A Day in the Life (ENT312-R1) - AWS re:Invent 2018
Cloud Ops Engineer: A Day in the Life (ENT312-R1) - AWS re:Invent 2018Amazon Web Services
 
[NEW LAUNCH!] [REPEAT 1] AWS DeepRacer Workshops –a new, fun way to learn rei...
[NEW LAUNCH!] [REPEAT 1] AWS DeepRacer Workshops –a new, fun way to learn rei...[NEW LAUNCH!] [REPEAT 1] AWS DeepRacer Workshops –a new, fun way to learn rei...
[NEW LAUNCH!] [REPEAT 1] AWS DeepRacer Workshops –a new, fun way to learn rei...Amazon Web Services
 
Create a Virtual Concierge Using Sumerian Hosts (ARV201) - AWS re:Invent 2018
Create a Virtual Concierge Using Sumerian Hosts (ARV201) - AWS re:Invent 2018Create a Virtual Concierge Using Sumerian Hosts (ARV201) - AWS re:Invent 2018
Create a Virtual Concierge Using Sumerian Hosts (ARV201) - AWS re:Invent 2018Amazon Web Services
 
Choosing the Right Messaging Service for Your Distributed App (API305) - AWS ...
Choosing the Right Messaging Service for Your Distributed App (API305) - AWS ...Choosing the Right Messaging Service for Your Distributed App (API305) - AWS ...
Choosing the Right Messaging Service for Your Distributed App (API305) - AWS ...Amazon Web Services
 
Customizing Data Lakes to Work for Your Enterprise with Sysco (STG340) - AWS ...
Customizing Data Lakes to Work for Your Enterprise with Sysco (STG340) - AWS ...Customizing Data Lakes to Work for Your Enterprise with Sysco (STG340) - AWS ...
Customizing Data Lakes to Work for Your Enterprise with Sysco (STG340) - AWS ...Amazon Web Services
 
Save up to 90% on Big Data and Machine Learning Workloads with Spot Instances...
Save up to 90% on Big Data and Machine Learning Workloads with Spot Instances...Save up to 90% on Big Data and Machine Learning Workloads with Spot Instances...
Save up to 90% on Big Data and Machine Learning Workloads with Spot Instances...Amazon Web Services
 
Best Practices for Building Multi-Region, Active-Active Serverless Applicatio...
Best Practices for Building Multi-Region, Active-Active Serverless Applicatio...Best Practices for Building Multi-Region, Active-Active Serverless Applicatio...
Best Practices for Building Multi-Region, Active-Active Serverless Applicatio...Amazon Web Services
 
Ripping off the Bandage: Re-Architecting Traditional Three-Tier Monoliths to ...
Ripping off the Bandage: Re-Architecting Traditional Three-Tier Monoliths to ...Ripping off the Bandage: Re-Architecting Traditional Three-Tier Monoliths to ...
Ripping off the Bandage: Re-Architecting Traditional Three-Tier Monoliths to ...Amazon Web Services
 
Life of a Code Change to a Tier 1 Service - AWS Online Tech Talks
Life of a Code Change to a Tier 1 Service - AWS Online Tech TalksLife of a Code Change to a Tier 1 Service - AWS Online Tech Talks
Life of a Code Change to a Tier 1 Service - AWS Online Tech TalksAmazon Web Services
 
How Cox Automotive Runs GitHub Enterprise on AWS (ENT356-S) - AWS re:Invent 2018
How Cox Automotive Runs GitHub Enterprise on AWS (ENT356-S) - AWS re:Invent 2018How Cox Automotive Runs GitHub Enterprise on AWS (ENT356-S) - AWS re:Invent 2018
How Cox Automotive Runs GitHub Enterprise on AWS (ENT356-S) - AWS re:Invent 2018Amazon Web Services
 
How AWS Minimizes the Blast Radius of Failures (ARC338) - AWS re:Invent 2018
How AWS Minimizes the Blast Radius of Failures (ARC338) - AWS re:Invent 2018How AWS Minimizes the Blast Radius of Failures (ARC338) - AWS re:Invent 2018
How AWS Minimizes the Blast Radius of Failures (ARC338) - AWS re:Invent 2018Amazon Web Services
 
Industrialize Machine Learning Using CI/CD Techniques (FSV304-i) - AWS re:Inv...
Industrialize Machine Learning Using CI/CD Techniques (FSV304-i) - AWS re:Inv...Industrialize Machine Learning Using CI/CD Techniques (FSV304-i) - AWS re:Inv...
Industrialize Machine Learning Using CI/CD Techniques (FSV304-i) - AWS re:Inv...Amazon Web Services
 
Build a Visual Search Engine Using Amazon SageMaker and AWS Fargate (AIM341) ...
Build a Visual Search Engine Using Amazon SageMaker and AWS Fargate (AIM341) ...Build a Visual Search Engine Using Amazon SageMaker and AWS Fargate (AIM341) ...
Build a Visual Search Engine Using Amazon SageMaker and AWS Fargate (AIM341) ...Amazon Web Services
 
Drive Customer Value with Data-Driven Decisions (GPSBUS206) - AWS re:Invent 2018
Drive Customer Value with Data-Driven Decisions (GPSBUS206) - AWS re:Invent 2018Drive Customer Value with Data-Driven Decisions (GPSBUS206) - AWS re:Invent 2018
Drive Customer Value with Data-Driven Decisions (GPSBUS206) - AWS re:Invent 2018Amazon Web Services
 
Mastering Identity at Every Layer of the Cake (SEC401-R1) - AWS re:Invent 2018
Mastering Identity at Every Layer of the Cake (SEC401-R1) - AWS re:Invent 2018Mastering Identity at Every Layer of the Cake (SEC401-R1) - AWS re:Invent 2018
Mastering Identity at Every Layer of the Cake (SEC401-R1) - AWS re:Invent 2018Amazon Web Services
 
Serverless Stream Processing Tips & Tricks (ANT358) - AWS re:Invent 2018
Serverless Stream Processing Tips & Tricks (ANT358) - AWS re:Invent 2018Serverless Stream Processing Tips & Tricks (ANT358) - AWS re:Invent 2018
Serverless Stream Processing Tips & Tricks (ANT358) - AWS re:Invent 2018Amazon Web Services
 

What's hot (20)

DevOps Concepts for Data Science (DEV347-R2) - AWS re:Invent 2018
DevOps Concepts for Data Science (DEV347-R2) - AWS re:Invent 2018DevOps Concepts for Data Science (DEV347-R2) - AWS re:Invent 2018
DevOps Concepts for Data Science (DEV347-R2) - AWS re:Invent 2018
 
使用 AWS Step Functions 靈活調度 AWS Lambda (Level:200)
使用 AWS Step Functions 靈活調度 AWS Lambda (Level:200)使用 AWS Step Functions 靈活調度 AWS Lambda (Level:200)
使用 AWS Step Functions 靈活調度 AWS Lambda (Level:200)
 
Predictive Scaling for More Responsive Applications (API330) - AWS re:Invent ...
Predictive Scaling for More Responsive Applications (API330) - AWS re:Invent ...Predictive Scaling for More Responsive Applications (API330) - AWS re:Invent ...
Predictive Scaling for More Responsive Applications (API330) - AWS re:Invent ...
 
0x32 Shades of #7f7f7f: The Tension Between Absolutes and Ambiguity in Securi...
0x32 Shades of #7f7f7f: The Tension Between Absolutes and Ambiguity in Securi...0x32 Shades of #7f7f7f: The Tension Between Absolutes and Ambiguity in Securi...
0x32 Shades of #7f7f7f: The Tension Between Absolutes and Ambiguity in Securi...
 
Cloud Ops Engineer: A Day in the Life (ENT312-R1) - AWS re:Invent 2018
Cloud Ops Engineer: A Day in the Life (ENT312-R1) - AWS re:Invent 2018Cloud Ops Engineer: A Day in the Life (ENT312-R1) - AWS re:Invent 2018
Cloud Ops Engineer: A Day in the Life (ENT312-R1) - AWS re:Invent 2018
 
[NEW LAUNCH!] [REPEAT 1] AWS DeepRacer Workshops –a new, fun way to learn rei...
[NEW LAUNCH!] [REPEAT 1] AWS DeepRacer Workshops –a new, fun way to learn rei...[NEW LAUNCH!] [REPEAT 1] AWS DeepRacer Workshops –a new, fun way to learn rei...
[NEW LAUNCH!] [REPEAT 1] AWS DeepRacer Workshops –a new, fun way to learn rei...
 
Create a Virtual Concierge Using Sumerian Hosts (ARV201) - AWS re:Invent 2018
Create a Virtual Concierge Using Sumerian Hosts (ARV201) - AWS re:Invent 2018Create a Virtual Concierge Using Sumerian Hosts (ARV201) - AWS re:Invent 2018
Create a Virtual Concierge Using Sumerian Hosts (ARV201) - AWS re:Invent 2018
 
Choosing the Right Messaging Service for Your Distributed App (API305) - AWS ...
Choosing the Right Messaging Service for Your Distributed App (API305) - AWS ...Choosing the Right Messaging Service for Your Distributed App (API305) - AWS ...
Choosing the Right Messaging Service for Your Distributed App (API305) - AWS ...
 
Customizing Data Lakes to Work for Your Enterprise with Sysco (STG340) - AWS ...
Customizing Data Lakes to Work for Your Enterprise with Sysco (STG340) - AWS ...Customizing Data Lakes to Work for Your Enterprise with Sysco (STG340) - AWS ...
Customizing Data Lakes to Work for Your Enterprise with Sysco (STG340) - AWS ...
 
Save up to 90% on Big Data and Machine Learning Workloads with Spot Instances...
Save up to 90% on Big Data and Machine Learning Workloads with Spot Instances...Save up to 90% on Big Data and Machine Learning Workloads with Spot Instances...
Save up to 90% on Big Data and Machine Learning Workloads with Spot Instances...
 
Best Practices for Building Multi-Region, Active-Active Serverless Applicatio...
Best Practices for Building Multi-Region, Active-Active Serverless Applicatio...Best Practices for Building Multi-Region, Active-Active Serverless Applicatio...
Best Practices for Building Multi-Region, Active-Active Serverless Applicatio...
 
Ripping off the Bandage: Re-Architecting Traditional Three-Tier Monoliths to ...
Ripping off the Bandage: Re-Architecting Traditional Three-Tier Monoliths to ...Ripping off the Bandage: Re-Architecting Traditional Three-Tier Monoliths to ...
Ripping off the Bandage: Re-Architecting Traditional Three-Tier Monoliths to ...
 
Life of a Code Change to a Tier 1 Service - AWS Online Tech Talks
Life of a Code Change to a Tier 1 Service - AWS Online Tech TalksLife of a Code Change to a Tier 1 Service - AWS Online Tech Talks
Life of a Code Change to a Tier 1 Service - AWS Online Tech Talks
 
How Cox Automotive Runs GitHub Enterprise on AWS (ENT356-S) - AWS re:Invent 2018
How Cox Automotive Runs GitHub Enterprise on AWS (ENT356-S) - AWS re:Invent 2018How Cox Automotive Runs GitHub Enterprise on AWS (ENT356-S) - AWS re:Invent 2018
How Cox Automotive Runs GitHub Enterprise on AWS (ENT356-S) - AWS re:Invent 2018
 
How AWS Minimizes the Blast Radius of Failures (ARC338) - AWS re:Invent 2018
How AWS Minimizes the Blast Radius of Failures (ARC338) - AWS re:Invent 2018How AWS Minimizes the Blast Radius of Failures (ARC338) - AWS re:Invent 2018
How AWS Minimizes the Blast Radius of Failures (ARC338) - AWS re:Invent 2018
 
Industrialize Machine Learning Using CI/CD Techniques (FSV304-i) - AWS re:Inv...
Industrialize Machine Learning Using CI/CD Techniques (FSV304-i) - AWS re:Inv...Industrialize Machine Learning Using CI/CD Techniques (FSV304-i) - AWS re:Inv...
Industrialize Machine Learning Using CI/CD Techniques (FSV304-i) - AWS re:Inv...
 
Build a Visual Search Engine Using Amazon SageMaker and AWS Fargate (AIM341) ...
Build a Visual Search Engine Using Amazon SageMaker and AWS Fargate (AIM341) ...Build a Visual Search Engine Using Amazon SageMaker and AWS Fargate (AIM341) ...
Build a Visual Search Engine Using Amazon SageMaker and AWS Fargate (AIM341) ...
 
Drive Customer Value with Data-Driven Decisions (GPSBUS206) - AWS re:Invent 2018
Drive Customer Value with Data-Driven Decisions (GPSBUS206) - AWS re:Invent 2018Drive Customer Value with Data-Driven Decisions (GPSBUS206) - AWS re:Invent 2018
Drive Customer Value with Data-Driven Decisions (GPSBUS206) - AWS re:Invent 2018
 
Mastering Identity at Every Layer of the Cake (SEC401-R1) - AWS re:Invent 2018
Mastering Identity at Every Layer of the Cake (SEC401-R1) - AWS re:Invent 2018Mastering Identity at Every Layer of the Cake (SEC401-R1) - AWS re:Invent 2018
Mastering Identity at Every Layer of the Cake (SEC401-R1) - AWS re:Invent 2018
 
Serverless Stream Processing Tips & Tricks (ANT358) - AWS re:Invent 2018
Serverless Stream Processing Tips & Tricks (ANT358) - AWS re:Invent 2018Serverless Stream Processing Tips & Tricks (ANT358) - AWS re:Invent 2018
Serverless Stream Processing Tips & Tricks (ANT358) - AWS re:Invent 2018
 

Similar to Applying the Twelve-Factor App Methodology to Serverless Applications (SRV218-R1) - AWS re:Invent 2018

Building Microservices with the 12 Factor App Pattern on AWS - Tony Pujals
Building Microservices with the 12 Factor App Pattern on AWS - Tony PujalsBuilding Microservices with the 12 Factor App Pattern on AWS - Tony Pujals
Building Microservices with the 12 Factor App Pattern on AWS - Tony PujalsAmazon Web Services
 
Building Microservices with the 12 Factor App Pattern on AWS
Building Microservices with the 12 Factor App Pattern on AWSBuilding Microservices with the 12 Factor App Pattern on AWS
Building Microservices with the 12 Factor App Pattern on AWSAmazon Web Services
 
Building Microservices with the Twelve-Factor App Pattern - SRV346 - Chicago ...
Building Microservices with the Twelve-Factor App Pattern - SRV346 - Chicago ...Building Microservices with the Twelve-Factor App Pattern - SRV346 - Chicago ...
Building Microservices with the Twelve-Factor App Pattern - SRV346 - Chicago ...Amazon Web Services
 
以 12 要素應用模式在 AWS 上構建微服務
以 12 要素應用模式在 AWS 上構建微服務以 12 要素應用模式在 AWS 上構建微服務
以 12 要素應用模式在 AWS 上構建微服務Amazon Web Services
 
Building Microservices with the 12 Factor App Pattern on AWS.pdf
Building Microservices with the 12 Factor App Pattern on AWS.pdfBuilding Microservices with the 12 Factor App Pattern on AWS.pdf
Building Microservices with the 12 Factor App Pattern on AWS.pdfAmazon Web Services
 
Serverless best practices plus design principles 20m version
Serverless   best practices plus design principles 20m versionServerless   best practices plus design principles 20m version
Serverless best practices plus design principles 20m versionHeitor Lessa
 
[NEW LAUNCH!] Introducing AWS App Mesh – service mesh on AWS (CON367) - AWS r...
[NEW LAUNCH!] Introducing AWS App Mesh – service mesh on AWS (CON367) - AWS r...[NEW LAUNCH!] Introducing AWS App Mesh – service mesh on AWS (CON367) - AWS r...
[NEW LAUNCH!] Introducing AWS App Mesh – service mesh on AWS (CON367) - AWS r...Amazon Web Services
 
Building Microservices with the Twelve Factor App Pattern on AWS
Building Microservices with the Twelve Factor App Pattern on AWSBuilding Microservices with the Twelve Factor App Pattern on AWS
Building Microservices with the Twelve Factor App Pattern on AWSAmazon Web Services
 
Making Hybrid Work for You: Getting into the Cloud Fast (GPSTEC308) - AWS re:...
Making Hybrid Work for You: Getting into the Cloud Fast (GPSTEC308) - AWS re:...Making Hybrid Work for You: Getting into the Cloud Fast (GPSTEC308) - AWS re:...
Making Hybrid Work for You: Getting into the Cloud Fast (GPSTEC308) - AWS re:...Amazon Web Services
 
Serverless and DevOps
Serverless and DevOpsServerless and DevOps
Serverless and DevOpsChris Munns
 
Resiliency and Availability Design Patterns for the Cloud
Resiliency and Availability Design Patterns for the CloudResiliency and Availability Design Patterns for the Cloud
Resiliency and Availability Design Patterns for the CloudAmazon Web Services
 
AWS Initiate Day Manchester 2019 – Moving to DevOps the Amazon Way
AWS Initiate Day Manchester 2019 – Moving to DevOps the Amazon WayAWS Initiate Day Manchester 2019 – Moving to DevOps the Amazon Way
AWS Initiate Day Manchester 2019 – Moving to DevOps the Amazon WayAmazon Web Services
 
Five Ways Application Insights Impact Migration Success (DEV207-S) - AWS re:I...
Five Ways Application Insights Impact Migration Success (DEV207-S) - AWS re:I...Five Ways Application Insights Impact Migration Success (DEV207-S) - AWS re:I...
Five Ways Application Insights Impact Migration Success (DEV207-S) - AWS re:I...Amazon Web Services
 
Operating Your Serverless API in Production at Scale - AWS Online Tech Talks
Operating Your Serverless API in Production at Scale - AWS Online Tech TalksOperating Your Serverless API in Production at Scale - AWS Online Tech Talks
Operating Your Serverless API in Production at Scale - AWS Online Tech TalksAmazon Web Services
 

Similar to Applying the Twelve-Factor App Methodology to Serverless Applications (SRV218-R1) - AWS re:Invent 2018 (20)

Building Microservices with the 12 Factor App Pattern on AWS - Tony Pujals
Building Microservices with the 12 Factor App Pattern on AWS - Tony PujalsBuilding Microservices with the 12 Factor App Pattern on AWS - Tony Pujals
Building Microservices with the 12 Factor App Pattern on AWS - Tony Pujals
 
Building Microservices with the 12 Factor App Pattern on AWS
Building Microservices with the 12 Factor App Pattern on AWSBuilding Microservices with the 12 Factor App Pattern on AWS
Building Microservices with the 12 Factor App Pattern on AWS
 
Microservices for Startups
Microservices for StartupsMicroservices for Startups
Microservices for Startups
 
Building Microservices with the Twelve-Factor App Pattern - SRV346 - Chicago ...
Building Microservices with the Twelve-Factor App Pattern - SRV346 - Chicago ...Building Microservices with the Twelve-Factor App Pattern - SRV346 - Chicago ...
Building Microservices with the Twelve-Factor App Pattern - SRV346 - Chicago ...
 
以 12 要素應用模式在 AWS 上構建微服務
以 12 要素應用模式在 AWS 上構建微服務以 12 要素應用模式在 AWS 上構建微服務
以 12 要素應用模式在 AWS 上構建微服務
 
Building Microservices with the 12 Factor App Pattern on AWS.pdf
Building Microservices with the 12 Factor App Pattern on AWS.pdfBuilding Microservices with the 12 Factor App Pattern on AWS.pdf
Building Microservices with the 12 Factor App Pattern on AWS.pdf
 
Serverless best practices plus design principles 20m version
Serverless   best practices plus design principles 20m versionServerless   best practices plus design principles 20m version
Serverless best practices plus design principles 20m version
 
[NEW LAUNCH!] Introducing AWS App Mesh – service mesh on AWS (CON367) - AWS r...
[NEW LAUNCH!] Introducing AWS App Mesh – service mesh on AWS (CON367) - AWS r...[NEW LAUNCH!] Introducing AWS App Mesh – service mesh on AWS (CON367) - AWS r...
[NEW LAUNCH!] Introducing AWS App Mesh – service mesh on AWS (CON367) - AWS r...
 
Building Microservices with the Twelve Factor App Pattern on AWS
Building Microservices with the Twelve Factor App Pattern on AWSBuilding Microservices with the Twelve Factor App Pattern on AWS
Building Microservices with the Twelve Factor App Pattern on AWS
 
Moving to DevOps
Moving to DevOpsMoving to DevOps
Moving to DevOps
 
Making Hybrid Work for You: Getting into the Cloud Fast (GPSTEC308) - AWS re:...
Making Hybrid Work for You: Getting into the Cloud Fast (GPSTEC308) - AWS re:...Making Hybrid Work for You: Getting into the Cloud Fast (GPSTEC308) - AWS re:...
Making Hybrid Work for You: Getting into the Cloud Fast (GPSTEC308) - AWS re:...
 
Moving to DevOps the Amazon Way
Moving to DevOps the Amazon WayMoving to DevOps the Amazon Way
Moving to DevOps the Amazon Way
 
Serverless and DevOps
Serverless and DevOpsServerless and DevOps
Serverless and DevOps
 
Resiliency and Availability Design Patterns for the Cloud
Resiliency and Availability Design Patterns for the CloudResiliency and Availability Design Patterns for the Cloud
Resiliency and Availability Design Patterns for the Cloud
 
Cheat your Way into the Cloud
Cheat your Way into the CloudCheat your Way into the Cloud
Cheat your Way into the Cloud
 
Serverless for Developers
Serverless for DevelopersServerless for Developers
Serverless for Developers
 
AWS Initiate Day Manchester 2019 – Moving to DevOps the Amazon Way
AWS Initiate Day Manchester 2019 – Moving to DevOps the Amazon WayAWS Initiate Day Manchester 2019 – Moving to DevOps the Amazon Way
AWS Initiate Day Manchester 2019 – Moving to DevOps the Amazon Way
 
Five Ways Application Insights Impact Migration Success (DEV207-S) - AWS re:I...
Five Ways Application Insights Impact Migration Success (DEV207-S) - AWS re:I...Five Ways Application Insights Impact Migration Success (DEV207-S) - AWS re:I...
Five Ways Application Insights Impact Migration Success (DEV207-S) - AWS re:I...
 
Operating Your Serverless API in Production at Scale - AWS Online Tech Talks
Operating Your Serverless API in Production at Scale - AWS Online Tech TalksOperating Your Serverless API in Production at Scale - AWS Online Tech Talks
Operating Your Serverless API in Production at Scale - AWS Online Tech Talks
 
DevOps: The Amazon Story
DevOps: The Amazon StoryDevOps: The Amazon Story
DevOps: The Amazon Story
 

More from Amazon Web Services

Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...Amazon Web Services
 
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...Amazon Web Services
 
Esegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS FargateEsegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS FargateAmazon Web Services
 
Costruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWSCostruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWSAmazon Web Services
 
Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot Amazon Web Services
 
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...Amazon Web Services
 
OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...Amazon Web Services
 
Microsoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows WorkloadsMicrosoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows WorkloadsAmazon Web Services
 
Database Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatareDatabase Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatareAmazon Web Services
 
Crea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJSCrea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJSAmazon Web Services
 
API moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e webAPI moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e webAmazon Web Services
 
Database Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatareDatabase Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatareAmazon Web Services
 
Tools for building your MVP on AWS
Tools for building your MVP on AWSTools for building your MVP on AWS
Tools for building your MVP on AWSAmazon Web Services
 
How to Build a Winning Pitch Deck
How to Build a Winning Pitch DeckHow to Build a Winning Pitch Deck
How to Build a Winning Pitch DeckAmazon Web Services
 
Building a web application without servers
Building a web application without serversBuilding a web application without servers
Building a web application without serversAmazon Web Services
 
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...Amazon Web Services
 
Introduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container ServiceIntroduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container ServiceAmazon Web Services
 

More from Amazon Web Services (20)

Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
 
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
 
Esegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS FargateEsegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS Fargate
 
Costruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWSCostruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWS
 
Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot
 
Open banking as a service
Open banking as a serviceOpen banking as a service
Open banking as a service
 
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
 
OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...
 
Microsoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows WorkloadsMicrosoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows Workloads
 
Computer Vision con AWS
Computer Vision con AWSComputer Vision con AWS
Computer Vision con AWS
 
Database Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatareDatabase Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatare
 
Crea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJSCrea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJS
 
API moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e webAPI moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e web
 
Database Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatareDatabase Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatare
 
Tools for building your MVP on AWS
Tools for building your MVP on AWSTools for building your MVP on AWS
Tools for building your MVP on AWS
 
How to Build a Winning Pitch Deck
How to Build a Winning Pitch DeckHow to Build a Winning Pitch Deck
How to Build a Winning Pitch Deck
 
Building a web application without servers
Building a web application without serversBuilding a web application without servers
Building a web application without servers
 
Fundraising Essentials
Fundraising EssentialsFundraising Essentials
Fundraising Essentials
 
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
 
Introduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container ServiceIntroduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container Service
 

Applying the Twelve-Factor App Methodology to Serverless Applications (SRV218-R1) - AWS re:Invent 2018

  • 1.
  • 2. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Applying the Twelve-Factor App Methodology to Serverless Applications Rory Jacob Software Engineer AWS Lambda S R V 2 1 8 James Hood Sr. Software Engineer AWS Serverless Applications
  • 3. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. About Us
  • 4. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Agenda What is the Twelve-Factor App Methodology? How does this apply to Serverless Applications? Q&A
  • 5. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
  • 6. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Twelve-Factor App Methodology • Developed by developers at Heroku and first presented in 2011 by Adam Wiggins • Best practices for building modern, cloud-native applications • Declarative • Clean Contract • Deployments • Minimize divergence in environments • Scale up
  • 7. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Twelve-Factor App Methodology • Broken down into twelve separate categories 1. Codebase 2. Dependencies 3. Config 4. Backing services 5. Build, release, run 6. Processes 7. Port Binding 8. Concurrency 9. Disposability 10. Dev/prod parity 11. Logs 12. Admin processes
  • 8. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Twelve-Factor App Methodology • Broken down into twelve separate categories 1. Codebase 2. Dependencies 3. Config 4. Backing services 5. Build, release, run 6. Processes 7. Port Binding 8. Concurrency 9. Disposability 10. Dev/prod parity 11. Logs 12. Admin processes
  • 9. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Twelve-Factor App Methodology • Broken down into twelve separate categories 1. Codebase 2. Dependencies 3. Config 4. Backing services 5. Build, release, run 6. Processes 7. Port Binding 8. Concurrency 9. Disposability 10. Dev/prod parity 11. Logs 12. Admin processes
  • 10. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
  • 11. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
  • 12. “Store config in the environment” The Twelve Factor App
  • 13. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. 3. Config const tableName = “beta-table” const endpoint = “beta.endpoint.com” func Handler(request string) (string, error) { // do some work } func main() { lambda.Start(Handler) }
  • 14. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. 3. Config
  • 15. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. 3. Config Env Vars: Endpoint: beta.endpoint.com beta-table
  • 16. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. 3. Config Env Vars: Endpoint: beta.endpoint.com beta-table
  • 17. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. 3. Config Env Vars: Endpoint: beta.endpoint.com beta-table Env Vars: Endpoint: prod.endpoint.com prod-table
  • 18. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. 3. Config var tableName string func init() { tableName = os.Getenv(“TableName”) } func Handler(request string) (string, error) { // do some work } func main() { lambda.Start(Handler) }
  • 19. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
  • 20. “Treat backing services as attached resources” The Twelve Factor App
  • 21. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. 4. Backing Services
  • 22. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
  • 23. “Scale out via the process model” The Twelve Factor App
  • 24. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. 8. Concurrency
  • 25. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. 8. Concurrency
  • 26. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. 8. Concurrency
  • 27. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. 8. Concurrency
  • 28. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. 8. Concurrency
  • 29. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. 8. Concurrency
  • 30. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. 8. Concurrency
  • 31. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
  • 32. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Twelve-Factor App Methodology 1. Codebase 2. Dependencies 3. Config 4. Backing services 5. Build, release, run 6. Processes 7. Port Binding 8. Concurrency 9. Disposability 10. Dev/prod parity 11. Logs 12. Admin processes
  • 33. Thank you! © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. James Hood jahood@amazon.com Rory Jacob roryj@amazon.com
  • 34. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.