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

WSO2Con2024 - Hello Choreo Presentation - Kanchana
WSO2Con2024 - Hello Choreo Presentation - KanchanaWSO2Con2024 - Hello Choreo Presentation - Kanchana
WSO2Con2024 - Hello Choreo Presentation - KanchanaWSO2
 
WSO2Con2024 - Facilitating Broadband Switching Services for UK Telecoms Provi...
WSO2Con2024 - Facilitating Broadband Switching Services for UK Telecoms Provi...WSO2Con2024 - Facilitating Broadband Switching Services for UK Telecoms Provi...
WSO2Con2024 - Facilitating Broadband Switching Services for UK Telecoms Provi...WSO2
 
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2
 
WSO2Con204 - Hard Rock Presentation - Keynote
WSO2Con204 - Hard Rock Presentation - KeynoteWSO2Con204 - Hard Rock Presentation - Keynote
WSO2Con204 - Hard Rock Presentation - KeynoteWSO2
 
Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareJim McKeeth
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...Shane Coughlan
 
WSO2CON 2024 - Not Just Microservices: Rightsize Your Services!
WSO2CON 2024 - Not Just Microservices: Rightsize Your Services!WSO2CON 2024 - Not Just Microservices: Rightsize Your Services!
WSO2CON 2024 - Not Just Microservices: Rightsize Your Services!WSO2
 
WSO2CON2024 - Why Should You Consider Ballerina for Your Next Integration
WSO2CON2024 - Why Should You Consider Ballerina for Your Next IntegrationWSO2CON2024 - Why Should You Consider Ballerina for Your Next Integration
WSO2CON2024 - Why Should You Consider Ballerina for Your Next IntegrationWSO2
 
WSO2CON 2024 - Lessons from the Field: Legacy Platforms – It's Time to Let Go...
WSO2CON 2024 - Lessons from the Field: Legacy Platforms – It's Time to Let Go...WSO2CON 2024 - Lessons from the Field: Legacy Platforms – It's Time to Let Go...
WSO2CON 2024 - Lessons from the Field: Legacy Platforms – It's Time to Let Go...WSO2
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfonteinmasabamasaba
 
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open SourceWSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open SourceWSO2
 
WSO2Con2024 - Low-Code Integration Tooling
WSO2Con2024 - Low-Code Integration ToolingWSO2Con2024 - Low-Code Integration Tooling
WSO2Con2024 - Low-Code Integration ToolingWSO2
 
Artyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptxArtyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptxAnnaArtyushina1
 
WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2
 
AzureNativeQumulo_HPC_Cloud_Native_Benchmarks.pdf
AzureNativeQumulo_HPC_Cloud_Native_Benchmarks.pdfAzureNativeQumulo_HPC_Cloud_Native_Benchmarks.pdf
AzureNativeQumulo_HPC_Cloud_Native_Benchmarks.pdfryanfarris8
 
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With SimplicityWSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With SimplicityWSO2
 
WSO2CON 2024 - Architecting AI in the Enterprise: APIs and Applications
WSO2CON 2024 - Architecting AI in the Enterprise: APIs and ApplicationsWSO2CON 2024 - Architecting AI in the Enterprise: APIs and Applications
WSO2CON 2024 - Architecting AI in the Enterprise: APIs and ApplicationsWSO2
 
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2
 

Recently uploaded (20)

WSO2Con2024 - Hello Choreo Presentation - Kanchana
WSO2Con2024 - Hello Choreo Presentation - KanchanaWSO2Con2024 - Hello Choreo Presentation - Kanchana
WSO2Con2024 - Hello Choreo Presentation - Kanchana
 
WSO2Con2024 - Facilitating Broadband Switching Services for UK Telecoms Provi...
WSO2Con2024 - Facilitating Broadband Switching Services for UK Telecoms Provi...WSO2Con2024 - Facilitating Broadband Switching Services for UK Telecoms Provi...
WSO2Con2024 - Facilitating Broadband Switching Services for UK Telecoms Provi...
 
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
 
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
 
WSO2Con204 - Hard Rock Presentation - Keynote
WSO2Con204 - Hard Rock Presentation - KeynoteWSO2Con204 - Hard Rock Presentation - Keynote
WSO2Con204 - Hard Rock Presentation - Keynote
 
Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK Software
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
 
WSO2CON 2024 - Not Just Microservices: Rightsize Your Services!
WSO2CON 2024 - Not Just Microservices: Rightsize Your Services!WSO2CON 2024 - Not Just Microservices: Rightsize Your Services!
WSO2CON 2024 - Not Just Microservices: Rightsize Your Services!
 
WSO2CON2024 - Why Should You Consider Ballerina for Your Next Integration
WSO2CON2024 - Why Should You Consider Ballerina for Your Next IntegrationWSO2CON2024 - Why Should You Consider Ballerina for Your Next Integration
WSO2CON2024 - Why Should You Consider Ballerina for Your Next Integration
 
WSO2CON 2024 - Lessons from the Field: Legacy Platforms – It's Time to Let Go...
WSO2CON 2024 - Lessons from the Field: Legacy Platforms – It's Time to Let Go...WSO2CON 2024 - Lessons from the Field: Legacy Platforms – It's Time to Let Go...
WSO2CON 2024 - Lessons from the Field: Legacy Platforms – It's Time to Let Go...
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
 
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open SourceWSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
 
WSO2Con2024 - Low-Code Integration Tooling
WSO2Con2024 - Low-Code Integration ToolingWSO2Con2024 - Low-Code Integration Tooling
WSO2Con2024 - Low-Code Integration Tooling
 
Artyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptxArtyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptx
 
WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go Platformless
 
AzureNativeQumulo_HPC_Cloud_Native_Benchmarks.pdf
AzureNativeQumulo_HPC_Cloud_Native_Benchmarks.pdfAzureNativeQumulo_HPC_Cloud_Native_Benchmarks.pdf
AzureNativeQumulo_HPC_Cloud_Native_Benchmarks.pdf
 
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With SimplicityWSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
 
WSO2CON 2024 - Architecting AI in the Enterprise: APIs and Applications
WSO2CON 2024 - Architecting AI in the Enterprise: APIs and ApplicationsWSO2CON 2024 - Architecting AI in the Enterprise: APIs and Applications
WSO2CON 2024 - Architecting AI in the Enterprise: APIs and Applications
 
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
 

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