SlideShare a Scribd company logo
INTRODUCTION TO
THE REQUIREMENT OF MICROSERVICES
Presented by:
Avik Das
Software Developer
Here is a presentation for those
developers who are thinking about
getting benefited using
microservices.
Microservices is a pattern of
implementing solutions for
complex problems. Whereas, it
has complexity in implementation.
We can ignore this pattern as long
as we have the option to go with
the monolithic architecture
pattern.
Example
Bulk Billing System
It is good to start with an example
of a common problem.
A news magazine publishing house
generate bills for their customers
on the first day of every month
and delivers as a PDF attachment
of the email.
Activities
First, they calculate the charges
based on usage recorded in the
database.
Then, PDF files are generated
based on an existing template
merged with calculated data.
The system sends SMS to
customers to notify the billing
amount and due date.
Finally, the system uploads all PDF
files to the server of the vendor,
who is responsible for printing the
hard copy and do the delivery by
postal services.
Calculate Charges
Generate PDF &
Send Email
Fetch Records
End of
Records
Send SMS
Upload for
Printing
Select Record
1st of
every month
Run schedule
Initial days
Let's assume that initially, the
publishing house has 1000
consumers only and have a small
budget to implement the
automation.
We can create a single service to
process the task in a web server
without any complexity.
Server instances with 1 CPU and 2
GB RAM should be available in low
budget, which is going to be
enough for computation of the
above process in an average time.
A standard shared hosting
environment can provide this kind
of a similar infrastructure too.
ASP.net / JAVA / PHP
application
Database
Web Server (IIS / Apache / Tomcat) File Server
Cron Job / Schedular
SMS Gateway
Email Gateway
1 CPU (2.5 GHz) | 2 GB RAM
Complexity begin
After six months, the company
achieve massive success and
enrolled 1,00,000 customers. Now
the system starts producing delays
in processing. Several in-memory
processes getting failed due to
limitation of memory.
We have to use a more powerful
CPU for a single-threaded process.
So, we have to replace the CPU
and increase RAM.
Shared hosting has a limitation on
increase resources. We have to
move the application to a different
server or go for cloud instances
like AWS EC2 or Azure VM.
ASP.net / JAVA / PHP
application
Database
Web Server (IIS / Apache / Tomcat) File Server
Cron Job / Schedular
SMS Gateway
Email Gateway
1 CPU (3 GHz) | 4 GB RAM
Application crashed
After two years of exclusive services,
they earned 1 million customers.
Now, we can suggest for following
solutions
1. Process bills in multiple batches
2. Get the benefits of parallel
processing over multiple CPUs
3. Run multiple instances of the
same application to execute
different batches.
The above solutions require changes
in the script. Whereas, dependencies
on third-party gateways or services
may introduce accidental complexity.
E.g. an email gateway supports only
100 requests per minutes, and a
single application can generate 1000
bills per minutes.
App
Database
Web Server (IIS / Apache / Tomcat) File Server
Cron Job / Schedular
SMS Gateway
Email Gateway
2 CPU (2.5 GHz) | 8 GB RAM
App
Alternative approach
So, we have to implement different
services for four tasks of the
process. Services will be
independent and capable enough to
manage internal or external
complexity without affecting the
execution of other services.
These services will have schedulers
to run and execute the scripts
according to available data in the
databases and limitation on every
iteration.
Billing service will have primary
data for calculation and initiate the
process for other services. But, how
it will communicate with other
services when these are deployed
in separate servers.
File Server
SMS Gateway
Email Gateway
Server
Scheduler (Every day)
Billing Service
Database
Server
Scheduler (Every minute)
PDF Generator &
Email Service
Database
Server
Scheduler (Every minute)
File Uploading
Service
Database
Server
Scheduler (Every minute)
SMS Service
Database
APIs
Application Programming Interface
is a good suggestion to interact
across multiple programs. Here we
can deploy APIs into the server of
services. These will be available for
billing service to push data into
respective databases.
Now we can use different type of
resources for different services.
Services may use multiple CPUs and
memory as per requirement.
These services focused on a small
part of entire process, that's why
we called them microservices.
Microservices are implemented for
more complex problems to be
resolve, which we can discuss on
case to case basic.
Server
Scheduler (Every day)
Billing Service
Database
Server
Scheduler (Every minute)
PDF Generator &
Email Service
Database
Server
Scheduler (Every minute)
File Uploading
Service
Database
Server
Scheduler (Every minute)
SMS Service
Database
API API
API
2 CPU (2.5 GHz) | 4 GB RAM 1 CPU (2.5 GHz) | 2 GB RAM
1 CPU (2.5 GHz) | 8 GB RAM1 CPU (2.5 GHz) | 1 GB RAM
Challenges
Microservices suggest for
1.Separate code bases for services
2.Separate configuration files
3.Advance deployment tools
4.Propper integration testing
5.Monitoring through dashboard
Process to set up the entire pipeline
for managing microservices is a very
critical process; after we finish the
design for how to split the tasks into
multiple services.
Cyclic dependencies on services
might be the worst accidental
complexity of any microservices
eco-system.
Cost of development and managing
infrastructure going to be high for
an initial start-up venture.
Code Base
Database Schema
Settings &
Configuration
Code Base
Database Schema
Settings &
Configuration
Code Base
Database Schema
Settings &
Configuration
Developer Developer Developer
Version Controlling, Testing, Monitoring & Deployment Tools
Advantages
We can practice the single
responsibility principle while
working with monolithic
architecture pattern. It helps us to
create boundaries in our code
blocks for classes with minimum
dependencies or loosely coupled
coding.
Most of the renowned companies
migrated from monolithic systems
to microservices. Having a good
quality of codebase can reduce the
time of migration.
Advantages in microservices pattern
1. Improve performance
2. High scalability
3. Flexibility of technology
selection
4. Cross-functional team
5. Improved fault isolation
6. Faster deployment
Service Instance #1
SQL Server Database
Load Balancer
Service Instance #1
Service Instance #2
MySQL Database
Service Instance #1
Mongo Database
Oracle Database
C#
Developer
PHP
Developer
JAVA
Developer
Kubernetes, Docker Tools
Thank You…
Ad

More Related Content

What's hot (19)

Building a Scalable Architecture for web apps
Building a Scalable Architecture for web appsBuilding a Scalable Architecture for web apps
Building a Scalable Architecture for web apps
Directi Group
 
LCA13: Web Server and Caching Technologies
LCA13: Web Server and Caching TechnologiesLCA13: Web Server and Caching Technologies
LCA13: Web Server and Caching Technologies
Linaro
 
4 extreme performance - part ii
4   extreme performance - part ii4   extreme performance - part ii
4 extreme performance - part ii
sqlserver.co.il
 
Data Pipelines with Apache Kafka
Data Pipelines with Apache KafkaData Pipelines with Apache Kafka
Data Pipelines with Apache Kafka
Ben Stopford
 
Best Features of Azure Service Bus
Best Features of Azure Service BusBest Features of Azure Service Bus
Best Features of Azure Service Bus
Daniel Toomey
 
FME Cloud Tips for Success
FME Cloud Tips for SuccessFME Cloud Tips for Success
FME Cloud Tips for Success
Safe Software
 
Streaming, Database & Distributed Systems Bridging the Divide
Streaming, Database & Distributed Systems Bridging the DivideStreaming, Database & Distributed Systems Bridging the Divide
Streaming, Database & Distributed Systems Bridging the Divide
Ben Stopford
 
EC2 Masterclass from the AWS User Group Scotland Meetup
EC2 Masterclass from the AWS User Group Scotland MeetupEC2 Masterclass from the AWS User Group Scotland Meetup
EC2 Masterclass from the AWS User Group Scotland Meetup
Ian Massingham
 
How to Process Real-Time Data with FME
How to Process Real-Time Data with FMEHow to Process Real-Time Data with FME
How to Process Real-Time Data with FME
Safe Software
 
Overview of Message Queues
Overview of Message QueuesOverview of Message Queues
Overview of Message Queues
Bozhidar Bozhanov
 
Discover the Capabilities of Windows Azure Service Bus to Power Agile Busines...
Discover the Capabilities of Windows Azure Service Bus to Power Agile Busines...Discover the Capabilities of Windows Azure Service Bus to Power Agile Busines...
Discover the Capabilities of Windows Azure Service Bus to Power Agile Busines...
Sergio Compean
 
Profit from the cloud TM Parallels Dynamic Infrastructure And OpenStack.
Profit from the cloud TM Parallels Dynamic Infrastructure And OpenStack.Profit from the cloud TM Parallels Dynamic Infrastructure And OpenStack.
Profit from the cloud TM Parallels Dynamic Infrastructure And OpenStack.
OpenVZ
 
Apache kafka
Apache kafkaApache kafka
Apache kafka
Ramakrishna kapa
 
Apache Kafka - Overview
Apache Kafka - OverviewApache Kafka - Overview
Apache Kafka - Overview
CodeOps Technologies LLP
 
Aws multi-region High Availability
Aws multi-region High Availability Aws multi-region High Availability
Aws multi-region High Availability
Adam Book
 
Oracle on aws overview sep 2011
Oracle on aws overview   sep 2011Oracle on aws overview   sep 2011
Oracle on aws overview sep 2011
Jamie Kinney
 
Mastery Webinar Series: How Cloud Email Archival Setups are 30% lower than In...
Mastery Webinar Series: How Cloud Email Archival Setups are 30% lower than In...Mastery Webinar Series: How Cloud Email Archival Setups are 30% lower than In...
Mastery Webinar Series: How Cloud Email Archival Setups are 30% lower than In...
Vaultastic
 
Introducing Amazon RDS Using Oracle Database
Introducing Amazon RDS Using Oracle DatabaseIntroducing Amazon RDS Using Oracle Database
Introducing Amazon RDS Using Oracle Database
Jamie Kinney
 
The experiences of migrating a large scale, high performance healthcare network
The experiences of migrating a large scale, high performance healthcare networkThe experiences of migrating a large scale, high performance healthcare network
The experiences of migrating a large scale, high performance healthcare network
george.james
 
Building a Scalable Architecture for web apps
Building a Scalable Architecture for web appsBuilding a Scalable Architecture for web apps
Building a Scalable Architecture for web apps
Directi Group
 
LCA13: Web Server and Caching Technologies
LCA13: Web Server and Caching TechnologiesLCA13: Web Server and Caching Technologies
LCA13: Web Server and Caching Technologies
Linaro
 
4 extreme performance - part ii
4   extreme performance - part ii4   extreme performance - part ii
4 extreme performance - part ii
sqlserver.co.il
 
Data Pipelines with Apache Kafka
Data Pipelines with Apache KafkaData Pipelines with Apache Kafka
Data Pipelines with Apache Kafka
Ben Stopford
 
Best Features of Azure Service Bus
Best Features of Azure Service BusBest Features of Azure Service Bus
Best Features of Azure Service Bus
Daniel Toomey
 
FME Cloud Tips for Success
FME Cloud Tips for SuccessFME Cloud Tips for Success
FME Cloud Tips for Success
Safe Software
 
Streaming, Database & Distributed Systems Bridging the Divide
Streaming, Database & Distributed Systems Bridging the DivideStreaming, Database & Distributed Systems Bridging the Divide
Streaming, Database & Distributed Systems Bridging the Divide
Ben Stopford
 
EC2 Masterclass from the AWS User Group Scotland Meetup
EC2 Masterclass from the AWS User Group Scotland MeetupEC2 Masterclass from the AWS User Group Scotland Meetup
EC2 Masterclass from the AWS User Group Scotland Meetup
Ian Massingham
 
How to Process Real-Time Data with FME
How to Process Real-Time Data with FMEHow to Process Real-Time Data with FME
How to Process Real-Time Data with FME
Safe Software
 
Discover the Capabilities of Windows Azure Service Bus to Power Agile Busines...
Discover the Capabilities of Windows Azure Service Bus to Power Agile Busines...Discover the Capabilities of Windows Azure Service Bus to Power Agile Busines...
Discover the Capabilities of Windows Azure Service Bus to Power Agile Busines...
Sergio Compean
 
Profit from the cloud TM Parallels Dynamic Infrastructure And OpenStack.
Profit from the cloud TM Parallels Dynamic Infrastructure And OpenStack.Profit from the cloud TM Parallels Dynamic Infrastructure And OpenStack.
Profit from the cloud TM Parallels Dynamic Infrastructure And OpenStack.
OpenVZ
 
Aws multi-region High Availability
Aws multi-region High Availability Aws multi-region High Availability
Aws multi-region High Availability
Adam Book
 
Oracle on aws overview sep 2011
Oracle on aws overview   sep 2011Oracle on aws overview   sep 2011
Oracle on aws overview sep 2011
Jamie Kinney
 
Mastery Webinar Series: How Cloud Email Archival Setups are 30% lower than In...
Mastery Webinar Series: How Cloud Email Archival Setups are 30% lower than In...Mastery Webinar Series: How Cloud Email Archival Setups are 30% lower than In...
Mastery Webinar Series: How Cloud Email Archival Setups are 30% lower than In...
Vaultastic
 
Introducing Amazon RDS Using Oracle Database
Introducing Amazon RDS Using Oracle DatabaseIntroducing Amazon RDS Using Oracle Database
Introducing Amazon RDS Using Oracle Database
Jamie Kinney
 
The experiences of migrating a large scale, high performance healthcare network
The experiences of migrating a large scale, high performance healthcare networkThe experiences of migrating a large scale, high performance healthcare network
The experiences of migrating a large scale, high performance healthcare network
george.james
 

Similar to Introduction to requirement of microservices (20)

IEEE 2014 JAVA CLOUD COMPUTING PROJECTS Automatic scaling of internet applica...
IEEE 2014 JAVA CLOUD COMPUTING PROJECTS Automatic scaling of internet applica...IEEE 2014 JAVA CLOUD COMPUTING PROJECTS Automatic scaling of internet applica...
IEEE 2014 JAVA CLOUD COMPUTING PROJECTS Automatic scaling of internet applica...
IEEEGLOBALSOFTSTUDENTPROJECTS
 
Updating current Network Design It18 roshan basnet
Updating current Network Design It18 roshan basnetUpdating current Network Design It18 roshan basnet
Updating current Network Design It18 roshan basnet
rosu555
 
2014 IEEE DOTNET CLOUD COMPUTING PROJECT Automatic scaling of internet applic...
2014 IEEE DOTNET CLOUD COMPUTING PROJECT Automatic scaling of internet applic...2014 IEEE DOTNET CLOUD COMPUTING PROJECT Automatic scaling of internet applic...
2014 IEEE DOTNET CLOUD COMPUTING PROJECT Automatic scaling of internet applic...
IEEEFINALSEMSTUDENTPROJECTS
 
IEEE 2014 DOTNET CLOUD COMPUTING PROJECTS Automatic scaling of internet appli...
IEEE 2014 DOTNET CLOUD COMPUTING PROJECTS Automatic scaling of internet appli...IEEE 2014 DOTNET CLOUD COMPUTING PROJECTS Automatic scaling of internet appli...
IEEE 2014 DOTNET CLOUD COMPUTING PROJECTS Automatic scaling of internet appli...
IEEEMEMTECHSTUDENTPROJECTS
 
Real time service oriented cloud computing
Real time service oriented cloud computingReal time service oriented cloud computing
Real time service oriented cloud computing
www.pixelsolutionbd.com
 
The Art of Message Queues - TEKX
The Art of Message Queues - TEKXThe Art of Message Queues - TEKX
The Art of Message Queues - TEKX
Mike Willbanks
 
Building and Scaling a WebSockets Pubsub System
Building and Scaling a WebSockets Pubsub SystemBuilding and Scaling a WebSockets Pubsub System
Building and Scaling a WebSockets Pubsub System
Kapil Reddy
 
Microsoft Windows Azure - EBC Deck June 2010 Presentation
Microsoft Windows Azure -  EBC Deck June 2010 PresentationMicrosoft Windows Azure -  EBC Deck June 2010 Presentation
Microsoft Windows Azure - EBC Deck June 2010 Presentation
Microsoft Private Cloud
 
Welcome to International Journal of Engineering Research and Development (IJERD)
Welcome to International Journal of Engineering Research and Development (IJERD)Welcome to International Journal of Engineering Research and Development (IJERD)
Welcome to International Journal of Engineering Research and Development (IJERD)
IJERD Editor
 
Refactoring Web Services on AWS cloud (PaaS & SaaS)
Refactoring Web Services on AWS cloud (PaaS & SaaS)Refactoring Web Services on AWS cloud (PaaS & SaaS)
Refactoring Web Services on AWS cloud (PaaS & SaaS)
IRJET Journal
 
Optimal multiserver configuration for profit maximization in cloud computing
Optimal multiserver configuration for profit maximization in cloud computingOptimal multiserver configuration for profit maximization in cloud computing
Optimal multiserver configuration for profit maximization in cloud computing
JPINFOTECH JAYAPRAKASH
 
Architecting and Tuning IIB/eXtreme Scale for Maximum Performance and Reliabi...
Architecting and Tuning IIB/eXtreme Scale for Maximum Performance and Reliabi...Architecting and Tuning IIB/eXtreme Scale for Maximum Performance and Reliabi...
Architecting and Tuning IIB/eXtreme Scale for Maximum Performance and Reliabi...
Prolifics
 
When to use serverless computing.pdf
When to use serverless computing.pdfWhen to use serverless computing.pdf
When to use serverless computing.pdf
seo18
 
Just do it!
Just do it!Just do it!
Just do it!
CloudBees
 
Scaling Streaming - Concepts, Research, Goals
Scaling Streaming - Concepts, Research, GoalsScaling Streaming - Concepts, Research, Goals
Scaling Streaming - Concepts, Research, Goals
kamaelian
 
GIS & Cloud Computing - GAASC 2010 Fall Summit - Florence, SC
GIS & Cloud Computing - GAASC 2010 Fall Summit - Florence, SCGIS & Cloud Computing - GAASC 2010 Fall Summit - Florence, SC
GIS & Cloud Computing - GAASC 2010 Fall Summit - Florence, SC
Jim Tochterman
 
SAFwAD @ Intelligent Cloud Conference
SAFwAD @ Intelligent Cloud ConferenceSAFwAD @ Intelligent Cloud Conference
SAFwAD @ Intelligent Cloud Conference
Rick van den Bosch
 
Serverless Computing
Serverless ComputingServerless Computing
Serverless Computing
Anand Gupta
 
SaaS Enablement of your existing application (Cloud Slam 2010)
SaaS Enablement of your existing application (Cloud Slam 2010)SaaS Enablement of your existing application (Cloud Slam 2010)
SaaS Enablement of your existing application (Cloud Slam 2010)
Nati Shalom
 
Assessing your current email infrastructure
Assessing your current email infrastructureAssessing your current email infrastructure
Assessing your current email infrastructure
webhostingguy
 
IEEE 2014 JAVA CLOUD COMPUTING PROJECTS Automatic scaling of internet applica...
IEEE 2014 JAVA CLOUD COMPUTING PROJECTS Automatic scaling of internet applica...IEEE 2014 JAVA CLOUD COMPUTING PROJECTS Automatic scaling of internet applica...
IEEE 2014 JAVA CLOUD COMPUTING PROJECTS Automatic scaling of internet applica...
IEEEGLOBALSOFTSTUDENTPROJECTS
 
Updating current Network Design It18 roshan basnet
Updating current Network Design It18 roshan basnetUpdating current Network Design It18 roshan basnet
Updating current Network Design It18 roshan basnet
rosu555
 
2014 IEEE DOTNET CLOUD COMPUTING PROJECT Automatic scaling of internet applic...
2014 IEEE DOTNET CLOUD COMPUTING PROJECT Automatic scaling of internet applic...2014 IEEE DOTNET CLOUD COMPUTING PROJECT Automatic scaling of internet applic...
2014 IEEE DOTNET CLOUD COMPUTING PROJECT Automatic scaling of internet applic...
IEEEFINALSEMSTUDENTPROJECTS
 
IEEE 2014 DOTNET CLOUD COMPUTING PROJECTS Automatic scaling of internet appli...
IEEE 2014 DOTNET CLOUD COMPUTING PROJECTS Automatic scaling of internet appli...IEEE 2014 DOTNET CLOUD COMPUTING PROJECTS Automatic scaling of internet appli...
IEEE 2014 DOTNET CLOUD COMPUTING PROJECTS Automatic scaling of internet appli...
IEEEMEMTECHSTUDENTPROJECTS
 
Real time service oriented cloud computing
Real time service oriented cloud computingReal time service oriented cloud computing
Real time service oriented cloud computing
www.pixelsolutionbd.com
 
The Art of Message Queues - TEKX
The Art of Message Queues - TEKXThe Art of Message Queues - TEKX
The Art of Message Queues - TEKX
Mike Willbanks
 
Building and Scaling a WebSockets Pubsub System
Building and Scaling a WebSockets Pubsub SystemBuilding and Scaling a WebSockets Pubsub System
Building and Scaling a WebSockets Pubsub System
Kapil Reddy
 
Microsoft Windows Azure - EBC Deck June 2010 Presentation
Microsoft Windows Azure -  EBC Deck June 2010 PresentationMicrosoft Windows Azure -  EBC Deck June 2010 Presentation
Microsoft Windows Azure - EBC Deck June 2010 Presentation
Microsoft Private Cloud
 
Welcome to International Journal of Engineering Research and Development (IJERD)
Welcome to International Journal of Engineering Research and Development (IJERD)Welcome to International Journal of Engineering Research and Development (IJERD)
Welcome to International Journal of Engineering Research and Development (IJERD)
IJERD Editor
 
Refactoring Web Services on AWS cloud (PaaS & SaaS)
Refactoring Web Services on AWS cloud (PaaS & SaaS)Refactoring Web Services on AWS cloud (PaaS & SaaS)
Refactoring Web Services on AWS cloud (PaaS & SaaS)
IRJET Journal
 
Optimal multiserver configuration for profit maximization in cloud computing
Optimal multiserver configuration for profit maximization in cloud computingOptimal multiserver configuration for profit maximization in cloud computing
Optimal multiserver configuration for profit maximization in cloud computing
JPINFOTECH JAYAPRAKASH
 
Architecting and Tuning IIB/eXtreme Scale for Maximum Performance and Reliabi...
Architecting and Tuning IIB/eXtreme Scale for Maximum Performance and Reliabi...Architecting and Tuning IIB/eXtreme Scale for Maximum Performance and Reliabi...
Architecting and Tuning IIB/eXtreme Scale for Maximum Performance and Reliabi...
Prolifics
 
When to use serverless computing.pdf
When to use serverless computing.pdfWhen to use serverless computing.pdf
When to use serverless computing.pdf
seo18
 
Scaling Streaming - Concepts, Research, Goals
Scaling Streaming - Concepts, Research, GoalsScaling Streaming - Concepts, Research, Goals
Scaling Streaming - Concepts, Research, Goals
kamaelian
 
GIS & Cloud Computing - GAASC 2010 Fall Summit - Florence, SC
GIS & Cloud Computing - GAASC 2010 Fall Summit - Florence, SCGIS & Cloud Computing - GAASC 2010 Fall Summit - Florence, SC
GIS & Cloud Computing - GAASC 2010 Fall Summit - Florence, SC
Jim Tochterman
 
SAFwAD @ Intelligent Cloud Conference
SAFwAD @ Intelligent Cloud ConferenceSAFwAD @ Intelligent Cloud Conference
SAFwAD @ Intelligent Cloud Conference
Rick van den Bosch
 
Serverless Computing
Serverless ComputingServerless Computing
Serverless Computing
Anand Gupta
 
SaaS Enablement of your existing application (Cloud Slam 2010)
SaaS Enablement of your existing application (Cloud Slam 2010)SaaS Enablement of your existing application (Cloud Slam 2010)
SaaS Enablement of your existing application (Cloud Slam 2010)
Nati Shalom
 
Assessing your current email infrastructure
Assessing your current email infrastructureAssessing your current email infrastructure
Assessing your current email infrastructure
webhostingguy
 
Ad

Recently uploaded (20)

Artificial hand using embedded system.pptx
Artificial hand using embedded system.pptxArtificial hand using embedded system.pptx
Artificial hand using embedded system.pptx
bhoomigowda12345
 
Reinventing Microservices Efficiency and Innovation with Single-Runtime
Reinventing Microservices Efficiency and Innovation with Single-RuntimeReinventing Microservices Efficiency and Innovation with Single-Runtime
Reinventing Microservices Efficiency and Innovation with Single-Runtime
Natan Silnitsky
 
Time Estimation: Expert Tips & Proven Project Techniques
Time Estimation: Expert Tips & Proven Project TechniquesTime Estimation: Expert Tips & Proven Project Techniques
Time Estimation: Expert Tips & Proven Project Techniques
Livetecs LLC
 
Buy vs. Build: Unlocking the right path for your training tech
Buy vs. Build: Unlocking the right path for your training techBuy vs. Build: Unlocking the right path for your training tech
Buy vs. Build: Unlocking the right path for your training tech
Rustici Software
 
Wilcom Embroidery Studio Crack 2025 For Windows
Wilcom Embroidery Studio Crack 2025 For WindowsWilcom Embroidery Studio Crack 2025 For Windows
Wilcom Embroidery Studio Crack 2025 For Windows
Google
 
Download MathType Crack Version 2025???
Download MathType Crack  Version 2025???Download MathType Crack  Version 2025???
Download MathType Crack Version 2025???
Google
 
How I solved production issues with OpenTelemetry
How I solved production issues with OpenTelemetryHow I solved production issues with OpenTelemetry
How I solved production issues with OpenTelemetry
Cees Bos
 
Serato DJ Pro Crack Latest Version 2025??
Serato DJ Pro Crack Latest Version 2025??Serato DJ Pro Crack Latest Version 2025??
Serato DJ Pro Crack Latest Version 2025??
Web Designer
 
Medical Device Cybersecurity Threat & Risk Scoring
Medical Device Cybersecurity Threat & Risk ScoringMedical Device Cybersecurity Threat & Risk Scoring
Medical Device Cybersecurity Threat & Risk Scoring
ICS
 
Troubleshooting JVM Outages – 3 Fortune 500 case studies
Troubleshooting JVM Outages – 3 Fortune 500 case studiesTroubleshooting JVM Outages – 3 Fortune 500 case studies
Troubleshooting JVM Outages – 3 Fortune 500 case studies
Tier1 app
 
Top Magento Hyvä Theme Features That Make It Ideal for E-commerce.pdf
Top Magento Hyvä Theme Features That Make It Ideal for E-commerce.pdfTop Magento Hyvä Theme Features That Make It Ideal for E-commerce.pdf
Top Magento Hyvä Theme Features That Make It Ideal for E-commerce.pdf
evrigsolution
 
[gbgcpp] Let's get comfortable with concepts
[gbgcpp] Let's get comfortable with concepts[gbgcpp] Let's get comfortable with concepts
[gbgcpp] Let's get comfortable with concepts
Dimitrios Platis
 
Sequence Diagrams With Pictures (1).pptx
Sequence Diagrams With Pictures (1).pptxSequence Diagrams With Pictures (1).pptx
Sequence Diagrams With Pictures (1).pptx
aashrithakondapalli8
 
The Elixir Developer - All Things Open
The Elixir Developer - All Things OpenThe Elixir Developer - All Things Open
The Elixir Developer - All Things Open
Carlo Gilmar Padilla Santana
 
Why Tapitag Ranks Among the Best Digital Business Card Providers
Why Tapitag Ranks Among the Best Digital Business Card ProvidersWhy Tapitag Ranks Among the Best Digital Business Card Providers
Why Tapitag Ranks Among the Best Digital Business Card Providers
Tapitag
 
Surviving a Downturn Making Smarter Portfolio Decisions with OnePlan - Webina...
Surviving a Downturn Making Smarter Portfolio Decisions with OnePlan - Webina...Surviving a Downturn Making Smarter Portfolio Decisions with OnePlan - Webina...
Surviving a Downturn Making Smarter Portfolio Decisions with OnePlan - Webina...
OnePlan Solutions
 
Adobe Media Encoder Crack FREE Download 2025
Adobe Media Encoder  Crack FREE Download 2025Adobe Media Encoder  Crack FREE Download 2025
Adobe Media Encoder Crack FREE Download 2025
zafranwaqar90
 
Download 4k Video Downloader Crack Pre-Activated
Download 4k Video Downloader Crack Pre-ActivatedDownload 4k Video Downloader Crack Pre-Activated
Download 4k Video Downloader Crack Pre-Activated
Web Designer
 
What Do Candidates Really Think About AI-Powered Recruitment Tools?
What Do Candidates Really Think About AI-Powered Recruitment Tools?What Do Candidates Really Think About AI-Powered Recruitment Tools?
What Do Candidates Really Think About AI-Powered Recruitment Tools?
HireME
 
Wilcom Embroidery Studio Crack Free Latest 2025
Wilcom Embroidery Studio Crack Free Latest 2025Wilcom Embroidery Studio Crack Free Latest 2025
Wilcom Embroidery Studio Crack Free Latest 2025
Web Designer
 
Artificial hand using embedded system.pptx
Artificial hand using embedded system.pptxArtificial hand using embedded system.pptx
Artificial hand using embedded system.pptx
bhoomigowda12345
 
Reinventing Microservices Efficiency and Innovation with Single-Runtime
Reinventing Microservices Efficiency and Innovation with Single-RuntimeReinventing Microservices Efficiency and Innovation with Single-Runtime
Reinventing Microservices Efficiency and Innovation with Single-Runtime
Natan Silnitsky
 
Time Estimation: Expert Tips & Proven Project Techniques
Time Estimation: Expert Tips & Proven Project TechniquesTime Estimation: Expert Tips & Proven Project Techniques
Time Estimation: Expert Tips & Proven Project Techniques
Livetecs LLC
 
Buy vs. Build: Unlocking the right path for your training tech
Buy vs. Build: Unlocking the right path for your training techBuy vs. Build: Unlocking the right path for your training tech
Buy vs. Build: Unlocking the right path for your training tech
Rustici Software
 
Wilcom Embroidery Studio Crack 2025 For Windows
Wilcom Embroidery Studio Crack 2025 For WindowsWilcom Embroidery Studio Crack 2025 For Windows
Wilcom Embroidery Studio Crack 2025 For Windows
Google
 
Download MathType Crack Version 2025???
Download MathType Crack  Version 2025???Download MathType Crack  Version 2025???
Download MathType Crack Version 2025???
Google
 
How I solved production issues with OpenTelemetry
How I solved production issues with OpenTelemetryHow I solved production issues with OpenTelemetry
How I solved production issues with OpenTelemetry
Cees Bos
 
Serato DJ Pro Crack Latest Version 2025??
Serato DJ Pro Crack Latest Version 2025??Serato DJ Pro Crack Latest Version 2025??
Serato DJ Pro Crack Latest Version 2025??
Web Designer
 
Medical Device Cybersecurity Threat & Risk Scoring
Medical Device Cybersecurity Threat & Risk ScoringMedical Device Cybersecurity Threat & Risk Scoring
Medical Device Cybersecurity Threat & Risk Scoring
ICS
 
Troubleshooting JVM Outages – 3 Fortune 500 case studies
Troubleshooting JVM Outages – 3 Fortune 500 case studiesTroubleshooting JVM Outages – 3 Fortune 500 case studies
Troubleshooting JVM Outages – 3 Fortune 500 case studies
Tier1 app
 
Top Magento Hyvä Theme Features That Make It Ideal for E-commerce.pdf
Top Magento Hyvä Theme Features That Make It Ideal for E-commerce.pdfTop Magento Hyvä Theme Features That Make It Ideal for E-commerce.pdf
Top Magento Hyvä Theme Features That Make It Ideal for E-commerce.pdf
evrigsolution
 
[gbgcpp] Let's get comfortable with concepts
[gbgcpp] Let's get comfortable with concepts[gbgcpp] Let's get comfortable with concepts
[gbgcpp] Let's get comfortable with concepts
Dimitrios Platis
 
Sequence Diagrams With Pictures (1).pptx
Sequence Diagrams With Pictures (1).pptxSequence Diagrams With Pictures (1).pptx
Sequence Diagrams With Pictures (1).pptx
aashrithakondapalli8
 
Why Tapitag Ranks Among the Best Digital Business Card Providers
Why Tapitag Ranks Among the Best Digital Business Card ProvidersWhy Tapitag Ranks Among the Best Digital Business Card Providers
Why Tapitag Ranks Among the Best Digital Business Card Providers
Tapitag
 
Surviving a Downturn Making Smarter Portfolio Decisions with OnePlan - Webina...
Surviving a Downturn Making Smarter Portfolio Decisions with OnePlan - Webina...Surviving a Downturn Making Smarter Portfolio Decisions with OnePlan - Webina...
Surviving a Downturn Making Smarter Portfolio Decisions with OnePlan - Webina...
OnePlan Solutions
 
Adobe Media Encoder Crack FREE Download 2025
Adobe Media Encoder  Crack FREE Download 2025Adobe Media Encoder  Crack FREE Download 2025
Adobe Media Encoder Crack FREE Download 2025
zafranwaqar90
 
Download 4k Video Downloader Crack Pre-Activated
Download 4k Video Downloader Crack Pre-ActivatedDownload 4k Video Downloader Crack Pre-Activated
Download 4k Video Downloader Crack Pre-Activated
Web Designer
 
What Do Candidates Really Think About AI-Powered Recruitment Tools?
What Do Candidates Really Think About AI-Powered Recruitment Tools?What Do Candidates Really Think About AI-Powered Recruitment Tools?
What Do Candidates Really Think About AI-Powered Recruitment Tools?
HireME
 
Wilcom Embroidery Studio Crack Free Latest 2025
Wilcom Embroidery Studio Crack Free Latest 2025Wilcom Embroidery Studio Crack Free Latest 2025
Wilcom Embroidery Studio Crack Free Latest 2025
Web Designer
 
Ad

Introduction to requirement of microservices

  • 1. INTRODUCTION TO THE REQUIREMENT OF MICROSERVICES Presented by: Avik Das Software Developer Here is a presentation for those developers who are thinking about getting benefited using microservices. Microservices is a pattern of implementing solutions for complex problems. Whereas, it has complexity in implementation. We can ignore this pattern as long as we have the option to go with the monolithic architecture pattern.
  • 2. Example Bulk Billing System It is good to start with an example of a common problem. A news magazine publishing house generate bills for their customers on the first day of every month and delivers as a PDF attachment of the email.
  • 3. Activities First, they calculate the charges based on usage recorded in the database. Then, PDF files are generated based on an existing template merged with calculated data. The system sends SMS to customers to notify the billing amount and due date. Finally, the system uploads all PDF files to the server of the vendor, who is responsible for printing the hard copy and do the delivery by postal services. Calculate Charges Generate PDF & Send Email Fetch Records End of Records Send SMS Upload for Printing Select Record 1st of every month Run schedule
  • 4. Initial days Let's assume that initially, the publishing house has 1000 consumers only and have a small budget to implement the automation. We can create a single service to process the task in a web server without any complexity. Server instances with 1 CPU and 2 GB RAM should be available in low budget, which is going to be enough for computation of the above process in an average time. A standard shared hosting environment can provide this kind of a similar infrastructure too. ASP.net / JAVA / PHP application Database Web Server (IIS / Apache / Tomcat) File Server Cron Job / Schedular SMS Gateway Email Gateway 1 CPU (2.5 GHz) | 2 GB RAM
  • 5. Complexity begin After six months, the company achieve massive success and enrolled 1,00,000 customers. Now the system starts producing delays in processing. Several in-memory processes getting failed due to limitation of memory. We have to use a more powerful CPU for a single-threaded process. So, we have to replace the CPU and increase RAM. Shared hosting has a limitation on increase resources. We have to move the application to a different server or go for cloud instances like AWS EC2 or Azure VM. ASP.net / JAVA / PHP application Database Web Server (IIS / Apache / Tomcat) File Server Cron Job / Schedular SMS Gateway Email Gateway 1 CPU (3 GHz) | 4 GB RAM
  • 6. Application crashed After two years of exclusive services, they earned 1 million customers. Now, we can suggest for following solutions 1. Process bills in multiple batches 2. Get the benefits of parallel processing over multiple CPUs 3. Run multiple instances of the same application to execute different batches. The above solutions require changes in the script. Whereas, dependencies on third-party gateways or services may introduce accidental complexity. E.g. an email gateway supports only 100 requests per minutes, and a single application can generate 1000 bills per minutes. App Database Web Server (IIS / Apache / Tomcat) File Server Cron Job / Schedular SMS Gateway Email Gateway 2 CPU (2.5 GHz) | 8 GB RAM App
  • 7. Alternative approach So, we have to implement different services for four tasks of the process. Services will be independent and capable enough to manage internal or external complexity without affecting the execution of other services. These services will have schedulers to run and execute the scripts according to available data in the databases and limitation on every iteration. Billing service will have primary data for calculation and initiate the process for other services. But, how it will communicate with other services when these are deployed in separate servers. File Server SMS Gateway Email Gateway Server Scheduler (Every day) Billing Service Database Server Scheduler (Every minute) PDF Generator & Email Service Database Server Scheduler (Every minute) File Uploading Service Database Server Scheduler (Every minute) SMS Service Database
  • 8. APIs Application Programming Interface is a good suggestion to interact across multiple programs. Here we can deploy APIs into the server of services. These will be available for billing service to push data into respective databases. Now we can use different type of resources for different services. Services may use multiple CPUs and memory as per requirement. These services focused on a small part of entire process, that's why we called them microservices. Microservices are implemented for more complex problems to be resolve, which we can discuss on case to case basic. Server Scheduler (Every day) Billing Service Database Server Scheduler (Every minute) PDF Generator & Email Service Database Server Scheduler (Every minute) File Uploading Service Database Server Scheduler (Every minute) SMS Service Database API API API 2 CPU (2.5 GHz) | 4 GB RAM 1 CPU (2.5 GHz) | 2 GB RAM 1 CPU (2.5 GHz) | 8 GB RAM1 CPU (2.5 GHz) | 1 GB RAM
  • 9. Challenges Microservices suggest for 1.Separate code bases for services 2.Separate configuration files 3.Advance deployment tools 4.Propper integration testing 5.Monitoring through dashboard Process to set up the entire pipeline for managing microservices is a very critical process; after we finish the design for how to split the tasks into multiple services. Cyclic dependencies on services might be the worst accidental complexity of any microservices eco-system. Cost of development and managing infrastructure going to be high for an initial start-up venture. Code Base Database Schema Settings & Configuration Code Base Database Schema Settings & Configuration Code Base Database Schema Settings & Configuration Developer Developer Developer Version Controlling, Testing, Monitoring & Deployment Tools
  • 10. Advantages We can practice the single responsibility principle while working with monolithic architecture pattern. It helps us to create boundaries in our code blocks for classes with minimum dependencies or loosely coupled coding. Most of the renowned companies migrated from monolithic systems to microservices. Having a good quality of codebase can reduce the time of migration. Advantages in microservices pattern 1. Improve performance 2. High scalability 3. Flexibility of technology selection 4. Cross-functional team 5. Improved fault isolation 6. Faster deployment Service Instance #1 SQL Server Database Load Balancer Service Instance #1 Service Instance #2 MySQL Database Service Instance #1 Mongo Database Oracle Database C# Developer PHP Developer JAVA Developer Kubernetes, Docker Tools
  翻译: