SlideShare a Scribd company logo
1 of 21
Data Stream processing
and Micro-service
architecture
© 2015 BY VYACHESLAV BENEDICHUK
Vyacheslav Benedichuk
Software development professional
Overall IT experience spanning 15 years.
Project management experience 9+ years.
Biggest team managed - 25 members.
Biggest project developed – over 15 man-years
https://ru.linkedin.com/in/vbenedichuk
Presentation plan
History
Today
Challenges
Solutions Advantages Disadvantages
Application
samples
Implementation
suggestions
Related design
patterns
Questions
History
History
Application Business logic DTO
DAL
UI
Service
Service
Service
Service
Service
History
Today
Challenges
Solutions Advantages Disadvantages
Application
samples
Implementation
suggestions
Related design
patterns
Questions
Today Challenges
Application complexity grows
•Complexity of interactions between layers is growing
•Layers interaction complexity growing
•Intensity of communications between developers is growing
•More complex test cases
Data size growth
•Classic applications require a lot of resources in a single physical node. Such applications are not intended for horizontal scalability.
•Single issue can break the whole application and may lead to data loss
Instability of data flows
•Levels of user activity in a social network very susceptible to the time of day
•Buyer activity pm an online shopping site very susceptible to the time of day and season
•Hardware purchased for peak workload is under-used outside peak times
•Hardware purchased for medium workload is inadequate for peak workload
History
Today
Challenges
Solutions Advantages Disadvantages
Application
samples
Implementation
suggestions
Related design
patterns
Questions
Solution
Build the application as a set of small (50-300 lines
of code) loosely coupled modules.
• Each micro-service works independently
• Data exchange between layers is made with standard messages
• Services linked with message queues. Other data interaction
protocols may be used (for example REST), however message
queues increase overall system stability.
History
Today
Challenges
Solution Advantages Disadvantages
Application
samples
Implementation
suggestions
Related design
patterns
Questions
Advantages
overview
Fault tolerance Scalability
Better performance
evaluation and
optimization of the
cost of ownership
Ease of
development
Updates do not
require downtime
Simplified A/B and
regression testing
History
Today
Challenges
Solution Advantages Disadvantages
Application
samples
Implementation
suggestions
Related design
patterns
Questions
Advantages
Fault tolerance
The number of single points of
failure is minimal or none. Failure
of a single service instance, or
one of the nodes does not lead to
failure of the entire system. It
only affects performance in a
short term.
Service 1
SaaS Queue
Service 2
Service 3 Service 3
SaaS Queue
Service 2 Service 2
Service 1 Service 1
Service 3
SaaS Data Storage
Fault tolerance
Advantages
Scalability
Scalability
Local load spikes (seconds) are
flattered by message queues.
Response time grows but no
requests are denied.
Global load spikes (tens of seconds
and more) are handled by starting
new worker instances.
Fault tolerance in case of DDoS
attack is limited by finances only. If
provided in the cloud, it is much
cheaper than buying in-house
infrastructure designed for
excessive load.
Service 1
SaaS queue
Service 2
Service 3 Service 3
SaaS queue
Service 1 Service 1
Service 3
SaaS Data Storage
5 messages in the
queue
100500 messages in
the queue
Service 3
(запускается)
Service 2 (stopping)
Service 3
(запускается)Service 3
(Starting)
Advantages
Ease performance evaluation and optimization of the cost of ownership
Ease performance evaluation
Maximum load capacity of each particular service
can be evaluated independently.
On the basis of the "laboratory" measurement of
performance and the projected load, optimal
network topology can be constructed. It allows the
minimum cost of ownership to be determined.
Different combinations of infrastructure solutions
can be compared on the basis of actual
performance indexes rather than "by eye".
Infrastructure investments are rising in proportion
with the growing business without spikes.
You can freely distribute the components of the
system between in-house and cloud datacenters.
SaaS
queue
Service 2
Measured load capacity is 300
messages per second.
SaaS
queue
Test data stream
100500000 messages accumulated
1080000 after the 1 hour of
processing
With a
minimum
flow of 450
messages per
second with
hour peaks of
up to 1,500
messages per
second, we
need 2
instances of
pre-paid (or
in house) and
up to 3-4 on-
demand
services.
Advantages
Ease of development
Ease of development
Micro-services code can be easily
maintained due to its size.
Micro-service independence
allows services to be created
using different technology stacks
and with minimal or no
integration overhead.
Service 1 (php)
SaaS queue
Service 2 (c#)
Service 3 (Java) Service 3 (Java)
SaaS queue
Service 2 (c#)
Service 1 (php)
SaaS Data Storage
100 lines of code
vs
1000 lines of code
Advantages
Update does not require the downtime
New version can be launched by
sequential launch of new micro-
services. Accumulated requests
will be processed by the old
infrastructure. New requests will
be processed by the new
infrastructure.
Old and new versions can work
simultaneously.
SaaS queue
(accumulated data)
Service 2 V1
Service 3 V1
SaaS queue
Service 2 V1 Service 2 V2
Service 1 V2
SaaS Data Storage
Updates do not require downtime
Service 3 V1
SaaS queue
Service 3 V1
Advantages
Simplified A/B and regression testing
A/B testing and regress testing
can be implemented by running 2
micro service instances in
parallel.
Service 1 V1
Service 2 V1 Service 2 V2
Service 1 V2Simplified A/B and regression
testing
Comparator
SaaS queue
SaaS queue
Duplicator
Disadvantages
The complexity of the initial deployment
• Each micro-service has a separate installer. Manual deployment of large systems requires
considerable time. It should be solved by automated deployment. For example using the
Docker.
The complexity of the manual update
• Many small services distributed across different physical devices or datacenters require
automated upgrades.
Additional efforts required for monitoring
• By default, a single event log / error is not available. Industrial solutions such as Zabbix
should be used. This may require additional programming effort to transmit service state.
History
Today
Challenges
Solution Advantages Disadvantages
Application
samples
Implementation
suggestions
Related design
patterns
Questions
Application Samples
Financial Industry. Debtor reliability evaluation.
High flow of applications due to business size.
Multi-stage evaluation process.
The system consists of several independent jobs.
The system makes a large number of long-running queries to external systems (BCI).
The evaluation process is changed regularly.
The system can operate several parallel processes.
History
Today
Challenges
Solution Advantages Disadvantages
Application
Samples
Implementation
suggestions
Related design
patterns
Questions
Application Samples
SMM. Audience analysis.
Huge data flow. (billions of messages per day).
Users activity varies during the day. It has several high spikes.
Each message affects several parameters which should be counted independently.
Each message should be counted.
Statistics should be calculated in real time.
Additional long-running requests to the external systems are required.
History
Today
Challenges
Solution Advantages Disadvantages
Application
Samples
Implementation
suggestions
Related design
patterns
Questions
Application Samples
Online ticket sales. Order processing.
Large number of users.
Users activity varies during the day.
The number of users is large, but the number of tickets is limited, you need to avoid overbooking.
There are a lot of independent sales channels, so only the service provider has an accurate information on
ticket availability.
History
Today
Challenges
Solution Advantages Disadvantages
Application
Samples
Implementation
suggestions
Related design
patterns
Questions
Implementation Suggestions
It is very useful to define a single message format for all the services even if each service will use
only part of the data. It permits new services to be added easily.
Data processing and data persistence should .separate into different services. It gives more
flexibility and simplifies refactoring in the case where data storage is inadequate for the growth
in load.
In the case where you have a workplace that requires user interaction, it makes sense to
minimize data storage.
In the case where you are planning to use XaaS infrastructure do not forget to estimate costs of
additional services (queues, storages, etc.). Architecture is a representation of the needs of the
business in the form of technological solutions and the cost of ownership is one of the most
important business parameters.
History
Today
Challenges
Solution Advantages Disadvantages
Application
Samples
Implementation
Suggestions
Related design
patterns
Questions
Related architectural templates
CQRS (Command and Query Responsibility Separation)
Event Sourcing
Key-Value storage
NoSQL
Memory Cache
History
Today
Challenges
Solution Advantages Disadvantages
Application
Samples
Implementation
Suggestions
Related Design
Patterns
Questions
Questions?
If you have any questions feel free to contact me.
Email: vbenedichuk@gmail.com
LinkedIn: https://ru.linkedin.com/in/vbenedichuk
History
Today
Challenges
Solution Advantages Disadvantages
Application
Samples
Implementation
Suggestions
Related Design
Patterns
Questions

More Related Content

What's hot

Jeffrey Richter
Jeffrey RichterJeffrey Richter
Jeffrey RichterCodeFest
 
Micro service architecture - building scalable web solutions - George James -...
Micro service architecture - building scalable web solutions - George James -...Micro service architecture - building scalable web solutions - George James -...
Micro service architecture - building scalable web solutions - George James -...Red Blue Blur Ideas
 
Architectural Commandments for Building & Running Microservices at Scale
Architectural Commandments for Building & Running Microservices at ScaleArchitectural Commandments for Building & Running Microservices at Scale
Architectural Commandments for Building & Running Microservices at ScaleBrian Wilson
 
NGINX Plus R18: What's new
NGINX Plus R18: What's newNGINX Plus R18: What's new
NGINX Plus R18: What's newNGINX, Inc.
 
Microservices Antipatterns
Microservices AntipatternsMicroservices Antipatterns
Microservices AntipatternsC4Media
 
Денис Баталов
Денис БаталовДенис Баталов
Денис БаталовCodeFest
 
From a monolith to microservices + REST: The evolution of LinkedIn's architec...
From a monolith to microservices + REST: The evolution of LinkedIn's architec...From a monolith to microservices + REST: The evolution of LinkedIn's architec...
From a monolith to microservices + REST: The evolution of LinkedIn's architec...Karan Parikh
 
Java micro-services
Java micro-servicesJava micro-services
Java micro-servicesJames Lewis
 
Scale your application to new heights with NGINX and AWS
Scale your application to new heights with NGINX and AWSScale your application to new heights with NGINX and AWS
Scale your application to new heights with NGINX and AWSNGINX, Inc.
 
Connecting All Abstractions with Istio
Connecting All Abstractions with IstioConnecting All Abstractions with Istio
Connecting All Abstractions with IstioVMware Tanzu
 
Microservice 4.0 Journey - From Spring NetFlix OSS to Istio Service Mesh and ...
Microservice 4.0 Journey - From Spring NetFlix OSS to Istio Service Mesh and ...Microservice 4.0 Journey - From Spring NetFlix OSS to Istio Service Mesh and ...
Microservice 4.0 Journey - From Spring NetFlix OSS to Istio Service Mesh and ...Daniel Oh
 
How Hootsuite Manages Its Growing Microservice Landscape
How Hootsuite Manages Its Growing Microservice LandscapeHow Hootsuite Manages Its Growing Microservice Landscape
How Hootsuite Manages Its Growing Microservice LandscapeAdam Arsenault
 
Microservice Pattern Launguage
Microservice Pattern LaunguageMicroservice Pattern Launguage
Microservice Pattern LaunguageInho Kang
 
Microservice no fluff, the REAL stuff
Microservice no fluff, the REAL stuffMicroservice no fluff, the REAL stuff
Microservice no fluff, the REAL stuffnklmish
 
Understanding MicroSERVICE Architecture with Java & Spring Boot
Understanding MicroSERVICE Architecture with Java & Spring BootUnderstanding MicroSERVICE Architecture with Java & Spring Boot
Understanding MicroSERVICE Architecture with Java & Spring BootKashif Ali Siddiqui
 
Webinar: Accelerate Your Inner Dev Loop for Kubernetes Services
Webinar: Accelerate Your Inner Dev Loop for Kubernetes Services Webinar: Accelerate Your Inner Dev Loop for Kubernetes Services
Webinar: Accelerate Your Inner Dev Loop for Kubernetes Services Ambassador Labs
 
Event Driven-Architecture from a Scalability perspective
Event Driven-Architecture from a Scalability perspectiveEvent Driven-Architecture from a Scalability perspective
Event Driven-Architecture from a Scalability perspectiveJonas Bonér
 
What's New in the Ambassador Edge Stack 1.0?
What's New in the Ambassador Edge Stack 1.0? What's New in the Ambassador Edge Stack 1.0?
What's New in the Ambassador Edge Stack 1.0? Ambassador Labs
 

What's hot (20)

Jeffrey Richter
Jeffrey RichterJeffrey Richter
Jeffrey Richter
 
Micro service architecture - building scalable web solutions - George James -...
Micro service architecture - building scalable web solutions - George James -...Micro service architecture - building scalable web solutions - George James -...
Micro service architecture - building scalable web solutions - George James -...
 
Microservices at Netflix
Microservices at NetflixMicroservices at Netflix
Microservices at Netflix
 
Architectural Commandments for Building & Running Microservices at Scale
Architectural Commandments for Building & Running Microservices at ScaleArchitectural Commandments for Building & Running Microservices at Scale
Architectural Commandments for Building & Running Microservices at Scale
 
NGINX Plus R18: What's new
NGINX Plus R18: What's newNGINX Plus R18: What's new
NGINX Plus R18: What's new
 
Microservices Antipatterns
Microservices AntipatternsMicroservices Antipatterns
Microservices Antipatterns
 
Денис Баталов
Денис БаталовДенис Баталов
Денис Баталов
 
MicroServices on Azure
MicroServices on AzureMicroServices on Azure
MicroServices on Azure
 
From a monolith to microservices + REST: The evolution of LinkedIn's architec...
From a monolith to microservices + REST: The evolution of LinkedIn's architec...From a monolith to microservices + REST: The evolution of LinkedIn's architec...
From a monolith to microservices + REST: The evolution of LinkedIn's architec...
 
Java micro-services
Java micro-servicesJava micro-services
Java micro-services
 
Scale your application to new heights with NGINX and AWS
Scale your application to new heights with NGINX and AWSScale your application to new heights with NGINX and AWS
Scale your application to new heights with NGINX and AWS
 
Connecting All Abstractions with Istio
Connecting All Abstractions with IstioConnecting All Abstractions with Istio
Connecting All Abstractions with Istio
 
Microservice 4.0 Journey - From Spring NetFlix OSS to Istio Service Mesh and ...
Microservice 4.0 Journey - From Spring NetFlix OSS to Istio Service Mesh and ...Microservice 4.0 Journey - From Spring NetFlix OSS to Istio Service Mesh and ...
Microservice 4.0 Journey - From Spring NetFlix OSS to Istio Service Mesh and ...
 
How Hootsuite Manages Its Growing Microservice Landscape
How Hootsuite Manages Its Growing Microservice LandscapeHow Hootsuite Manages Its Growing Microservice Landscape
How Hootsuite Manages Its Growing Microservice Landscape
 
Microservice Pattern Launguage
Microservice Pattern LaunguageMicroservice Pattern Launguage
Microservice Pattern Launguage
 
Microservice no fluff, the REAL stuff
Microservice no fluff, the REAL stuffMicroservice no fluff, the REAL stuff
Microservice no fluff, the REAL stuff
 
Understanding MicroSERVICE Architecture with Java & Spring Boot
Understanding MicroSERVICE Architecture with Java & Spring BootUnderstanding MicroSERVICE Architecture with Java & Spring Boot
Understanding MicroSERVICE Architecture with Java & Spring Boot
 
Webinar: Accelerate Your Inner Dev Loop for Kubernetes Services
Webinar: Accelerate Your Inner Dev Loop for Kubernetes Services Webinar: Accelerate Your Inner Dev Loop for Kubernetes Services
Webinar: Accelerate Your Inner Dev Loop for Kubernetes Services
 
Event Driven-Architecture from a Scalability perspective
Event Driven-Architecture from a Scalability perspectiveEvent Driven-Architecture from a Scalability perspective
Event Driven-Architecture from a Scalability perspective
 
What's New in the Ambassador Edge Stack 1.0?
What's New in the Ambassador Edge Stack 1.0? What's New in the Ambassador Edge Stack 1.0?
What's New in the Ambassador Edge Stack 1.0?
 

Viewers also liked

Презентация РАБИС бизнес
Презентация РАБИС бизнесПрезентация РАБИС бизнес
Презентация РАБИС бизнесVyacheslav Benedichuk
 
эффективные почтовые коммуникации
эффективные почтовые коммуникацииэффективные почтовые коммуникации
эффективные почтовые коммуникацииVyacheslav Benedichuk
 
Потоковая обработка данных и Микросервисная архитектура
Потоковая обработка данных и Микросервисная архитектураПотоковая обработка данных и Микросервисная архитектура
Потоковая обработка данных и Микросервисная архитектураVyacheslav Benedichuk
 
презентация РАБИС технологии 2014
презентация РАБИС технологии 2014презентация РАБИС технологии 2014
презентация РАБИС технологии 2014Vyacheslav Benedichuk
 
управление заинтересованными сторонами
управление заинтересованными сторонамиуправление заинтересованными сторонами
управление заинтересованными сторонамиVyacheslav Benedichuk
 

Viewers also liked (10)

Проекты и Процессы
Проекты и ПроцессыПроекты и Процессы
Проекты и Процессы
 
Презентация РАБИС бизнес
Презентация РАБИС бизнесПрезентация РАБИС бизнес
Презентация РАБИС бизнес
 
Управление рисками
Управление рискамиУправление рисками
Управление рисками
 
Базовые Формулы Pmbok
Базовые Формулы PmbokБазовые Формулы Pmbok
Базовые Формулы Pmbok
 
цели проекта
цели проектацели проекта
цели проекта
 
эффективные почтовые коммуникации
эффективные почтовые коммуникацииэффективные почтовые коммуникации
эффективные почтовые коммуникации
 
путь к продукту
путь к продуктупуть к продукту
путь к продукту
 
Потоковая обработка данных и Микросервисная архитектура
Потоковая обработка данных и Микросервисная архитектураПотоковая обработка данных и Микросервисная архитектура
Потоковая обработка данных и Микросервисная архитектура
 
презентация РАБИС технологии 2014
презентация РАБИС технологии 2014презентация РАБИС технологии 2014
презентация РАБИС технологии 2014
 
управление заинтересованными сторонами
управление заинтересованными сторонамиуправление заинтересованными сторонами
управление заинтересованными сторонами
 

Similar to Data stream processing and micro service architecture

Distributed information sys
Distributed information sysDistributed information sys
Distributed information sysMeena Chauhan
 
Oracle Coherence: in-memory datagrid
Oracle Coherence: in-memory datagridOracle Coherence: in-memory datagrid
Oracle Coherence: in-memory datagridEmiliano Pecis
 
Microservices architecture
Microservices architectureMicroservices architecture
Microservices architectureFaren faren
 
Cloud application services (saa s) – multi tenant data architecture
Cloud application services (saa s) – multi tenant data architectureCloud application services (saa s) – multi tenant data architecture
Cloud application services (saa s) – multi tenant data architectureJohnny Le
 
Performance and Cost Analysis of Modern Public Cloud Services
Performance and Cost Analysis of Modern Public Cloud ServicesPerformance and Cost Analysis of Modern Public Cloud Services
Performance and Cost Analysis of Modern Public Cloud ServicesMd.Saiedur Rahaman
 
Automatic scaling of web applications for cloud computing services
Automatic scaling of web applications for cloud computing servicesAutomatic scaling of web applications for cloud computing services
Automatic scaling of web applications for cloud computing serviceseSAT Journals
 
IRJET - Application Development Approach to Transform Traditional Web Applica...
IRJET - Application Development Approach to Transform Traditional Web Applica...IRJET - Application Development Approach to Transform Traditional Web Applica...
IRJET - Application Development Approach to Transform Traditional Web Applica...IRJET Journal
 
Whitepaper : Building an Efficient Microservices Architecture
Whitepaper : Building an Efficient Microservices ArchitectureWhitepaper : Building an Efficient Microservices Architecture
Whitepaper : Building an Efficient Microservices ArchitectureNewt Global Consulting LLC
 
A Short Appraisal on Cloud Computing
A Short Appraisal on Cloud ComputingA Short Appraisal on Cloud Computing
A Short Appraisal on Cloud ComputingScientific Review SR
 
Introduction to SDN: Software Defined Networking
Introduction to SDN: Software Defined NetworkingIntroduction to SDN: Software Defined Networking
Introduction to SDN: Software Defined NetworkingAnkita Mahajan
 
Enterprise applications in the cloud - are providers ready?
Enterprise applications in the cloud - are providers ready?Enterprise applications in the cloud - are providers ready?
Enterprise applications in the cloud - are providers ready?Leonid Grinshpan, Ph.D.
 
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
 
MS Cloud Design Patterns Infographic 2015
MS Cloud Design Patterns Infographic 2015MS Cloud Design Patterns Infographic 2015
MS Cloud Design Patterns Infographic 2015James Tramel
 
Ms cloud design patterns infographic 2015
Ms cloud design patterns infographic 2015Ms cloud design patterns infographic 2015
Ms cloud design patterns infographic 2015Kesavan Munuswamy
 
Application-Servers.pdf
Application-Servers.pdfApplication-Servers.pdf
Application-Servers.pdfSamir Paul
 

Similar to Data stream processing and micro service architecture (20)

Performance Evaluation of Virtualization Technologies for Server
Performance Evaluation of Virtualization Technologies for ServerPerformance Evaluation of Virtualization Technologies for Server
Performance Evaluation of Virtualization Technologies for Server
 
Distributed information sys
Distributed information sysDistributed information sys
Distributed information sys
 
Oracle Coherence: in-memory datagrid
Oracle Coherence: in-memory datagridOracle Coherence: in-memory datagrid
Oracle Coherence: in-memory datagrid
 
Microservices architecture
Microservices architectureMicroservices architecture
Microservices architecture
 
M 94 4
M 94 4M 94 4
M 94 4
 
Cloud application services (saa s) – multi tenant data architecture
Cloud application services (saa s) – multi tenant data architectureCloud application services (saa s) – multi tenant data architecture
Cloud application services (saa s) – multi tenant data architecture
 
Performance and Cost Analysis of Modern Public Cloud Services
Performance and Cost Analysis of Modern Public Cloud ServicesPerformance and Cost Analysis of Modern Public Cloud Services
Performance and Cost Analysis of Modern Public Cloud Services
 
Automatic scaling of web applications for cloud computing services
Automatic scaling of web applications for cloud computing servicesAutomatic scaling of web applications for cloud computing services
Automatic scaling of web applications for cloud computing services
 
IRJET - Application Development Approach to Transform Traditional Web Applica...
IRJET - Application Development Approach to Transform Traditional Web Applica...IRJET - Application Development Approach to Transform Traditional Web Applica...
IRJET - Application Development Approach to Transform Traditional Web Applica...
 
Whitepaper : Building an Efficient Microservices Architecture
Whitepaper : Building an Efficient Microservices ArchitectureWhitepaper : Building an Efficient Microservices Architecture
Whitepaper : Building an Efficient Microservices Architecture
 
A Short Appraisal on Cloud Computing
A Short Appraisal on Cloud ComputingA Short Appraisal on Cloud Computing
A Short Appraisal on Cloud Computing
 
Introduction to SDN: Software Defined Networking
Introduction to SDN: Software Defined NetworkingIntroduction to SDN: Software Defined Networking
Introduction to SDN: Software Defined Networking
 
SaaS.pptx
SaaS.pptxSaaS.pptx
SaaS.pptx
 
A Survey and Comparison of SDN Based Traffic Management Techniques
A Survey and Comparison of SDN Based Traffic Management TechniquesA Survey and Comparison of SDN Based Traffic Management Techniques
A Survey and Comparison of SDN Based Traffic Management Techniques
 
Enterprise applications in the cloud - are providers ready?
Enterprise applications in the cloud - are providers ready?Enterprise applications in the cloud - are providers ready?
Enterprise applications in the cloud - are providers ready?
 
Going Serverless on AWS
Going Serverless on AWSGoing Serverless on AWS
Going Serverless on AWS
 
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...
 
MS Cloud Design Patterns Infographic 2015
MS Cloud Design Patterns Infographic 2015MS Cloud Design Patterns Infographic 2015
MS Cloud Design Patterns Infographic 2015
 
Ms cloud design patterns infographic 2015
Ms cloud design patterns infographic 2015Ms cloud design patterns infographic 2015
Ms cloud design patterns infographic 2015
 
Application-Servers.pdf
Application-Servers.pdfApplication-Servers.pdf
Application-Servers.pdf
 

Recently uploaded

SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanyChristoph Pohl
 
Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)Ahmed Mater
 
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsSensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsChristian Birchler
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfAlina Yurenko
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Hr365.us smith
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作qr0udbr0
 
What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...Technogeeks
 
Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commercemanigoyal112
 
Powering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsPowering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsSafe Software
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEEVICTOR MAESTRE RAMIREZ
 
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
 
VK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web DevelopmentVK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web Developmentvyaparkranti
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmSujith Sukumaran
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Matt Ray
 
Post Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on IdentityPost Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on Identityteam-WIBU
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based projectAnoyGreter
 
How to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationHow to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationBradBedford3
 
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
 
Xen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfXen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfStefano Stabellini
 

Recently uploaded (20)

SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
 
Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)
 
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsSensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作
 
What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...
 
Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commerce
 
Powering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsPowering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data Streams
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEE
 
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
 
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
 
VK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web DevelopmentVK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web Development
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalm
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
 
Post Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on IdentityPost Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on Identity
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based project
 
How to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationHow to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion Application
 
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...
 
Xen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfXen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdf
 

Data stream processing and micro service architecture

  • 1. Data Stream processing and Micro-service architecture © 2015 BY VYACHESLAV BENEDICHUK
  • 2. Vyacheslav Benedichuk Software development professional Overall IT experience spanning 15 years. Project management experience 9+ years. Biggest team managed - 25 members. Biggest project developed – over 15 man-years https://ru.linkedin.com/in/vbenedichuk
  • 3. Presentation plan History Today Challenges Solutions Advantages Disadvantages Application samples Implementation suggestions Related design patterns Questions
  • 5. History Application Business logic DTO DAL UI Service Service Service Service Service History Today Challenges Solutions Advantages Disadvantages Application samples Implementation suggestions Related design patterns Questions
  • 6. Today Challenges Application complexity grows •Complexity of interactions between layers is growing •Layers interaction complexity growing •Intensity of communications between developers is growing •More complex test cases Data size growth •Classic applications require a lot of resources in a single physical node. Such applications are not intended for horizontal scalability. •Single issue can break the whole application and may lead to data loss Instability of data flows •Levels of user activity in a social network very susceptible to the time of day •Buyer activity pm an online shopping site very susceptible to the time of day and season •Hardware purchased for peak workload is under-used outside peak times •Hardware purchased for medium workload is inadequate for peak workload History Today Challenges Solutions Advantages Disadvantages Application samples Implementation suggestions Related design patterns Questions
  • 7. Solution Build the application as a set of small (50-300 lines of code) loosely coupled modules. • Each micro-service works independently • Data exchange between layers is made with standard messages • Services linked with message queues. Other data interaction protocols may be used (for example REST), however message queues increase overall system stability. History Today Challenges Solution Advantages Disadvantages Application samples Implementation suggestions Related design patterns Questions
  • 8. Advantages overview Fault tolerance Scalability Better performance evaluation and optimization of the cost of ownership Ease of development Updates do not require downtime Simplified A/B and regression testing History Today Challenges Solution Advantages Disadvantages Application samples Implementation suggestions Related design patterns Questions
  • 9. Advantages Fault tolerance The number of single points of failure is minimal or none. Failure of a single service instance, or one of the nodes does not lead to failure of the entire system. It only affects performance in a short term. Service 1 SaaS Queue Service 2 Service 3 Service 3 SaaS Queue Service 2 Service 2 Service 1 Service 1 Service 3 SaaS Data Storage Fault tolerance
  • 10. Advantages Scalability Scalability Local load spikes (seconds) are flattered by message queues. Response time grows but no requests are denied. Global load spikes (tens of seconds and more) are handled by starting new worker instances. Fault tolerance in case of DDoS attack is limited by finances only. If provided in the cloud, it is much cheaper than buying in-house infrastructure designed for excessive load. Service 1 SaaS queue Service 2 Service 3 Service 3 SaaS queue Service 1 Service 1 Service 3 SaaS Data Storage 5 messages in the queue 100500 messages in the queue Service 3 (запускается) Service 2 (stopping) Service 3 (запускается)Service 3 (Starting)
  • 11. Advantages Ease performance evaluation and optimization of the cost of ownership Ease performance evaluation Maximum load capacity of each particular service can be evaluated independently. On the basis of the "laboratory" measurement of performance and the projected load, optimal network topology can be constructed. It allows the minimum cost of ownership to be determined. Different combinations of infrastructure solutions can be compared on the basis of actual performance indexes rather than "by eye". Infrastructure investments are rising in proportion with the growing business without spikes. You can freely distribute the components of the system between in-house and cloud datacenters. SaaS queue Service 2 Measured load capacity is 300 messages per second. SaaS queue Test data stream 100500000 messages accumulated 1080000 after the 1 hour of processing With a minimum flow of 450 messages per second with hour peaks of up to 1,500 messages per second, we need 2 instances of pre-paid (or in house) and up to 3-4 on- demand services.
  • 12. Advantages Ease of development Ease of development Micro-services code can be easily maintained due to its size. Micro-service independence allows services to be created using different technology stacks and with minimal or no integration overhead. Service 1 (php) SaaS queue Service 2 (c#) Service 3 (Java) Service 3 (Java) SaaS queue Service 2 (c#) Service 1 (php) SaaS Data Storage 100 lines of code vs 1000 lines of code
  • 13. Advantages Update does not require the downtime New version can be launched by sequential launch of new micro- services. Accumulated requests will be processed by the old infrastructure. New requests will be processed by the new infrastructure. Old and new versions can work simultaneously. SaaS queue (accumulated data) Service 2 V1 Service 3 V1 SaaS queue Service 2 V1 Service 2 V2 Service 1 V2 SaaS Data Storage Updates do not require downtime Service 3 V1 SaaS queue Service 3 V1
  • 14. Advantages Simplified A/B and regression testing A/B testing and regress testing can be implemented by running 2 micro service instances in parallel. Service 1 V1 Service 2 V1 Service 2 V2 Service 1 V2Simplified A/B and regression testing Comparator SaaS queue SaaS queue Duplicator
  • 15. Disadvantages The complexity of the initial deployment • Each micro-service has a separate installer. Manual deployment of large systems requires considerable time. It should be solved by automated deployment. For example using the Docker. The complexity of the manual update • Many small services distributed across different physical devices or datacenters require automated upgrades. Additional efforts required for monitoring • By default, a single event log / error is not available. Industrial solutions such as Zabbix should be used. This may require additional programming effort to transmit service state. History Today Challenges Solution Advantages Disadvantages Application samples Implementation suggestions Related design patterns Questions
  • 16. Application Samples Financial Industry. Debtor reliability evaluation. High flow of applications due to business size. Multi-stage evaluation process. The system consists of several independent jobs. The system makes a large number of long-running queries to external systems (BCI). The evaluation process is changed regularly. The system can operate several parallel processes. History Today Challenges Solution Advantages Disadvantages Application Samples Implementation suggestions Related design patterns Questions
  • 17. Application Samples SMM. Audience analysis. Huge data flow. (billions of messages per day). Users activity varies during the day. It has several high spikes. Each message affects several parameters which should be counted independently. Each message should be counted. Statistics should be calculated in real time. Additional long-running requests to the external systems are required. History Today Challenges Solution Advantages Disadvantages Application Samples Implementation suggestions Related design patterns Questions
  • 18. Application Samples Online ticket sales. Order processing. Large number of users. Users activity varies during the day. The number of users is large, but the number of tickets is limited, you need to avoid overbooking. There are a lot of independent sales channels, so only the service provider has an accurate information on ticket availability. History Today Challenges Solution Advantages Disadvantages Application Samples Implementation suggestions Related design patterns Questions
  • 19. Implementation Suggestions It is very useful to define a single message format for all the services even if each service will use only part of the data. It permits new services to be added easily. Data processing and data persistence should .separate into different services. It gives more flexibility and simplifies refactoring in the case where data storage is inadequate for the growth in load. In the case where you have a workplace that requires user interaction, it makes sense to minimize data storage. In the case where you are planning to use XaaS infrastructure do not forget to estimate costs of additional services (queues, storages, etc.). Architecture is a representation of the needs of the business in the form of technological solutions and the cost of ownership is one of the most important business parameters. History Today Challenges Solution Advantages Disadvantages Application Samples Implementation Suggestions Related design patterns Questions
  • 20. Related architectural templates CQRS (Command and Query Responsibility Separation) Event Sourcing Key-Value storage NoSQL Memory Cache History Today Challenges Solution Advantages Disadvantages Application Samples Implementation Suggestions Related Design Patterns Questions
  • 21. Questions? If you have any questions feel free to contact me. Email: vbenedichuk@gmail.com LinkedIn: https://ru.linkedin.com/in/vbenedichuk History Today Challenges Solution Advantages Disadvantages Application Samples Implementation Suggestions Related Design Patterns Questions