SlideShare a Scribd company logo
© Electric Cloud | electric-cloud.com | @electriccloud
A DevOps.com webinar featuring Electric Cloud &Trace3
From Monolith to Microservices
& Beyond!
© Electric Cloud | electric-cloud.com | @electriccloud
Speakers
Marc Hornbeek
Principal Consultant,
DevOps
https://www.linkedin.co
m/in/marchornbeek
Anders Wallgren
CTO, Electric Cloud
@anders_wallgren
/ @electriccloud - #ecwebinar
Sam Fell
Moderator, Electric Cloud
@samueldfell
© Electric Cloud | electric-cloud.com | @electriccloud
Quick Polling
Question
© Electric Cloud | electric-cloud.com | @electriccloud
Continuous Delivery of Microservices:
Patterns and Processes
Anders Wallgren
CTO, Electric Cloud
© Electric Cloud | electric-cloud.com | @electriccloud
Agenda
01
What are microservices
and what’s cool about
them?
03
What’s difficult about
microservices?
02
Monolithic Apps: The
good, the bad, the ugly.
04 Best Practices
© Electric Cloud | electric-cloud.com | @electriccloud
What are
microservices
© Electric Cloud | electric-cloud.com | @electriccloud
Microservices
• A pattern for building distributed
systems:
• A suite of services, each running in its
own process, each exposing an API
• Independently developed
• Independently deployable
• Each service is focused on doing one
thing well
“Gather together those
things that change for
the same reason, and
separate those things
that change for different
reasons.”
– Robert Martin
© Electric Cloud | electric-cloud.com | @electriccloud
What’s cool
about
microservices
© Electric Cloud | electric-cloud.com | @electriccloud
What’s cool about Microservices?
Divide and conquer
complex distributed
applications
Loose coupling
Makes it easier to adopt
new technologies
Smaller more autonomous teams
are more productive – better
resource utilization
© Electric Cloud | electric-cloud.com | @electriccloud
Monolithic Apps: The good, the bad, the ugly…
Can be easier to
test
Harder to learn and
understand the
code
Can be easier to
develop
Easier to produce
spaghetti code
Can be easier to
deploy
Hard to adapt to
new technologies
Can’t deploy
anything until you
deploy everything
Have to scale
everything to scale
anything
© Electric Cloud | electric-cloud.com | @electriccloud
So…Was Fred Brooks Wrong?
Emphatically, no…… BUT!! A properly constructed
microservices architecture
makes it vastly easier to
scale teams and scale
applications
https://puppetlabs.com/2015-devops-report-ppc
© Electric Cloud | electric-cloud.com | @electriccloud
Should I use Microservices?
• If you already have solid CI, automated
testing, and automated deployment, and
you’re looking to scale, then maybe
• If you don’t have automated testing, then
you should probably definitely worry
about that first
• You have to be (or become) very good at
automated deployment, testing and
monitoring to reap the benefits.
Microservices are
not a magic
hammer that
will make your
other problems
go away
© Electric Cloud | electric-cloud.com | @electriccloud
Am I ready for microservices?
• If you’re just starting out, stay
monolithic until you understand the
problem better
• You need to be good at infrastructure
provisioning
• You need to be good at rapid
application deployment
• You need to be good at monitoring
• You need to have good domain/system
comprehension http://martinfowler.com/bliki/MicroservicePrerequisites.html
© Electric Cloud | electric-cloud.com | @electriccloud
What’s difficult about Microservices?
• Distributed Systems Are Hard
• State management – transactions, caching, and other fun things
• Team-per-service or Silo-per-service? + Conway’s Law
• Legacy apps: Rewrite? Ignore? Hybrid?
• Good system comprehension is key
• Your service might be small, but how large is its deployment
footprint?
© Electric Cloud | electric-cloud.com | @electriccloud
(Some) Microservices
Best Practices
© Electric Cloud | electric-cloud.com | @electriccloud
What makes a good microservice?
• Loose coupling
• A change to service A shouldn’t require a change in service B
• Small, tightly focused API
• High cohesion
• Each service should have a specific responsibility
• Domain-specific behavior should be in one place
• If you need to change a behavior, you shouldn’t have to change
multiple services
© Electric Cloud | electric-cloud.com | @electriccloud
What size should my services be?
• The smaller the services, the more
benefit you get from decoupling
• You should be able to (re-)rewrite one
in a “small” number of weeks
• If you can’t make a change to a
service and deploy it without
changing other things, then it’s too
large
• The smaller the service, the more
moving parts you have, so you have
to be ready for that, operationally
© Electric Cloud | electric-cloud.com | @electriccloud
Environments & Deployment
• Keep your environments as close to production as is practical
(Docker/Chef/Puppet, etc)
• One service per host
• Minimize the impact of one service on others
• Minimize the impact of a host outage
• Use VMs/containers to make your life easier
• Containers map very well to microservices
• “Immutable servers”
• PaaS solutions can be helpful, but can also constrain you
Automate all the things!
© Electric Cloud | electric-cloud.com | @electriccloud
Things to look out for
• It isn’t necessarily easier to do it this way…
• Your services will evolve over time – you’ll split services, perhaps merge
them, etc. Just accept that.
• You need to be rigorous in handling failures (consider using, e.g. Hystrix
from Netflix to bake in better resiliency)
• Reporting will need to change – you probably won’t have all the data in a
single place (or even a single technology)
• “The network is reliable” (and the rest of the 8 fallacies)
• Be careful about how you expose your data objects over the wire
• “But my service relies on version X of ServiceA and now I’m down”
© Electric Cloud | electric-cloud.com | @electriccloud
Software Pipeline
Best Practices
for Microservices
© Electric Cloud | electric-cloud.com | @electriccloud
Best Practices for CD Pipelines of Microservices-based Apps
• Your Automated Software Pipeline Is Your Friend™
• Ideally, one platform handles all your software delivery
• How’s your test coverage?
• Are your tests automated? Really automated?
• Self-service automation/ChatOps approaches
• Reduce onboarding time, waiting, complexity
• Your solution should provide a real-time view of all the pipelines’ statuses
and any dependencies or exceptions.
• Make sure your deployment pipeline plugs into your monitoring so that
alerts can trigger automatic processes such as rolling back a service,
switching between blue/green deployments, scaling and so on.
© Electric Cloud | electric-cloud.com | @electriccloud
Best Practices for CD Pipelines of Microservices-based Apps
• One repository per service
• Independent CI and Deployment pipelines per service
• “Automate all the things”: plug in all your toolchain to
orchestrate the entire pipeline (CI, testing, configuration,
infrastructure provisioning, deployments, application release
processes, and production feedback loops.)
• Your pipeline must be tools/environment agnostic to support
each team’s workflow and tool chain
• Test automation tools and service virtualization are critical
© Electric Cloud | electric-cloud.com | @electriccloud
Best Practices for CD Pipelines of Microservices-based Apps
• Track artifacts through the pipeline (who checked-in the
code, what tests were run, pass/fail results, on which
environment it was deployed, which configuration was used,
who approved it and so on)
• Bake in compliance into the pipeline by binding certain
security checks and acceptance tests
• Allow for both automatic and manual approval gates
• Create reusable models/processes/automation for your
various pipelines
© Electric Cloud | electric-cloud.com | @electriccloud
Thank you
© Electric Cloud | electric-cloud.com | @electriccloud
Micro-services and Beyond
© Electric Cloud | electric-cloud.com | @electriccloud
40
From Spaghetti to Ravioli
end user
experience
Spaghetti
coded
monolith
Layered SOA
architecture
Loosely coupled
context bounded
microservices
© Electric Cloud | electric-cloud.com | @electriccloud
41
Survey: in a DevOps world, microservices rule
Joe McKendrick, September 2016
30% already in production
20% "seriously piloting"
Who is doing Microservices?
2-pizza
teams 2PT
2006
Strangler
Pattern
Martin Fowler
2004
Microservices in Production
50% of applications being built
and deployed – Lightbend 2016
© Electric Cloud | electric-cloud.com | @electriccloud
42
Microservices Challenges
What comes after microservices?
Presented at InfoQ 2016
Matt Ranney
 Velocity
 Productivity
 Continuous
Delivery
Complexity !
© Electric Cloud | electric-cloud.com | @electriccloud
43
Horizontal Challenges
• DevOps skills
• Resource Management
• Product re-engineering
Dev CI Stage Prod
Vertical Challenges
• Performance testing
• Process re-engineering
• Release co-ordination
• Ops Overhead
© Electric Cloud | electric-cloud.com | @electriccloud
Discussion
© Electric Cloud | electric-cloud.com | @electriccloud
What are the challenges of
monolith decomposition?
© Electric Cloud | electric-cloud.com | @electriccloud
What are the challenges of
Microservice release?
© Electric Cloud | electric-cloud.com | @electriccloud
Why DevOps +
Microservices?
© Electric Cloud | electric-cloud.com | @electriccloud
How can you make Ops
teams comfortable with
Microservices?
© Electric Cloud | electric-cloud.com | @electriccloud
What is the future beyond
Microservices?
© Electric Cloud | electric-cloud.com | @electriccloud
Resources
• http://www.infoq.com/presentations/Breaking-the-
Monolith
• http://martinfowler.com/tags/microservices.html
• http://www.amazon.com/Building-Microservices-Sam-
Newman/dp/1491950358
• http://highscalability.com/blog/2014/7/28/the-great-
microservices-vs-monolithic-apps-twitter-melee.html
© Electric Cloud | electric-cloud.com | @electriccloud
Thank you

More Related Content

What's hot

The Microservices and DevOps Journey
The Microservices and DevOps JourneyThe Microservices and DevOps Journey
The Microservices and DevOps Journey
C4Media
 
Microservice Scars - Alt.net 2hr
Microservice Scars - Alt.net 2hrMicroservice Scars - Alt.net 2hr
Microservice Scars - Alt.net 2hr
Joshua Toth
 
Azure Spring Cloud Workshop - June 17, 2020
Azure Spring Cloud Workshop - June 17, 2020Azure Spring Cloud Workshop - June 17, 2020
Azure Spring Cloud Workshop - June 17, 2020
VMware Tanzu
 
Introduction to Microservices
Introduction to MicroservicesIntroduction to Microservices
Introduction to Microservices
Amazon Web Services
 
Delivering Essentials for Albertsons: VMware TAS’s Critical Role During the C...
Delivering Essentials for Albertsons: VMware TAS’s Critical Role During the C...Delivering Essentials for Albertsons: VMware TAS’s Critical Role During the C...
Delivering Essentials for Albertsons: VMware TAS’s Critical Role During the C...
VMware Tanzu
 
Cloud-native Data
Cloud-native DataCloud-native Data
Cloud-native Data
cornelia davis
 
Dockercon State of the Art in Microservices
Dockercon State of the Art in MicroservicesDockercon State of the Art in Microservices
Dockercon State of the Art in Microservices
Adrian Cockcroft
 
Microservices Architecture
Microservices ArchitectureMicroservices Architecture
Microservices Architecture
Izzet Mustafaiev
 
The Cloud Native Journey
The Cloud Native JourneyThe Cloud Native Journey
The Cloud Native Journey
VMware Tanzu
 
Why to Cloud Native
Why to Cloud NativeWhy to Cloud Native
Why to Cloud Native
Karthik Gaekwad
 
Cloud Foundry Summit 2015: Managing Hybrid Deployments Using Cloud Foundry on...
Cloud Foundry Summit 2015: Managing Hybrid Deployments Using Cloud Foundry on...Cloud Foundry Summit 2015: Managing Hybrid Deployments Using Cloud Foundry on...
Cloud Foundry Summit 2015: Managing Hybrid Deployments Using Cloud Foundry on...
VMware Tanzu
 
Cloud-Native Workshop - Santa Monica
Cloud-Native Workshop - Santa MonicaCloud-Native Workshop - Santa Monica
Cloud-Native Workshop - Santa Monica
VMware Tanzu
 
CIS14: NSTIC - Identity and Access Management Collaborative Approaches to Nov...
CIS14: NSTIC - Identity and Access Management Collaborative Approaches to Nov...CIS14: NSTIC - Identity and Access Management Collaborative Approaches to Nov...
CIS14: NSTIC - Identity and Access Management Collaborative Approaches to Nov...
CloudIDSummit
 
Cloud Native Applications Maturity Model
Cloud Native Applications Maturity ModelCloud Native Applications Maturity Model
Cloud Native Applications Maturity Model
Jim Bugwadia
 
Introduction to Microservices
Introduction to MicroservicesIntroduction to Microservices
Introduction to Microservices
Amazon Web Services
 
App Modernisation with Microsoft Azure
App Modernisation with Microsoft AzureApp Modernisation with Microsoft Azure
App Modernisation with Microsoft Azure
Adam Stephensen
 
From Monolithic to Microservices
From Monolithic to Microservices From Monolithic to Microservices
From Monolithic to Microservices
Amazon Web Services
 
The Need of Cloud-Native Application
The Need of Cloud-Native ApplicationThe Need of Cloud-Native Application
The Need of Cloud-Native Application
Emiliano Pecis
 
Building a Bank out of Microservices (NDC Sydney, August 2016)
Building a Bank out of Microservices (NDC Sydney, August 2016)Building a Bank out of Microservices (NDC Sydney, August 2016)
Building a Bank out of Microservices (NDC Sydney, August 2016)
Graham Lea
 
FLUX - Crash Course in Cloud 2.0
FLUX - Crash Course in Cloud 2.0 FLUX - Crash Course in Cloud 2.0
FLUX - Crash Course in Cloud 2.0
Mark Hinkle
 

What's hot (20)

The Microservices and DevOps Journey
The Microservices and DevOps JourneyThe Microservices and DevOps Journey
The Microservices and DevOps Journey
 
Microservice Scars - Alt.net 2hr
Microservice Scars - Alt.net 2hrMicroservice Scars - Alt.net 2hr
Microservice Scars - Alt.net 2hr
 
Azure Spring Cloud Workshop - June 17, 2020
Azure Spring Cloud Workshop - June 17, 2020Azure Spring Cloud Workshop - June 17, 2020
Azure Spring Cloud Workshop - June 17, 2020
 
Introduction to Microservices
Introduction to MicroservicesIntroduction to Microservices
Introduction to Microservices
 
Delivering Essentials for Albertsons: VMware TAS’s Critical Role During the C...
Delivering Essentials for Albertsons: VMware TAS’s Critical Role During the C...Delivering Essentials for Albertsons: VMware TAS’s Critical Role During the C...
Delivering Essentials for Albertsons: VMware TAS’s Critical Role During the C...
 
Cloud-native Data
Cloud-native DataCloud-native Data
Cloud-native Data
 
Dockercon State of the Art in Microservices
Dockercon State of the Art in MicroservicesDockercon State of the Art in Microservices
Dockercon State of the Art in Microservices
 
Microservices Architecture
Microservices ArchitectureMicroservices Architecture
Microservices Architecture
 
The Cloud Native Journey
The Cloud Native JourneyThe Cloud Native Journey
The Cloud Native Journey
 
Why to Cloud Native
Why to Cloud NativeWhy to Cloud Native
Why to Cloud Native
 
Cloud Foundry Summit 2015: Managing Hybrid Deployments Using Cloud Foundry on...
Cloud Foundry Summit 2015: Managing Hybrid Deployments Using Cloud Foundry on...Cloud Foundry Summit 2015: Managing Hybrid Deployments Using Cloud Foundry on...
Cloud Foundry Summit 2015: Managing Hybrid Deployments Using Cloud Foundry on...
 
Cloud-Native Workshop - Santa Monica
Cloud-Native Workshop - Santa MonicaCloud-Native Workshop - Santa Monica
Cloud-Native Workshop - Santa Monica
 
CIS14: NSTIC - Identity and Access Management Collaborative Approaches to Nov...
CIS14: NSTIC - Identity and Access Management Collaborative Approaches to Nov...CIS14: NSTIC - Identity and Access Management Collaborative Approaches to Nov...
CIS14: NSTIC - Identity and Access Management Collaborative Approaches to Nov...
 
Cloud Native Applications Maturity Model
Cloud Native Applications Maturity ModelCloud Native Applications Maturity Model
Cloud Native Applications Maturity Model
 
Introduction to Microservices
Introduction to MicroservicesIntroduction to Microservices
Introduction to Microservices
 
App Modernisation with Microsoft Azure
App Modernisation with Microsoft AzureApp Modernisation with Microsoft Azure
App Modernisation with Microsoft Azure
 
From Monolithic to Microservices
From Monolithic to Microservices From Monolithic to Microservices
From Monolithic to Microservices
 
The Need of Cloud-Native Application
The Need of Cloud-Native ApplicationThe Need of Cloud-Native Application
The Need of Cloud-Native Application
 
Building a Bank out of Microservices (NDC Sydney, August 2016)
Building a Bank out of Microservices (NDC Sydney, August 2016)Building a Bank out of Microservices (NDC Sydney, August 2016)
Building a Bank out of Microservices (NDC Sydney, August 2016)
 
FLUX - Crash Course in Cloud 2.0
FLUX - Crash Course in Cloud 2.0 FLUX - Crash Course in Cloud 2.0
FLUX - Crash Course in Cloud 2.0
 

Viewers also liked

Microservices with Docker
Microservices with Docker Microservices with Docker
Microservices with Docker
Venkata Naga Ravi
 
Beyond Microservices
Beyond MicroservicesBeyond Microservices
Beyond Microservices
Eberhard Wolff
 
Microservices: Decomposing Applications for Deployability and Scalability (ja...
Microservices: Decomposing Applications for Deployability and Scalability (ja...Microservices: Decomposing Applications for Deployability and Scalability (ja...
Microservices: Decomposing Applications for Deployability and Scalability (ja...
Chris Richardson
 
muCon 2015 "The Business Behind Microservices: Organisational, Architectural,...
muCon 2015 "The Business Behind Microservices: Organisational, Architectural,...muCon 2015 "The Business Behind Microservices: Organisational, Architectural,...
muCon 2015 "The Business Behind Microservices: Organisational, Architectural,...
Daniel Bryant
 
Microservice Architecture
Microservice ArchitectureMicroservice Architecture
Microservice Architecture
tyrantbrian
 
MicroService Architecture
MicroService ArchitectureMicroService Architecture
MicroService Architecture
Fred George
 
Introduction to Microservices
Introduction to MicroservicesIntroduction to Microservices
Introduction to Microservices
Amazon Web Services
 

Viewers also liked (7)

Microservices with Docker
Microservices with Docker Microservices with Docker
Microservices with Docker
 
Beyond Microservices
Beyond MicroservicesBeyond Microservices
Beyond Microservices
 
Microservices: Decomposing Applications for Deployability and Scalability (ja...
Microservices: Decomposing Applications for Deployability and Scalability (ja...Microservices: Decomposing Applications for Deployability and Scalability (ja...
Microservices: Decomposing Applications for Deployability and Scalability (ja...
 
muCon 2015 "The Business Behind Microservices: Organisational, Architectural,...
muCon 2015 "The Business Behind Microservices: Organisational, Architectural,...muCon 2015 "The Business Behind Microservices: Organisational, Architectural,...
muCon 2015 "The Business Behind Microservices: Organisational, Architectural,...
 
Microservice Architecture
Microservice ArchitectureMicroservice Architecture
Microservice Architecture
 
MicroService Architecture
MicroService ArchitectureMicroService Architecture
MicroService Architecture
 
Introduction to Microservices
Introduction to MicroservicesIntroduction to Microservices
Introduction to Microservices
 

Similar to From Monolith to Microservices – and Beyond!

Get Loose! Microservices and Loosely Coupled Architectures
Get Loose! Microservices and Loosely Coupled Architectures Get Loose! Microservices and Loosely Coupled Architectures
Get Loose! Microservices and Loosely Coupled Architectures
DevOps.com
 
Get Loose! Microservices and Loosely Coupled Architectures
Get Loose! Microservices and Loosely Coupled ArchitecturesGet Loose! Microservices and Loosely Coupled Architectures
Get Loose! Microservices and Loosely Coupled Architectures
Deborah Schalm
 
Microservices and Docker: Foundation for a New Generation of Applications
Microservices and Docker: Foundation for a New Generation of ApplicationsMicroservices and Docker: Foundation for a New Generation of Applications
Microservices and Docker: Foundation for a New Generation of Applications
TechWell
 
Diving Deeper into DevOps Deployments
Diving Deeper into DevOps DeploymentsDiving Deeper into DevOps Deployments
Diving Deeper into DevOps Deployments
Jules Pierre-Louis
 
Bridging The Gap Between Dev and Ops
Bridging The Gap Between Dev and OpsBridging The Gap Between Dev and Ops
Bridging The Gap Between Dev and Ops
DevOps.com
 
Sam Fell - Electric Cloud - Automating Continuous Delivery with ElectricFlow
Sam Fell - Electric Cloud - Automating Continuous Delivery with ElectricFlowSam Fell - Electric Cloud - Automating Continuous Delivery with ElectricFlow
Sam Fell - Electric Cloud - Automating Continuous Delivery with ElectricFlow
DevOps Enterprise Summit
 
10 Do’s for DevOps!
 10 Do’s for DevOps!  10 Do’s for DevOps!
10 Do’s for DevOps!
DevOps.com
 
"Shift-Left." Performance And Architecture Validation with Continuous Integra...
"Shift-Left." Performance And Architecture Validation with Continuous Integra..."Shift-Left." Performance And Architecture Validation with Continuous Integra...
"Shift-Left." Performance And Architecture Validation with Continuous Integra...
DevOps.com
 
“Shift-Left.” Performance And Architecture Validation with Continuous Integra...
“Shift-Left.” Performance And Architecture Validation with Continuous Integra...“Shift-Left.” Performance And Architecture Validation with Continuous Integra...
“Shift-Left.” Performance And Architecture Validation with Continuous Integra...
Deborah Schalm
 
Microservices and Docker at Scale: The PB&J of Modern Systems
Microservices and Docker at Scale: The PB&J of Modern SystemsMicroservices and Docker at Scale: The PB&J of Modern Systems
Microservices and Docker at Scale: The PB&J of Modern Systems
TechWell
 
Getting to Cloud Nine: Container, Cloud and Serverless Migration Strategies
Getting to Cloud Nine: Container, Cloud and Serverless Migration StrategiesGetting to Cloud Nine: Container, Cloud and Serverless Migration Strategies
Getting to Cloud Nine: Container, Cloud and Serverless Migration Strategies
DevOps.com
 
Tanay Nagjee - Electric Cloud - Better Continuous Integration with Test Accel...
Tanay Nagjee - Electric Cloud - Better Continuous Integration with Test Accel...Tanay Nagjee - Electric Cloud - Better Continuous Integration with Test Accel...
Tanay Nagjee - Electric Cloud - Better Continuous Integration with Test Accel...
DevOps Enterprise Summit
 
Microservices Tutorial for Beginners | All You Need to Get Started
Microservices Tutorial for Beginners | All You Need to Get StartedMicroservices Tutorial for Beginners | All You Need to Get Started
Microservices Tutorial for Beginners | All You Need to Get Started
Shailendra Chauhan
 
Micro Services Architecture
Micro Services ArchitectureMicro Services Architecture
Micro Services Architecture
Ali BAKAN
 
Affordably Refreshing Your Water District’s Process Control
Affordably Refreshing Your Water District’s Process ControlAffordably Refreshing Your Water District’s Process Control
Affordably Refreshing Your Water District’s Process Control
Inductive Automation
 
Affordably Refreshing Your Water District’s Process Control
Affordably Refreshing Your Water District’s Process ControlAffordably Refreshing Your Water District’s Process Control
Affordably Refreshing Your Water District’s Process Control
Inductive Automation
 
From Measurement to Insight: Putting DevOps Metrics To Work
From Measurement to Insight: Putting DevOps Metrics To WorkFrom Measurement to Insight: Putting DevOps Metrics To Work
From Measurement to Insight: Putting DevOps Metrics To Work
DevOps.com
 
Managing Microservices at Scale
Managing Microservices at ScaleManaging Microservices at Scale
Managing Microservices at Scale
Perforce
 
Concurrency at Scale: Evolution to Micro-Services
Concurrency at Scale:  Evolution to Micro-ServicesConcurrency at Scale:  Evolution to Micro-Services
Concurrency at Scale: Evolution to Micro-Services
Randy Shoup
 
3 Critical Keys to DevOps Success: Lessons from Forrester Research, Intel, an...
3 Critical Keys to DevOps Success: Lessons from Forrester Research, Intel, an...3 Critical Keys to DevOps Success: Lessons from Forrester Research, Intel, an...
3 Critical Keys to DevOps Success: Lessons from Forrester Research, Intel, an...
DevOps.com
 

Similar to From Monolith to Microservices – and Beyond! (20)

Get Loose! Microservices and Loosely Coupled Architectures
Get Loose! Microservices and Loosely Coupled Architectures Get Loose! Microservices and Loosely Coupled Architectures
Get Loose! Microservices and Loosely Coupled Architectures
 
Get Loose! Microservices and Loosely Coupled Architectures
Get Loose! Microservices and Loosely Coupled ArchitecturesGet Loose! Microservices and Loosely Coupled Architectures
Get Loose! Microservices and Loosely Coupled Architectures
 
Microservices and Docker: Foundation for a New Generation of Applications
Microservices and Docker: Foundation for a New Generation of ApplicationsMicroservices and Docker: Foundation for a New Generation of Applications
Microservices and Docker: Foundation for a New Generation of Applications
 
Diving Deeper into DevOps Deployments
Diving Deeper into DevOps DeploymentsDiving Deeper into DevOps Deployments
Diving Deeper into DevOps Deployments
 
Bridging The Gap Between Dev and Ops
Bridging The Gap Between Dev and OpsBridging The Gap Between Dev and Ops
Bridging The Gap Between Dev and Ops
 
Sam Fell - Electric Cloud - Automating Continuous Delivery with ElectricFlow
Sam Fell - Electric Cloud - Automating Continuous Delivery with ElectricFlowSam Fell - Electric Cloud - Automating Continuous Delivery with ElectricFlow
Sam Fell - Electric Cloud - Automating Continuous Delivery with ElectricFlow
 
10 Do’s for DevOps!
 10 Do’s for DevOps!  10 Do’s for DevOps!
10 Do’s for DevOps!
 
"Shift-Left." Performance And Architecture Validation with Continuous Integra...
"Shift-Left." Performance And Architecture Validation with Continuous Integra..."Shift-Left." Performance And Architecture Validation with Continuous Integra...
"Shift-Left." Performance And Architecture Validation with Continuous Integra...
 
“Shift-Left.” Performance And Architecture Validation with Continuous Integra...
“Shift-Left.” Performance And Architecture Validation with Continuous Integra...“Shift-Left.” Performance And Architecture Validation with Continuous Integra...
“Shift-Left.” Performance And Architecture Validation with Continuous Integra...
 
Microservices and Docker at Scale: The PB&J of Modern Systems
Microservices and Docker at Scale: The PB&J of Modern SystemsMicroservices and Docker at Scale: The PB&J of Modern Systems
Microservices and Docker at Scale: The PB&J of Modern Systems
 
Getting to Cloud Nine: Container, Cloud and Serverless Migration Strategies
Getting to Cloud Nine: Container, Cloud and Serverless Migration StrategiesGetting to Cloud Nine: Container, Cloud and Serverless Migration Strategies
Getting to Cloud Nine: Container, Cloud and Serverless Migration Strategies
 
Tanay Nagjee - Electric Cloud - Better Continuous Integration with Test Accel...
Tanay Nagjee - Electric Cloud - Better Continuous Integration with Test Accel...Tanay Nagjee - Electric Cloud - Better Continuous Integration with Test Accel...
Tanay Nagjee - Electric Cloud - Better Continuous Integration with Test Accel...
 
Microservices Tutorial for Beginners | All You Need to Get Started
Microservices Tutorial for Beginners | All You Need to Get StartedMicroservices Tutorial for Beginners | All You Need to Get Started
Microservices Tutorial for Beginners | All You Need to Get Started
 
Micro Services Architecture
Micro Services ArchitectureMicro Services Architecture
Micro Services Architecture
 
Affordably Refreshing Your Water District’s Process Control
Affordably Refreshing Your Water District’s Process ControlAffordably Refreshing Your Water District’s Process Control
Affordably Refreshing Your Water District’s Process Control
 
Affordably Refreshing Your Water District’s Process Control
Affordably Refreshing Your Water District’s Process ControlAffordably Refreshing Your Water District’s Process Control
Affordably Refreshing Your Water District’s Process Control
 
From Measurement to Insight: Putting DevOps Metrics To Work
From Measurement to Insight: Putting DevOps Metrics To WorkFrom Measurement to Insight: Putting DevOps Metrics To Work
From Measurement to Insight: Putting DevOps Metrics To Work
 
Managing Microservices at Scale
Managing Microservices at ScaleManaging Microservices at Scale
Managing Microservices at Scale
 
Concurrency at Scale: Evolution to Micro-Services
Concurrency at Scale:  Evolution to Micro-ServicesConcurrency at Scale:  Evolution to Micro-Services
Concurrency at Scale: Evolution to Micro-Services
 
3 Critical Keys to DevOps Success: Lessons from Forrester Research, Intel, an...
3 Critical Keys to DevOps Success: Lessons from Forrester Research, Intel, an...3 Critical Keys to DevOps Success: Lessons from Forrester Research, Intel, an...
3 Critical Keys to DevOps Success: Lessons from Forrester Research, Intel, an...
 

More from Jules Pierre-Louis

The Coming Earthquake in IIS and SQL Configuration Management
The Coming Earthquake  in IIS and SQL Configuration ManagementThe Coming Earthquake  in IIS and SQL Configuration Management
The Coming Earthquake in IIS and SQL Configuration Management
Jules Pierre-Louis
 
Microservice Monitoring and Quality Management for Modern Apps and Infrastruc...
Microservice Monitoring and Quality Management for Modern Apps and Infrastruc...Microservice Monitoring and Quality Management for Modern Apps and Infrastruc...
Microservice Monitoring and Quality Management for Modern Apps and Infrastruc...
Jules Pierre-Louis
 
The Human Side of DevSecOps
The Human Side of DevSecOpsThe Human Side of DevSecOps
The Human Side of DevSecOps
Jules Pierre-Louis
 
Sandstorm or Significant: The evolving role of context in Incident Management
Sandstorm or Significant: The evolving role of context in Incident ManagementSandstorm or Significant: The evolving role of context in Incident Management
Sandstorm or Significant: The evolving role of context in Incident Management
Jules Pierre-Louis
 
Cloud bees and forester open source is not enough
Cloud bees and forester open source is not enough  Cloud bees and forester open source is not enough
Cloud bees and forester open source is not enough
Jules Pierre-Louis
 
Efficient Performance Test Automation - Opitmizing the Jenkins Pipeline
Efficient Performance Test Automation - Opitmizing the Jenkins PipelineEfficient Performance Test Automation - Opitmizing the Jenkins Pipeline
Efficient Performance Test Automation - Opitmizing the Jenkins Pipeline
Jules Pierre-Louis
 
How to Build the Right Automation
How to Build the Right AutomationHow to Build the Right Automation
How to Build the Right Automation
Jules Pierre-Louis
 
Starting and Scaling Devops
Starting and Scaling Devops Starting and Scaling Devops
Starting and Scaling Devops
Jules Pierre-Louis
 
Starting and Scaling DevOps
Starting and Scaling DevOpsStarting and Scaling DevOps
Starting and Scaling DevOps
Jules Pierre-Louis
 
Containers: DevOp Enablers of Technical Solutions
Containers: DevOp Enablers of Technical SolutionsContainers: DevOp Enablers of Technical Solutions
Containers: DevOp Enablers of Technical Solutions
Jules Pierre-Louis
 
Adopting DevOps @ Scale: Lessons learned at Hertz, Kaiser Permanente and lBM
Adopting DevOps @ Scale: Lessons learned at Hertz, Kaiser Permanente and lBMAdopting DevOps @ Scale: Lessons learned at Hertz, Kaiser Permanente and lBM
Adopting DevOps @ Scale: Lessons learned at Hertz, Kaiser Permanente and lBM
Jules Pierre-Louis
 
Managing Quality of Service for Containerized Microservice Applications
Managing Quality of Service for Containerized Microservice ApplicationsManaging Quality of Service for Containerized Microservice Applications
Managing Quality of Service for Containerized Microservice Applications
Jules Pierre-Louis
 
The Evolution of Application Release Automation
The Evolution of Application Release AutomationThe Evolution of Application Release Automation
The Evolution of Application Release Automation
Jules Pierre-Louis
 
DevOPs Transformation Workshop
DevOPs Transformation WorkshopDevOPs Transformation Workshop
DevOPs Transformation Workshop
Jules Pierre-Louis
 
Pipeline: Continuous Delivery as Code in Jenkins 2.0
Pipeline: Continuous Delivery as Code in Jenkins 2.0Pipeline: Continuous Delivery as Code in Jenkins 2.0
Pipeline: Continuous Delivery as Code in Jenkins 2.0
Jules Pierre-Louis
 
7 Habits of Highly Effective Jenkins Users
7 Habits of Highly Effective Jenkins Users7 Habits of Highly Effective Jenkins Users
7 Habits of Highly Effective Jenkins Users
Jules Pierre-Louis
 
7 Habits of Highly Effective Jenkins Users
7 Habits of Highly Effective Jenkins Users7 Habits of Highly Effective Jenkins Users
7 Habits of Highly Effective Jenkins Users
Jules Pierre-Louis
 
Webinar: A Roadmap for DevOps Success
Webinar: A Roadmap for DevOps SuccessWebinar: A Roadmap for DevOps Success
Webinar: A Roadmap for DevOps Success
Jules Pierre-Louis
 

More from Jules Pierre-Louis (18)

The Coming Earthquake in IIS and SQL Configuration Management
The Coming Earthquake  in IIS and SQL Configuration ManagementThe Coming Earthquake  in IIS and SQL Configuration Management
The Coming Earthquake in IIS and SQL Configuration Management
 
Microservice Monitoring and Quality Management for Modern Apps and Infrastruc...
Microservice Monitoring and Quality Management for Modern Apps and Infrastruc...Microservice Monitoring and Quality Management for Modern Apps and Infrastruc...
Microservice Monitoring and Quality Management for Modern Apps and Infrastruc...
 
The Human Side of DevSecOps
The Human Side of DevSecOpsThe Human Side of DevSecOps
The Human Side of DevSecOps
 
Sandstorm or Significant: The evolving role of context in Incident Management
Sandstorm or Significant: The evolving role of context in Incident ManagementSandstorm or Significant: The evolving role of context in Incident Management
Sandstorm or Significant: The evolving role of context in Incident Management
 
Cloud bees and forester open source is not enough
Cloud bees and forester open source is not enough  Cloud bees and forester open source is not enough
Cloud bees and forester open source is not enough
 
Efficient Performance Test Automation - Opitmizing the Jenkins Pipeline
Efficient Performance Test Automation - Opitmizing the Jenkins PipelineEfficient Performance Test Automation - Opitmizing the Jenkins Pipeline
Efficient Performance Test Automation - Opitmizing the Jenkins Pipeline
 
How to Build the Right Automation
How to Build the Right AutomationHow to Build the Right Automation
How to Build the Right Automation
 
Starting and Scaling Devops
Starting and Scaling Devops Starting and Scaling Devops
Starting and Scaling Devops
 
Starting and Scaling DevOps
Starting and Scaling DevOpsStarting and Scaling DevOps
Starting and Scaling DevOps
 
Containers: DevOp Enablers of Technical Solutions
Containers: DevOp Enablers of Technical SolutionsContainers: DevOp Enablers of Technical Solutions
Containers: DevOp Enablers of Technical Solutions
 
Adopting DevOps @ Scale: Lessons learned at Hertz, Kaiser Permanente and lBM
Adopting DevOps @ Scale: Lessons learned at Hertz, Kaiser Permanente and lBMAdopting DevOps @ Scale: Lessons learned at Hertz, Kaiser Permanente and lBM
Adopting DevOps @ Scale: Lessons learned at Hertz, Kaiser Permanente and lBM
 
Managing Quality of Service for Containerized Microservice Applications
Managing Quality of Service for Containerized Microservice ApplicationsManaging Quality of Service for Containerized Microservice Applications
Managing Quality of Service for Containerized Microservice Applications
 
The Evolution of Application Release Automation
The Evolution of Application Release AutomationThe Evolution of Application Release Automation
The Evolution of Application Release Automation
 
DevOPs Transformation Workshop
DevOPs Transformation WorkshopDevOPs Transformation Workshop
DevOPs Transformation Workshop
 
Pipeline: Continuous Delivery as Code in Jenkins 2.0
Pipeline: Continuous Delivery as Code in Jenkins 2.0Pipeline: Continuous Delivery as Code in Jenkins 2.0
Pipeline: Continuous Delivery as Code in Jenkins 2.0
 
7 Habits of Highly Effective Jenkins Users
7 Habits of Highly Effective Jenkins Users7 Habits of Highly Effective Jenkins Users
7 Habits of Highly Effective Jenkins Users
 
7 Habits of Highly Effective Jenkins Users
7 Habits of Highly Effective Jenkins Users7 Habits of Highly Effective Jenkins Users
7 Habits of Highly Effective Jenkins Users
 
Webinar: A Roadmap for DevOps Success
Webinar: A Roadmap for DevOps SuccessWebinar: A Roadmap for DevOps Success
Webinar: A Roadmap for DevOps Success
 

Recently uploaded

Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"
Donna Lenk
 
GraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph TechnologyGraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph Technology
Neo4j
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
abdulrafaychaudhry
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
Paco van Beckhoven
 
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteAI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
Google
 
AI Genie Review: World’s First Open AI WordPress Website Creator
AI Genie Review: World’s First Open AI WordPress Website CreatorAI Genie Review: World’s First Open AI WordPress Website Creator
AI Genie Review: World’s First Open AI WordPress Website Creator
Google
 
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOMLORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
lorraineandreiamcidl
 
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket ManagementUtilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate
 
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdfAutomated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
timtebeek1
 
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
XfilesPro
 
BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024
Ortus Solutions, Corp
 
E-commerce Application Development Company.pdf
E-commerce Application Development Company.pdfE-commerce Application Development Company.pdf
E-commerce Application Development Company.pdf
Hornet Dynamics
 
First Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User EndpointsFirst Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User Endpoints
Globus
 
Graspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code AnalysisGraspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code Analysis
Aftab Hussain
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
Adele Miller
 
Large Language Models and the End of Programming
Large Language Models and the End of ProgrammingLarge Language Models and the End of Programming
Large Language Models and the End of Programming
Matt Welsh
 
openEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain SecurityopenEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain Security
Shane Coughlan
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
Fermin Galan
 
Enterprise Software Development with No Code Solutions.pptx
Enterprise Software Development with No Code Solutions.pptxEnterprise Software Development with No Code Solutions.pptx
Enterprise Software Development with No Code Solutions.pptx
QuickwayInfoSystems3
 
Pro Unity Game Development with C-sharp Book
Pro Unity Game Development with C-sharp BookPro Unity Game Development with C-sharp Book
Pro Unity Game Development with C-sharp Book
abdulrafaychaudhry
 

Recently uploaded (20)

Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"
 
GraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph TechnologyGraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph Technology
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
 
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteAI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
 
AI Genie Review: World’s First Open AI WordPress Website Creator
AI Genie Review: World’s First Open AI WordPress Website CreatorAI Genie Review: World’s First Open AI WordPress Website Creator
AI Genie Review: World’s First Open AI WordPress Website Creator
 
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOMLORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
 
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket ManagementUtilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
 
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdfAutomated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
 
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
 
BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024
 
E-commerce Application Development Company.pdf
E-commerce Application Development Company.pdfE-commerce Application Development Company.pdf
E-commerce Application Development Company.pdf
 
First Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User EndpointsFirst Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User Endpoints
 
Graspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code AnalysisGraspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code Analysis
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
 
Large Language Models and the End of Programming
Large Language Models and the End of ProgrammingLarge Language Models and the End of Programming
Large Language Models and the End of Programming
 
openEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain SecurityopenEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain Security
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
 
Enterprise Software Development with No Code Solutions.pptx
Enterprise Software Development with No Code Solutions.pptxEnterprise Software Development with No Code Solutions.pptx
Enterprise Software Development with No Code Solutions.pptx
 
Pro Unity Game Development with C-sharp Book
Pro Unity Game Development with C-sharp BookPro Unity Game Development with C-sharp Book
Pro Unity Game Development with C-sharp Book
 

From Monolith to Microservices – and Beyond!

  • 1. © Electric Cloud | electric-cloud.com | @electriccloud A DevOps.com webinar featuring Electric Cloud &Trace3 From Monolith to Microservices & Beyond!
  • 2. © Electric Cloud | electric-cloud.com | @electriccloud Speakers Marc Hornbeek Principal Consultant, DevOps https://www.linkedin.co m/in/marchornbeek Anders Wallgren CTO, Electric Cloud @anders_wallgren / @electriccloud - #ecwebinar Sam Fell Moderator, Electric Cloud @samueldfell
  • 3. © Electric Cloud | electric-cloud.com | @electriccloud Quick Polling Question
  • 4. © Electric Cloud | electric-cloud.com | @electriccloud Continuous Delivery of Microservices: Patterns and Processes Anders Wallgren CTO, Electric Cloud
  • 5. © Electric Cloud | electric-cloud.com | @electriccloud Agenda 01 What are microservices and what’s cool about them? 03 What’s difficult about microservices? 02 Monolithic Apps: The good, the bad, the ugly. 04 Best Practices
  • 6. © Electric Cloud | electric-cloud.com | @electriccloud What are microservices
  • 7. © Electric Cloud | electric-cloud.com | @electriccloud Microservices • A pattern for building distributed systems: • A suite of services, each running in its own process, each exposing an API • Independently developed • Independently deployable • Each service is focused on doing one thing well “Gather together those things that change for the same reason, and separate those things that change for different reasons.” – Robert Martin
  • 8. © Electric Cloud | electric-cloud.com | @electriccloud What’s cool about microservices
  • 9. © Electric Cloud | electric-cloud.com | @electriccloud What’s cool about Microservices? Divide and conquer complex distributed applications Loose coupling Makes it easier to adopt new technologies Smaller more autonomous teams are more productive – better resource utilization
  • 10. © Electric Cloud | electric-cloud.com | @electriccloud Monolithic Apps: The good, the bad, the ugly… Can be easier to test Harder to learn and understand the code Can be easier to develop Easier to produce spaghetti code Can be easier to deploy Hard to adapt to new technologies Can’t deploy anything until you deploy everything Have to scale everything to scale anything
  • 11. © Electric Cloud | electric-cloud.com | @electriccloud So…Was Fred Brooks Wrong? Emphatically, no…… BUT!! A properly constructed microservices architecture makes it vastly easier to scale teams and scale applications https://puppetlabs.com/2015-devops-report-ppc
  • 12. © Electric Cloud | electric-cloud.com | @electriccloud Should I use Microservices? • If you already have solid CI, automated testing, and automated deployment, and you’re looking to scale, then maybe • If you don’t have automated testing, then you should probably definitely worry about that first • You have to be (or become) very good at automated deployment, testing and monitoring to reap the benefits. Microservices are not a magic hammer that will make your other problems go away
  • 13. © Electric Cloud | electric-cloud.com | @electriccloud Am I ready for microservices? • If you’re just starting out, stay monolithic until you understand the problem better • You need to be good at infrastructure provisioning • You need to be good at rapid application deployment • You need to be good at monitoring • You need to have good domain/system comprehension http://martinfowler.com/bliki/MicroservicePrerequisites.html
  • 14. © Electric Cloud | electric-cloud.com | @electriccloud What’s difficult about Microservices? • Distributed Systems Are Hard • State management – transactions, caching, and other fun things • Team-per-service or Silo-per-service? + Conway’s Law • Legacy apps: Rewrite? Ignore? Hybrid? • Good system comprehension is key • Your service might be small, but how large is its deployment footprint?
  • 15. © Electric Cloud | electric-cloud.com | @electriccloud (Some) Microservices Best Practices
  • 16. © Electric Cloud | electric-cloud.com | @electriccloud What makes a good microservice? • Loose coupling • A change to service A shouldn’t require a change in service B • Small, tightly focused API • High cohesion • Each service should have a specific responsibility • Domain-specific behavior should be in one place • If you need to change a behavior, you shouldn’t have to change multiple services
  • 17. © Electric Cloud | electric-cloud.com | @electriccloud What size should my services be? • The smaller the services, the more benefit you get from decoupling • You should be able to (re-)rewrite one in a “small” number of weeks • If you can’t make a change to a service and deploy it without changing other things, then it’s too large • The smaller the service, the more moving parts you have, so you have to be ready for that, operationally
  • 18. © Electric Cloud | electric-cloud.com | @electriccloud Environments & Deployment • Keep your environments as close to production as is practical (Docker/Chef/Puppet, etc) • One service per host • Minimize the impact of one service on others • Minimize the impact of a host outage • Use VMs/containers to make your life easier • Containers map very well to microservices • “Immutable servers” • PaaS solutions can be helpful, but can also constrain you Automate all the things!
  • 19. © Electric Cloud | electric-cloud.com | @electriccloud Things to look out for • It isn’t necessarily easier to do it this way… • Your services will evolve over time – you’ll split services, perhaps merge them, etc. Just accept that. • You need to be rigorous in handling failures (consider using, e.g. Hystrix from Netflix to bake in better resiliency) • Reporting will need to change – you probably won’t have all the data in a single place (or even a single technology) • “The network is reliable” (and the rest of the 8 fallacies) • Be careful about how you expose your data objects over the wire • “But my service relies on version X of ServiceA and now I’m down”
  • 20. © Electric Cloud | electric-cloud.com | @electriccloud Software Pipeline Best Practices for Microservices
  • 21. © Electric Cloud | electric-cloud.com | @electriccloud Best Practices for CD Pipelines of Microservices-based Apps • Your Automated Software Pipeline Is Your Friend™ • Ideally, one platform handles all your software delivery • How’s your test coverage? • Are your tests automated? Really automated? • Self-service automation/ChatOps approaches • Reduce onboarding time, waiting, complexity • Your solution should provide a real-time view of all the pipelines’ statuses and any dependencies or exceptions. • Make sure your deployment pipeline plugs into your monitoring so that alerts can trigger automatic processes such as rolling back a service, switching between blue/green deployments, scaling and so on.
  • 22. © Electric Cloud | electric-cloud.com | @electriccloud Best Practices for CD Pipelines of Microservices-based Apps • One repository per service • Independent CI and Deployment pipelines per service • “Automate all the things”: plug in all your toolchain to orchestrate the entire pipeline (CI, testing, configuration, infrastructure provisioning, deployments, application release processes, and production feedback loops.) • Your pipeline must be tools/environment agnostic to support each team’s workflow and tool chain • Test automation tools and service virtualization are critical
  • 23. © Electric Cloud | electric-cloud.com | @electriccloud Best Practices for CD Pipelines of Microservices-based Apps • Track artifacts through the pipeline (who checked-in the code, what tests were run, pass/fail results, on which environment it was deployed, which configuration was used, who approved it and so on) • Bake in compliance into the pipeline by binding certain security checks and acceptance tests • Allow for both automatic and manual approval gates • Create reusable models/processes/automation for your various pipelines
  • 24. © Electric Cloud | electric-cloud.com | @electriccloud Thank you
  • 25. © Electric Cloud | electric-cloud.com | @electriccloud Micro-services and Beyond
  • 26. © Electric Cloud | electric-cloud.com | @electriccloud 40 From Spaghetti to Ravioli end user experience Spaghetti coded monolith Layered SOA architecture Loosely coupled context bounded microservices
  • 27. © Electric Cloud | electric-cloud.com | @electriccloud 41 Survey: in a DevOps world, microservices rule Joe McKendrick, September 2016 30% already in production 20% "seriously piloting" Who is doing Microservices? 2-pizza teams 2PT 2006 Strangler Pattern Martin Fowler 2004 Microservices in Production 50% of applications being built and deployed – Lightbend 2016
  • 28. © Electric Cloud | electric-cloud.com | @electriccloud 42 Microservices Challenges What comes after microservices? Presented at InfoQ 2016 Matt Ranney  Velocity  Productivity  Continuous Delivery Complexity !
  • 29. © Electric Cloud | electric-cloud.com | @electriccloud 43 Horizontal Challenges • DevOps skills • Resource Management • Product re-engineering Dev CI Stage Prod Vertical Challenges • Performance testing • Process re-engineering • Release co-ordination • Ops Overhead
  • 30. © Electric Cloud | electric-cloud.com | @electriccloud Discussion
  • 31. © Electric Cloud | electric-cloud.com | @electriccloud What are the challenges of monolith decomposition?
  • 32. © Electric Cloud | electric-cloud.com | @electriccloud What are the challenges of Microservice release?
  • 33. © Electric Cloud | electric-cloud.com | @electriccloud Why DevOps + Microservices?
  • 34. © Electric Cloud | electric-cloud.com | @electriccloud How can you make Ops teams comfortable with Microservices?
  • 35. © Electric Cloud | electric-cloud.com | @electriccloud What is the future beyond Microservices?
  • 36. © Electric Cloud | electric-cloud.com | @electriccloud Resources • http://www.infoq.com/presentations/Breaking-the- Monolith • http://martinfowler.com/tags/microservices.html • http://www.amazon.com/Building-Microservices-Sam- Newman/dp/1491950358 • http://highscalability.com/blog/2014/7/28/the-great- microservices-vs-monolithic-apps-twitter-melee.html
  • 37. © Electric Cloud | electric-cloud.com | @electriccloud Thank you

Editor's Notes

  1. Presentationstitle | Date
  2. For years, virtualization and cloud technologies have provided agile, on-demand infrastructure. The advent of Microservices promises even more agility– but what is required to take advantage of Microservices?   Join Electric Cloud CTO Anders Wallgren and Trace3 Principal Consultant - DevOps Marc Hornbeek as they discuss what is required to:   Overcome culture and architecture challenges created when decomposing monolithic applications into Microservices-based applications. Coordinate integration, testing, monitoring, packaging, release approval and deployment of Microservices-based applications over elastic infrastructures Create a controlled and auditable delivery pipeline to support Microservices-based application. Prepare for “future” applications, pipelines and patterns.   Attendees will receive a complimentary copy of the Gartner 2016 Application Release Automation Magic Quadrant.
  3. Divide and conquer complex distributed applications Loose coupling, so each service can: choose the tooling that’s appropriate for the problem it solves can be scaled as appropriate, independent of other services can have its own lifecycle independent of other services Makes it easier to adopt new technologies Smaller more autonomous teams are more productive Better resource utilization
  4. Can be easier to test Can be easier to develop Can be easier to deploy ------- Can’t deploy anything until you deploy everything Harder to learn and understand the code Easier to produce spaghetti code Hard to adopt new technologies You have to scale everything to scale anything
  5. Service composition is tricky to get right, can be expensive to change Inter-process failure modes have to be accounted for Abstractions look good on paper but beware of bottlenecks Service discovery
  6. Key message for this presentation: Agility and technology are business disruptors affecting customer competitive differentiation and business survival. Script: DevOps has become essential for business survival. Yet many businesses are struggling to understand and implement DevOps. Trace3 Enterprise Transformation Services help customers envision a DevOps solution. General instructions: