SlideShare a Scribd company logo
Microservice Architecture
Why?
To understand why, we first need to have a look at what do we use. In
general, it is a monolithic approach.
Monolithic Approach
In simplest terms, Monolithic means composed all in one piece. In this
approach, program components are interconnected and interdependent.
In monolithic approach, we can divide the code in following layers:
Presentation layer
Business layer
Data access layer
Monolithic Approach
For example, when a web client (browser) sends a request, following happens:
The business layer performs the business logic.
Data access layer performs database collects/stores specific tasks.
Presentation layer shows the data to the user.
Basically, all code (presentation, business layer, and data access layer) is
maintained within the same code base.
Problem 1
Due to one codebase, all changes need to be committed/deployed via single
repository, which, as code grows, becomes very inefficient to manage.
Problem 2
Even in order to work in a certain module (say, product), developer needs to pull
the whole codebase to his local and configure it which, in general, shouldn’t be
the case.
Problem 3
Often, project tasks are divided based on the layer — UI team, backend team,
database dev team etc. Teams are specialized in their domains, but they have
little knowledge about other layers. So when there's a critical problem, it
encompasses each layer and it takes additional time to decide which layer's
problem it is and which team needs to address it.
In case of a long running project, it may be possible that no single team
understands the entirety of the application.
Problem 4
Due to large codebase, Scaling monolithic applications can often be a
challenge. In a large, monolithic application, everything needs to be scaled
together. For example, an application consists of two modules – user and
product. Even if we want to scale product only, it is not possible in monolithic
application.
Some more
Adopting new technologies is cumbersome in monolithic applications since
these applications are implemented using a single development stack (i.e.
JEE or PHP etc), which, sometimes, limit the availability of the right
solution for the problem.
Monolithic applications are Fault intolerant so the application can crash,
even by the failure of a single component/functionality.
Solution ?
Microservices
A micro service is something which is self-contained, well-defined and does not
depend on the state of other services. It is a small(er) independently deployable
unit.
Transition to Microservices
The idea is to split current application into a set of smaller, interconnected
services instead of building a single monolithic application.
Each microservice is a small application that has its own architecture
consisting of business logic along with various adapters.
Most microservices would expose a REST API and most services consume
APIs provided by other services.
Technical impact of solution used
It tackled the problem of complexity by decomposing application into a set of
manageable services which are much faster to develop, and much easier
to understand and maintain.
Each service is independent so choosing programming language is more
dependent to actual problem, rather than choices made at the start of the
project which, ultimately, reduced barrier of adopting new technologies.
.. Continued
It improved fault isolation so that the application can remain largely
unaffected by the failure of a single service.
Scaling services, as the need arises, is much cost effective. As per earlier
example, an application consists of 2 modules – user and product. Now
we can scale product only. Also, with the AWS Lambda like auto scalable
services, it’s very easy and much more economical to scale micro-service,
in case of increased demand for a particular service.
More coming soon ...

More Related Content

What's hot

Automate REST API Testing
Automate REST API TestingAutomate REST API Testing
Automate REST API TestingTechWell
 
SonarQube - The leading platform for Continuous Code Quality
SonarQube - The leading platform for Continuous Code QualitySonarQube - The leading platform for Continuous Code Quality
SonarQube - The leading platform for Continuous Code QualityLarry Nung
 
Api gateway
Api gatewayApi gateway
Api gatewayenyert
 
Devops & Configuration management tools
Devops & Configuration management toolsDevops & Configuration management tools
Devops & Configuration management toolsSonu Meena
 
Introduction to Automation Testing
Introduction to Automation TestingIntroduction to Automation Testing
Introduction to Automation TestingArchana Krushnan
 
Introduction to API
Introduction to APIIntroduction to API
Introduction to APIrajnishjha29
 
Inversion of Control and Dependency Injection
Inversion of Control and Dependency InjectionInversion of Control and Dependency Injection
Inversion of Control and Dependency InjectionDinesh Sharma
 
Sql Injection - Vulnerability and Security
Sql Injection - Vulnerability and SecuritySql Injection - Vulnerability and Security
Sql Injection - Vulnerability and SecuritySandip Chaudhari
 
Leveraging Nexus Repository Manager at the Heart of DevOps
Leveraging Nexus Repository Manager at the Heart of DevOpsLeveraging Nexus Repository Manager at the Heart of DevOps
Leveraging Nexus Repository Manager at the Heart of DevOpsSeniorStoryteller
 
Selenium- A Software Testing Tool
Selenium- A Software Testing ToolSelenium- A Software Testing Tool
Selenium- A Software Testing ToolZeba Tahseen
 
REST API and CRUD
REST API and CRUDREST API and CRUD
REST API and CRUDPrem Sanil
 
Clean architecture
Clean architectureClean architecture
Clean architecture.NET Crowd
 

What's hot (20)

API Testing
API TestingAPI Testing
API Testing
 
Api testing
Api testingApi testing
Api testing
 
Automate REST API Testing
Automate REST API TestingAutomate REST API Testing
Automate REST API Testing
 
TypeScript intro
TypeScript introTypeScript intro
TypeScript intro
 
Introduction to selenium
Introduction to seleniumIntroduction to selenium
Introduction to selenium
 
SonarQube - The leading platform for Continuous Code Quality
SonarQube - The leading platform for Continuous Code QualitySonarQube - The leading platform for Continuous Code Quality
SonarQube - The leading platform for Continuous Code Quality
 
Api gateway
Api gatewayApi gateway
Api gateway
 
Devops & Configuration management tools
Devops & Configuration management toolsDevops & Configuration management tools
Devops & Configuration management tools
 
Introduction to Automation Testing
Introduction to Automation TestingIntroduction to Automation Testing
Introduction to Automation Testing
 
Introduction to API
Introduction to APIIntroduction to API
Introduction to API
 
Postman
PostmanPostman
Postman
 
Inversion of Control and Dependency Injection
Inversion of Control and Dependency InjectionInversion of Control and Dependency Injection
Inversion of Control and Dependency Injection
 
Api Testing
Api TestingApi Testing
Api Testing
 
Sql Injection - Vulnerability and Security
Sql Injection - Vulnerability and SecuritySql Injection - Vulnerability and Security
Sql Injection - Vulnerability and Security
 
Leveraging Nexus Repository Manager at the Heart of DevOps
Leveraging Nexus Repository Manager at the Heart of DevOpsLeveraging Nexus Repository Manager at the Heart of DevOps
Leveraging Nexus Repository Manager at the Heart of DevOps
 
Modular Monoliths with Nx
Modular Monoliths with NxModular Monoliths with Nx
Modular Monoliths with Nx
 
Selenium- A Software Testing Tool
Selenium- A Software Testing ToolSelenium- A Software Testing Tool
Selenium- A Software Testing Tool
 
Owasp zap
Owasp zapOwasp zap
Owasp zap
 
REST API and CRUD
REST API and CRUDREST API and CRUD
REST API and CRUD
 
Clean architecture
Clean architectureClean architecture
Clean architecture
 

Similar to Microservice architecture : Part 1

Software application architecture
Software application architectureSoftware application architecture
Software application architectureanwitat
 
Microservice final final
Microservice final finalMicroservice final final
Microservice final finalgaurav shukla
 
Architecting for speed: how agile innovators accelerate growth through micros...
Architecting for speed: how agile innovators accelerate growth through micros...Architecting for speed: how agile innovators accelerate growth through micros...
Architecting for speed: how agile innovators accelerate growth through micros...Jesper Nordström
 
Architecting for speed: how agile innovators accelerate growth through micros...
Architecting for speed: how agile innovators accelerate growth through micros...Architecting for speed: how agile innovators accelerate growth through micros...
Architecting for speed: how agile innovators accelerate growth through micros...3gamma
 
Microservices architecture
Microservices architectureMicroservices architecture
Microservices architectureFaren faren
 
Micro services vs Monolith Architecture
Micro services vs Monolith ArchitectureMicro services vs Monolith Architecture
Micro services vs Monolith ArchitectureMohamedElGohary71
 
What are the Advantages and Disadvantages of Microservices?
What are the Advantages and Disadvantages of Microservices? What are the Advantages and Disadvantages of Microservices?
What are the Advantages and Disadvantages of Microservices? Zoe Gilbert
 
05 microservices microdeck
05 microservices microdeck05 microservices microdeck
05 microservices microdeckfenggang wang
 
Over view of software artitecture
Over view of software artitectureOver view of software artitecture
Over view of software artitectureABDEL RAHMAN KARIM
 
Monolithic Architecture: A Closer Look at the Benefits and Drawbacks
Monolithic Architecture:  A Closer Look at the Benefits and DrawbacksMonolithic Architecture:  A Closer Look at the Benefits and Drawbacks
Monolithic Architecture: A Closer Look at the Benefits and DrawbacksSun Technologies
 
Java TechTalk "Spring boot made life easier with Kubernetes and Microservices"
Java TechTalk "Spring boot made life easier with Kubernetes and Microservices"Java TechTalk "Spring boot made life easier with Kubernetes and Microservices"
Java TechTalk "Spring boot made life easier with Kubernetes and Microservices"GlobalLogic Ukraine
 
Introduction to Microservices
Introduction to MicroservicesIntroduction to Microservices
Introduction to MicroservicesFayçal Bziou
 
What is monolithic architecture.pptx
What is monolithic architecture.pptxWhat is monolithic architecture.pptx
What is monolithic architecture.pptxShantanuApurva1
 
Microservices with mule
Microservices with muleMicroservices with mule
Microservices with muleGovind Mulinti
 
From Monolithic applications to Microservices
From Monolithic applications to MicroservicesFrom Monolithic applications to Microservices
From Monolithic applications to Microserviceskedarpethe37
 
Microservices vs Monolithic Architecture: Which Approach is Suitable for a St...
Microservices vs Monolithic Architecture: Which Approach is Suitable for a St...Microservices vs Monolithic Architecture: Which Approach is Suitable for a St...
Microservices vs Monolithic Architecture: Which Approach is Suitable for a St...Shelly Megan
 

Similar to Microservice architecture : Part 1 (20)

Software application architecture
Software application architectureSoftware application architecture
Software application architecture
 
Microservice final final
Microservice final finalMicroservice final final
Microservice final final
 
Architecting for speed: how agile innovators accelerate growth through micros...
Architecting for speed: how agile innovators accelerate growth through micros...Architecting for speed: how agile innovators accelerate growth through micros...
Architecting for speed: how agile innovators accelerate growth through micros...
 
Architecting for speed: how agile innovators accelerate growth through micros...
Architecting for speed: how agile innovators accelerate growth through micros...Architecting for speed: how agile innovators accelerate growth through micros...
Architecting for speed: how agile innovators accelerate growth through micros...
 
Monolithic architecture
Monolithic architectureMonolithic architecture
Monolithic architecture
 
Microservices architecture
Microservices architectureMicroservices architecture
Microservices architecture
 
Microservices: Detailed Guide
Microservices: Detailed GuideMicroservices: Detailed Guide
Microservices: Detailed Guide
 
Micro services vs Monolith Architecture
Micro services vs Monolith ArchitectureMicro services vs Monolith Architecture
Micro services vs Monolith Architecture
 
What are the Advantages and Disadvantages of Microservices?
What are the Advantages and Disadvantages of Microservices? What are the Advantages and Disadvantages of Microservices?
What are the Advantages and Disadvantages of Microservices?
 
05 microservices microdeck
05 microservices microdeck05 microservices microdeck
05 microservices microdeck
 
Over view of software artitecture
Over view of software artitectureOver view of software artitecture
Over view of software artitecture
 
Monolithic Architecture: A Closer Look at the Benefits and Drawbacks
Monolithic Architecture:  A Closer Look at the Benefits and DrawbacksMonolithic Architecture:  A Closer Look at the Benefits and Drawbacks
Monolithic Architecture: A Closer Look at the Benefits and Drawbacks
 
Java TechTalk "Spring boot made life easier with Kubernetes and Microservices"
Java TechTalk "Spring boot made life easier with Kubernetes and Microservices"Java TechTalk "Spring boot made life easier with Kubernetes and Microservices"
Java TechTalk "Spring boot made life easier with Kubernetes and Microservices"
 
Microservices
MicroservicesMicroservices
Microservices
 
Introduction to Microservices
Introduction to MicroservicesIntroduction to Microservices
Introduction to Microservices
 
Micro Front Ends : Divided We Rule by Parth Ghiya - AhmedabadJS
Micro Front Ends : Divided We Rule by Parth Ghiya - AhmedabadJSMicro Front Ends : Divided We Rule by Parth Ghiya - AhmedabadJS
Micro Front Ends : Divided We Rule by Parth Ghiya - AhmedabadJS
 
What is monolithic architecture.pptx
What is monolithic architecture.pptxWhat is monolithic architecture.pptx
What is monolithic architecture.pptx
 
Microservices with mule
Microservices with muleMicroservices with mule
Microservices with mule
 
From Monolithic applications to Microservices
From Monolithic applications to MicroservicesFrom Monolithic applications to Microservices
From Monolithic applications to Microservices
 
Microservices vs Monolithic Architecture: Which Approach is Suitable for a St...
Microservices vs Monolithic Architecture: Which Approach is Suitable for a St...Microservices vs Monolithic Architecture: Which Approach is Suitable for a St...
Microservices vs Monolithic Architecture: Which Approach is Suitable for a St...
 

More from NodeXperts

Apollo Server IV
Apollo Server IVApollo Server IV
Apollo Server IVNodeXperts
 
React Context API
React Context APIReact Context API
React Context APINodeXperts
 
Devops - Microservice and Kubernetes
Devops - Microservice and KubernetesDevops - Microservice and Kubernetes
Devops - Microservice and KubernetesNodeXperts
 
Introduction to EC2 (AWS)
Introduction to EC2 (AWS)Introduction to EC2 (AWS)
Introduction to EC2 (AWS)NodeXperts
 
Reactive Application Using METEOR
Reactive Application Using METEORReactive Application Using METEOR
Reactive Application Using METEORNodeXperts
 
Apollo server II
Apollo server IIApollo server II
Apollo server IINodeXperts
 
Apollo Server III
Apollo Server IIIApollo Server III
Apollo Server IIINodeXperts
 
Getting Reactive Data
Getting Reactive DataGetting Reactive Data
Getting Reactive DataNodeXperts
 
State, Life cycle, Methods & Events
State, Life cycle, Methods & Events State, Life cycle, Methods & Events
State, Life cycle, Methods & Events NodeXperts
 
Flow router, components and props
Flow router, components and propsFlow router, components and props
Flow router, components and propsNodeXperts
 
Using react with meteor
Using react with meteorUsing react with meteor
Using react with meteorNodeXperts
 
Introduction to Reactjs
Introduction to ReactjsIntroduction to Reactjs
Introduction to ReactjsNodeXperts
 
Mobile apps using meteor - Part 1
Mobile apps using meteor - Part 1Mobile apps using meteor - Part 1
Mobile apps using meteor - Part 1NodeXperts
 
Reactive web applications using MeteorJS
Reactive web applications using MeteorJSReactive web applications using MeteorJS
Reactive web applications using MeteorJSNodeXperts
 
Improving build solutions dependency management with webpack
Improving build solutions  dependency management with webpackImproving build solutions  dependency management with webpack
Improving build solutions dependency management with webpackNodeXperts
 
Meteor workshop
Meteor workshopMeteor workshop
Meteor workshopNodeXperts
 
Introduction to meteor
Introduction to meteorIntroduction to meteor
Introduction to meteorNodeXperts
 

More from NodeXperts (20)

ECMA Script
ECMA ScriptECMA Script
ECMA Script
 
Apollo Server IV
Apollo Server IVApollo Server IV
Apollo Server IV
 
React Context API
React Context APIReact Context API
React Context API
 
Devops - Microservice and Kubernetes
Devops - Microservice and KubernetesDevops - Microservice and Kubernetes
Devops - Microservice and Kubernetes
 
Introduction to EC2 (AWS)
Introduction to EC2 (AWS)Introduction to EC2 (AWS)
Introduction to EC2 (AWS)
 
Reactive Application Using METEOR
Reactive Application Using METEORReactive Application Using METEOR
Reactive Application Using METEOR
 
Apollo server II
Apollo server IIApollo server II
Apollo server II
 
Apollo Server
Apollo ServerApollo Server
Apollo Server
 
Apollo Server III
Apollo Server IIIApollo Server III
Apollo Server III
 
Getting Reactive Data
Getting Reactive DataGetting Reactive Data
Getting Reactive Data
 
State, Life cycle, Methods & Events
State, Life cycle, Methods & Events State, Life cycle, Methods & Events
State, Life cycle, Methods & Events
 
Refs in react
Refs in reactRefs in react
Refs in react
 
Flow router, components and props
Flow router, components and propsFlow router, components and props
Flow router, components and props
 
Using react with meteor
Using react with meteorUsing react with meteor
Using react with meteor
 
Introduction to Reactjs
Introduction to ReactjsIntroduction to Reactjs
Introduction to Reactjs
 
Mobile apps using meteor - Part 1
Mobile apps using meteor - Part 1Mobile apps using meteor - Part 1
Mobile apps using meteor - Part 1
 
Reactive web applications using MeteorJS
Reactive web applications using MeteorJSReactive web applications using MeteorJS
Reactive web applications using MeteorJS
 
Improving build solutions dependency management with webpack
Improving build solutions  dependency management with webpackImproving build solutions  dependency management with webpack
Improving build solutions dependency management with webpack
 
Meteor workshop
Meteor workshopMeteor workshop
Meteor workshop
 
Introduction to meteor
Introduction to meteorIntroduction to meteor
Introduction to meteor
 

Recently uploaded

Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersSafe Software
 
WSO2CONMay2024OpenSourceConferenceDebrief.pptx
WSO2CONMay2024OpenSourceConferenceDebrief.pptxWSO2CONMay2024OpenSourceConferenceDebrief.pptx
WSO2CONMay2024OpenSourceConferenceDebrief.pptxJennifer Lim
 
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptxIOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptxAbida Shariff
 
UiPath Test Automation using UiPath Test Suite series, part 2
UiPath Test Automation using UiPath Test Suite series, part 2UiPath Test Automation using UiPath Test Suite series, part 2
UiPath Test Automation using UiPath Test Suite series, part 2DianaGray10
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backElena Simperl
 
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya HalderCustom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya HalderCzechDreamin
 
Free and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
Free and Effective: Making Flows Publicly Accessible, Yumi IbrahimzadeFree and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
Free and Effective: Making Flows Publicly Accessible, Yumi IbrahimzadeCzechDreamin
 
IESVE for Early Stage Design and Planning
IESVE for Early Stage Design and PlanningIESVE for Early Stage Design and Planning
IESVE for Early Stage Design and PlanningIES VE
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...Product School
 
"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor TurskyiFwdays
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Product School
 
10 Differences between Sales Cloud and CPQ, Blanka Doktorová
10 Differences between Sales Cloud and CPQ, Blanka Doktorová10 Differences between Sales Cloud and CPQ, Blanka Doktorová
10 Differences between Sales Cloud and CPQ, Blanka DoktorováCzechDreamin
 
Demystifying gRPC in .Net by John Staveley
Demystifying gRPC in .Net by John StaveleyDemystifying gRPC in .Net by John Staveley
Demystifying gRPC in .Net by John StaveleyJohn Staveley
 
PLAI - Acceleration Program for Generative A.I. Startups
PLAI - Acceleration Program for Generative A.I. StartupsPLAI - Acceleration Program for Generative A.I. Startups
PLAI - Acceleration Program for Generative A.I. StartupsStefano
 
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...CzechDreamin
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaRTTS
 
Search and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical FuturesSearch and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical FuturesBhaskar Mitra
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Product School
 
AI revolution and Salesforce, Jiří Karpíšek
AI revolution and Salesforce, Jiří KarpíšekAI revolution and Salesforce, Jiří Karpíšek
AI revolution and Salesforce, Jiří KarpíšekCzechDreamin
 
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...CzechDreamin
 

Recently uploaded (20)

Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
 
WSO2CONMay2024OpenSourceConferenceDebrief.pptx
WSO2CONMay2024OpenSourceConferenceDebrief.pptxWSO2CONMay2024OpenSourceConferenceDebrief.pptx
WSO2CONMay2024OpenSourceConferenceDebrief.pptx
 
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptxIOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
 
UiPath Test Automation using UiPath Test Suite series, part 2
UiPath Test Automation using UiPath Test Suite series, part 2UiPath Test Automation using UiPath Test Suite series, part 2
UiPath Test Automation using UiPath Test Suite series, part 2
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
 
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya HalderCustom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
 
Free and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
Free and Effective: Making Flows Publicly Accessible, Yumi IbrahimzadeFree and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
Free and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
 
IESVE for Early Stage Design and Planning
IESVE for Early Stage Design and PlanningIESVE for Early Stage Design and Planning
IESVE for Early Stage Design and Planning
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
 
"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
 
10 Differences between Sales Cloud and CPQ, Blanka Doktorová
10 Differences between Sales Cloud and CPQ, Blanka Doktorová10 Differences between Sales Cloud and CPQ, Blanka Doktorová
10 Differences between Sales Cloud and CPQ, Blanka Doktorová
 
Demystifying gRPC in .Net by John Staveley
Demystifying gRPC in .Net by John StaveleyDemystifying gRPC in .Net by John Staveley
Demystifying gRPC in .Net by John Staveley
 
PLAI - Acceleration Program for Generative A.I. Startups
PLAI - Acceleration Program for Generative A.I. StartupsPLAI - Acceleration Program for Generative A.I. Startups
PLAI - Acceleration Program for Generative A.I. Startups
 
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
 
Search and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical FuturesSearch and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical Futures
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
 
AI revolution and Salesforce, Jiří Karpíšek
AI revolution and Salesforce, Jiří KarpíšekAI revolution and Salesforce, Jiří Karpíšek
AI revolution and Salesforce, Jiří Karpíšek
 
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
 

Microservice architecture : Part 1

  • 2. Why? To understand why, we first need to have a look at what do we use. In general, it is a monolithic approach.
  • 3. Monolithic Approach In simplest terms, Monolithic means composed all in one piece. In this approach, program components are interconnected and interdependent. In monolithic approach, we can divide the code in following layers: Presentation layer Business layer Data access layer
  • 4. Monolithic Approach For example, when a web client (browser) sends a request, following happens: The business layer performs the business logic. Data access layer performs database collects/stores specific tasks. Presentation layer shows the data to the user. Basically, all code (presentation, business layer, and data access layer) is maintained within the same code base.
  • 5. Problem 1 Due to one codebase, all changes need to be committed/deployed via single repository, which, as code grows, becomes very inefficient to manage.
  • 6. Problem 2 Even in order to work in a certain module (say, product), developer needs to pull the whole codebase to his local and configure it which, in general, shouldn’t be the case.
  • 7. Problem 3 Often, project tasks are divided based on the layer — UI team, backend team, database dev team etc. Teams are specialized in their domains, but they have little knowledge about other layers. So when there's a critical problem, it encompasses each layer and it takes additional time to decide which layer's problem it is and which team needs to address it. In case of a long running project, it may be possible that no single team understands the entirety of the application.
  • 8. Problem 4 Due to large codebase, Scaling monolithic applications can often be a challenge. In a large, monolithic application, everything needs to be scaled together. For example, an application consists of two modules – user and product. Even if we want to scale product only, it is not possible in monolithic application.
  • 9. Some more Adopting new technologies is cumbersome in monolithic applications since these applications are implemented using a single development stack (i.e. JEE or PHP etc), which, sometimes, limit the availability of the right solution for the problem. Monolithic applications are Fault intolerant so the application can crash, even by the failure of a single component/functionality.
  • 11. Microservices A micro service is something which is self-contained, well-defined and does not depend on the state of other services. It is a small(er) independently deployable unit.
  • 12. Transition to Microservices The idea is to split current application into a set of smaller, interconnected services instead of building a single monolithic application. Each microservice is a small application that has its own architecture consisting of business logic along with various adapters. Most microservices would expose a REST API and most services consume APIs provided by other services.
  • 13. Technical impact of solution used It tackled the problem of complexity by decomposing application into a set of manageable services which are much faster to develop, and much easier to understand and maintain. Each service is independent so choosing programming language is more dependent to actual problem, rather than choices made at the start of the project which, ultimately, reduced barrier of adopting new technologies.
  • 14. .. Continued It improved fault isolation so that the application can remain largely unaffected by the failure of a single service. Scaling services, as the need arises, is much cost effective. As per earlier example, an application consists of 2 modules – user and product. Now we can scale product only. Also, with the AWS Lambda like auto scalable services, it’s very easy and much more economical to scale micro-service, in case of increased demand for a particular service.

Editor's Notes

  1. The business layer acts as an interface between Presentation layer and Data Access Layer
  2. Which improved performance