microservices as containers on aws . . . for fun and profit
TRANSCRIPT
Microservices as Containers on AWS…
for Fun and ProfitCasey Lee, Senior DevOps Engineer, Stelligent
www.stelligent.com 2
Introduction
Microservice
Principles
Monolith
Decomposition
Containers &
Continuous Delivery
mu
www.stelligent.com
What’s wrong with my monolith?
3
www.stelligent.com
Team coupling affects agility
Monolith Challenges
4
Code
Monolith
Code
Code
Daily
Weekly
Monthly
www.stelligent.com
Deployment coupling affects availability
Monolith Challenges
5
Code
Monolith
Code
Code
Code
Monolith
Code
Code
www.stelligent.com
How do microservices help?
6
www.stelligent.com 7
MICROSERVICES
“Small, autonomous services
that work together.”
-SAM NEWMAN, 2014
www.stelligent.com 8
SINGLE RESPONSIBILITY
PRINCIPLE
“A class should have only
one reason to change.”
-ROBERT C. MARTIN, circa 2003
www.stelligent.com
THE UNIX PHILOSOPHY
“Write programs that do one
thing and do it well. Write
programs to work together.”
-DOUG MCILROY, circa 1978
9
www.stelligent.com 10
MICROSERVICES
“Small, autonomous services
that work together.”
-SAM NEWMAN, 2014
www.stelligent.com
Team autonomy
Microservice Principles
11
Code
Microservice
Code
Microservice
Code
Microservice
www.stelligent.com
Independent deployments
Microservice Principles
12
Code
Microservice
Code
Microservice
Code
Microservice
Code
Microservice
www.stelligent.com
Public APIs
Microservice Principles
13
Code
Microservice
Code
Microservice
Code
Microservice
www.stelligent.com
Private implementations
Microservice Principles
14
Code
Microservice
Code
Microservice
Code
Microservice
DB
DB
www.stelligent.com
Where do I start?
15
Step 1 - Capability Cohesion
Code Order Code
Monolith ServiceMonolith Service
Customer Code
Monolith DB
Monolith DB
16
Step 2 - Data Cohesion
Order Code
Monolith Service
Customer Code
Order Code
Monolith Service
Customer Code
Monolith DB
OrderDB
CustomerDB
17
Step 3 - Deployment Cohesion
Order Code
Microservice
Customer Code
OrderDB
CustomerDB
Order Code
Monolith Service
Customer Code
OrderDB
CustomerDB
Microservice
18
www.stelligent.com
How do I manage?
19
www.stelligent.com 20
Microservices
Continuous
Delivery
Containers
Monolith
www.stelligent.com 21
Amazon ECRAmazon ECS
Amazon
EC2
Amazon
VPC
router
VPC NAT
gateway
Auto ScalingApplication
Load Balancer
Elastic Load
Balancing
MySQL DB
instance
Amazon
RDSAWS
CodeCommit
AWS
CodePipeline
AWS
CodeBuild
Amazon
CloudWatchAWS
CloudFormation
alarm
IAM
rolestack
virtual private cloud
ECR registryEC2 compute
container
template
www.stelligent.com 22
http://getmu.io
www.stelligent.com 23
www.stelligent.com
Overview
24
www.stelligent.com
Pipelines
25
www.stelligent.com
Environment
26
www.stelligent.com
Service
27
www.stelligent.com
Service #2
28
www.stelligent.com 29
Example
www.stelligent.com
banana-service
30
www.stelligent.com
Database
31
www.stelligent.com 32
Demo
www.stelligent.com
Service Discovery
33
www.stelligent.com 34
Summary
Microservice
Principles
Monolith
Decomposition
Containers &
Continuous Delivery
mu
www.stelligent.com 35
Next Steps
Workshops
• New York, NY - Tuesday, June 13
• Arlington, VA - Thursday, June 15
• San Francisco, CA - Tuesday, June 20
www.stelligent.com
Resources
• mu - http://getmu.io/
• GitHub - https://github.com/stelligent/mu
• Blogs -
• Introduction - https://stelligent.com/2017/04/11/mu-introduction-ecs-for-microservices/
• Testing - https://stelligent.com/2017/04/27/mu-testing-continuous-delivery/
• Databases - https://stelligent.com/2017/05/09/microservice-databases-with-mu/
• Service Discovery - tbd
36
For more information on how Stelligent can help you with AWS Automation, go to www.stelligent.com
Q&A