SlideShare a Scribd company logo
1 of 11
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…

More Related Content

What's hot

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 appsDirecti Group
 
AWS Partner Webcast - Disaster Recovery: Implementing DR Across On-premises a...
AWS Partner Webcast - Disaster Recovery: Implementing DR Across On-premises a...AWS Partner Webcast - Disaster Recovery: Implementing DR Across On-premises a...
AWS Partner Webcast - Disaster Recovery: Implementing DR Across On-premises a...Amazon Web Services
 
LCA13: Web Server and Caching Technologies
LCA13: Web Server and Caching TechnologiesLCA13: Web Server and Caching Technologies
LCA13: Web Server and Caching TechnologiesLinaro
 
4 extreme performance - part ii
4   extreme performance - part ii4   extreme performance - part ii
4 extreme performance - part iisqlserver.co.il
 
Data Pipelines with Apache Kafka
Data Pipelines with Apache KafkaData Pipelines with Apache Kafka
Data Pipelines with Apache KafkaBen Stopford
 
Best Features of Azure Service Bus
Best Features of Azure Service BusBest Features of Azure Service Bus
Best Features of Azure Service BusDaniel Toomey
 
FME Cloud Tips for Success
FME Cloud Tips for SuccessFME Cloud Tips for Success
FME Cloud Tips for SuccessSafe 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 DivideBen Stopford
 
AWS re:Invent 2016: Global Traffic Management with Amazon Route 53 Traffic Fl...
AWS re:Invent 2016: Global Traffic Management with Amazon Route 53 Traffic Fl...AWS re:Invent 2016: Global Traffic Management with Amazon Route 53 Traffic Fl...
AWS re:Invent 2016: Global Traffic Management with Amazon Route 53 Traffic Fl...Amazon Web Services
 
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 MeetupIan 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 FMESafe 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 2011Jamie 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 DatabaseJamie Kinney
 

What's hot (20)

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
 
AWS Partner Webcast - Disaster Recovery: Implementing DR Across On-premises a...
AWS Partner Webcast - Disaster Recovery: Implementing DR Across On-premises a...AWS Partner Webcast - Disaster Recovery: Implementing DR Across On-premises a...
AWS Partner Webcast - Disaster Recovery: Implementing DR Across On-premises a...
 
LCA13: Web Server and Caching Technologies
LCA13: Web Server and Caching TechnologiesLCA13: Web Server and Caching Technologies
LCA13: Web Server and Caching Technologies
 
4 extreme performance - part ii
4   extreme performance - part ii4   extreme performance - part ii
4 extreme performance - part ii
 
Data Pipelines with Apache Kafka
Data Pipelines with Apache KafkaData Pipelines with Apache Kafka
Data Pipelines with Apache Kafka
 
Best Features of Azure Service Bus
Best Features of Azure Service BusBest Features of Azure Service Bus
Best Features of Azure Service Bus
 
FME Cloud Tips for Success
FME Cloud Tips for SuccessFME Cloud Tips for Success
FME Cloud Tips for Success
 
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
 
AWS re:Invent 2016: Global Traffic Management with Amazon Route 53 Traffic Fl...
AWS re:Invent 2016: Global Traffic Management with Amazon Route 53 Traffic Fl...AWS re:Invent 2016: Global Traffic Management with Amazon Route 53 Traffic Fl...
AWS re:Invent 2016: Global Traffic Management with Amazon Route 53 Traffic Fl...
 
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
 
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
 
Overview of Message Queues
Overview of Message QueuesOverview of Message Queues
Overview of Message Queues
 
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...
 
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.
 
Apache kafka
Apache kafkaApache kafka
Apache kafka
 
Apache Kafka - Overview
Apache Kafka - OverviewApache Kafka - Overview
Apache Kafka - Overview
 
Aws multi-region High Availability
Aws multi-region High Availability Aws multi-region High Availability
Aws multi-region High Availability
 
Oracle on aws overview sep 2011
Oracle on aws overview   sep 2011Oracle on aws overview   sep 2011
Oracle on aws overview sep 2011
 
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...
 
Introducing Amazon RDS Using Oracle Database
Introducing Amazon RDS Using Oracle DatabaseIntroducing Amazon RDS Using Oracle Database
Introducing Amazon RDS Using Oracle Database
 

Similar to Introduction to requirement of microservices

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 basnetrosu555
 
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 computingwww.pixelsolutionbd.com
 
The Art of Message Queues - TEKX
The Art of Message Queues - TEKXThe Art of Message Queues - TEKX
The Art of Message Queues - TEKXMike 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 SystemKapil 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 PresentationMicrosoft 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 computingJPINFOTECH 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.pdfseo18
 
Scaling Streaming - Concepts, Research, Goals
Scaling Streaming - Concepts, Research, GoalsScaling Streaming - Concepts, Research, Goals
Scaling Streaming - Concepts, Research, Goalskamaelian
 
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, SCJim Tochterman
 
SAFwAD @ Intelligent Cloud Conference
SAFwAD @ Intelligent Cloud ConferenceSAFwAD @ Intelligent Cloud Conference
SAFwAD @ Intelligent Cloud ConferenceRick van den Bosch
 
Serverless Computing
Serverless ComputingServerless Computing
Serverless ComputingAnand 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 infrastructurewebhostingguy
 

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...
 
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
 
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...
 
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...
 
Real time service oriented cloud computing
Real time service oriented cloud computingReal time service oriented cloud computing
Real time service oriented cloud computing
 
The Art of Message Queues - TEKX
The Art of Message Queues - TEKXThe Art of Message Queues - TEKX
The Art of Message Queues - TEKX
 
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
 
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
 
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)
 
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)
 
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
 
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...
 
When to use serverless computing.pdf
When to use serverless computing.pdfWhen to use serverless computing.pdf
When to use serverless computing.pdf
 
Just do it!
Just do it!Just do it!
Just do it!
 
Scaling Streaming - Concepts, Research, Goals
Scaling Streaming - Concepts, Research, GoalsScaling Streaming - Concepts, Research, Goals
Scaling Streaming - Concepts, Research, Goals
 
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
 
SAFwAD @ Intelligent Cloud Conference
SAFwAD @ Intelligent Cloud ConferenceSAFwAD @ Intelligent Cloud Conference
SAFwAD @ Intelligent Cloud Conference
 
Serverless Computing
Serverless ComputingServerless Computing
Serverless Computing
 
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)
 
Assessing your current email infrastructure
Assessing your current email infrastructureAssessing your current email infrastructure
Assessing your current email infrastructure
 

Recently uploaded

Buds n Tech IT Solutions: Top-Notch Web Services in Noida
Buds n Tech IT Solutions: Top-Notch Web Services in NoidaBuds n Tech IT Solutions: Top-Notch Web Services in Noida
Buds n Tech IT Solutions: Top-Notch Web Services in Noidabntitsolutionsrishis
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceBrainSell Technologies
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Velvetech LLC
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)jennyeacort
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfMarharyta Nedzelska
 
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...OnePlan Solutions
 
PREDICTING RIVER WATER QUALITY ppt presentation
PREDICTING  RIVER  WATER QUALITY  ppt presentationPREDICTING  RIVER  WATER QUALITY  ppt presentation
PREDICTING RIVER WATER QUALITY ppt presentationvaddepallysandeep122
 
How to Track Employee Performance A Comprehensive Guide.pdf
How to Track Employee Performance A Comprehensive Guide.pdfHow to Track Employee Performance A Comprehensive Guide.pdf
How to Track Employee Performance A Comprehensive Guide.pdfLivetecs LLC
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作qr0udbr0
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Andreas Granig
 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprisepreethippts
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmSujith Sukumaran
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样umasea
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaHanief Utama
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio, Inc.
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Hr365.us smith
 
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...confluent
 

Recently uploaded (20)

Buds n Tech IT Solutions: Top-Notch Web Services in Noida
Buds n Tech IT Solutions: Top-Notch Web Services in NoidaBuds n Tech IT Solutions: Top-Notch Web Services in Noida
Buds n Tech IT Solutions: Top-Notch Web Services in Noida
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. Salesforce
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdf
 
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
 
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort ServiceHot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
 
PREDICTING RIVER WATER QUALITY ppt presentation
PREDICTING  RIVER  WATER QUALITY  ppt presentationPREDICTING  RIVER  WATER QUALITY  ppt presentation
PREDICTING RIVER WATER QUALITY ppt presentation
 
How to Track Employee Performance A Comprehensive Guide.pdf
How to Track Employee Performance A Comprehensive Guide.pdfHow to Track Employee Performance A Comprehensive Guide.pdf
How to Track Employee Performance A Comprehensive Guide.pdf
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024
 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprise
 
2.pdf Ejercicios de programación competitiva
2.pdf Ejercicios de programación competitiva2.pdf Ejercicios de programación competitiva
2.pdf Ejercicios de programación competitiva
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalm
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief Utama
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)
 
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
 

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