SlideShare a Scribd company logo
1 of 99
Download to read offline
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Bob Yeh, Solutions Architect
2018-09-27
Building Microservices with the 12
Factor App Pattern on AWS
AWS Webinar – Taipei
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Sponsor
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
12 Factor App
Principles
Microservices
Principles
Great, Scalable
Architecture
+ =
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
12 Factor Application:
01: Codebase
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Code
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Code Version Control
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Code Deployed VersionVersion Control
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Staging / QA
Production
Dev #1
Dev #2
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
12 Factor Application:
02: Dependencies
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Dependencies
Binaries
Code
Application
Bundle
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Dependency Declaration: Node.js
package.json
npm install
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Dependency Declaration: Python
requirements.txt
pip install
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Dependency Declaration:
Ruby
Gemfile
bundle install
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Dependency Isolation
Never depend on the host to
have your dependency.
Application deployments
should carry all their
dependencies with them.
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Dependencies
Binaries
Code
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Dependency Declaration & Isolation:
Docker
docker build
Dockerfile
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Development
Production
docker run
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
12 Factor Application:
03: Config
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Development
Configuration
Production
Configuration
Development
Production
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Development
Configuration
Production
Configuration
Development
Production
ANTIPATTERN
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Development
Production
Same container deployed to both environments. Configuration is
part of the environment on the host.
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
At runtime the container gets config from the environment.
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Application code pulls from the environment
Environment is customized when Docker runs a container
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
12 Factor Application:
04: Backing Services
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
AWS S3
PostgreSQLapp1
Host
app2 3rd party service
Treat local services just like
remote third party ones
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
PostgreSQLapp1
app2
postgres.mycompany.com
app2.mycompany.com Load balancer
Use CNAMES for maximum
flexibility and re-configurability
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
12 Factor Application:
05: Build, Release, Run
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Dependencies
Binaries
Code
Build
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Release
Config
+ =
ReleaseBuild Artifact
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Amazon Elastic Container Service
Config
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Run
Task Definition
Release v1.0.0
Task Definition
Release v1.0.1
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
12 Factor Application:
06: Stateless Processes
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Stateful container stores state in local disk or local memory. Workload
ends up tied to a specific host that has state data.
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Stateful container stores state in local disk or local memory. Workload
ends up tied to a specific host that has state data.
ANTIPATTERN
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Database
Durable store of truth.
MySQL, PostgreSQL,
MongoDB, DynamoDB
Cache
Fast, temporary
state store.
redis, memcached
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
12 Factor Application:
07: Port Binding
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Port 32456
Port 32457
Port 32458
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
12 Factor Application:
08: Concurrency
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
WebAPI Worker
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Worker
Web
API
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Hosts
Processes
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Hosts
Processes
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Large Host =
More Concurrent Processes
Small Host =
Fewer Concurrent Processes
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
12 Factor Application:
09: Disposability
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Responsive Graceful
Shutdown
Fast Launch
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Fast Launch
Minimize the startup time of processes:
- Scale up faster in response to spikes
- Ability to move processes to another host as needed
- Replace crashed processes faster
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Responsive, Graceful
Shutdown
Should respond to SIGTERM by shutting down gracefully
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
12 Factor Application:
10: Dev/Prod Parity
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Staging / QA
Production
Dev #1
Dev #2
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Staging / QA
Production
Dev #1
Dev #2
Local Application Remote
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
12 Factor Application:
11: Logs
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Treat logs as an event stream,
and keep the logic for routing
and processing logs separate
from the application itself.
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Logging Library
Application Code
Process
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Logging Library
Application Code
Process
Some logs get lost
if they haven’t fully
flushed
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Logging Library
Application Code
Process
Some logs get lost
if they haven’t fully
flushed
ANTIPATTERN
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Logging Library
Application Code
Process
Logs go to an agent
which handles
exporting them off
the host
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Logging Library
Application Code
Process
Logs still reach
agent, and still
make it into ELK
stack
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Containerized code writes to stdout
Docker connects container’s stdout to
a log driver
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
12 Factor Application:
12: Admin Processes
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Admin / management processes are
inevitable:
- Migrate database
- Repair some broken data
- Once a week move database records
older than X to cold storage
- Every day email a report to this person
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Run admin processes
just like other
processes.
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Microservices:
Componentization
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Each component is a 12 factor application.
Fast Launch
Dependencies Configuration Port BindingCodebase
ConcurrentGraceful stop Log stream
Stateless
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Microservices:
Organized around capabilities
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Identify the capabilities of the platform
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Each major capability of the platform becomes a
component that is its own 12 factor app
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Microservices:
Decentralized Governance
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Microservices:
Products Not Projects
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Products grow over time
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Microservices are an
ecosystem of connected
products that can be at
different stages of growth
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Don’t create throwaway microservices that become
unmaintained and break the ecosystem.
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Microservices:
Smart endpoints, Dumb pipes
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Central bus for communication
Bottlenecks performance and
feature development
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Central bus for communication
Bottlenecks performance and
feature development
ANTIPATTERN
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Decentralization
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Example: User Signup
Signup API
HTTP
User Metadata
Service
Password
Service
Email Verification
Service
Friend Discovery
Service
Asynchronous
Broadcast
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Event Producers SubscriptionsEvent Topics Queues Event Consumers
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
AWS Managed Services for Microservices Communication
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Microservices:
Infrastructure Automation
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Automate the container build
process:
Jenkins
AWS CodeBuild
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Automate the provisioning of the
infrastructure that hosts microservice
containers:
Automate the placement of containerized
service processes onto hosts:
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Developers Version Control
Repository
Test & Deployment
Manager
Image Build Service
Infrastructure
Provisioning
Container Scheduling &
Orchestration
Container Image
Repository
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Developers AWS CodeCommit
AWS CodePipeline
AWS CodeBuild
AWS CloudFormation
Amazon ECS
Amazon ECR
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Developers AWS CodeCommit
AWS CodePipeline
AWS CodeBuild
Amazon ECS AWS Fargate
Amazon ECR
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Developers Github Jenkins
Terraform
Container Scheduling &
Orchestration with
Kubernetes
Container Image
Repository
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Summary
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
12 Factor Application Principals
Fast Launch
Dependencies Configuration Port BindingCodebase
ConcurrentGraceful stop Log stream
Stateless
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Microservices Principals
Componentization Product
Focused
Automation Decentralization
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
More resources
• aws.amazon.com/microservices
• aws.amazon.com/whitepapers
• Running Containerized Microservices on AWS
• Microservices on AWS
• aws.amazon.com/getting-started/container-
microservices-tutorial
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Follow Us on Facebook for More Information
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
https://aws.amazon.com/tw/webinars/tw-webinar-series/
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Remember to complete
your evaluations!
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Thank you!

More Related Content

What's hot

Containerize Legacy .NET Framework Web Apps for Cloud Migration (WIN305) - AW...
Containerize Legacy .NET Framework Web Apps for Cloud Migration (WIN305) - AW...Containerize Legacy .NET Framework Web Apps for Cloud Migration (WIN305) - AW...
Containerize Legacy .NET Framework Web Apps for Cloud Migration (WIN305) - AW...Amazon Web Services
 
Operational Excellence with Containerized Workloads Using AWS Fargate (CON320...
Operational Excellence with Containerized Workloads Using AWS Fargate (CON320...Operational Excellence with Containerized Workloads Using AWS Fargate (CON320...
Operational Excellence with Containerized Workloads Using AWS Fargate (CON320...Amazon Web Services
 
Runtime Security across Kubernetes and AWS Fargate (CON317-R1) - AWS re:Inven...
Runtime Security across Kubernetes and AWS Fargate (CON317-R1) - AWS re:Inven...Runtime Security across Kubernetes and AWS Fargate (CON317-R1) - AWS re:Inven...
Runtime Security across Kubernetes and AWS Fargate (CON317-R1) - AWS re:Inven...Amazon Web Services
 
Building Blockchain Platforms Beyond a Proof of Concept (GPSTEC317) - AWS re:...
Building Blockchain Platforms Beyond a Proof of Concept (GPSTEC317) - AWS re:...Building Blockchain Platforms Beyond a Proof of Concept (GPSTEC317) - AWS re:...
Building Blockchain Platforms Beyond a Proof of Concept (GPSTEC317) - AWS re:...Amazon Web Services
 
Fully Realizing the Microservices Vision with Service Mesh (DEV312-S) - AWS r...
Fully Realizing the Microservices Vision with Service Mesh (DEV312-S) - AWS r...Fully Realizing the Microservices Vision with Service Mesh (DEV312-S) - AWS r...
Fully Realizing the Microservices Vision with Service Mesh (DEV312-S) - AWS r...Amazon Web Services
 
How Dow Jones Uses AWS to Enable Innovation and New Engineering Work (CTD316)...
How Dow Jones Uses AWS to Enable Innovation and New Engineering Work (CTD316)...How Dow Jones Uses AWS to Enable Innovation and New Engineering Work (CTD316)...
How Dow Jones Uses AWS to Enable Innovation and New Engineering Work (CTD316)...Amazon Web Services
 
Deploying Microservices using AWS Fargate (CON315-R1) - AWS re:Invent 2018
Deploying Microservices using AWS Fargate (CON315-R1) - AWS re:Invent 2018Deploying Microservices using AWS Fargate (CON315-R1) - AWS re:Invent 2018
Deploying Microservices using AWS Fargate (CON315-R1) - AWS re:Invent 2018Amazon Web Services
 
Running Serverless at The Edge (CTD302) - AWS re:Invent 2018
Running Serverless at The Edge (CTD302) - AWS re:Invent 2018Running Serverless at The Edge (CTD302) - AWS re:Invent 2018
Running Serverless at The Edge (CTD302) - AWS re:Invent 2018Amazon Web Services
 
Application Portability with Kubernetes (CMP310-S) - AWS re:Invent 2018
Application Portability with Kubernetes (CMP310-S) - AWS re:Invent 2018Application Portability with Kubernetes (CMP310-S) - AWS re:Invent 2018
Application Portability with Kubernetes (CMP310-S) - AWS re:Invent 2018Amazon Web Services
 
Improve Productivity with Continuous Integration & Delivery
Improve Productivity with Continuous Integration & DeliveryImprove Productivity with Continuous Integration & Delivery
Improve Productivity with Continuous Integration & DeliveryAmazon Web Services
 
AWS Storage Leadership Session: What's New in Amazon S3, Amazon EFS, Amazon E...
AWS Storage Leadership Session: What's New in Amazon S3, Amazon EFS, Amazon E...AWS Storage Leadership Session: What's New in Amazon S3, Amazon EFS, Amazon E...
AWS Storage Leadership Session: What's New in Amazon S3, Amazon EFS, Amazon E...Amazon Web Services
 
Operational Excellence for Identity & Access Management (SEC334) - AWS re:Inv...
Operational Excellence for Identity & Access Management (SEC334) - AWS re:Inv...Operational Excellence for Identity & Access Management (SEC334) - AWS re:Inv...
Operational Excellence for Identity & Access Management (SEC334) - AWS re:Inv...Amazon Web Services
 
Security & Compliance in the Cloud
Security & Compliance in the CloudSecurity & Compliance in the Cloud
Security & Compliance in the CloudAmazon Web Services
 
Introduction to React Native - Nader Dabit
Introduction to React Native - Nader DabitIntroduction to React Native - Nader Dabit
Introduction to React Native - Nader DabitAmazon Web Services
 
How Reddit Scales to 1B+ Video Views a Month Using AWS (CTD320) - AWS re:Inve...
How Reddit Scales to 1B+ Video Views a Month Using AWS (CTD320) - AWS re:Inve...How Reddit Scales to 1B+ Video Views a Month Using AWS (CTD320) - AWS re:Inve...
How Reddit Scales to 1B+ Video Views a Month Using AWS (CTD320) - AWS re:Inve...Amazon Web Services
 
Adding the Sec to Your DevOps Pipelines (SEC332-R1) - AWS re:Invent 2018
Adding the Sec to Your DevOps Pipelines (SEC332-R1) - AWS re:Invent 2018Adding the Sec to Your DevOps Pipelines (SEC332-R1) - AWS re:Invent 2018
Adding the Sec to Your DevOps Pipelines (SEC332-R1) - AWS re:Invent 2018Amazon Web Services
 
Amazon CI/CD Practices for Software Development Teams - SRV320 - Chicago AWS ...
Amazon CI/CD Practices for Software Development Teams - SRV320 - Chicago AWS ...Amazon CI/CD Practices for Software Development Teams - SRV320 - Chicago AWS ...
Amazon CI/CD Practices for Software Development Teams - SRV320 - Chicago AWS ...Amazon Web Services
 
Capacity Management Made Easy with Amazon EC2 Auto Scaling (CMP377) - AWS re:...
Capacity Management Made Easy with Amazon EC2 Auto Scaling (CMP377) - AWS re:...Capacity Management Made Easy with Amazon EC2 Auto Scaling (CMP377) - AWS re:...
Capacity Management Made Easy with Amazon EC2 Auto Scaling (CMP377) - AWS re:...Amazon Web Services
 
CI/CD Pipeline Security: Advanced Continuous Delivery Best Practices: Securit...
CI/CD Pipeline Security: Advanced Continuous Delivery Best Practices: Securit...CI/CD Pipeline Security: Advanced Continuous Delivery Best Practices: Securit...
CI/CD Pipeline Security: Advanced Continuous Delivery Best Practices: Securit...Amazon Web Services
 
Modernizing Windows Applications with Containers (WIN331) - AWS re:Invent 2018
Modernizing Windows Applications with Containers (WIN331) - AWS re:Invent 2018Modernizing Windows Applications with Containers (WIN331) - AWS re:Invent 2018
Modernizing Windows Applications with Containers (WIN331) - AWS re:Invent 2018Amazon Web Services
 

What's hot (20)

Containerize Legacy .NET Framework Web Apps for Cloud Migration (WIN305) - AW...
Containerize Legacy .NET Framework Web Apps for Cloud Migration (WIN305) - AW...Containerize Legacy .NET Framework Web Apps for Cloud Migration (WIN305) - AW...
Containerize Legacy .NET Framework Web Apps for Cloud Migration (WIN305) - AW...
 
Operational Excellence with Containerized Workloads Using AWS Fargate (CON320...
Operational Excellence with Containerized Workloads Using AWS Fargate (CON320...Operational Excellence with Containerized Workloads Using AWS Fargate (CON320...
Operational Excellence with Containerized Workloads Using AWS Fargate (CON320...
 
Runtime Security across Kubernetes and AWS Fargate (CON317-R1) - AWS re:Inven...
Runtime Security across Kubernetes and AWS Fargate (CON317-R1) - AWS re:Inven...Runtime Security across Kubernetes and AWS Fargate (CON317-R1) - AWS re:Inven...
Runtime Security across Kubernetes and AWS Fargate (CON317-R1) - AWS re:Inven...
 
Building Blockchain Platforms Beyond a Proof of Concept (GPSTEC317) - AWS re:...
Building Blockchain Platforms Beyond a Proof of Concept (GPSTEC317) - AWS re:...Building Blockchain Platforms Beyond a Proof of Concept (GPSTEC317) - AWS re:...
Building Blockchain Platforms Beyond a Proof of Concept (GPSTEC317) - AWS re:...
 
Fully Realizing the Microservices Vision with Service Mesh (DEV312-S) - AWS r...
Fully Realizing the Microservices Vision with Service Mesh (DEV312-S) - AWS r...Fully Realizing the Microservices Vision with Service Mesh (DEV312-S) - AWS r...
Fully Realizing the Microservices Vision with Service Mesh (DEV312-S) - AWS r...
 
How Dow Jones Uses AWS to Enable Innovation and New Engineering Work (CTD316)...
How Dow Jones Uses AWS to Enable Innovation and New Engineering Work (CTD316)...How Dow Jones Uses AWS to Enable Innovation and New Engineering Work (CTD316)...
How Dow Jones Uses AWS to Enable Innovation and New Engineering Work (CTD316)...
 
Deploying Microservices using AWS Fargate (CON315-R1) - AWS re:Invent 2018
Deploying Microservices using AWS Fargate (CON315-R1) - AWS re:Invent 2018Deploying Microservices using AWS Fargate (CON315-R1) - AWS re:Invent 2018
Deploying Microservices using AWS Fargate (CON315-R1) - AWS re:Invent 2018
 
Running Serverless at The Edge (CTD302) - AWS re:Invent 2018
Running Serverless at The Edge (CTD302) - AWS re:Invent 2018Running Serverless at The Edge (CTD302) - AWS re:Invent 2018
Running Serverless at The Edge (CTD302) - AWS re:Invent 2018
 
Application Portability with Kubernetes (CMP310-S) - AWS re:Invent 2018
Application Portability with Kubernetes (CMP310-S) - AWS re:Invent 2018Application Portability with Kubernetes (CMP310-S) - AWS re:Invent 2018
Application Portability with Kubernetes (CMP310-S) - AWS re:Invent 2018
 
Improve Productivity with Continuous Integration & Delivery
Improve Productivity with Continuous Integration & DeliveryImprove Productivity with Continuous Integration & Delivery
Improve Productivity with Continuous Integration & Delivery
 
AWS Storage Leadership Session: What's New in Amazon S3, Amazon EFS, Amazon E...
AWS Storage Leadership Session: What's New in Amazon S3, Amazon EFS, Amazon E...AWS Storage Leadership Session: What's New in Amazon S3, Amazon EFS, Amazon E...
AWS Storage Leadership Session: What's New in Amazon S3, Amazon EFS, Amazon E...
 
Operational Excellence for Identity & Access Management (SEC334) - AWS re:Inv...
Operational Excellence for Identity & Access Management (SEC334) - AWS re:Inv...Operational Excellence for Identity & Access Management (SEC334) - AWS re:Inv...
Operational Excellence for Identity & Access Management (SEC334) - AWS re:Inv...
 
Security & Compliance in the Cloud
Security & Compliance in the CloudSecurity & Compliance in the Cloud
Security & Compliance in the Cloud
 
Introduction to React Native - Nader Dabit
Introduction to React Native - Nader DabitIntroduction to React Native - Nader Dabit
Introduction to React Native - Nader Dabit
 
How Reddit Scales to 1B+ Video Views a Month Using AWS (CTD320) - AWS re:Inve...
How Reddit Scales to 1B+ Video Views a Month Using AWS (CTD320) - AWS re:Inve...How Reddit Scales to 1B+ Video Views a Month Using AWS (CTD320) - AWS re:Inve...
How Reddit Scales to 1B+ Video Views a Month Using AWS (CTD320) - AWS re:Inve...
 
Adding the Sec to Your DevOps Pipelines (SEC332-R1) - AWS re:Invent 2018
Adding the Sec to Your DevOps Pipelines (SEC332-R1) - AWS re:Invent 2018Adding the Sec to Your DevOps Pipelines (SEC332-R1) - AWS re:Invent 2018
Adding the Sec to Your DevOps Pipelines (SEC332-R1) - AWS re:Invent 2018
 
Amazon CI/CD Practices for Software Development Teams - SRV320 - Chicago AWS ...
Amazon CI/CD Practices for Software Development Teams - SRV320 - Chicago AWS ...Amazon CI/CD Practices for Software Development Teams - SRV320 - Chicago AWS ...
Amazon CI/CD Practices for Software Development Teams - SRV320 - Chicago AWS ...
 
Capacity Management Made Easy with Amazon EC2 Auto Scaling (CMP377) - AWS re:...
Capacity Management Made Easy with Amazon EC2 Auto Scaling (CMP377) - AWS re:...Capacity Management Made Easy with Amazon EC2 Auto Scaling (CMP377) - AWS re:...
Capacity Management Made Easy with Amazon EC2 Auto Scaling (CMP377) - AWS re:...
 
CI/CD Pipeline Security: Advanced Continuous Delivery Best Practices: Securit...
CI/CD Pipeline Security: Advanced Continuous Delivery Best Practices: Securit...CI/CD Pipeline Security: Advanced Continuous Delivery Best Practices: Securit...
CI/CD Pipeline Security: Advanced Continuous Delivery Best Practices: Securit...
 
Modernizing Windows Applications with Containers (WIN331) - AWS re:Invent 2018
Modernizing Windows Applications with Containers (WIN331) - AWS re:Invent 2018Modernizing Windows Applications with Containers (WIN331) - AWS re:Invent 2018
Modernizing Windows Applications with Containers (WIN331) - AWS re:Invent 2018
 

Similar to 以 12 要素應用模式在 AWS 上構建微服務

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
 
Applying the Twelve-Factor App Methodology to Serverless Applications (SRV218...
Applying the Twelve-Factor App Methodology to Serverless Applications (SRV218...Applying the Twelve-Factor App Methodology to Serverless Applications (SRV218...
Applying the Twelve-Factor App Methodology to Serverless Applications (SRV218...Amazon 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
 
Making Headless Drupal Serverless
Making Headless Drupal ServerlessMaking Headless Drupal Serverless
Making Headless Drupal ServerlessAmazon Web Services
 
More Containers Less Operations
More Containers Less OperationsMore Containers Less Operations
More Containers Less OperationsDonnie Prakoso
 
Building with Containers on AWS by Tony Pujals .pdf
Building with Containers on AWS by Tony Pujals .pdfBuilding with Containers on AWS by Tony Pujals .pdf
Building with Containers on AWS by Tony Pujals .pdfAmazon Web Services
 
Developing Serverless Application on AWS
Developing Serverless Application on AWSDeveloping Serverless Application on AWS
Developing Serverless Application on AWSAmazon Web Services
 
Introduction to Serverless on AWS
Introduction to Serverless on AWSIntroduction to Serverless on AWS
Introduction to Serverless on AWSAmazon Web Services
 
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
 
Orchestrating containers on AWS | AWS Summit Tel Aviv 2019
Orchestrating containers on AWS  | AWS Summit Tel Aviv 2019Orchestrating containers on AWS  | AWS Summit Tel Aviv 2019
Orchestrating containers on AWS | AWS Summit Tel Aviv 2019AWS Summits
 
Orchestrating containers on AWS | AWS Summit Tel Aviv 2019
Orchestrating containers on AWS  | AWS Summit Tel Aviv 2019Orchestrating containers on AWS  | AWS Summit Tel Aviv 2019
Orchestrating containers on AWS | AWS Summit Tel Aviv 2019Amazon Web Services
 
Deep Dive into AWS X-Ray: Monitor Modern Applications (DEV324) - AWS re:Inven...
Deep Dive into AWS X-Ray: Monitor Modern Applications (DEV324) - AWS re:Inven...Deep Dive into AWS X-Ray: Monitor Modern Applications (DEV324) - AWS re:Inven...
Deep Dive into AWS X-Ray: Monitor Modern Applications (DEV324) - AWS re:Inven...Amazon Web Services
 
A Serverless Journey: AWS Lambda Under the Hood (SRV409-R1) - AWS re:Invent 2018
A Serverless Journey: AWS Lambda Under the Hood (SRV409-R1) - AWS re:Invent 2018A Serverless Journey: AWS Lambda Under the Hood (SRV409-R1) - AWS re:Invent 2018
A Serverless Journey: AWS Lambda Under the Hood (SRV409-R1) - AWS re:Invent 2018Amazon Web Services
 
深入淺出學習雲端開發軟件 AWS Cloud9
深入淺出學習雲端開發軟件 AWS Cloud9深入淺出學習雲端開發軟件 AWS Cloud9
深入淺出學習雲端開發軟件 AWS Cloud9Amazon 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
 
Orchestrating containers on AWS | AWS Floor28
Orchestrating containers on AWS | AWS Floor28Orchestrating containers on AWS | AWS Floor28
Orchestrating containers on AWS | AWS Floor28Amazon Web Services
 
Wildrydes Serverless Workshop Tel Aviv
Wildrydes Serverless Workshop Tel AvivWildrydes Serverless Workshop Tel Aviv
Wildrydes Serverless Workshop Tel AvivBoaz Ziniman
 

Similar to 以 12 要素應用模式在 AWS 上構建微服務 (20)

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
 
Applying the Twelve-Factor App Methodology to Serverless Applications (SRV218...
Applying the Twelve-Factor App Methodology to Serverless Applications (SRV218...Applying the Twelve-Factor App Methodology to Serverless Applications (SRV218...
Applying the Twelve-Factor App Methodology to Serverless Applications (SRV218...
 
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
 
Microservices for Startups
Microservices for StartupsMicroservices for Startups
Microservices for Startups
 
Making Headless Drupal Serverless
Making Headless Drupal ServerlessMaking Headless Drupal Serverless
Making Headless Drupal Serverless
 
More Containers Less Operations
More Containers Less OperationsMore Containers Less Operations
More Containers Less Operations
 
Building with Containers on AWS by Tony Pujals .pdf
Building with Containers on AWS by Tony Pujals .pdfBuilding with Containers on AWS by Tony Pujals .pdf
Building with Containers on AWS by Tony Pujals .pdf
 
Best of AWS re:Invent 2017
Best of AWS re:Invent 2017Best of AWS re:Invent 2017
Best of AWS re:Invent 2017
 
Developing Serverless Application on AWS
Developing Serverless Application on AWSDeveloping Serverless Application on AWS
Developing Serverless Application on AWS
 
Introduction to Serverless on AWS
Introduction to Serverless on AWSIntroduction to Serverless on AWS
Introduction to Serverless on AWS
 
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
 
Orchestrating containers on AWS | AWS Summit Tel Aviv 2019
Orchestrating containers on AWS  | AWS Summit Tel Aviv 2019Orchestrating containers on AWS  | AWS Summit Tel Aviv 2019
Orchestrating containers on AWS | AWS Summit Tel Aviv 2019
 
Orchestrating containers on AWS | AWS Summit Tel Aviv 2019
Orchestrating containers on AWS  | AWS Summit Tel Aviv 2019Orchestrating containers on AWS  | AWS Summit Tel Aviv 2019
Orchestrating containers on AWS | AWS Summit Tel Aviv 2019
 
Cheat your Way into the Cloud
Cheat your Way into the CloudCheat your Way into the Cloud
Cheat your Way into the Cloud
 
Deep Dive into AWS X-Ray: Monitor Modern Applications (DEV324) - AWS re:Inven...
Deep Dive into AWS X-Ray: Monitor Modern Applications (DEV324) - AWS re:Inven...Deep Dive into AWS X-Ray: Monitor Modern Applications (DEV324) - AWS re:Inven...
Deep Dive into AWS X-Ray: Monitor Modern Applications (DEV324) - AWS re:Inven...
 
A Serverless Journey: AWS Lambda Under the Hood (SRV409-R1) - AWS re:Invent 2018
A Serverless Journey: AWS Lambda Under the Hood (SRV409-R1) - AWS re:Invent 2018A Serverless Journey: AWS Lambda Under the Hood (SRV409-R1) - AWS re:Invent 2018
A Serverless Journey: AWS Lambda Under the Hood (SRV409-R1) - AWS re:Invent 2018
 
深入淺出學習雲端開發軟件 AWS Cloud9
深入淺出學習雲端開發軟件 AWS Cloud9深入淺出學習雲端開發軟件 AWS Cloud9
深入淺出學習雲端開發軟件 AWS Cloud9
 
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:...
 
Orchestrating containers on AWS | AWS Floor28
Orchestrating containers on AWS | AWS Floor28Orchestrating containers on AWS | AWS Floor28
Orchestrating containers on AWS | AWS Floor28
 
Wildrydes Serverless Workshop Tel Aviv
Wildrydes Serverless Workshop Tel AvivWildrydes Serverless Workshop Tel Aviv
Wildrydes Serverless Workshop Tel Aviv
 

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
 

以 12 要素應用模式在 AWS 上構建微服務

  • 1. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Bob Yeh, Solutions Architect 2018-09-27 Building Microservices with the 12 Factor App Pattern on AWS AWS Webinar – Taipei
  • 2. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Sponsor
  • 3. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. 12 Factor App Principles Microservices Principles Great, Scalable Architecture + =
  • 4. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. 12 Factor Application: 01: Codebase
  • 5. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Code
  • 6. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Code Version Control
  • 7. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Code Deployed VersionVersion Control
  • 8. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Staging / QA Production Dev #1 Dev #2
  • 9. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. 12 Factor Application: 02: Dependencies
  • 10. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Dependencies Binaries Code Application Bundle
  • 11. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Dependency Declaration: Node.js package.json npm install
  • 12. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Dependency Declaration: Python requirements.txt pip install
  • 13. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Dependency Declaration: Ruby Gemfile bundle install
  • 14. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Dependency Isolation Never depend on the host to have your dependency. Application deployments should carry all their dependencies with them.
  • 15. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Dependencies Binaries Code
  • 16. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Dependency Declaration & Isolation: Docker docker build Dockerfile
  • 17. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Development Production docker run
  • 18. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. 12 Factor Application: 03: Config
  • 19. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Development Configuration Production Configuration Development Production
  • 20. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Development Configuration Production Configuration Development Production ANTIPATTERN
  • 21. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Development Production Same container deployed to both environments. Configuration is part of the environment on the host.
  • 22. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. At runtime the container gets config from the environment.
  • 23. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Application code pulls from the environment Environment is customized when Docker runs a container
  • 24. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. 12 Factor Application: 04: Backing Services
  • 25. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. AWS S3 PostgreSQLapp1 Host app2 3rd party service Treat local services just like remote third party ones
  • 26. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. PostgreSQLapp1 app2 postgres.mycompany.com app2.mycompany.com Load balancer Use CNAMES for maximum flexibility and re-configurability
  • 27. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. 12 Factor Application: 05: Build, Release, Run
  • 28. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Dependencies Binaries Code Build
  • 29. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Release Config + = ReleaseBuild Artifact
  • 30. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Elastic Container Service Config
  • 31. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Run Task Definition Release v1.0.0 Task Definition Release v1.0.1
  • 32. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. 12 Factor Application: 06: Stateless Processes
  • 33. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Stateful container stores state in local disk or local memory. Workload ends up tied to a specific host that has state data.
  • 34. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Stateful container stores state in local disk or local memory. Workload ends up tied to a specific host that has state data. ANTIPATTERN
  • 35. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Database Durable store of truth. MySQL, PostgreSQL, MongoDB, DynamoDB Cache Fast, temporary state store. redis, memcached
  • 36. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
  • 37. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. 12 Factor Application: 07: Port Binding
  • 38. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Port 32456 Port 32457 Port 32458
  • 39. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
  • 40. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. 12 Factor Application: 08: Concurrency
  • 41. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. WebAPI Worker
  • 42. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Worker Web API
  • 43. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Hosts Processes
  • 44. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Hosts Processes
  • 45. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Large Host = More Concurrent Processes Small Host = Fewer Concurrent Processes
  • 46. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. 12 Factor Application: 09: Disposability
  • 47. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Responsive Graceful Shutdown Fast Launch
  • 48. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Fast Launch Minimize the startup time of processes: - Scale up faster in response to spikes - Ability to move processes to another host as needed - Replace crashed processes faster
  • 49. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Responsive, Graceful Shutdown Should respond to SIGTERM by shutting down gracefully
  • 50. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. 12 Factor Application: 10: Dev/Prod Parity
  • 51. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Staging / QA Production Dev #1 Dev #2
  • 52. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Staging / QA Production Dev #1 Dev #2 Local Application Remote
  • 53. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. 12 Factor Application: 11: Logs
  • 54. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Treat logs as an event stream, and keep the logic for routing and processing logs separate from the application itself.
  • 55. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Logging Library Application Code Process
  • 56. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Logging Library Application Code Process Some logs get lost if they haven’t fully flushed
  • 57. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Logging Library Application Code Process Some logs get lost if they haven’t fully flushed ANTIPATTERN
  • 58. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Logging Library Application Code Process Logs go to an agent which handles exporting them off the host
  • 59. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Logging Library Application Code Process Logs still reach agent, and still make it into ELK stack
  • 60. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Containerized code writes to stdout Docker connects container’s stdout to a log driver
  • 61. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. 12 Factor Application: 12: Admin Processes
  • 62. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Admin / management processes are inevitable: - Migrate database - Repair some broken data - Once a week move database records older than X to cold storage - Every day email a report to this person
  • 63. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Run admin processes just like other processes.
  • 64. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Microservices: Componentization
  • 65. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
  • 66. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Each component is a 12 factor application. Fast Launch Dependencies Configuration Port BindingCodebase ConcurrentGraceful stop Log stream Stateless
  • 67. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Microservices: Organized around capabilities
  • 68. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Identify the capabilities of the platform
  • 69. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Each major capability of the platform becomes a component that is its own 12 factor app
  • 70. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Microservices: Decentralized Governance
  • 71. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
  • 72. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
  • 73. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
  • 74. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Microservices: Products Not Projects
  • 75. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Products grow over time
  • 76. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Microservices are an ecosystem of connected products that can be at different stages of growth
  • 77. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Don’t create throwaway microservices that become unmaintained and break the ecosystem.
  • 78. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Microservices: Smart endpoints, Dumb pipes
  • 79. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Central bus for communication Bottlenecks performance and feature development
  • 80. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Central bus for communication Bottlenecks performance and feature development ANTIPATTERN
  • 81. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Decentralization
  • 82. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Example: User Signup Signup API HTTP User Metadata Service Password Service Email Verification Service Friend Discovery Service Asynchronous Broadcast
  • 83. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Event Producers SubscriptionsEvent Topics Queues Event Consumers
  • 84. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. AWS Managed Services for Microservices Communication
  • 85. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Microservices: Infrastructure Automation
  • 86. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Automate the container build process: Jenkins AWS CodeBuild
  • 87. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Automate the provisioning of the infrastructure that hosts microservice containers: Automate the placement of containerized service processes onto hosts:
  • 88. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Developers Version Control Repository Test & Deployment Manager Image Build Service Infrastructure Provisioning Container Scheduling & Orchestration Container Image Repository
  • 89. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Developers AWS CodeCommit AWS CodePipeline AWS CodeBuild AWS CloudFormation Amazon ECS Amazon ECR
  • 90. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Developers AWS CodeCommit AWS CodePipeline AWS CodeBuild Amazon ECS AWS Fargate Amazon ECR
  • 91. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Developers Github Jenkins Terraform Container Scheduling & Orchestration with Kubernetes Container Image Repository
  • 92. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Summary
  • 93. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. 12 Factor Application Principals Fast Launch Dependencies Configuration Port BindingCodebase ConcurrentGraceful stop Log stream Stateless
  • 94. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Microservices Principals Componentization Product Focused Automation Decentralization
  • 95. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. More resources • aws.amazon.com/microservices • aws.amazon.com/whitepapers • Running Containerized Microservices on AWS • Microservices on AWS • aws.amazon.com/getting-started/container- microservices-tutorial
  • 96. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Follow Us on Facebook for More Information
  • 97. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. https://aws.amazon.com/tw/webinars/tw-webinar-series/
  • 98. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Remember to complete your evaluations!
  • 99. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Thank you!