Microservices – what are they and why use them?
Microservices – what are they, what can they do for you and what do you need to be aware of?
Microservices – or micro-services – may simply be a term for something already being used, but by
giving something a name and defining it, we sometimes give ourselves the advantage of
recognizing a tool we perhaps should be including in our systems.
Microservices may be defined as simple standalone components that can run and be tested
independently, which could help create consistency in the final system.
According to Wikipedia, “Microservices is a specialisation of an implementation approach for
service-oriented architectures (SOA) used to build flexible, independently deployable software
systems. Services in a microservice architecture (MSA) are processes that communicate with each
other over a network in order to fulfill a goal.” In other words, each microservice can usually
provide an API endpoint itself.
Martin Fowler of MartinFowler.com says the “term "Microservice Architecture" has sprung up over
the last few years to describe a particular way of designing software applications as suites of
independently deployable services. While there is no precise definition of this architectural style,
there are certain common characteristics around organization around business capability,
automated deployment, intelligence in the endpoints, and decentralized control of languages and
data.”
Again, the idea is that by designing systems and applications build as suites of standalone
components, it is possible to test each component independently, thus being able to determine
which ones may be lagging and thereby creating delays in the overall system.
The Open Source resource for microservices states in their opening paragraph, “The idea behind
microservices is that some types of applications become easier to build and maintain when they
are broken down into smaller, composable pieces which work together. Each component is
developed separately, and the application is then simply the sum of its constituent components.
This is in contrast to a traditional, "monolithic" application which is all developed all in one piece.”
In a nutshell, this offers the tremendous advantage of being able to quickly develop and fully test
each component, rather than waiting until the entire application is completed. It also means that
each component can be updated individually, which is another huge advantage in today's very
demanding market which often forces application architectures to evolve quickly.
Users automatically expect a rich, interactive and dynamic experience across many platforms,
including mobile devices. Applications must be highly available and scalable, and able to run on
the cloud. Many organizations want to be able to release updates, sometimes multiple times in one
day. It's therefore no longer enough to produce simple, monolithic website apps serving up HTML
to desktop browsers.
Another advantage is from an engineering standpoint. By separating the various components of an
application, they can be developed concurrently and tested across multiple servers or even
multiple data centers. If a single component dies, you can bring up another without it affecting any
of the others.
Scaling becomes more efficient, by allowing the possibility of scaling out with duplicates of the
heaviest used components, rather than scaling up on bigger, more robust machines.
There are disadvantages to working with microservices that also must be considered.
According to a criticism on Wikipedia, this approach is subject to criticism on a number of points:
1. "Services form information barriers
2. The architecture introduces additional complexity and new problems to deal with,
such as network latency, message formats, load balancing and fault tolerance,
ignoring one of these belongs to the "fallacies of distributed computing"
3. testing and deployment are more complicated
4. Inter-service calls over a network have a higher cost in terms of network latency and
message processing time than in-process calls within a monolithic service process
5. Moving responsibilities between services is more difficult. It may involve
communication between different teams, rewriting the functionality in another
language or fitting it into a different infrastructure
6. The complexity of a monolithic application is only shifted into the network, but
persists:
"You can move it about but it's still there!"
— Robert Annett: Where is the complexity?"
Mr. Annett's statement really sums it all up: You can move it about, but it's still there. In other
words, problems still need to be dealt with. Microservices architecture is not a way to get rid of
problems or shuffle them off to someone else, but a way to isolate them so that one problem
doesn't crash the whole system. When a problem arises, it needs to be dealt with where it occurs.
Furthermore, when issues arise, they need to be fixed where they arise by the team working with
that part. This helps to reduce the other issues and may be the difference between using
microservices successfully or tearing your hair out and wishing you had stuck with the “lesser evil”
of the monolithic application.
As with any organization, planning is required before implementation. There are many advantages
to using a microservices architecture, but there are also disadvantages. They must be weighed for
the particular organization and application before choosing this architecture over the more
traditional. However, for many developers, today, microservices are not just a good fit, but a great
fit.
Jean-Christophe Huc (Jay C)
Follow me on Twitter @cto_software,
and visit my blog for more articles www.jchuc.com

More Related Content

PDF
Microservices: Detailed Guide
PPTX
Benefits of Containers, Microservices and Containerized Microservices
PDF
SELECTION MECHANISM OF MICRO-SERVICES ORCHESTRATION VS. CHOREOGRAPHY
PPT
Helview Microsoft Platform For Social Computing 21 11 2007 Final Ppt2k3
PPT
Enterprise 2.0 Workshop
PDF
Architecting for speed: how agile innovators accelerate growth through micros...
PDF
Open Source Business Ecosystem - PhD work
PPTX
Micro services extra note
Microservices: Detailed Guide
Benefits of Containers, Microservices and Containerized Microservices
SELECTION MECHANISM OF MICRO-SERVICES ORCHESTRATION VS. CHOREOGRAPHY
Helview Microsoft Platform For Social Computing 21 11 2007 Final Ppt2k3
Enterprise 2.0 Workshop
Architecting for speed: how agile innovators accelerate growth through micros...
Open Source Business Ecosystem - PhD work
Micro services extra note

What's hot (9)

PPTX
Building cloud-ready Microservices
PDF
Reactive applications
PPTX
M4$$$$$$$$
PPTX
Cloud native computing
PPTX
Microservices
PPTX
Ria 09 trends_and_technologies
PDF
E20 summit 2010: Beyond Adoption
PDF
Unified Endpoint Management: Security & Productivity for the Mobile Enterprise
PPT
The Social Layer
Building cloud-ready Microservices
Reactive applications
M4$$$$$$$$
Cloud native computing
Microservices
Ria 09 trends_and_technologies
E20 summit 2010: Beyond Adoption
Unified Endpoint Management: Security & Productivity for the Mobile Enterprise
The Social Layer
Ad

Similar to Microservices (20)

PDF
Introduction to Microservices Architecture - SECCOMP 2020
PDF
What are the Advantages and Disadvantages of Microservices?
PPTX
Microservices architecture
PPTX
Unit No. II Architecture.pptx Cloud Microservices & Application
PDF
Architecting for speed: how agile innovators accelerate growth through micros...
PDF
Microservices
PPTX
Software Architectures, Week 3 - Microservice-based Architectures
PPTX
05 microservices microdeck
PPTX
Microservice intro
PPTX
Microservice Architecture for Graduate students
PDF
#ATAGTR2020 Presentation - Microservices – Explored
PPTX
AppDev with Microservices
PPTX
Microservice.pptx
PDF
What Are Microservices 2nd Edition Sam Newman
PPTX
Microservice architecture : Part 1
PPTX
MICROSERVICES ARCHITECTURE unit -2.pptx
PDF
SELECTION MECHANISM OF MICRO-SERVICES ORCHESTRATION VS. CHOREOGRAPHY
PPTX
Microservice Architecture Software Architecture Microservice Design Pattern
PDF
Microservice final final
PDF
Changing application demands: What developers need to know
Introduction to Microservices Architecture - SECCOMP 2020
What are the Advantages and Disadvantages of Microservices?
Microservices architecture
Unit No. II Architecture.pptx Cloud Microservices & Application
Architecting for speed: how agile innovators accelerate growth through micros...
Microservices
Software Architectures, Week 3 - Microservice-based Architectures
05 microservices microdeck
Microservice intro
Microservice Architecture for Graduate students
#ATAGTR2020 Presentation - Microservices – Explored
AppDev with Microservices
Microservice.pptx
What Are Microservices 2nd Edition Sam Newman
Microservice architecture : Part 1
MICROSERVICES ARCHITECTURE unit -2.pptx
SELECTION MECHANISM OF MICRO-SERVICES ORCHESTRATION VS. CHOREOGRAPHY
Microservice Architecture Software Architecture Microservice Design Pattern
Microservice final final
Changing application demands: What developers need to know
Ad

More from Jean-Christophe HUC (Jay C) (19)

PDF
Software modernization
PDF
PDF
Time series Databases
PPTX
My key achievements
PDF
Are you employing a DevOps strategy?
PDF
Management 3.0 : how to lead agile teams?
PDF
The SR-71 Blackbird – Speed and Stealth Like No Other
PDF
DevOps: What does this term mean and why should we care?
PDF
The CTO, Manager and Bandmaster
PDF
Voyage Toundra Arctique
PDF
Agile or how to break donw barriers
PDF
Robotics and Artificial Intelligence
PDF
Benefits of big data
PDF
The CTO, manager and bandmaster
PDF
what a CTO does? Part 1
PDF
Le cto, manager chef d'orchestre. Partie 2
Software modernization
Time series Databases
My key achievements
Are you employing a DevOps strategy?
Management 3.0 : how to lead agile teams?
The SR-71 Blackbird – Speed and Stealth Like No Other
DevOps: What does this term mean and why should we care?
The CTO, Manager and Bandmaster
Voyage Toundra Arctique
Agile or how to break donw barriers
Robotics and Artificial Intelligence
Benefits of big data
The CTO, manager and bandmaster
what a CTO does? Part 1
Le cto, manager chef d'orchestre. Partie 2

Recently uploaded (20)

PDF
Developing a website for English-speaking practice to English as a foreign la...
PPTX
Modernising the Digital Integration Hub
PDF
Enhancing emotion recognition model for a student engagement use case through...
PDF
A contest of sentiment analysis: k-nearest neighbor versus neural network
PPT
What is a Computer? Input Devices /output devices
PDF
STKI Israel Market Study 2025 version august
DOCX
search engine optimization ppt fir known well about this
PDF
Two-dimensional Klein-Gordon and Sine-Gordon numerical solutions based on dee...
PDF
A comparative study of natural language inference in Swahili using monolingua...
PDF
sbt 2.0: go big (Scala Days 2025 edition)
PDF
Architecture types and enterprise applications.pdf
PDF
OpenACC and Open Hackathons Monthly Highlights July 2025
PDF
Taming the Chaos: How to Turn Unstructured Data into Decisions
PDF
Hindi spoken digit analysis for native and non-native speakers
PDF
Flame analysis and combustion estimation using large language and vision assi...
PDF
The influence of sentiment analysis in enhancing early warning system model f...
PDF
CloudStack 4.21: First Look Webinar slides
PDF
NewMind AI Weekly Chronicles – August ’25 Week III
PPTX
Final SEM Unit 1 for mit wpu at pune .pptx
PDF
TrustArc Webinar - Click, Consent, Trust: Winning the Privacy Game
Developing a website for English-speaking practice to English as a foreign la...
Modernising the Digital Integration Hub
Enhancing emotion recognition model for a student engagement use case through...
A contest of sentiment analysis: k-nearest neighbor versus neural network
What is a Computer? Input Devices /output devices
STKI Israel Market Study 2025 version august
search engine optimization ppt fir known well about this
Two-dimensional Klein-Gordon and Sine-Gordon numerical solutions based on dee...
A comparative study of natural language inference in Swahili using monolingua...
sbt 2.0: go big (Scala Days 2025 edition)
Architecture types and enterprise applications.pdf
OpenACC and Open Hackathons Monthly Highlights July 2025
Taming the Chaos: How to Turn Unstructured Data into Decisions
Hindi spoken digit analysis for native and non-native speakers
Flame analysis and combustion estimation using large language and vision assi...
The influence of sentiment analysis in enhancing early warning system model f...
CloudStack 4.21: First Look Webinar slides
NewMind AI Weekly Chronicles – August ’25 Week III
Final SEM Unit 1 for mit wpu at pune .pptx
TrustArc Webinar - Click, Consent, Trust: Winning the Privacy Game

Microservices

  • 1. Microservices – what are they and why use them? Microservices – what are they, what can they do for you and what do you need to be aware of? Microservices – or micro-services – may simply be a term for something already being used, but by giving something a name and defining it, we sometimes give ourselves the advantage of recognizing a tool we perhaps should be including in our systems. Microservices may be defined as simple standalone components that can run and be tested independently, which could help create consistency in the final system. According to Wikipedia, “Microservices is a specialisation of an implementation approach for service-oriented architectures (SOA) used to build flexible, independently deployable software systems. Services in a microservice architecture (MSA) are processes that communicate with each other over a network in order to fulfill a goal.” In other words, each microservice can usually provide an API endpoint itself. Martin Fowler of MartinFowler.com says the “term "Microservice Architecture" has sprung up over the last few years to describe a particular way of designing software applications as suites of independently deployable services. While there is no precise definition of this architectural style, there are certain common characteristics around organization around business capability, automated deployment, intelligence in the endpoints, and decentralized control of languages and data.” Again, the idea is that by designing systems and applications build as suites of standalone components, it is possible to test each component independently, thus being able to determine which ones may be lagging and thereby creating delays in the overall system. The Open Source resource for microservices states in their opening paragraph, “The idea behind microservices is that some types of applications become easier to build and maintain when they are broken down into smaller, composable pieces which work together. Each component is developed separately, and the application is then simply the sum of its constituent components. This is in contrast to a traditional, "monolithic" application which is all developed all in one piece.” In a nutshell, this offers the tremendous advantage of being able to quickly develop and fully test each component, rather than waiting until the entire application is completed. It also means that each component can be updated individually, which is another huge advantage in today's very demanding market which often forces application architectures to evolve quickly.
  • 2. Users automatically expect a rich, interactive and dynamic experience across many platforms, including mobile devices. Applications must be highly available and scalable, and able to run on the cloud. Many organizations want to be able to release updates, sometimes multiple times in one day. It's therefore no longer enough to produce simple, monolithic website apps serving up HTML to desktop browsers. Another advantage is from an engineering standpoint. By separating the various components of an application, they can be developed concurrently and tested across multiple servers or even multiple data centers. If a single component dies, you can bring up another without it affecting any of the others. Scaling becomes more efficient, by allowing the possibility of scaling out with duplicates of the heaviest used components, rather than scaling up on bigger, more robust machines. There are disadvantages to working with microservices that also must be considered. According to a criticism on Wikipedia, this approach is subject to criticism on a number of points: 1. "Services form information barriers 2. The architecture introduces additional complexity and new problems to deal with, such as network latency, message formats, load balancing and fault tolerance, ignoring one of these belongs to the "fallacies of distributed computing" 3. testing and deployment are more complicated 4. Inter-service calls over a network have a higher cost in terms of network latency and message processing time than in-process calls within a monolithic service process 5. Moving responsibilities between services is more difficult. It may involve communication between different teams, rewriting the functionality in another language or fitting it into a different infrastructure 6. The complexity of a monolithic application is only shifted into the network, but persists: "You can move it about but it's still there!" — Robert Annett: Where is the complexity?" Mr. Annett's statement really sums it all up: You can move it about, but it's still there. In other words, problems still need to be dealt with. Microservices architecture is not a way to get rid of problems or shuffle them off to someone else, but a way to isolate them so that one problem doesn't crash the whole system. When a problem arises, it needs to be dealt with where it occurs. Furthermore, when issues arise, they need to be fixed where they arise by the team working with that part. This helps to reduce the other issues and may be the difference between using microservices successfully or tearing your hair out and wishing you had stuck with the “lesser evil” of the monolithic application. As with any organization, planning is required before implementation. There are many advantages to using a microservices architecture, but there are also disadvantages. They must be weighed for the particular organization and application before choosing this architecture over the more traditional. However, for many developers, today, microservices are not just a good fit, but a great fit. Jean-Christophe Huc (Jay C) Follow me on Twitter @cto_software, and visit my blog for more articles www.jchuc.com