SlideShare une entreprise Scribd logo
1  sur  36
Télécharger pour lire hors ligne
Microservice-based software 
architecture 
November 23, 2014 
Michael Hackstein 
@mchacki 
www.arangodb.com
Michael Hackstein 
ArangoDB Core Team 
Web Frontend 
Graph visualisation 
Graph features 
Host of cologne.js 
Master’s Degree 
(spec. Databases and 
Information Systems) 
1
Monolithic Applications 
One large application 
In most cases designed to run on one server 
Loose coupling of objects due to object orientation 
2
Drawbacks 
Grows large over time 
Hard to maintain, refactoring expensive 
Typically written in one language 
3
Drawbacks 
Grows large over time 
Hard to maintain, refactoring expensive 
Typically written in one language 
Hard to scale-out 
Probably contains local state information 
Can only be scaled as a whole 
“Hot-spots” require multi-threaded implementation 
3
Drawbacks 
Grows large over time 
Hard to maintain, refactoring expensive 
Typically written in one language 
Hard to scale-out 
Probably contains local state information 
Can only be scaled as a whole 
“Hot-spots” require multi-threaded implementation 
High basic hardware requirements 
Parts of the app is CPU intensive 
Parts of the app is RAM intensive 
Both have to be large 
3
Microservices philosophy 
“Bring object orientation to architecture” 
Designed to run in a cluster of servers 
De1ne many services, each for one purpose only 
Each microservice offers a documented public API 
A microservice can make use of other microservices 
Each service should not have a large code base 
4
Microservices philosophy 
“Bring object orientation to architecture” 
Designed to run in a cluster of servers 
De1ne many services, each for one purpose only 
Each microservice offers a documented public API 
A microservice can make use of other microservices 
Each service should not have a large code base 
“Smart endpoints and dumb pipes” 
4
Microservices philosophy 
“Bring object orientation to architecture” 
Designed to run in a cluster of servers 
De1ne many services, each for one purpose only 
Each microservice offers a documented public API 
A microservice can make use of other microservices 
Each service should not have a large code base 
“Smart endpoints and dumb pipes” 
BUT: Do not overdo it. (Function6= Microservice) 
4
Bene1ts and Costs 
Implemented indepen-dently 
from one another 
Single-threaded implemen-tation 
Each might use a different 
language 
Seamless replacement by 
new implementation 
“Hot-spots” individually scal-able 
Speci1c server con1gura-tion 
per service 
Highly 2exible 
5
Bene1ts and Costs 
Implemented indepen-dently 
from one another 
Single-threaded implemen-tation 
Each might use a different 
language 
Seamless replacement by 
new implementation 
“Hot-spots” individually scal-able 
Speci1c server con1gura-tion 
per service 
Highly 2exible 
Communication overhead 
Requires load balancing 
Need to get used to Archi-tecture 
Imprecise de1nition so far 
5
Architecture 
Application 
6
Architecture 
Application 
6
Architecture 
Load Balancer 
S S S 
6
Architecture 
Load Balancer 
S S S 
S S S 
6
Architecture 
Load Balancer 
S S S 
S S S 
6
Scaling 
S S S 
7
Scaling 
Load Balancer 
S S S 
7
Scaling 
Load Balancer 
S S S S 
S 
7
Communication Layers 
S S S 
S S S 
8
Communication Layers 
S S S 
Load Balancer 
S S S 
8
Communication Layers 
S S S 
Load Balancer 
S S S 
8
Advises 
You pay with network traZc 
Keep the tree as 2at as possible 
Request async. in parallel wherever possible 
You should always have a tree 
No circles, no communication within the same layer 
9
Node.js a perfect match? 
Node.js can be set up fast 
Follows a single-threaded architecture 
Good tooling to build REST interfaces 
Scaling pattern is equal 
10
Node.js a perfect match? 
Node.js can be set up fast 
Follows a single-threaded architecture 
Good tooling to build REST interfaces 
Scaling pattern is equal 
BUT Not the only option: Rails, Java, Erlang, . . . 
Select the language that 1ts best 
10
The database Layer 
There are several microservices that form a Data Access Layer. 
Very little logic in the service, basically data access. 
Abstraction is used to get more independent from DB technol-ogy. 
If you switch DB only reimplement this service and migrate data. 
11
The database Layer 
There are several microservices that form a Data Access Layer. 
Very little logic in the service, basically data access. 
Abstraction is used to get more independent from DB technol-ogy. 
If you switch DB only reimplement this service and migrate data. 
Life-cycle equal to the DB technology. 
Scales similar as the DB in terms of computation. 
Data content can scale differently. 
11
ArangoDB Cluster Setup 
Coordinator Coordinator 
DBServer DBServer DBServer 
12
ArangoDB Cluster Setup 
Coordinator Coordinator 
DBServer DBServer DBServer 
12
ArangoDB Cluster Setup 
Coordinator Coordinator 
DBServer DBServer DBServer 
12
ArangoDB Cluster Setup 
Coordinator Coordinator 
DBServer DBServer DBServer 
12
ArangoDB Foxx 
Execute JavaScript code directly on the database. 
Extend ArangoDB API. 
Foxx is executed on coordinators. 
Move data access microservice into the DB. 
Scale data content and computation independently. 
Reduce the microservice tree by one level. 
13
Architecture Revisited 
Load Balancer 
S S S 
S S S 
14
Architecture Revisited 
Load Balancer 
S S S 
S 
14
Architecture Revisited 
Load Balancer 
S S S 
S 
14
Thank you 
Further Questions? 
Follow me on twitter/github: @mchacki 
Write me a mail: mchacki@arangodb.com 
Follow @arangodb on Twitter 
Join our google group: 
https://groups.google.com/forum/#!forum/arangodb 
Visit our blog https://www.arangodb.com/blog 
Slides available at https://www.slideshare.net/arangodb 
15

Contenu connexe

Tendances

Drill architecture 20120913
Drill architecture 20120913Drill architecture 20120913
Drill architecture 20120913
jasonfrantz
 
Meetup#2: Building responsive Symbology & Suggest WebService
Meetup#2: Building responsive Symbology & Suggest WebServiceMeetup#2: Building responsive Symbology & Suggest WebService
Meetup#2: Building responsive Symbology & Suggest WebService
Minsk MongoDB User Group
 
Real Time Data Analytics with MongoDB and Fluentd at Wish
Real Time Data Analytics with MongoDB and Fluentd at WishReal Time Data Analytics with MongoDB and Fluentd at Wish
Real Time Data Analytics with MongoDB and Fluentd at Wish
MongoDB
 
HBaseConAsia2018 Track2-2: Apache Kylin on HBase: Extreme OLAP for big data
HBaseConAsia2018  Track2-2: Apache Kylin on HBase: Extreme OLAP for big dataHBaseConAsia2018  Track2-2: Apache Kylin on HBase: Extreme OLAP for big data
HBaseConAsia2018 Track2-2: Apache Kylin on HBase: Extreme OLAP for big data
Michael Stack
 

Tendances (20)

Lightning talk: elasticsearch at Cogenta
Lightning talk: elasticsearch at CogentaLightning talk: elasticsearch at Cogenta
Lightning talk: elasticsearch at Cogenta
 
Using Embulk at Treasure Data
Using Embulk at Treasure DataUsing Embulk at Treasure Data
Using Embulk at Treasure Data
 
Unifying Events and Logs into the Cloud
Unifying Events and Logs into the CloudUnifying Events and Logs into the Cloud
Unifying Events and Logs into the Cloud
 
MongoDB vs Mysql. A devops point of view
MongoDB vs Mysql. A devops point of viewMongoDB vs Mysql. A devops point of view
MongoDB vs Mysql. A devops point of view
 
Introduction to ArangoDB (nosql matters Barcelona 2012)
Introduction to ArangoDB (nosql matters Barcelona 2012)Introduction to ArangoDB (nosql matters Barcelona 2012)
Introduction to ArangoDB (nosql matters Barcelona 2012)
 
Visualize your graph database
Visualize your graph databaseVisualize your graph database
Visualize your graph database
 
GOTO Aarhus 2014: Making Enterprise Data Available in Real Time with elastics...
GOTO Aarhus 2014: Making Enterprise Data Available in Real Time with elastics...GOTO Aarhus 2014: Making Enterprise Data Available in Real Time with elastics...
GOTO Aarhus 2014: Making Enterprise Data Available in Real Time with elastics...
 
Drill architecture 20120913
Drill architecture 20120913Drill architecture 20120913
Drill architecture 20120913
 
Presentation: mongo db & elasticsearch & membase
Presentation: mongo db & elasticsearch & membasePresentation: mongo db & elasticsearch & membase
Presentation: mongo db & elasticsearch & membase
 
SQL To NoSQL - Top 6 Questions Before Making The Move
SQL To NoSQL - Top 6 Questions Before Making The MoveSQL To NoSQL - Top 6 Questions Before Making The Move
SQL To NoSQL - Top 6 Questions Before Making The Move
 
Meetup#2: Building responsive Symbology & Suggest WebService
Meetup#2: Building responsive Symbology & Suggest WebServiceMeetup#2: Building responsive Symbology & Suggest WebService
Meetup#2: Building responsive Symbology & Suggest WebService
 
Practical Use of a NoSQL Database
Practical Use of a NoSQL DatabasePractical Use of a NoSQL Database
Practical Use of a NoSQL Database
 
Augmenting Mongo DB with treasure data
Augmenting Mongo DB with treasure dataAugmenting Mongo DB with treasure data
Augmenting Mongo DB with treasure data
 
Fluentd and Docker - running fluentd within a docker container
Fluentd and Docker - running fluentd within a docker containerFluentd and Docker - running fluentd within a docker container
Fluentd and Docker - running fluentd within a docker container
 
NoSQL for SQL Users
NoSQL for SQL UsersNoSQL for SQL Users
NoSQL for SQL Users
 
Bigdata antipatterns
Bigdata antipatternsBigdata antipatterns
Bigdata antipatterns
 
Building Realtime Data Pipelines with Kafka Connect and Spark Streaming
Building Realtime Data Pipelines with Kafka Connect and Spark StreamingBuilding Realtime Data Pipelines with Kafka Connect and Spark Streaming
Building Realtime Data Pipelines with Kafka Connect and Spark Streaming
 
Real Time Data Analytics with MongoDB and Fluentd at Wish
Real Time Data Analytics with MongoDB and Fluentd at WishReal Time Data Analytics with MongoDB and Fluentd at Wish
Real Time Data Analytics with MongoDB and Fluentd at Wish
 
HBaseConAsia2018 Track2-2: Apache Kylin on HBase: Extreme OLAP for big data
HBaseConAsia2018  Track2-2: Apache Kylin on HBase: Extreme OLAP for big dataHBaseConAsia2018  Track2-2: Apache Kylin on HBase: Extreme OLAP for big data
HBaseConAsia2018 Track2-2: Apache Kylin on HBase: Extreme OLAP for big data
 
Bootstrap SaaS startup using Open Source Tools
Bootstrap SaaS startup using Open Source ToolsBootstrap SaaS startup using Open Source Tools
Bootstrap SaaS startup using Open Source Tools
 

En vedette

Extensibility of a database api with js
Extensibility of a database api with jsExtensibility of a database api with js
Extensibility of a database api with js
ArangoDB Database
 
Introduction to column oriented databases
Introduction to column oriented databasesIntroduction to column oriented databases
Introduction to column oriented databases
ArangoDB Database
 

En vedette (17)

Extensibility of a database api with js
Extensibility of a database api with jsExtensibility of a database api with js
Extensibility of a database api with js
 
Domain driven design @FrOSCon
Domain driven design @FrOSConDomain driven design @FrOSCon
Domain driven design @FrOSCon
 
Polyglot Persistence & Multi Model-Databases at JMaghreb3.0
Polyglot Persistence & Multi Model-Databases at JMaghreb3.0Polyglot Persistence & Multi Model-Databases at JMaghreb3.0
Polyglot Persistence & Multi Model-Databases at JMaghreb3.0
 
Software + Babies
Software + BabiesSoftware + Babies
Software + Babies
 
Guacamole
GuacamoleGuacamole
Guacamole
 
Polyglot Persistence & Multi-Model Databases (FullStack Toronto)
Polyglot Persistence & Multi-Model Databases (FullStack Toronto)Polyglot Persistence & Multi-Model Databases (FullStack Toronto)
Polyglot Persistence & Multi-Model Databases (FullStack Toronto)
 
Processing large-scale graphs with Google(TM) Pregel
Processing large-scale graphs with Google(TM) PregelProcessing large-scale graphs with Google(TM) Pregel
Processing large-scale graphs with Google(TM) Pregel
 
Handling Billions of Edges in a Graph Database
Handling Billions of Edges in a Graph DatabaseHandling Billions of Edges in a Graph Database
Handling Billions of Edges in a Graph Database
 
Deep dive into the native multi model database ArangoDB
Deep dive into the native multi model database ArangoDBDeep dive into the native multi model database ArangoDB
Deep dive into the native multi model database ArangoDB
 
Polyglot Persistence & Multi-Model Databases
Polyglot Persistence & Multi-Model DatabasesPolyglot Persistence & Multi-Model Databases
Polyglot Persistence & Multi-Model Databases
 
Creating Fault Tolerant Services on Mesos
Creating Fault Tolerant Services on MesosCreating Fault Tolerant Services on Mesos
Creating Fault Tolerant Services on Mesos
 
NoSQL meets Microservices
NoSQL meets MicroservicesNoSQL meets Microservices
NoSQL meets Microservices
 
Spark Summit EU talk by Jorg Schad
Spark Summit EU talk by Jorg SchadSpark Summit EU talk by Jorg Schad
Spark Summit EU talk by Jorg Schad
 
Introduction to column oriented databases
Introduction to column oriented databasesIntroduction to column oriented databases
Introduction to column oriented databases
 
Spark Summit EU talk by Mike Percy
Spark Summit EU talk by Mike PercySpark Summit EU talk by Mike Percy
Spark Summit EU talk by Mike Percy
 
The Cloud Native Stack
The Cloud Native StackThe Cloud Native Stack
The Cloud Native Stack
 
Powering Predictive Mapping at Scale with Spark, Kafka, and Elastic Search: S...
Powering Predictive Mapping at Scale with Spark, Kafka, and Elastic Search: S...Powering Predictive Mapping at Scale with Spark, Kafka, and Elastic Search: S...
Powering Predictive Mapping at Scale with Spark, Kafka, and Elastic Search: S...
 

Similaire à Microservice-based software architecture

Altoros using no sql databases for interactive_applications
Altoros using no sql databases for interactive_applicationsAltoros using no sql databases for interactive_applications
Altoros using no sql databases for interactive_applications
Jeff Harris
 

Similaire à Microservice-based software architecture (20)

Altoros using no sql databases for interactive_applications
Altoros using no sql databases for interactive_applicationsAltoros using no sql databases for interactive_applications
Altoros using no sql databases for interactive_applications
 
Realizing the promise of portable data processing with Apache Beam
Realizing the promise of portable data processing with Apache BeamRealizing the promise of portable data processing with Apache Beam
Realizing the promise of portable data processing with Apache Beam
 
Reference architectures shows a microservices deployed to Kubernetes
Reference architectures shows a microservices deployed to KubernetesReference architectures shows a microservices deployed to Kubernetes
Reference architectures shows a microservices deployed to Kubernetes
 
Minnebar 2013 - Scaling with Cassandra
Minnebar 2013 - Scaling with CassandraMinnebar 2013 - Scaling with Cassandra
Minnebar 2013 - Scaling with Cassandra
 
MERN_Stack_PPT.pptx
MERN_Stack_PPT.pptxMERN_Stack_PPT.pptx
MERN_Stack_PPT.pptx
 
Couchbase Mobile on Android
Couchbase Mobile on AndroidCouchbase Mobile on Android
Couchbase Mobile on Android
 
NoSql Databases
NoSql DatabasesNoSql Databases
NoSql Databases
 
From 0 to syncing
From 0 to syncingFrom 0 to syncing
From 0 to syncing
 
Lunar Way and the Cloud Native "stack"
Lunar Way and the Cloud Native "stack"Lunar Way and the Cloud Native "stack"
Lunar Way and the Cloud Native "stack"
 
MERN PPT
MERN PPTMERN PPT
MERN PPT
 
Oslo bekk2014
Oslo bekk2014Oslo bekk2014
Oslo bekk2014
 
Presentacion redislabs-ihub
Presentacion redislabs-ihubPresentacion redislabs-ihub
Presentacion redislabs-ihub
 
Realizing the Promise of Portable Data Processing with Apache Beam
Realizing the Promise of Portable Data Processing with Apache BeamRealizing the Promise of Portable Data Processing with Apache Beam
Realizing the Promise of Portable Data Processing with Apache Beam
 
NOSQL- Presentation on NoSQL
NOSQL- Presentation on NoSQLNOSQL- Presentation on NoSQL
NOSQL- Presentation on NoSQL
 
NOSQL in big data is the not only structure langua.pdf
NOSQL in big data is the not only structure langua.pdfNOSQL in big data is the not only structure langua.pdf
NOSQL in big data is the not only structure langua.pdf
 
Rails Concept
Rails ConceptRails Concept
Rails Concept
 
The Microservices world in. NET Core and. NET framework
The Microservices world in. NET Core and. NET frameworkThe Microservices world in. NET Core and. NET framework
The Microservices world in. NET Core and. NET framework
 
Experiences using CouchDB inside Microsoft's Azure team
Experiences using CouchDB inside Microsoft's Azure teamExperiences using CouchDB inside Microsoft's Azure team
Experiences using CouchDB inside Microsoft's Azure team
 
List of Top Local Databases used for react native app developement in 2022
List of Top Local Databases used for react native app developement in 2022					List of Top Local Databases used for react native app developement in 2022
List of Top Local Databases used for react native app developement in 2022
 
Workshop "Building Decentralised Chat with Next.js", Oleh Melnychuk
Workshop "Building Decentralised Chat with Next.js",  Oleh MelnychukWorkshop "Building Decentralised Chat with Next.js",  Oleh Melnychuk
Workshop "Building Decentralised Chat with Next.js", Oleh Melnychuk
 

Plus de ArangoDB Database

Plus de ArangoDB Database (20)

ATO 2022 - Machine Learning + Graph Databases for Better Recommendations (3)....
ATO 2022 - Machine Learning + Graph Databases for Better Recommendations (3)....ATO 2022 - Machine Learning + Graph Databases for Better Recommendations (3)....
ATO 2022 - Machine Learning + Graph Databases for Better Recommendations (3)....
 
Machine Learning + Graph Databases for Better Recommendations V2 08/20/2022
Machine Learning + Graph Databases for Better Recommendations V2 08/20/2022Machine Learning + Graph Databases for Better Recommendations V2 08/20/2022
Machine Learning + Graph Databases for Better Recommendations V2 08/20/2022
 
Machine Learning + Graph Databases for Better Recommendations V1 08/06/2022
Machine Learning + Graph Databases for Better Recommendations V1 08/06/2022Machine Learning + Graph Databases for Better Recommendations V1 08/06/2022
Machine Learning + Graph Databases for Better Recommendations V1 08/06/2022
 
ArangoDB 3.9 - Further Powering Graphs at Scale
ArangoDB 3.9 - Further Powering Graphs at ScaleArangoDB 3.9 - Further Powering Graphs at Scale
ArangoDB 3.9 - Further Powering Graphs at Scale
 
GraphSage vs Pinsage #InsideArangoDB
GraphSage vs Pinsage #InsideArangoDBGraphSage vs Pinsage #InsideArangoDB
GraphSage vs Pinsage #InsideArangoDB
 
Webinar: ArangoDB 3.8 Preview - Analytics at Scale
Webinar: ArangoDB 3.8 Preview - Analytics at Scale Webinar: ArangoDB 3.8 Preview - Analytics at Scale
Webinar: ArangoDB 3.8 Preview - Analytics at Scale
 
Graph Analytics with ArangoDB
Graph Analytics with ArangoDBGraph Analytics with ArangoDB
Graph Analytics with ArangoDB
 
Getting Started with ArangoDB Oasis
Getting Started with ArangoDB OasisGetting Started with ArangoDB Oasis
Getting Started with ArangoDB Oasis
 
Custom Pregel Algorithms in ArangoDB
Custom Pregel Algorithms in ArangoDBCustom Pregel Algorithms in ArangoDB
Custom Pregel Algorithms in ArangoDB
 
Hacktoberfest 2020 - Intro to Knowledge Graphs
Hacktoberfest 2020 - Intro to Knowledge GraphsHacktoberfest 2020 - Intro to Knowledge Graphs
Hacktoberfest 2020 - Intro to Knowledge Graphs
 
A Graph Database That Scales - ArangoDB 3.7 Release Webinar
A Graph Database That Scales - ArangoDB 3.7 Release WebinarA Graph Database That Scales - ArangoDB 3.7 Release Webinar
A Graph Database That Scales - ArangoDB 3.7 Release Webinar
 
gVisor, Kata Containers, Firecracker, Docker: Who is Who in the Container Space?
gVisor, Kata Containers, Firecracker, Docker: Who is Who in the Container Space?gVisor, Kata Containers, Firecracker, Docker: Who is Who in the Container Space?
gVisor, Kata Containers, Firecracker, Docker: Who is Who in the Container Space?
 
ArangoML Pipeline Cloud - Managed Machine Learning Metadata
ArangoML Pipeline Cloud - Managed Machine Learning MetadataArangoML Pipeline Cloud - Managed Machine Learning Metadata
ArangoML Pipeline Cloud - Managed Machine Learning Metadata
 
ArangoDB 3.7 Roadmap: Performance at Scale
ArangoDB 3.7 Roadmap: Performance at ScaleArangoDB 3.7 Roadmap: Performance at Scale
ArangoDB 3.7 Roadmap: Performance at Scale
 
Webinar: What to expect from ArangoDB Oasis
Webinar: What to expect from ArangoDB OasisWebinar: What to expect from ArangoDB Oasis
Webinar: What to expect from ArangoDB Oasis
 
ArangoDB 3.5 Feature Overview Webinar - Sept 12, 2019
ArangoDB 3.5 Feature Overview Webinar - Sept 12, 2019ArangoDB 3.5 Feature Overview Webinar - Sept 12, 2019
ArangoDB 3.5 Feature Overview Webinar - Sept 12, 2019
 
3.5 webinar
3.5 webinar 3.5 webinar
3.5 webinar
 
Webinar: How native multi model works in ArangoDB
Webinar: How native multi model works in ArangoDBWebinar: How native multi model works in ArangoDB
Webinar: How native multi model works in ArangoDB
 
An introduction to multi-model databases
An introduction to multi-model databasesAn introduction to multi-model databases
An introduction to multi-model databases
 
Running complex data queries in a distributed system
Running complex data queries in a distributed systemRunning complex data queries in a distributed system
Running complex data queries in a distributed system
 

Dernier

+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
Health
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
masabamasaba
 
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
masabamasaba
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
masabamasaba
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
VictoriaMetrics
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 

Dernier (20)

%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
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
 
Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdf
 
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
 
%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Harare%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Harare
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the past
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 

Microservice-based software architecture

  • 1. Microservice-based software architecture November 23, 2014 Michael Hackstein @mchacki www.arangodb.com
  • 2. Michael Hackstein ArangoDB Core Team Web Frontend Graph visualisation Graph features Host of cologne.js Master’s Degree (spec. Databases and Information Systems) 1
  • 3. Monolithic Applications One large application In most cases designed to run on one server Loose coupling of objects due to object orientation 2
  • 4. Drawbacks Grows large over time Hard to maintain, refactoring expensive Typically written in one language 3
  • 5. Drawbacks Grows large over time Hard to maintain, refactoring expensive Typically written in one language Hard to scale-out Probably contains local state information Can only be scaled as a whole “Hot-spots” require multi-threaded implementation 3
  • 6. Drawbacks Grows large over time Hard to maintain, refactoring expensive Typically written in one language Hard to scale-out Probably contains local state information Can only be scaled as a whole “Hot-spots” require multi-threaded implementation High basic hardware requirements Parts of the app is CPU intensive Parts of the app is RAM intensive Both have to be large 3
  • 7. Microservices philosophy “Bring object orientation to architecture” Designed to run in a cluster of servers De1ne many services, each for one purpose only Each microservice offers a documented public API A microservice can make use of other microservices Each service should not have a large code base 4
  • 8. Microservices philosophy “Bring object orientation to architecture” Designed to run in a cluster of servers De1ne many services, each for one purpose only Each microservice offers a documented public API A microservice can make use of other microservices Each service should not have a large code base “Smart endpoints and dumb pipes” 4
  • 9. Microservices philosophy “Bring object orientation to architecture” Designed to run in a cluster of servers De1ne many services, each for one purpose only Each microservice offers a documented public API A microservice can make use of other microservices Each service should not have a large code base “Smart endpoints and dumb pipes” BUT: Do not overdo it. (Function6= Microservice) 4
  • 10. Bene1ts and Costs Implemented indepen-dently from one another Single-threaded implemen-tation Each might use a different language Seamless replacement by new implementation “Hot-spots” individually scal-able Speci1c server con1gura-tion per service Highly 2exible 5
  • 11. Bene1ts and Costs Implemented indepen-dently from one another Single-threaded implemen-tation Each might use a different language Seamless replacement by new implementation “Hot-spots” individually scal-able Speci1c server con1gura-tion per service Highly 2exible Communication overhead Requires load balancing Need to get used to Archi-tecture Imprecise de1nition so far 5
  • 15. Architecture Load Balancer S S S S S S 6
  • 16. Architecture Load Balancer S S S S S S 6
  • 17. Scaling S S S 7
  • 19. Scaling Load Balancer S S S S S 7
  • 20. Communication Layers S S S S S S 8
  • 21. Communication Layers S S S Load Balancer S S S 8
  • 22. Communication Layers S S S Load Balancer S S S 8
  • 23. Advises You pay with network traZc Keep the tree as 2at as possible Request async. in parallel wherever possible You should always have a tree No circles, no communication within the same layer 9
  • 24. Node.js a perfect match? Node.js can be set up fast Follows a single-threaded architecture Good tooling to build REST interfaces Scaling pattern is equal 10
  • 25. Node.js a perfect match? Node.js can be set up fast Follows a single-threaded architecture Good tooling to build REST interfaces Scaling pattern is equal BUT Not the only option: Rails, Java, Erlang, . . . Select the language that 1ts best 10
  • 26. The database Layer There are several microservices that form a Data Access Layer. Very little logic in the service, basically data access. Abstraction is used to get more independent from DB technol-ogy. If you switch DB only reimplement this service and migrate data. 11
  • 27. The database Layer There are several microservices that form a Data Access Layer. Very little logic in the service, basically data access. Abstraction is used to get more independent from DB technol-ogy. If you switch DB only reimplement this service and migrate data. Life-cycle equal to the DB technology. Scales similar as the DB in terms of computation. Data content can scale differently. 11
  • 28. ArangoDB Cluster Setup Coordinator Coordinator DBServer DBServer DBServer 12
  • 29. ArangoDB Cluster Setup Coordinator Coordinator DBServer DBServer DBServer 12
  • 30. ArangoDB Cluster Setup Coordinator Coordinator DBServer DBServer DBServer 12
  • 31. ArangoDB Cluster Setup Coordinator Coordinator DBServer DBServer DBServer 12
  • 32. ArangoDB Foxx Execute JavaScript code directly on the database. Extend ArangoDB API. Foxx is executed on coordinators. Move data access microservice into the DB. Scale data content and computation independently. Reduce the microservice tree by one level. 13
  • 33. Architecture Revisited Load Balancer S S S S S S 14
  • 34. Architecture Revisited Load Balancer S S S S 14
  • 35. Architecture Revisited Load Balancer S S S S 14
  • 36. Thank you Further Questions? Follow me on twitter/github: @mchacki Write me a mail: mchacki@arangodb.com Follow @arangodb on Twitter Join our google group: https://groups.google.com/forum/#!forum/arangodb Visit our blog https://www.arangodb.com/blog Slides available at https://www.slideshare.net/arangodb 15