尊敬的 微信汇率:1円 ≈ 0.046166 元 支付宝汇率:1円 ≈ 0.046257元 [退出登录]
SlideShare a Scribd company logo
DEPLOYING
MICROSERVICES
ON AWS
MICHAEL HABERMAN
FOUNDER @ APPLICALLS
TODAY
What is microservices?
How to host microservices?
Deployment aspect of
microservices
GENERAL CONCEPT
Instance
User logic
Payment logic
Analytics logic
Reporting logic
Monolith
User logic
Payment logic
Analytics logic
Reporting logic
WHY IT IS GOOD FOR US?
• Large project are hard to maintain
• Easy to test
• Safe to deploy
• Can use different programming languages
• Can use different databases
WHY IT IS GOOD FOR US?
Who is us…?
WHY IT IS BAD FOR THEM?
• Multiple instance to handle
• Complicated deployment
• A lot of automation
• So many logs…
• Complicated monitoring and alerts
• Configuration….
WHY IT IS BAD FOR THEM?
Who is them…?
MICROSERVICES TAG LINE
TODAY
• What is microservices?
• How to host microservices?
• Deployment aspect of microservices
HOSTING OPTIONS IN AWS
• EC2 – Elastic Cloud Compute
• Elastic beanstalk
• ECS – Elastic Container Service (Docker…)
• Lambda Function - Serverless
EC2
• Simple VM in the cloud
• Image as base installation
• Manual maintenance (updates, backup)
• Elastic beanstalk is fully managed
• Auto Scaling defined by you
• Pay per hour
• Ideally instance per application / service
EC2 – CLOUD DIAGRAM
Load
balancer
Service 1
Service 2
EC2
EC2
EC2
EC2
EC2 - PROS AND CONS
• Pros
• Easy to migrate
• Better for different OS (Linux and Windows)
• Cons
• Expensive (Compute & storage)
• Hard to maintain
• Auto scaling may take time
ECS
• Managed Docker by AWS
Docker Host (EC2)
DOCKER
Docker Host (EC2)
Container 1
Container 2
Container 3
Container 4
Container 3
OS
Web Server
App code
ECS
• Managed Docker by AWS
• Container ”image” as Code (Docker)
• Cluster image managed by AWS
• Two level auto scale, cluster & container
• High resources utilization
• Container == service (or in javascript container === service)
ECS – CLOUD DIAGRAM
Load
balancer
EC2 #1
EC2 #2
Service 1
Service 2
Service 1
Service 2
ECS - PROS AND CONS
• Pros
• Easy to move from AWS
• Easy to run locally
• Good utilization of resources
• Easy and fast auto scale
• Easy to maintain the containers
• Cons
• Another technology knowledge (Docker)
• Windows Docker container is problematic
LAMBDA FUNCTION
• Serverless – no underlying infrastructure
• No maintenance
• Pay only of runtime
• Focus on the code
LAMBDA – CLOUD DIAGRAM
API Gateway
Lambda 1
Lambda 2
LAMBDA - PROS AND CONS
• Pros
• Cheap at low – medium scale
• Much less maintenance
• Fully managed by AWS (scaling)
• Cons
• Hard to develop locally
• Specific programing languages
• No file system
• Limited installations
• Not mature enough
COMPARISON
EC2 ECS Lambda
Maintenance High Medium Low
Cost Effective Low High Depends on scale
Flexibility Low High High
Auto scaling A lot of work Some work Managed by AWS
Coupled with AWS None Low High
Local development Easy Easy Complex
HOSTING
We will use ECS
TODAY
• What is microservices?
• How to host microservices?
• Deployment aspect of microservices
DEPLOYMENT
• Source control
• Build
• Test
• Deploy
• Test & rollback
• Monitor
• Alerts
SOURCE CONTROL
• What do we need:
• Allow multiple developers to work in parallel
• Easy way to merge
• Easy way to get specific version code
• Support multiple environments
SOURCE CONTROL
GIT FLOW ENV BASED
Master Dev Feature
LAMBDA - PROS AND CONS
What would you choose?
SOURCE CONTROL
• Why git flow?
• Docker image should be build once
• Same image moves between envs freely
• Use tags to indicate image usage
• Don’t rebuild images between envs
• It is a new app (npm install….)
BUILD
• Independent build server!
• Jenkins, CodeBuild
• Don’t set configuration at this point
• Build should include tests (more on that later)
• Push to repository with matching tag (latest stable build)
TEST
• Static
• No need to run the service, but specific parts
• Dynamic
• Need to run the service, but doesn’t communicate
• Depended dynamic
• Need to run the service and it’s dependencies
DEPLOY
• Deploy single service vs Entire cluster
• Retag
• Live testing
• rollback
Docker Host (EC2)
SINGLE CONTAINER DEPLOYMENT
Docker Host (EC2)
Container 1
Container 2
Container 3
Container 1
Container 2
Container 3
Container 3 new Container 3 new
Traffic
routed to
new
Killed
after no
traffic
Tested
Docker Host (EC2)
CLUSTER DEPLOYMENT
Docker Host (EC2)
Container 1
Container 2
Container 3
Container 1
Container 2
Container 3 new
Traffic
routed to
newKilled
after no
traffic
Tested
DEPLOY SINGLE SERVICE VS ENTIRE CLUSTER
• Entire Cluster
• Easier to deploy few services together
• Single Container
• Simpler
LIVE TESTING
• Once deployed
• Run E2E / API testing
• Rollback if needed
MONITORING
• Application monitoring
• Logs
• Configuration
• Infrastructure monitoring
• Logs
• Metrics
• Automatic actions
• Cost
ALERTS
• Based on metrics and events
• Should support: Email, SMS, Phone calls, Slack, and APIs
• Should support alerts based on logs
TODAY
• What is microservices?
• How to host microservices?
• Deployment aspect of microservices
THANK
YOU!
MICHAEL@APPLICALLS.IO

More Related Content

What's hot

DevOpsCon Cloud Workshop
DevOpsCon Cloud Workshop DevOpsCon Cloud Workshop
DevOpsCon Cloud Workshop
Sascha Möllering
 
Securing Containers From Day One | null Ahmedabad Meetup
Securing Containers From Day One | null Ahmedabad MeetupSecuring Containers From Day One | null Ahmedabad Meetup
Securing Containers From Day One | null Ahmedabad Meetup
Kumar Ashwin
 
Amazon Cloud Overview
Amazon Cloud OverviewAmazon Cloud Overview
Amazon Cloud Overview
Yulian Slobodyan
 
ASP.NET vNext
ASP.NET vNextASP.NET vNext
ASP.NET vNext
Alex Thissen
 
Serverless
ServerlessServerless
Serverless
Daniel Cottone
 
Containerize all the things!
Containerize all the things!Containerize all the things!
Containerize all the things!
Mike Melusky
 
Ph.D. Defense
Ph.D. DefensePh.D. Defense
Ph.D. Defense
Chris Bunch
 
104 meets cloud
104 meets cloud104 meets cloud
104 meets cloud
Cliff Chao-kuan Lu
 
Intro to Serverless
Intro to ServerlessIntro to Serverless
Intro to Serverless
Cliff Chao-kuan Lu
 
Surati Tech Talks 2022 / Build reliable Svelte applications using Cypress
Surati Tech Talks 2022 / Build reliable Svelte applications using CypressSurati Tech Talks 2022 / Build reliable Svelte applications using Cypress
Surati Tech Talks 2022 / Build reliable Svelte applications using Cypress
Maurice De Beijer [MVP]
 
Amazon EC2 to Amazon VPC: A case study
Amazon EC2 to Amazon VPC: A case studyAmazon EC2 to Amazon VPC: A case study
Amazon EC2 to Amazon VPC: A case study
Matthew Barlocker
 
Kubernetes and elixir
Kubernetes and elixirKubernetes and elixir
Kubernetes and elixir
Jeffrey Chan
 
Greetings from AWS User Group Taiwan
Greetings from AWS User Group TaiwanGreetings from AWS User Group Taiwan
Greetings from AWS User Group Taiwan
Cliff Chao-kuan Lu
 
AppScale Talk at SBonRails
AppScale Talk at SBonRailsAppScale Talk at SBonRails
AppScale Talk at SBonRails
Chris Bunch
 
Sebastien goasguen cloud stack and docker
Sebastien goasguen   cloud stack and dockerSebastien goasguen   cloud stack and docker
Sebastien goasguen cloud stack and docker
ShapeBlue
 
Sebastien goasguen cloud stack the next year
Sebastien goasguen   cloud stack the next yearSebastien goasguen   cloud stack the next year
Sebastien goasguen cloud stack the next year
ShapeBlue
 
(APP309) Running and Monitoring Docker Containers at Scale | AWS re:Invent 2014
(APP309) Running and Monitoring Docker Containers at Scale | AWS re:Invent 2014(APP309) Running and Monitoring Docker Containers at Scale | AWS re:Invent 2014
(APP309) Running and Monitoring Docker Containers at Scale | AWS re:Invent 2014
Amazon Web Services
 
Serverless in azure
Serverless in azureServerless in azure
Serverless in azure
Veresh Jain
 
Python and Docker
Python and DockerPython and Docker
Python and Docker
Adam Englander
 
AWS Serverless solution for developers
AWS Serverless solution for developersAWS Serverless solution for developers
AWS Serverless solution for developers
Michael Haberman
 

What's hot (20)

DevOpsCon Cloud Workshop
DevOpsCon Cloud Workshop DevOpsCon Cloud Workshop
DevOpsCon Cloud Workshop
 
Securing Containers From Day One | null Ahmedabad Meetup
Securing Containers From Day One | null Ahmedabad MeetupSecuring Containers From Day One | null Ahmedabad Meetup
Securing Containers From Day One | null Ahmedabad Meetup
 
Amazon Cloud Overview
Amazon Cloud OverviewAmazon Cloud Overview
Amazon Cloud Overview
 
ASP.NET vNext
ASP.NET vNextASP.NET vNext
ASP.NET vNext
 
Serverless
ServerlessServerless
Serverless
 
Containerize all the things!
Containerize all the things!Containerize all the things!
Containerize all the things!
 
Ph.D. Defense
Ph.D. DefensePh.D. Defense
Ph.D. Defense
 
104 meets cloud
104 meets cloud104 meets cloud
104 meets cloud
 
Intro to Serverless
Intro to ServerlessIntro to Serverless
Intro to Serverless
 
Surati Tech Talks 2022 / Build reliable Svelte applications using Cypress
Surati Tech Talks 2022 / Build reliable Svelte applications using CypressSurati Tech Talks 2022 / Build reliable Svelte applications using Cypress
Surati Tech Talks 2022 / Build reliable Svelte applications using Cypress
 
Amazon EC2 to Amazon VPC: A case study
Amazon EC2 to Amazon VPC: A case studyAmazon EC2 to Amazon VPC: A case study
Amazon EC2 to Amazon VPC: A case study
 
Kubernetes and elixir
Kubernetes and elixirKubernetes and elixir
Kubernetes and elixir
 
Greetings from AWS User Group Taiwan
Greetings from AWS User Group TaiwanGreetings from AWS User Group Taiwan
Greetings from AWS User Group Taiwan
 
AppScale Talk at SBonRails
AppScale Talk at SBonRailsAppScale Talk at SBonRails
AppScale Talk at SBonRails
 
Sebastien goasguen cloud stack and docker
Sebastien goasguen   cloud stack and dockerSebastien goasguen   cloud stack and docker
Sebastien goasguen cloud stack and docker
 
Sebastien goasguen cloud stack the next year
Sebastien goasguen   cloud stack the next yearSebastien goasguen   cloud stack the next year
Sebastien goasguen cloud stack the next year
 
(APP309) Running and Monitoring Docker Containers at Scale | AWS re:Invent 2014
(APP309) Running and Monitoring Docker Containers at Scale | AWS re:Invent 2014(APP309) Running and Monitoring Docker Containers at Scale | AWS re:Invent 2014
(APP309) Running and Monitoring Docker Containers at Scale | AWS re:Invent 2014
 
Serverless in azure
Serverless in azureServerless in azure
Serverless in azure
 
Python and Docker
Python and DockerPython and Docker
Python and Docker
 
AWS Serverless solution for developers
AWS Serverless solution for developersAWS Serverless solution for developers
AWS Serverless solution for developers
 

Similar to Deploying microservices on AWS

Migrating the GoPro Plus Cloud Service to Amazon ECS
Migrating the GoPro Plus Cloud Service to Amazon ECSMigrating the GoPro Plus Cloud Service to Amazon ECS
Migrating the GoPro Plus Cloud Service to Amazon ECS
Amazon Web Services
 
Rami Sayar - Node microservices with Docker
Rami Sayar - Node microservices with DockerRami Sayar - Node microservices with Docker
Rami Sayar - Node microservices with Docker
Web à Québec
 
Kubernetes Manchester - 6th December 2018
Kubernetes Manchester - 6th December 2018Kubernetes Manchester - 6th December 2018
Kubernetes Manchester - 6th December 2018
David Stockton
 
Containers, Serverless and Functions in a nutshell
Containers, Serverless and Functions in a nutshellContainers, Serverless and Functions in a nutshell
Containers, Serverless and Functions in a nutshell
Eugene Fedorenko
 
Building Efficient Parallel Testing Platforms with Docker
Building Efficient Parallel Testing Platforms with DockerBuilding Efficient Parallel Testing Platforms with Docker
Building Efficient Parallel Testing Platforms with Docker
Laura Frank Tacho
 
A Tail of Two Containers: How docker made ci great again
A Tail of Two Containers: How docker made ci great againA Tail of Two Containers: How docker made ci great again
A Tail of Two Containers: How docker made ci great again
Kyle Rames
 
Integration in the Age of DevOps
Integration in the Age of DevOpsIntegration in the Age of DevOps
Integration in the Age of DevOps
Brian Ashburn
 
Breaking the Monolith Road to Containers
Breaking the Monolith Road to ContainersBreaking the Monolith Road to Containers
Breaking the Monolith Road to Containers
Amazon Web Services
 
Innovating faster with SBT, Continuous Delivery, and LXC
Innovating faster with SBT, Continuous Delivery, and LXCInnovating faster with SBT, Continuous Delivery, and LXC
Innovating faster with SBT, Continuous Delivery, and LXC
kscaldef
 
Docker in Production: How RightScale Delivers Cloud Applications
Docker in Production: How RightScale Delivers Cloud ApplicationsDocker in Production: How RightScale Delivers Cloud Applications
Docker in Production: How RightScale Delivers Cloud Applications
RightScale
 
Serverless Architectures on AWS Lambda
Serverless Architectures on AWS LambdaServerless Architectures on AWS Lambda
Serverless Architectures on AWS Lambda
Serhat Can
 
Leverage LXC/LXD with Kubernetes
Leverage LXC/LXD with KubernetesLeverage LXC/LXD with Kubernetes
Leverage LXC/LXD with Kubernetes
Lin Sun
 
Docker-Intro
Docker-IntroDocker-Intro
Docker-Intro
Sujai Sivasamy
 
AWS re:Invent 2016: Development Workflow with Docker and Amazon ECS (CON302)
AWS re:Invent 2016: Development Workflow with Docker and Amazon ECS (CON302)AWS re:Invent 2016: Development Workflow with Docker and Amazon ECS (CON302)
AWS re:Invent 2016: Development Workflow with Docker and Amazon ECS (CON302)
Amazon Web Services
 
Serverless applications
Serverless applicationsServerless applications
Serverless applications
mbaric
 
(ARC309) Getting to Microservices: Cloud Architecture Patterns
(ARC309) Getting to Microservices: Cloud Architecture Patterns(ARC309) Getting to Microservices: Cloud Architecture Patterns
(ARC309) Getting to Microservices: Cloud Architecture Patterns
Amazon Web Services
 
SQL Server: Now It's Everywhere You Want to Be
SQL Server: Now It's Everywhere You Want to BeSQL Server: Now It's Everywhere You Want to Be
SQL Server: Now It's Everywhere You Want to Be
Ed Leighton-Dick
 
Write Once and REALLY Run Anywhere | OpenStack Summit HK 2013
Write Once and REALLY Run Anywhere | OpenStack Summit HK 2013Write Once and REALLY Run Anywhere | OpenStack Summit HK 2013
Write Once and REALLY Run Anywhere | OpenStack Summit HK 2013
dotCloud
 
Docker
DockerDocker
The impact of cloud NSBCon NY by Yves Goeleven
The impact of cloud NSBCon NY by Yves GoelevenThe impact of cloud NSBCon NY by Yves Goeleven
The impact of cloud NSBCon NY by Yves Goeleven
Particular Software
 

Similar to Deploying microservices on AWS (20)

Migrating the GoPro Plus Cloud Service to Amazon ECS
Migrating the GoPro Plus Cloud Service to Amazon ECSMigrating the GoPro Plus Cloud Service to Amazon ECS
Migrating the GoPro Plus Cloud Service to Amazon ECS
 
Rami Sayar - Node microservices with Docker
Rami Sayar - Node microservices with DockerRami Sayar - Node microservices with Docker
Rami Sayar - Node microservices with Docker
 
Kubernetes Manchester - 6th December 2018
Kubernetes Manchester - 6th December 2018Kubernetes Manchester - 6th December 2018
Kubernetes Manchester - 6th December 2018
 
Containers, Serverless and Functions in a nutshell
Containers, Serverless and Functions in a nutshellContainers, Serverless and Functions in a nutshell
Containers, Serverless and Functions in a nutshell
 
Building Efficient Parallel Testing Platforms with Docker
Building Efficient Parallel Testing Platforms with DockerBuilding Efficient Parallel Testing Platforms with Docker
Building Efficient Parallel Testing Platforms with Docker
 
A Tail of Two Containers: How docker made ci great again
A Tail of Two Containers: How docker made ci great againA Tail of Two Containers: How docker made ci great again
A Tail of Two Containers: How docker made ci great again
 
Integration in the Age of DevOps
Integration in the Age of DevOpsIntegration in the Age of DevOps
Integration in the Age of DevOps
 
Breaking the Monolith Road to Containers
Breaking the Monolith Road to ContainersBreaking the Monolith Road to Containers
Breaking the Monolith Road to Containers
 
Innovating faster with SBT, Continuous Delivery, and LXC
Innovating faster with SBT, Continuous Delivery, and LXCInnovating faster with SBT, Continuous Delivery, and LXC
Innovating faster with SBT, Continuous Delivery, and LXC
 
Docker in Production: How RightScale Delivers Cloud Applications
Docker in Production: How RightScale Delivers Cloud ApplicationsDocker in Production: How RightScale Delivers Cloud Applications
Docker in Production: How RightScale Delivers Cloud Applications
 
Serverless Architectures on AWS Lambda
Serverless Architectures on AWS LambdaServerless Architectures on AWS Lambda
Serverless Architectures on AWS Lambda
 
Leverage LXC/LXD with Kubernetes
Leverage LXC/LXD with KubernetesLeverage LXC/LXD with Kubernetes
Leverage LXC/LXD with Kubernetes
 
Docker-Intro
Docker-IntroDocker-Intro
Docker-Intro
 
AWS re:Invent 2016: Development Workflow with Docker and Amazon ECS (CON302)
AWS re:Invent 2016: Development Workflow with Docker and Amazon ECS (CON302)AWS re:Invent 2016: Development Workflow with Docker and Amazon ECS (CON302)
AWS re:Invent 2016: Development Workflow with Docker and Amazon ECS (CON302)
 
Serverless applications
Serverless applicationsServerless applications
Serverless applications
 
(ARC309) Getting to Microservices: Cloud Architecture Patterns
(ARC309) Getting to Microservices: Cloud Architecture Patterns(ARC309) Getting to Microservices: Cloud Architecture Patterns
(ARC309) Getting to Microservices: Cloud Architecture Patterns
 
SQL Server: Now It's Everywhere You Want to Be
SQL Server: Now It's Everywhere You Want to BeSQL Server: Now It's Everywhere You Want to Be
SQL Server: Now It's Everywhere You Want to Be
 
Write Once and REALLY Run Anywhere | OpenStack Summit HK 2013
Write Once and REALLY Run Anywhere | OpenStack Summit HK 2013Write Once and REALLY Run Anywhere | OpenStack Summit HK 2013
Write Once and REALLY Run Anywhere | OpenStack Summit HK 2013
 
Docker
DockerDocker
Docker
 
The impact of cloud NSBCon NY by Yves Goeleven
The impact of cloud NSBCon NY by Yves GoelevenThe impact of cloud NSBCon NY by Yves Goeleven
The impact of cloud NSBCon NY by Yves Goeleven
 

More from Michael Haberman

Angular universal
Angular universalAngular universal
Angular universal
Michael Haberman
 
React in production
React in productionReact in production
React in production
Michael Haberman
 
Multiplayer game with angular and firebase
Multiplayer game with angular and firebaseMultiplayer game with angular and firebase
Multiplayer game with angular and firebase
Michael Haberman
 
How to: node js & micro-services
How to: node js & micro-servicesHow to: node js & micro-services
How to: node js & micro-services
Michael Haberman
 
Javascript issues and tools in production for developers
Javascript issues and tools in production for developersJavascript issues and tools in production for developers
Javascript issues and tools in production for developers
Michael Haberman
 
Angular 4 - quick view
Angular 4 - quick viewAngular 4 - quick view
Angular 4 - quick view
Michael Haberman
 
React vs angular (mobile first battle)
React vs angular (mobile first battle)React vs angular (mobile first battle)
React vs angular (mobile first battle)
Michael Haberman
 
React vs-angular-mobile
React vs-angular-mobileReact vs-angular-mobile
React vs-angular-mobile
Michael Haberman
 
MEAN.js Workshop
MEAN.js WorkshopMEAN.js Workshop
MEAN.js Workshop
Michael Haberman
 
AWS intro
AWS introAWS intro
AWS intro
Michael Haberman
 
Angular Unit Test
Angular Unit TestAngular Unit Test
Angular Unit Test
Michael Haberman
 
Unit-testing and E2E testing in JS
Unit-testing and E2E testing in JSUnit-testing and E2E testing in JS
Unit-testing and E2E testing in JS
Michael Haberman
 
XAML/C# to HTML/JS
XAML/C# to HTML/JSXAML/C# to HTML/JS
XAML/C# to HTML/JS
Michael Haberman
 
XAML/C# to HTML5/JS
XAML/C#  to HTML5/JS XAML/C#  to HTML5/JS
XAML/C# to HTML5/JS
Michael Haberman
 

More from Michael Haberman (14)

Angular universal
Angular universalAngular universal
Angular universal
 
React in production
React in productionReact in production
React in production
 
Multiplayer game with angular and firebase
Multiplayer game with angular and firebaseMultiplayer game with angular and firebase
Multiplayer game with angular and firebase
 
How to: node js & micro-services
How to: node js & micro-servicesHow to: node js & micro-services
How to: node js & micro-services
 
Javascript issues and tools in production for developers
Javascript issues and tools in production for developersJavascript issues and tools in production for developers
Javascript issues and tools in production for developers
 
Angular 4 - quick view
Angular 4 - quick viewAngular 4 - quick view
Angular 4 - quick view
 
React vs angular (mobile first battle)
React vs angular (mobile first battle)React vs angular (mobile first battle)
React vs angular (mobile first battle)
 
React vs-angular-mobile
React vs-angular-mobileReact vs-angular-mobile
React vs-angular-mobile
 
MEAN.js Workshop
MEAN.js WorkshopMEAN.js Workshop
MEAN.js Workshop
 
AWS intro
AWS introAWS intro
AWS intro
 
Angular Unit Test
Angular Unit TestAngular Unit Test
Angular Unit Test
 
Unit-testing and E2E testing in JS
Unit-testing and E2E testing in JSUnit-testing and E2E testing in JS
Unit-testing and E2E testing in JS
 
XAML/C# to HTML/JS
XAML/C# to HTML/JSXAML/C# to HTML/JS
XAML/C# to HTML/JS
 
XAML/C# to HTML5/JS
XAML/C#  to HTML5/JS XAML/C#  to HTML5/JS
XAML/C# to HTML5/JS
 

Recently uploaded

Call Girls Chennai ☎️ +91-7426014248 😍 Chennai Call Girl Beauty Girls Chennai...
Call Girls Chennai ☎️ +91-7426014248 😍 Chennai Call Girl Beauty Girls Chennai...Call Girls Chennai ☎️ +91-7426014248 😍 Chennai Call Girl Beauty Girls Chennai...
Call Girls Chennai ☎️ +91-7426014248 😍 Chennai Call Girl Beauty Girls Chennai...
anilsa9823
 
Guidelines for Effective Data Visualization
Guidelines for Effective Data VisualizationGuidelines for Effective Data Visualization
Guidelines for Effective Data Visualization
UmmeSalmaM1
 
CTO Insights: Steering a High-Stakes Database Migration
CTO Insights: Steering a High-Stakes Database MigrationCTO Insights: Steering a High-Stakes Database Migration
CTO Insights: Steering a High-Stakes Database Migration
ScyllaDB
 
An Introduction to All Data Enterprise Integration
An Introduction to All Data Enterprise IntegrationAn Introduction to All Data Enterprise Integration
An Introduction to All Data Enterprise Integration
Safe Software
 
Demystifying Knowledge Management through Storytelling
Demystifying Knowledge Management through StorytellingDemystifying Knowledge Management through Storytelling
Demystifying Knowledge Management through Storytelling
Enterprise Knowledge
 
ThousandEyes New Product Features and Release Highlights: June 2024
ThousandEyes New Product Features and Release Highlights: June 2024ThousandEyes New Product Features and Release Highlights: June 2024
ThousandEyes New Product Features and Release Highlights: June 2024
ThousandEyes
 
New ThousandEyes Product Features and Release Highlights: June 2024
New ThousandEyes Product Features and Release Highlights: June 2024New ThousandEyes Product Features and Release Highlights: June 2024
New ThousandEyes Product Features and Release Highlights: June 2024
ThousandEyes
 
ScyllaDB Leaps Forward with Dor Laor, CEO of ScyllaDB
ScyllaDB Leaps Forward with Dor Laor, CEO of ScyllaDBScyllaDB Leaps Forward with Dor Laor, CEO of ScyllaDB
ScyllaDB Leaps Forward with Dor Laor, CEO of ScyllaDB
ScyllaDB
 
Day 2 - Intro to UiPath Studio Fundamentals
Day 2 - Intro to UiPath Studio FundamentalsDay 2 - Intro to UiPath Studio Fundamentals
Day 2 - Intro to UiPath Studio Fundamentals
UiPathCommunity
 
Fuxnet [EN] .pdf
Fuxnet [EN]                                   .pdfFuxnet [EN]                                   .pdf
Fuxnet [EN] .pdf
Overkill Security
 
From NCSA to the National Research Platform
From NCSA to the National Research PlatformFrom NCSA to the National Research Platform
From NCSA to the National Research Platform
Larry Smarr
 
Lee Barnes - Path to Becoming an Effective Test Automation Engineer.pdf
Lee Barnes - Path to Becoming an Effective Test Automation Engineer.pdfLee Barnes - Path to Becoming an Effective Test Automation Engineer.pdf
Lee Barnes - Path to Becoming an Effective Test Automation Engineer.pdf
leebarnesutopia
 
Poznań ACE event - 19.06.2024 Team 24 Wrapup slidedeck
Poznań ACE event - 19.06.2024 Team 24 Wrapup slidedeckPoznań ACE event - 19.06.2024 Team 24 Wrapup slidedeck
Poznań ACE event - 19.06.2024 Team 24 Wrapup slidedeck
FilipTomaszewski5
 
MongoDB vs ScyllaDB: Tractian’s Experience with Real-Time ML
MongoDB vs ScyllaDB: Tractian’s Experience with Real-Time MLMongoDB vs ScyllaDB: Tractian’s Experience with Real-Time ML
MongoDB vs ScyllaDB: Tractian’s Experience with Real-Time ML
ScyllaDB
 
MongoDB to ScyllaDB: Technical Comparison and the Path to Success
MongoDB to ScyllaDB: Technical Comparison and the Path to SuccessMongoDB to ScyllaDB: Technical Comparison and the Path to Success
MongoDB to ScyllaDB: Technical Comparison and the Path to Success
ScyllaDB
 
MySQL InnoDB Storage Engine: Deep Dive - Mydbops
MySQL InnoDB Storage Engine: Deep Dive - MydbopsMySQL InnoDB Storage Engine: Deep Dive - Mydbops
MySQL InnoDB Storage Engine: Deep Dive - Mydbops
Mydbops
 
Chapter 5 - Managing Test Activities V4.0
Chapter 5 - Managing Test Activities V4.0Chapter 5 - Managing Test Activities V4.0
Chapter 5 - Managing Test Activities V4.0
Neeraj Kumar Singh
 
intra-mart Accel series 2024 Spring updates_En
intra-mart Accel series 2024 Spring updates_Enintra-mart Accel series 2024 Spring updates_En
intra-mart Accel series 2024 Spring updates_En
NTTDATA INTRAMART
 
QR Secure: A Hybrid Approach Using Machine Learning and Security Validation F...
QR Secure: A Hybrid Approach Using Machine Learning and Security Validation F...QR Secure: A Hybrid Approach Using Machine Learning and Security Validation F...
QR Secure: A Hybrid Approach Using Machine Learning and Security Validation F...
AlexanderRichford
 
Call Girls Chandigarh🔥7023059433🔥Agency Profile Escorts in Chandigarh Availab...
Call Girls Chandigarh🔥7023059433🔥Agency Profile Escorts in Chandigarh Availab...Call Girls Chandigarh🔥7023059433🔥Agency Profile Escorts in Chandigarh Availab...
Call Girls Chandigarh🔥7023059433🔥Agency Profile Escorts in Chandigarh Availab...
manji sharman06
 

Recently uploaded (20)

Call Girls Chennai ☎️ +91-7426014248 😍 Chennai Call Girl Beauty Girls Chennai...
Call Girls Chennai ☎️ +91-7426014248 😍 Chennai Call Girl Beauty Girls Chennai...Call Girls Chennai ☎️ +91-7426014248 😍 Chennai Call Girl Beauty Girls Chennai...
Call Girls Chennai ☎️ +91-7426014248 😍 Chennai Call Girl Beauty Girls Chennai...
 
Guidelines for Effective Data Visualization
Guidelines for Effective Data VisualizationGuidelines for Effective Data Visualization
Guidelines for Effective Data Visualization
 
CTO Insights: Steering a High-Stakes Database Migration
CTO Insights: Steering a High-Stakes Database MigrationCTO Insights: Steering a High-Stakes Database Migration
CTO Insights: Steering a High-Stakes Database Migration
 
An Introduction to All Data Enterprise Integration
An Introduction to All Data Enterprise IntegrationAn Introduction to All Data Enterprise Integration
An Introduction to All Data Enterprise Integration
 
Demystifying Knowledge Management through Storytelling
Demystifying Knowledge Management through StorytellingDemystifying Knowledge Management through Storytelling
Demystifying Knowledge Management through Storytelling
 
ThousandEyes New Product Features and Release Highlights: June 2024
ThousandEyes New Product Features and Release Highlights: June 2024ThousandEyes New Product Features and Release Highlights: June 2024
ThousandEyes New Product Features and Release Highlights: June 2024
 
New ThousandEyes Product Features and Release Highlights: June 2024
New ThousandEyes Product Features and Release Highlights: June 2024New ThousandEyes Product Features and Release Highlights: June 2024
New ThousandEyes Product Features and Release Highlights: June 2024
 
ScyllaDB Leaps Forward with Dor Laor, CEO of ScyllaDB
ScyllaDB Leaps Forward with Dor Laor, CEO of ScyllaDBScyllaDB Leaps Forward with Dor Laor, CEO of ScyllaDB
ScyllaDB Leaps Forward with Dor Laor, CEO of ScyllaDB
 
Day 2 - Intro to UiPath Studio Fundamentals
Day 2 - Intro to UiPath Studio FundamentalsDay 2 - Intro to UiPath Studio Fundamentals
Day 2 - Intro to UiPath Studio Fundamentals
 
Fuxnet [EN] .pdf
Fuxnet [EN]                                   .pdfFuxnet [EN]                                   .pdf
Fuxnet [EN] .pdf
 
From NCSA to the National Research Platform
From NCSA to the National Research PlatformFrom NCSA to the National Research Platform
From NCSA to the National Research Platform
 
Lee Barnes - Path to Becoming an Effective Test Automation Engineer.pdf
Lee Barnes - Path to Becoming an Effective Test Automation Engineer.pdfLee Barnes - Path to Becoming an Effective Test Automation Engineer.pdf
Lee Barnes - Path to Becoming an Effective Test Automation Engineer.pdf
 
Poznań ACE event - 19.06.2024 Team 24 Wrapup slidedeck
Poznań ACE event - 19.06.2024 Team 24 Wrapup slidedeckPoznań ACE event - 19.06.2024 Team 24 Wrapup slidedeck
Poznań ACE event - 19.06.2024 Team 24 Wrapup slidedeck
 
MongoDB vs ScyllaDB: Tractian’s Experience with Real-Time ML
MongoDB vs ScyllaDB: Tractian’s Experience with Real-Time MLMongoDB vs ScyllaDB: Tractian’s Experience with Real-Time ML
MongoDB vs ScyllaDB: Tractian’s Experience with Real-Time ML
 
MongoDB to ScyllaDB: Technical Comparison and the Path to Success
MongoDB to ScyllaDB: Technical Comparison and the Path to SuccessMongoDB to ScyllaDB: Technical Comparison and the Path to Success
MongoDB to ScyllaDB: Technical Comparison and the Path to Success
 
MySQL InnoDB Storage Engine: Deep Dive - Mydbops
MySQL InnoDB Storage Engine: Deep Dive - MydbopsMySQL InnoDB Storage Engine: Deep Dive - Mydbops
MySQL InnoDB Storage Engine: Deep Dive - Mydbops
 
Chapter 5 - Managing Test Activities V4.0
Chapter 5 - Managing Test Activities V4.0Chapter 5 - Managing Test Activities V4.0
Chapter 5 - Managing Test Activities V4.0
 
intra-mart Accel series 2024 Spring updates_En
intra-mart Accel series 2024 Spring updates_Enintra-mart Accel series 2024 Spring updates_En
intra-mart Accel series 2024 Spring updates_En
 
QR Secure: A Hybrid Approach Using Machine Learning and Security Validation F...
QR Secure: A Hybrid Approach Using Machine Learning and Security Validation F...QR Secure: A Hybrid Approach Using Machine Learning and Security Validation F...
QR Secure: A Hybrid Approach Using Machine Learning and Security Validation F...
 
Call Girls Chandigarh🔥7023059433🔥Agency Profile Escorts in Chandigarh Availab...
Call Girls Chandigarh🔥7023059433🔥Agency Profile Escorts in Chandigarh Availab...Call Girls Chandigarh🔥7023059433🔥Agency Profile Escorts in Chandigarh Availab...
Call Girls Chandigarh🔥7023059433🔥Agency Profile Escorts in Chandigarh Availab...
 

Deploying microservices on AWS

  • 2. TODAY What is microservices? How to host microservices? Deployment aspect of microservices
  • 3. GENERAL CONCEPT Instance User logic Payment logic Analytics logic Reporting logic Monolith User logic Payment logic Analytics logic Reporting logic
  • 4. WHY IT IS GOOD FOR US? • Large project are hard to maintain • Easy to test • Safe to deploy • Can use different programming languages • Can use different databases
  • 5. WHY IT IS GOOD FOR US? Who is us…?
  • 6. WHY IT IS BAD FOR THEM? • Multiple instance to handle • Complicated deployment • A lot of automation • So many logs… • Complicated monitoring and alerts • Configuration….
  • 7. WHY IT IS BAD FOR THEM? Who is them…?
  • 9. TODAY • What is microservices? • How to host microservices? • Deployment aspect of microservices
  • 10. HOSTING OPTIONS IN AWS • EC2 – Elastic Cloud Compute • Elastic beanstalk • ECS – Elastic Container Service (Docker…) • Lambda Function - Serverless
  • 11. EC2 • Simple VM in the cloud • Image as base installation • Manual maintenance (updates, backup) • Elastic beanstalk is fully managed • Auto Scaling defined by you • Pay per hour • Ideally instance per application / service
  • 12. EC2 – CLOUD DIAGRAM Load balancer Service 1 Service 2 EC2 EC2 EC2 EC2
  • 13. EC2 - PROS AND CONS • Pros • Easy to migrate • Better for different OS (Linux and Windows) • Cons • Expensive (Compute & storage) • Hard to maintain • Auto scaling may take time
  • 15. Docker Host (EC2) DOCKER Docker Host (EC2) Container 1 Container 2 Container 3 Container 4 Container 3 OS Web Server App code
  • 16. ECS • Managed Docker by AWS • Container ”image” as Code (Docker) • Cluster image managed by AWS • Two level auto scale, cluster & container • High resources utilization • Container == service (or in javascript container === service)
  • 17. ECS – CLOUD DIAGRAM Load balancer EC2 #1 EC2 #2 Service 1 Service 2 Service 1 Service 2
  • 18. ECS - PROS AND CONS • Pros • Easy to move from AWS • Easy to run locally • Good utilization of resources • Easy and fast auto scale • Easy to maintain the containers • Cons • Another technology knowledge (Docker) • Windows Docker container is problematic
  • 19. LAMBDA FUNCTION • Serverless – no underlying infrastructure • No maintenance • Pay only of runtime • Focus on the code
  • 20. LAMBDA – CLOUD DIAGRAM API Gateway Lambda 1 Lambda 2
  • 21. LAMBDA - PROS AND CONS • Pros • Cheap at low – medium scale • Much less maintenance • Fully managed by AWS (scaling) • Cons • Hard to develop locally • Specific programing languages • No file system • Limited installations • Not mature enough
  • 22. COMPARISON EC2 ECS Lambda Maintenance High Medium Low Cost Effective Low High Depends on scale Flexibility Low High High Auto scaling A lot of work Some work Managed by AWS Coupled with AWS None Low High Local development Easy Easy Complex
  • 24. TODAY • What is microservices? • How to host microservices? • Deployment aspect of microservices
  • 25. DEPLOYMENT • Source control • Build • Test • Deploy • Test & rollback • Monitor • Alerts
  • 26. SOURCE CONTROL • What do we need: • Allow multiple developers to work in parallel • Easy way to merge • Easy way to get specific version code • Support multiple environments
  • 27. SOURCE CONTROL GIT FLOW ENV BASED Master Dev Feature
  • 28. LAMBDA - PROS AND CONS What would you choose?
  • 29. SOURCE CONTROL • Why git flow? • Docker image should be build once • Same image moves between envs freely • Use tags to indicate image usage • Don’t rebuild images between envs • It is a new app (npm install….)
  • 30. BUILD • Independent build server! • Jenkins, CodeBuild • Don’t set configuration at this point • Build should include tests (more on that later) • Push to repository with matching tag (latest stable build)
  • 31. TEST • Static • No need to run the service, but specific parts • Dynamic • Need to run the service, but doesn’t communicate • Depended dynamic • Need to run the service and it’s dependencies
  • 32. DEPLOY • Deploy single service vs Entire cluster • Retag • Live testing • rollback
  • 33. Docker Host (EC2) SINGLE CONTAINER DEPLOYMENT Docker Host (EC2) Container 1 Container 2 Container 3 Container 1 Container 2 Container 3 Container 3 new Container 3 new Traffic routed to new Killed after no traffic Tested
  • 34. Docker Host (EC2) CLUSTER DEPLOYMENT Docker Host (EC2) Container 1 Container 2 Container 3 Container 1 Container 2 Container 3 new Traffic routed to newKilled after no traffic Tested
  • 35. DEPLOY SINGLE SERVICE VS ENTIRE CLUSTER • Entire Cluster • Easier to deploy few services together • Single Container • Simpler
  • 36. LIVE TESTING • Once deployed • Run E2E / API testing • Rollback if needed
  • 37. MONITORING • Application monitoring • Logs • Configuration • Infrastructure monitoring • Logs • Metrics • Automatic actions • Cost
  • 38. ALERTS • Based on metrics and events • Should support: Email, SMS, Phone calls, Slack, and APIs • Should support alerts based on logs
  • 39. TODAY • What is microservices? • How to host microservices? • Deployment aspect of microservices
  翻译: