SlideShare a Scribd company logo
1 of 23
Save 42% off Microservices in
Action with code slbruce at
manning.com.
Imagine that you’re a developer for SimpleBank.
You have designed a feature for SimpleBank that involves the
interaction of multiple services, an event queue, and an API
gateway.
Let’s say you’ve taken the next step, built those services, and
now the CEO is pushing you to get those into production.
When using public clouds like AWS or GCE, the obvious
solution is to deploy each service to a group of virtual
machines.
Load balancers would be used to spread load evenly across
instances of each web-facing service, while a managed event
queue, such as AWS’s Simple Queue Service, could be used
to distribute events between services.
Long story short, let’s say that you compiled that code, ftp’d it
onto those VMs, got the databases up and running, and tried
some test requests.
This all took about a week.
The next slide depicts what your production infrastructure
might look like.
This arrangement worked well enough… for a while.
Over the next few weeks, you made a few changes and
pushed out the new code.
But soon, you started to run into trouble. It was hard to tell if
the services were working as expected.
A few problems soon reared their ugly heads:
you were the only person at SimpleBank who knew how to
release a new version
the person who wrote the Transaction service went on
holiday for a few weeks, and no one else knew how that was
deployed
These services won’t survive the disappearance of team
members – we’re going to be in a pickle soon!
From the info at hand, it’s probably safe to say that your
feature was deployed prematurely.
How can we ensure that a microservice feature is production-
ready, without having to resort to rounds of time-consuming
debates (which slow down deployment) within the
development team?
We need to consider the following:
Reliability: is our service available and error-free? Can we
rely on our deployment process?
Scalability: do we understand the resource and capacity
needs of a service? How will we maintain responsiveness
under load?
Transparency: can we observe a service in operation
through logs and metrics? If something goes wrong, is
someone notified?
Fault-tolerance: have we mitigated single points of failure?
How do we cope with the failure of other service
dependencies?
At this early stage in the lifetime of our microservice
application, it is most important to establish the following two
fundamentals:
stable, automated deployments
transparent operation
Let’s see how we can address these issues in the scope of
your work at SimpleBank.
The greater development speed that comes with using the
microservice architecture won’t be of much use if you can’t get
services to production reliably and rapidly.
The pain of unstable deployments – such as introducing a
serious error – will eliminate any gains in velocity.
Companies are often tempted to impose change control and
approval processes – to avoid problematic deployments.
In a microservice architecture, however, this won’t work. The
system will be in a state of continuous evolution, which
allows fast and tangible innovation.
This is likely the reason you’re using microservices in
the first place!
To ensure that developmental freedom and flexibility, and to
minimize the occurrence of errors and outages, we need two
things:
we need to ensure that we can trust our development and
deployment processes
we need to minimize the effort required to release or
change a new service
We can achieve stability through standardization and
automation:
The development process should be standardized: code
changes should be reviewed, appropriate tests should be
written, and source should be version-controlled.
The deployment process should be standardized and
automated: the delivery of a code change to production
should be thoroughly validated and require minimal
intervention from an engineer.
This is called a deployment pipeline.
A microservice should be transparent: at any point in time, we
should be able to determine whether the service is healthy
and whether it’s processing its workload in the way that we
expect.
If something isn’t working correctly, an alert should be going
out to an engineer automatically.
Last week, there was an
outage at SimpleBank that
affected every customer. This
image shows the possible
points of failure within the
service.
A quick investigation turned up that requests made to our
order creation service were timing out.
At this point, it was clear that we had a major operational
problem, but we lacked logging to determine exactly what
went wrong and where things were falling apart.
Through a combination of manual testing, we managed to
isolate the problem: the Account Transaction service was
unresponsive.
The damage, however, was done. Customers had been
unable to place orders for several hours and they weren’t
happy about it.
To stop this from happening again, we decided to make a
change:
we set up infrastructure to aggregate the basic logs that our
services produced, sending them to a service that allowed
them to be tagged and searched
This will allow the engineering team to quickly identify and
diagnose problems.
A logging collection agent is
installed on each instance. This
ships application log data to a
central repository where they
can be indexed, searched and
analyzed further.
However, inadequate logging wasn’t the only problem. It was
embarrassing that SimpleBank only identified an issue once
a customer called.
We should have had alerting in place to ensure that each
service was meeting its responsibilities and service goals.
This could be achieved with a recurring heartbeat check,
which would alert the team if a service becomes
unresponsive.
Building thorough monitoring for a microservice application is
a complex task. The level of depth of monitoring that you apply
will evolve as your system increases in complexity and
number of services. As well as the operational metrics and
logging we’ve described, a mature microservice monitoring
solution will address business metrics, inter-service tracing
and infrastructure metrics.
To be able to trust your services, you’ll need to constantly
work at making sense of that data.
Save 42% off Microservices in
Action with code slbruce at
manning.com.
Also see:

More Related Content

What's hot

Managing Microservices with Neo4j
Managing Microservices with Neo4jManaging Microservices with Neo4j
Managing Microservices with Neo4jAshley Chloe
 
Application Architecture Summit - Monitoring the Dynamic Cloud
Application Architecture Summit - Monitoring the Dynamic Cloud Application Architecture Summit - Monitoring the Dynamic Cloud
Application Architecture Summit - Monitoring the Dynamic Cloud New Relic
 
Advanced design patterns in action
Advanced design patterns in actionAdvanced design patterns in action
Advanced design patterns in actionChristopher Anderson
 
Browser Diagnostics using dynatrace Ajax Edition
Browser Diagnostics using dynatrace Ajax EditionBrowser Diagnostics using dynatrace Ajax Edition
Browser Diagnostics using dynatrace Ajax EditionDeepak Kaul
 
Metrics Driven DevOps - Automate Scalability and Performance Into your Pipeline
Metrics Driven DevOps - Automate Scalability and Performance Into your PipelineMetrics Driven DevOps - Automate Scalability and Performance Into your Pipeline
Metrics Driven DevOps - Automate Scalability and Performance Into your PipelineAndreas Grabner
 
A Guide to Event-Driven SRE-inspired DevOps
A Guide to Event-Driven SRE-inspired DevOpsA Guide to Event-Driven SRE-inspired DevOps
A Guide to Event-Driven SRE-inspired DevOpsAndreas Grabner
 
How Dealertrack Optimizes the DevOps Toolchain, FutureStack17
How Dealertrack Optimizes the DevOps Toolchain, FutureStack17How Dealertrack Optimizes the DevOps Toolchain, FutureStack17
How Dealertrack Optimizes the DevOps Toolchain, FutureStack17New Relic
 
Data Driven DevOps: from Culture to Gamification
Data Driven DevOps: from Culture to GamificationData Driven DevOps: from Culture to Gamification
Data Driven DevOps: from Culture to GamificationBrian McCallion
 
PayPal's Private Cloud @ Scale
PayPal's Private Cloud @ ScalePayPal's Private Cloud @ Scale
PayPal's Private Cloud @ ScalePayPal
 
Increasing agility with php and kafka
Increasing agility with php and kafkaIncreasing agility with php and kafka
Increasing agility with php and kafkaMike Bywater
 
Product Training: SeeClickFix Work
Product Training: SeeClickFix WorkProduct Training: SeeClickFix Work
Product Training: SeeClickFix WorkMargaret Lee
 
Microservices? Dynamic Infrastructure? - Adventures in Keeping Your Applicati...
Microservices? Dynamic Infrastructure? - Adventures in Keeping Your Applicati...Microservices? Dynamic Infrastructure? - Adventures in Keeping Your Applicati...
Microservices? Dynamic Infrastructure? - Adventures in Keeping Your Applicati...New Relic
 
WinOps Conf 2016 - Gael Colas - Configuration Management Theory: Why Idempote...
WinOps Conf 2016 - Gael Colas - Configuration Management Theory: Why Idempote...WinOps Conf 2016 - Gael Colas - Configuration Management Theory: Why Idempote...
WinOps Conf 2016 - Gael Colas - Configuration Management Theory: Why Idempote...WinOps Conf
 
AI-Powered DevOps: Injecting Speed & Quality Across Verizon’s Cloud Pipelines
AI-Powered DevOps: Injecting Speed & Quality Across Verizon’s Cloud PipelinesAI-Powered DevOps: Injecting Speed & Quality Across Verizon’s Cloud Pipelines
AI-Powered DevOps: Injecting Speed & Quality Across Verizon’s Cloud PipelinesDynatrace
 
Draftkings: Launching w/ Confidence at Scale, FutureStack17 NYC
Draftkings: Launching w/ Confidence at Scale, FutureStack17 NYCDraftkings: Launching w/ Confidence at Scale, FutureStack17 NYC
Draftkings: Launching w/ Confidence at Scale, FutureStack17 NYCNew Relic
 
DevOps Days Toronto: From 6 Months Waterfall to 1 hour Code Deploys
DevOps Days Toronto: From 6 Months Waterfall to 1 hour Code DeploysDevOps Days Toronto: From 6 Months Waterfall to 1 hour Code Deploys
DevOps Days Toronto: From 6 Months Waterfall to 1 hour Code DeploysAndreas Grabner
 
How to explain DevOps to your mom
How to explain DevOps to your momHow to explain DevOps to your mom
How to explain DevOps to your momAndreas Grabner
 
Do DevOps Right with New Relic
Do DevOps Right with New RelicDo DevOps Right with New Relic
Do DevOps Right with New RelicNew Relic
 

What's hot (20)

Managing Microservices with Neo4j
Managing Microservices with Neo4jManaging Microservices with Neo4j
Managing Microservices with Neo4j
 
Application Architecture Summit - Monitoring the Dynamic Cloud
Application Architecture Summit - Monitoring the Dynamic Cloud Application Architecture Summit - Monitoring the Dynamic Cloud
Application Architecture Summit - Monitoring the Dynamic Cloud
 
Advanced design patterns in action
Advanced design patterns in actionAdvanced design patterns in action
Advanced design patterns in action
 
Browser Diagnostics using dynatrace Ajax Edition
Browser Diagnostics using dynatrace Ajax EditionBrowser Diagnostics using dynatrace Ajax Edition
Browser Diagnostics using dynatrace Ajax Edition
 
Devops is all greek
Devops is all greekDevops is all greek
Devops is all greek
 
Metrics Driven DevOps - Automate Scalability and Performance Into your Pipeline
Metrics Driven DevOps - Automate Scalability and Performance Into your PipelineMetrics Driven DevOps - Automate Scalability and Performance Into your Pipeline
Metrics Driven DevOps - Automate Scalability and Performance Into your Pipeline
 
A Guide to Event-Driven SRE-inspired DevOps
A Guide to Event-Driven SRE-inspired DevOpsA Guide to Event-Driven SRE-inspired DevOps
A Guide to Event-Driven SRE-inspired DevOps
 
How Dealertrack Optimizes the DevOps Toolchain, FutureStack17
How Dealertrack Optimizes the DevOps Toolchain, FutureStack17How Dealertrack Optimizes the DevOps Toolchain, FutureStack17
How Dealertrack Optimizes the DevOps Toolchain, FutureStack17
 
Data Driven DevOps: from Culture to Gamification
Data Driven DevOps: from Culture to GamificationData Driven DevOps: from Culture to Gamification
Data Driven DevOps: from Culture to Gamification
 
PayPal's Private Cloud @ Scale
PayPal's Private Cloud @ ScalePayPal's Private Cloud @ Scale
PayPal's Private Cloud @ Scale
 
Increasing agility with php and kafka
Increasing agility with php and kafkaIncreasing agility with php and kafka
Increasing agility with php and kafka
 
Product Training: SeeClickFix Work
Product Training: SeeClickFix WorkProduct Training: SeeClickFix Work
Product Training: SeeClickFix Work
 
Microservices? Dynamic Infrastructure? - Adventures in Keeping Your Applicati...
Microservices? Dynamic Infrastructure? - Adventures in Keeping Your Applicati...Microservices? Dynamic Infrastructure? - Adventures in Keeping Your Applicati...
Microservices? Dynamic Infrastructure? - Adventures in Keeping Your Applicati...
 
New relic
New relicNew relic
New relic
 
WinOps Conf 2016 - Gael Colas - Configuration Management Theory: Why Idempote...
WinOps Conf 2016 - Gael Colas - Configuration Management Theory: Why Idempote...WinOps Conf 2016 - Gael Colas - Configuration Management Theory: Why Idempote...
WinOps Conf 2016 - Gael Colas - Configuration Management Theory: Why Idempote...
 
AI-Powered DevOps: Injecting Speed & Quality Across Verizon’s Cloud Pipelines
AI-Powered DevOps: Injecting Speed & Quality Across Verizon’s Cloud PipelinesAI-Powered DevOps: Injecting Speed & Quality Across Verizon’s Cloud Pipelines
AI-Powered DevOps: Injecting Speed & Quality Across Verizon’s Cloud Pipelines
 
Draftkings: Launching w/ Confidence at Scale, FutureStack17 NYC
Draftkings: Launching w/ Confidence at Scale, FutureStack17 NYCDraftkings: Launching w/ Confidence at Scale, FutureStack17 NYC
Draftkings: Launching w/ Confidence at Scale, FutureStack17 NYC
 
DevOps Days Toronto: From 6 Months Waterfall to 1 hour Code Deploys
DevOps Days Toronto: From 6 Months Waterfall to 1 hour Code DeploysDevOps Days Toronto: From 6 Months Waterfall to 1 hour Code Deploys
DevOps Days Toronto: From 6 Months Waterfall to 1 hour Code Deploys
 
How to explain DevOps to your mom
How to explain DevOps to your momHow to explain DevOps to your mom
How to explain DevOps to your mom
 
Do DevOps Right with New Relic
Do DevOps Right with New RelicDo DevOps Right with New Relic
Do DevOps Right with New Relic
 

Similar to Microservices in Action: putting microservice-based applications into production

NagiosDocumentation-ROUGH
NagiosDocumentation-ROUGHNagiosDocumentation-ROUGH
NagiosDocumentation-ROUGHNolan Cretney
 
Best Practices for Microservices & API.pdf
Best Practices for Microservices & API.pdfBest Practices for Microservices & API.pdf
Best Practices for Microservices & API.pdfBahaa Al Zubaidi
 
Consul: Service-oriented at Scale
Consul: Service-oriented at ScaleConsul: Service-oriented at Scale
Consul: Service-oriented at ScaleC4Media
 
RabbitMQ in Microservice Architecture.docx
RabbitMQ in Microservice Architecture.docxRabbitMQ in Microservice Architecture.docx
RabbitMQ in Microservice Architecture.docxShakuro
 
Over view of software artitecture
Over view of software artitectureOver view of software artitecture
Over view of software artitectureABDEL RAHMAN KARIM
 
All you need to know about yelowsofts new version update
All you need to know about yelowsofts new version updateAll you need to know about yelowsofts new version update
All you need to know about yelowsofts new version updateYelowsoft
 
APM for Enterprise WhitePaper from New Relic
APM for Enterprise WhitePaper from New RelicAPM for Enterprise WhitePaper from New Relic
APM for Enterprise WhitePaper from New RelicNew Relic
 
Why not let apm do all the heavy lifting beyond the basics of monitoring | Sw...
Why not let apm do all the heavy lifting beyond the basics of monitoring | Sw...Why not let apm do all the heavy lifting beyond the basics of monitoring | Sw...
Why not let apm do all the heavy lifting beyond the basics of monitoring | Sw...Swatantra Kumar
 
10 tips for enterprise cloud migration
10 tips for enterprise cloud migration10 tips for enterprise cloud migration
10 tips for enterprise cloud migrationJeferson Rodrigues
 
The Complete Guide to Service Mesh
The Complete Guide to Service MeshThe Complete Guide to Service Mesh
The Complete Guide to Service MeshAspen Mesh
 
Root Cause Detection in a Service-Oriented Architecture
Root Cause Detection in a Service-Oriented ArchitectureRoot Cause Detection in a Service-Oriented Architecture
Root Cause Detection in a Service-Oriented ArchitectureSam Shah
 
Simplex Software helps major dating app to increas 158% its market value
Simplex Software helps major dating app to increas 158% its market valueSimplex Software helps major dating app to increas 158% its market value
Simplex Software helps major dating app to increas 158% its market valueAnabella Losada
 
Iac evolutions
Iac evolutionsIac evolutions
Iac evolutionsPrancer Io
 
The Newgistics Digital Transformation Journey
The Newgistics Digital Transformation JourneyThe Newgistics Digital Transformation Journey
The Newgistics Digital Transformation JourneyZenoss
 
Building Reliability - The Realities of Observability
Building Reliability - The Realities of ObservabilityBuilding Reliability - The Realities of Observability
Building Reliability - The Realities of ObservabilityAll Things Open
 
7 Essential Steps to Cloud Adoption.pdf
7 Essential Steps to Cloud Adoption.pdf7 Essential Steps to Cloud Adoption.pdf
7 Essential Steps to Cloud Adoption.pdfAnil
 
Building Reliability - The Realities of Observability
Building Reliability - The Realities of ObservabilityBuilding Reliability - The Realities of Observability
Building Reliability - The Realities of ObservabilityAll Things Open
 
Emvigo Data Visualization - E Commerce Deck
Emvigo Data Visualization - E Commerce DeckEmvigo Data Visualization - E Commerce Deck
Emvigo Data Visualization - E Commerce DeckEmvigo Technologies
 
The Reality of Managing Microservices in Your CD Pipeline
The Reality of Managing Microservices in Your CD PipelineThe Reality of Managing Microservices in Your CD Pipeline
The Reality of Managing Microservices in Your CD PipelineDevOps.com
 

Similar to Microservices in Action: putting microservice-based applications into production (20)

NagiosDocumentation-ROUGH
NagiosDocumentation-ROUGHNagiosDocumentation-ROUGH
NagiosDocumentation-ROUGH
 
Best Practices for Microservices & API.pdf
Best Practices for Microservices & API.pdfBest Practices for Microservices & API.pdf
Best Practices for Microservices & API.pdf
 
Consul: Service-oriented at Scale
Consul: Service-oriented at ScaleConsul: Service-oriented at Scale
Consul: Service-oriented at Scale
 
RabbitMQ in Microservice Architecture.docx
RabbitMQ in Microservice Architecture.docxRabbitMQ in Microservice Architecture.docx
RabbitMQ in Microservice Architecture.docx
 
Over view of software artitecture
Over view of software artitectureOver view of software artitecture
Over view of software artitecture
 
All you need to know about yelowsofts new version update
All you need to know about yelowsofts new version updateAll you need to know about yelowsofts new version update
All you need to know about yelowsofts new version update
 
APM for Enterprise WhitePaper from New Relic
APM for Enterprise WhitePaper from New RelicAPM for Enterprise WhitePaper from New Relic
APM for Enterprise WhitePaper from New Relic
 
Why not let apm do all the heavy lifting beyond the basics of monitoring | Sw...
Why not let apm do all the heavy lifting beyond the basics of monitoring | Sw...Why not let apm do all the heavy lifting beyond the basics of monitoring | Sw...
Why not let apm do all the heavy lifting beyond the basics of monitoring | Sw...
 
10 tips for enterprise cloud migration
10 tips for enterprise cloud migration10 tips for enterprise cloud migration
10 tips for enterprise cloud migration
 
The Complete Guide to Service Mesh
The Complete Guide to Service MeshThe Complete Guide to Service Mesh
The Complete Guide to Service Mesh
 
Root Cause Detection in a Service-Oriented Architecture
Root Cause Detection in a Service-Oriented ArchitectureRoot Cause Detection in a Service-Oriented Architecture
Root Cause Detection in a Service-Oriented Architecture
 
Simplex Software helps major dating app to increas 158% its market value
Simplex Software helps major dating app to increas 158% its market valueSimplex Software helps major dating app to increas 158% its market value
Simplex Software helps major dating app to increas 158% its market value
 
Iac evolutions
Iac evolutionsIac evolutions
Iac evolutions
 
The Newgistics Digital Transformation Journey
The Newgistics Digital Transformation JourneyThe Newgistics Digital Transformation Journey
The Newgistics Digital Transformation Journey
 
Building Reliability - The Realities of Observability
Building Reliability - The Realities of ObservabilityBuilding Reliability - The Realities of Observability
Building Reliability - The Realities of Observability
 
Microservices
MicroservicesMicroservices
Microservices
 
7 Essential Steps to Cloud Adoption.pdf
7 Essential Steps to Cloud Adoption.pdf7 Essential Steps to Cloud Adoption.pdf
7 Essential Steps to Cloud Adoption.pdf
 
Building Reliability - The Realities of Observability
Building Reliability - The Realities of ObservabilityBuilding Reliability - The Realities of Observability
Building Reliability - The Realities of Observability
 
Emvigo Data Visualization - E Commerce Deck
Emvigo Data Visualization - E Commerce DeckEmvigo Data Visualization - E Commerce Deck
Emvigo Data Visualization - E Commerce Deck
 
The Reality of Managing Microservices in Your CD Pipeline
The Reality of Managing Microservices in Your CD PipelineThe Reality of Managing Microservices in Your CD Pipeline
The Reality of Managing Microservices in Your CD Pipeline
 

More from Manning Publications

Privacy-Preserving Machine Learning: secure user data without sacrificing mod...
Privacy-Preserving Machine Learning: secure user data without sacrificing mod...Privacy-Preserving Machine Learning: secure user data without sacrificing mod...
Privacy-Preserving Machine Learning: secure user data without sacrificing mod...Manning Publications
 
Inside Deep Learning: theory and practice of modern deep learning
Inside Deep Learning: theory and practice of modern deep learningInside Deep Learning: theory and practice of modern deep learning
Inside Deep Learning: theory and practice of modern deep learningManning Publications
 
Data-Oriented Programming: making data a first-class citizen
Data-Oriented Programming: making data a first-class citizenData-Oriented Programming: making data a first-class citizen
Data-Oriented Programming: making data a first-class citizenManning Publications
 
Automated Machine Learning in Action
Automated Machine Learning in ActionAutomated Machine Learning in Action
Automated Machine Learning in ActionManning Publications
 
The Programmer's Brain: improve the way you learn and think about code
The Programmer's Brain: improve the way you learn and think about codeThe Programmer's Brain: improve the way you learn and think about code
The Programmer's Brain: improve the way you learn and think about codeManning Publications
 
Pipeline as Code: building a great deployment pipeline
Pipeline as Code: building a great deployment pipelinePipeline as Code: building a great deployment pipeline
Pipeline as Code: building a great deployment pipelineManning Publications
 
Tuning Up: keep your systems running smoothly
Tuning Up: keep your systems running smoothlyTuning Up: keep your systems running smoothly
Tuning Up: keep your systems running smoothlyManning Publications
 
Kubernetes Native Microservices with Quarkus and MicroProfile
Kubernetes Native Microservices with Quarkus and MicroProfileKubernetes Native Microservices with Quarkus and MicroProfile
Kubernetes Native Microservices with Quarkus and MicroProfileManning Publications
 
Crafting interactive troubleshooting guides and team documentation for your K...
Crafting interactive troubleshooting guides and team documentation for your K...Crafting interactive troubleshooting guides and team documentation for your K...
Crafting interactive troubleshooting guides and team documentation for your K...Manning Publications
 
Entity Framework Core in Action, Second Edtion
Entity Framework Core in Action, Second EdtionEntity Framework Core in Action, Second Edtion
Entity Framework Core in Action, Second EdtionManning Publications
 
Microservices in .NET Core, Second Edition
Microservices in .NET Core, Second EditionMicroservices in .NET Core, Second Edition
Microservices in .NET Core, Second EditionManning Publications
 
Kubernetes in Action, Second Edition
Kubernetes in Action, Second EditionKubernetes in Action, Second Edition
Kubernetes in Action, Second EditionManning Publications
 
Machine Learning with TensorFlow, Second Edition
Machine Learning with TensorFlow, Second EditionMachine Learning with TensorFlow, Second Edition
Machine Learning with TensorFlow, Second EditionManning Publications
 
Spring Microservices in Action, Second Edition
Spring Microservices in Action, Second EditionSpring Microservices in Action, Second Edition
Spring Microservices in Action, Second EditionManning Publications
 

More from Manning Publications (20)

Privacy-Preserving Machine Learning: secure user data without sacrificing mod...
Privacy-Preserving Machine Learning: secure user data without sacrificing mod...Privacy-Preserving Machine Learning: secure user data without sacrificing mod...
Privacy-Preserving Machine Learning: secure user data without sacrificing mod...
 
Inside Deep Learning: theory and practice of modern deep learning
Inside Deep Learning: theory and practice of modern deep learningInside Deep Learning: theory and practice of modern deep learning
Inside Deep Learning: theory and practice of modern deep learning
 
Data-Oriented Programming: making data a first-class citizen
Data-Oriented Programming: making data a first-class citizenData-Oriented Programming: making data a first-class citizen
Data-Oriented Programming: making data a first-class citizen
 
Automated Machine Learning in Action
Automated Machine Learning in ActionAutomated Machine Learning in Action
Automated Machine Learning in Action
 
The Programmer's Brain: improve the way you learn and think about code
The Programmer's Brain: improve the way you learn and think about codeThe Programmer's Brain: improve the way you learn and think about code
The Programmer's Brain: improve the way you learn and think about code
 
Pipeline as Code: building a great deployment pipeline
Pipeline as Code: building a great deployment pipelinePipeline as Code: building a great deployment pipeline
Pipeline as Code: building a great deployment pipeline
 
Tuning Up: keep your systems running smoothly
Tuning Up: keep your systems running smoothlyTuning Up: keep your systems running smoothly
Tuning Up: keep your systems running smoothly
 
Kubernetes Native Microservices with Quarkus and MicroProfile
Kubernetes Native Microservices with Quarkus and MicroProfileKubernetes Native Microservices with Quarkus and MicroProfile
Kubernetes Native Microservices with Quarkus and MicroProfile
 
Cloud Native Machine Learning
Cloud Native Machine Learning Cloud Native Machine Learning
Cloud Native Machine Learning
 
Spring in Action, Sixth Edition
Spring in Action, Sixth EditionSpring in Action, Sixth Edition
Spring in Action, Sixth Edition
 
Crafting interactive troubleshooting guides and team documentation for your K...
Crafting interactive troubleshooting guides and team documentation for your K...Crafting interactive troubleshooting guides and team documentation for your K...
Crafting interactive troubleshooting guides and team documentation for your K...
 
Entity Framework Core in Action, Second Edtion
Entity Framework Core in Action, Second EdtionEntity Framework Core in Action, Second Edtion
Entity Framework Core in Action, Second Edtion
 
Code like a Pro in C#
Code like a Pro in C#Code like a Pro in C#
Code like a Pro in C#
 
Microservices in .NET Core, Second Edition
Microservices in .NET Core, Second EditionMicroservices in .NET Core, Second Edition
Microservices in .NET Core, Second Edition
 
Kubernetes in Action, Second Edition
Kubernetes in Action, Second EditionKubernetes in Action, Second Edition
Kubernetes in Action, Second Edition
 
Core Kubernetes
Core KubernetesCore Kubernetes
Core Kubernetes
 
Machine Learning Bookcamp
Machine Learning BookcampMachine Learning Bookcamp
Machine Learning Bookcamp
 
Machine Learning with TensorFlow, Second Edition
Machine Learning with TensorFlow, Second EditionMachine Learning with TensorFlow, Second Edition
Machine Learning with TensorFlow, Second Edition
 
Spring Security in Action
Spring Security in ActionSpring Security in Action
Spring Security in Action
 
Spring Microservices in Action, Second Edition
Spring Microservices in Action, Second EditionSpring Microservices in Action, Second Edition
Spring Microservices in Action, Second Edition
 

Recently uploaded

How to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationHow to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationBradBedford3
 
Large Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and RepairLarge Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and RepairLionel Briand
 
2024 DevNexus Patterns for Resiliency: Shuffle shards
2024 DevNexus Patterns for Resiliency: Shuffle shards2024 DevNexus Patterns for Resiliency: Shuffle shards
2024 DevNexus Patterns for Resiliency: Shuffle shardsChristopher Curtin
 
eSoftTools IMAP Backup Software and migration tools
eSoftTools IMAP Backup Software and migration toolseSoftTools IMAP Backup Software and migration tools
eSoftTools IMAP Backup Software and migration toolsosttopstonverter
 
SAM Training Session - How to use EXCEL ?
SAM Training Session - How to use EXCEL ?SAM Training Session - How to use EXCEL ?
SAM Training Session - How to use EXCEL ?Alexandre Beguel
 
Precise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalPrecise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalLionel Briand
 
Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Rob Geurden
 
Ronisha Informatics Private Limited Catalogue
Ronisha Informatics Private Limited CatalogueRonisha Informatics Private Limited Catalogue
Ronisha Informatics Private Limited Catalogueitservices996
 
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdfExploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdfkalichargn70th171
 
Effectively Troubleshoot 9 Types of OutOfMemoryError
Effectively Troubleshoot 9 Types of OutOfMemoryErrorEffectively Troubleshoot 9 Types of OutOfMemoryError
Effectively Troubleshoot 9 Types of OutOfMemoryErrorTier1 app
 
Leveraging AI for Mobile App Testing on Real Devices | Applitools + Kobiton
Leveraging AI for Mobile App Testing on Real Devices | Applitools + KobitonLeveraging AI for Mobile App Testing on Real Devices | Applitools + Kobiton
Leveraging AI for Mobile App Testing on Real Devices | Applitools + KobitonApplitools
 
Salesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZSalesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZABSYZ Inc
 
Keeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository worldKeeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository worldRoberto Pérez Alcolea
 
What’s New in VictoriaMetrics: Q1 2024 Updates
What’s New in VictoriaMetrics: Q1 2024 UpdatesWhat’s New in VictoriaMetrics: Q1 2024 Updates
What’s New in VictoriaMetrics: Q1 2024 UpdatesVictoriaMetrics
 
Powering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsPowering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsSafe Software
 
VK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web DevelopmentVK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web Developmentvyaparkranti
 
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsSensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsChristian Birchler
 
VictoriaMetrics Anomaly Detection Updates: Q1 2024
VictoriaMetrics Anomaly Detection Updates: Q1 2024VictoriaMetrics Anomaly Detection Updates: Q1 2024
VictoriaMetrics Anomaly Detection Updates: Q1 2024VictoriaMetrics
 
Introduction to Firebase Workshop Slides
Introduction to Firebase Workshop SlidesIntroduction to Firebase Workshop Slides
Introduction to Firebase Workshop Slidesvaideheekore1
 
Patterns for automating API delivery. API conference
Patterns for automating API delivery. API conferencePatterns for automating API delivery. API conference
Patterns for automating API delivery. API conferencessuser9e7c64
 

Recently uploaded (20)

How to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationHow to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion Application
 
Large Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and RepairLarge Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and Repair
 
2024 DevNexus Patterns for Resiliency: Shuffle shards
2024 DevNexus Patterns for Resiliency: Shuffle shards2024 DevNexus Patterns for Resiliency: Shuffle shards
2024 DevNexus Patterns for Resiliency: Shuffle shards
 
eSoftTools IMAP Backup Software and migration tools
eSoftTools IMAP Backup Software and migration toolseSoftTools IMAP Backup Software and migration tools
eSoftTools IMAP Backup Software and migration tools
 
SAM Training Session - How to use EXCEL ?
SAM Training Session - How to use EXCEL ?SAM Training Session - How to use EXCEL ?
SAM Training Session - How to use EXCEL ?
 
Precise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalPrecise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive Goal
 
Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...
 
Ronisha Informatics Private Limited Catalogue
Ronisha Informatics Private Limited CatalogueRonisha Informatics Private Limited Catalogue
Ronisha Informatics Private Limited Catalogue
 
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdfExploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
 
Effectively Troubleshoot 9 Types of OutOfMemoryError
Effectively Troubleshoot 9 Types of OutOfMemoryErrorEffectively Troubleshoot 9 Types of OutOfMemoryError
Effectively Troubleshoot 9 Types of OutOfMemoryError
 
Leveraging AI for Mobile App Testing on Real Devices | Applitools + Kobiton
Leveraging AI for Mobile App Testing on Real Devices | Applitools + KobitonLeveraging AI for Mobile App Testing on Real Devices | Applitools + Kobiton
Leveraging AI for Mobile App Testing on Real Devices | Applitools + Kobiton
 
Salesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZSalesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZ
 
Keeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository worldKeeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository world
 
What’s New in VictoriaMetrics: Q1 2024 Updates
What’s New in VictoriaMetrics: Q1 2024 UpdatesWhat’s New in VictoriaMetrics: Q1 2024 Updates
What’s New in VictoriaMetrics: Q1 2024 Updates
 
Powering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsPowering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data Streams
 
VK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web DevelopmentVK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web Development
 
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsSensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
 
VictoriaMetrics Anomaly Detection Updates: Q1 2024
VictoriaMetrics Anomaly Detection Updates: Q1 2024VictoriaMetrics Anomaly Detection Updates: Q1 2024
VictoriaMetrics Anomaly Detection Updates: Q1 2024
 
Introduction to Firebase Workshop Slides
Introduction to Firebase Workshop SlidesIntroduction to Firebase Workshop Slides
Introduction to Firebase Workshop Slides
 
Patterns for automating API delivery. API conference
Patterns for automating API delivery. API conferencePatterns for automating API delivery. API conference
Patterns for automating API delivery. API conference
 

Microservices in Action: putting microservice-based applications into production

  • 1. Save 42% off Microservices in Action with code slbruce at manning.com.
  • 2. Imagine that you’re a developer for SimpleBank. You have designed a feature for SimpleBank that involves the interaction of multiple services, an event queue, and an API gateway. Let’s say you’ve taken the next step, built those services, and now the CEO is pushing you to get those into production.
  • 3. When using public clouds like AWS or GCE, the obvious solution is to deploy each service to a group of virtual machines. Load balancers would be used to spread load evenly across instances of each web-facing service, while a managed event queue, such as AWS’s Simple Queue Service, could be used to distribute events between services.
  • 4. Long story short, let’s say that you compiled that code, ftp’d it onto those VMs, got the databases up and running, and tried some test requests. This all took about a week. The next slide depicts what your production infrastructure might look like.
  • 5.
  • 6. This arrangement worked well enough… for a while. Over the next few weeks, you made a few changes and pushed out the new code. But soon, you started to run into trouble. It was hard to tell if the services were working as expected.
  • 7. A few problems soon reared their ugly heads: you were the only person at SimpleBank who knew how to release a new version the person who wrote the Transaction service went on holiday for a few weeks, and no one else knew how that was deployed These services won’t survive the disappearance of team members – we’re going to be in a pickle soon!
  • 8. From the info at hand, it’s probably safe to say that your feature was deployed prematurely. How can we ensure that a microservice feature is production- ready, without having to resort to rounds of time-consuming debates (which slow down deployment) within the development team?
  • 9. We need to consider the following: Reliability: is our service available and error-free? Can we rely on our deployment process? Scalability: do we understand the resource and capacity needs of a service? How will we maintain responsiveness under load? Transparency: can we observe a service in operation through logs and metrics? If something goes wrong, is someone notified? Fault-tolerance: have we mitigated single points of failure? How do we cope with the failure of other service dependencies?
  • 10. At this early stage in the lifetime of our microservice application, it is most important to establish the following two fundamentals: stable, automated deployments transparent operation Let’s see how we can address these issues in the scope of your work at SimpleBank.
  • 11. The greater development speed that comes with using the microservice architecture won’t be of much use if you can’t get services to production reliably and rapidly. The pain of unstable deployments – such as introducing a serious error – will eliminate any gains in velocity.
  • 12. Companies are often tempted to impose change control and approval processes – to avoid problematic deployments. In a microservice architecture, however, this won’t work. The system will be in a state of continuous evolution, which allows fast and tangible innovation. This is likely the reason you’re using microservices in the first place!
  • 13. To ensure that developmental freedom and flexibility, and to minimize the occurrence of errors and outages, we need two things: we need to ensure that we can trust our development and deployment processes we need to minimize the effort required to release or change a new service
  • 14. We can achieve stability through standardization and automation: The development process should be standardized: code changes should be reviewed, appropriate tests should be written, and source should be version-controlled. The deployment process should be standardized and automated: the delivery of a code change to production should be thoroughly validated and require minimal intervention from an engineer. This is called a deployment pipeline.
  • 15. A microservice should be transparent: at any point in time, we should be able to determine whether the service is healthy and whether it’s processing its workload in the way that we expect. If something isn’t working correctly, an alert should be going out to an engineer automatically.
  • 16. Last week, there was an outage at SimpleBank that affected every customer. This image shows the possible points of failure within the service.
  • 17. A quick investigation turned up that requests made to our order creation service were timing out. At this point, it was clear that we had a major operational problem, but we lacked logging to determine exactly what went wrong and where things were falling apart.
  • 18. Through a combination of manual testing, we managed to isolate the problem: the Account Transaction service was unresponsive. The damage, however, was done. Customers had been unable to place orders for several hours and they weren’t happy about it.
  • 19. To stop this from happening again, we decided to make a change: we set up infrastructure to aggregate the basic logs that our services produced, sending them to a service that allowed them to be tagged and searched This will allow the engineering team to quickly identify and diagnose problems.
  • 20. A logging collection agent is installed on each instance. This ships application log data to a central repository where they can be indexed, searched and analyzed further.
  • 21. However, inadequate logging wasn’t the only problem. It was embarrassing that SimpleBank only identified an issue once a customer called. We should have had alerting in place to ensure that each service was meeting its responsibilities and service goals. This could be achieved with a recurring heartbeat check, which would alert the team if a service becomes unresponsive.
  • 22. Building thorough monitoring for a microservice application is a complex task. The level of depth of monitoring that you apply will evolve as your system increases in complexity and number of services. As well as the operational metrics and logging we’ve described, a mature microservice monitoring solution will address business metrics, inter-service tracing and infrastructure metrics. To be able to trust your services, you’ll need to constantly work at making sense of that data.
  • 23. Save 42% off Microservices in Action with code slbruce at manning.com. Also see: