Date post: | 16-Apr-2017 |
Category: |
Technology |
Upload: | mistio |
View: | 228 times |
Download: | 1 times |
Webinar October 20th, 2016
How to move from Monolith to Microservices
Who are the speakers?
Dimitris “Dimo”
Moraitis
● Mist.io
● Co-founder and CTO
DeWayne Filppi
● Cloudify
● Sr. Architect, office of
the CTO
2
Agenda
● Why microservices?
● Architecture principles
● Mist.io use case
● Management pain points
● Tools demo
● Q&A
3
Why Microservices? ● Scalability + uptime
● Security
● Faster dev., testing, and bug fixes
● A new management paradigm
4
When should you consider microservices?
Is it just about scalability?
5
Why Kubernetes for container orchestration?
Mesos ● Stability● Momentum● Active community● Easier to conf. adv. use cases● Delivering on promise
6
Docker Swarm
Kubernetes
Microservices - What’s the reality?
7
“It’s not a state it’s a journey”
Architecture Principles
8
● Make services stateless
● Design for monitoring in
mind
● Prepare for failure
● Prepare for eventual
consistency
● Keep services and teams
small, let them design their
own structures
Mist.io Use Case9
Mist.io Use Case
Deploying code Before● Could be scary, no easy
way to roll back ● Manual w/ lots of steps ● Error prone
10
CI / automation
Scaling infrastructure
Infrastructure configuration
After● Predictable, easy to rollback● Faster, less work● Automated - using k8s to
map and automate steps
Mist.io Use Case
Deploying code Before● Used Jenkins - not
friendly, time consuming, bad UI, and hard to configure, and bad syntax
● Maintained by QA team
11
CI / automation
Scaling infrastructure
Infrastructure configuration
After● Use GitLab - easier to use
with less friction● Easier to implement more
advanced workflows● Workflows are part of
development process
Mist.io Use Case
Deploying code Before● Time consuming● Limited; not optimal● Manual/semi automated
provisioning● Machines under utilized
12
CI / automation
Scaling infrastructure
Infrastructure configuration
After● Can scale seamlessly ● Serve more users and pay
less for infrastructure ● 50% costs reduction
Mist.io Use Case
Deploying code Before● Server “pets”; manual
administration● Deploy code to each
server● Configure servers to
become part of deployment
● AWS; 8 XL instances
13
CI / automation
Scaling infrastructure
Infrastructure configuration
After● Elastic k8s clusters; ● Just add nodes, Kubernetes
orchestrates and schedules app using available nodes
● 12 medium instances
Kubernetes Management Challenges
14
● Provisioning a cluster
● Healing (HA)
● Scaling a cluster
● Auto scaling
● Monitoring
Dev & Testing Challenges w/ k8s
15
● Development
○ Local development w/
k8s
○ Local dev w/out K8s
● Testing
○ Kubernetes
○ Stress testing
○ Automation /
autoscaling
What was gained?● Reduced infrastructure costs by 50% due to better
utilization
● Better scalability of app, infrastructure, and dev
team
● Better reliability of app
● Predictable deployments w/ no downtime
● Streamlined QA process
Demos
17
● Mist.io’s Cloudify as a Service -
Kubernetes blueprint
● Cloudify Kubernetes blueprint
Q&AMist.io
● Mario Olivarez - [email protected]
Create a Kubernetes lab and test environment - FREE account. Sign up at Mist.io
18
Cloudify Webinar Series
● getcloudify.org/webinars.html