SlideShare une entreprise Scribd logo
1  sur  66
Microservices: The OSGi way 
A different vision on microservices 
! 
Miguel Ángel Pastor Olivar 
Senior Software Engineer
About me 
Who am I? 
! 
• Just a random guy 
! 
• Member of the Liferay core infrastructure team 
! 
• Email: miguel.pastor@liferay.com 
! 
• @miguelinlas3 
#LRNAS2014
Synopsis 
What are we going to talk about? 
! 
• Traditional approaches for development and deployment 
! 
• Micro services: demystifying it! 
! 
• An OSGi based vision of it 
! 
• How does it relate to Liferay? 
! 
• Questions (and hopefully answers) 
#LRNAS2014
The monolith
The monolith 
#LRNAS2014 
Web Browser 
Relational Database 
App Server 
Load Balancer 
UI 
Business Services 
Domain Model 
War File 
Mobile 
Device
The monolith 
Benefits 
! 
• Easier to develop 
! 
• Simple to deploy 
! 
• Simple to scale 
! 
• Works well for small applications 
#LRNAS2014
The monolith 
Drawbacks 
! 
• Unwieldy for big and complex applications 
! 
• Hard to understand, maintain and reason about 
! 
– Hard to get up to speed 
! 
• Complex “continuous deployment” scenarios 
! 
– Deploy the whole entity on every change 
! 
• Extremely hard to try/adopt new technologies/architectures 
#LRNAS2014
The monolith 
Drawbacks 
! 
• Scaling can become difficult 
! 
– Only one dimension scaling 
! 
• Scaling development teams 
! 
– Hard to focus teams and efforts 
#LRNAS2014
The Scale cube
The scale cube 
Source http://microservices.io/articles/ 
scalecube.html 
#LRNAS2014
X-axis scaling
The scale cube 
X-Axis scaling 
! 
• Multiple copies running behind a load balancer 
! 
• Ideally, each copy handles 1/N of the load 
! 
• Great way to improve capacity and availability 
! 
• Common approach to scaling 
#LRNAS2014
The scale cube 
Server 1 
#LRNAS2014 
X-Axis scaling 
Load Balancer 
Web Browser 
Mobile 
Device 
Server N 
1/N 
1/N
Z-axis scaling
The scale cube 
Z-Axis scaling 
! 
• Each server runs and identical copy of the code 
! 
– Similar to X-axis scaling 
! 
• But each server is in charge of a subset of the data 
! 
• We need smarter routing 
! 
• We can apply the similar concepts to applications 
! 
• Sharding, SLA, … 
#LRNAS2014
The scale cube 
#LRNAS2014 
Load Balancer 
Web Browser 
Mobile 
Device 
SLA 99.99% 
Y-Axis scaling 
Server 1 Server 2 
Server 4 Server 3 
Server 1 Server 2 
Server 4 Server 3 
SLA 99%
The scale cube 
Z-Axis scaling: Benefits 
! 
• Each server deals with a subset of the data 
! 
• Cache and memory usage are improved 
! 
• I/O traffic is reduced 
! 
• Transaction scalability is improved 
! 
• Improved fault isolation 
#LRNAS2014
The scale cube 
Z-Axis scaling: Drawbacks 
! 
• Application complexity increases 
! 
• Partitioning scheme needs to be implemented 
! 
• Doesn’t solve the problems of increasing development and 
application complexity 
#LRNAS2014
Y-axis scaling
The scale cube 
Y-Axis scaling 
! 
• Functional decomposition 
! 
• Each service is in charge of 1 (or multiple) tightly related 
functions 
! 
• No golden rule 
! 
– Verb based decomposition 
! 
– Entity/resources related operations 
#LRNAS2014
The scale cube 
#LRNAS2014 
UI 
Business Services 
War File 
Business Services 
Business Services 
UI 
UI 
Business Services
The scale cube 
Y-Axis scaling: Benefits 
! 
• Each service is reasonably small 
! 
• Faster startup 
! 
• Independent scaling 
! 
– X-axis or Y-axis scaling on every single service 
! 
• Fault isolation improvements 
! 
• Breakage with long term tech commitments 
#LRNAS2014
The scale cube 
Y-Axis scaling: drawbacks 
! 
• Distributed systems are hard!! 
! 
• Really really hard!! 
! 
• Interprocess communication 
! 
• Operational complexity introduced 
! 
• Stronger coordination among teams 
! 
• Not suitable for everybody 
#LRNAS2014
Client-Service 
communications
Communications: Gateway pattern 
Browser 
#LRNAS2014 
Business Services 
War File 
Business Services 
Business Services 
Mobile Device 
Business Services 
API Gateway
Gateway API 
Gateway API 
! 
• API tailored client 
! 
• Encapsulation 
! 
• Composition 
! 
• Different evolution 
#LRNAS2014
Inter-service 
communications
Interprocess communications 
Synchronous RPC 
! 
• REST or SOAP 
! 
• Both are “simple?” and familiar 
! 
• Firewall friendly 
! 
• Discovery service (Zookeeper, Etcd, …) 
! 
• IMHO, there is better options than HTTP 
#LRNAS2014
Interprocess communications 
Asynchronous messaging 
! 
• “AMQP like” message broker 
! 
• Decouple producers from consumers 
! 
• New element to deploy and manage (the message broker) 
! 
• Actor model? 
#LRNAS2014
Data management
Data management 
Decentralized data management 
! 
• Each service, potentially, could have its own database 
! 
• Even different types of databases (SQL, NoSQL, …) 
! 
• Distributed transactions come into place :( 
• 2PC, 3PC, … 
! 
• Event-driven asynchronous updates 
! 
• Different consistency model 
#LRNAS2014
An OSGi based 
vision of 
Microservices
What is OSGi 
#LRNAS2014
OSGi μServices
OSGi μServices 
Features 
! 
• Run within the same JVM 
! 
• Highly dynamic 
! 
• Implemented within the Service registry 
! 
• Runtime lifecycle management 
#LRNAS2014
OSGi μServices 
#LRNAS2014
Focused 
components
Focused components 
OSGi modules and services 
! 
• Modules allow us to hide implementations and decouple 
! 
• Use service layer to communicate each other 
! 
• They can be deployed independently 
! 
– For now we are talking about single JVM 
! 
• Modules/services can disappear at any point in time 
– Highly dynamic 
! 
– Closely related to distribution (more details later on) 
#LRNAS2014
Fault isolation
Fault isolation 
Not real fault isolation 
! 
• We get independent deployments through bundles 
! 
• Living within the same JVM. No real fault isolation 
! 
• A service could consume the whole CPU/memory or 
saturates the network 
! 
• Some research work on multi tenant JVM by IBM 
#LRNAS2014
Long tech 
commitment
Tech commitment 
Partial breakage with long tech commitments 
! 
• We already have isolated and highly focused pieces 
! 
• Communication is done through services 
! 
• Some nice JVM based alternatives: Scala, Clojure, Groovy, 
… 
! 
• Cannot use a completely different tech: Erlang, Go, … 
#LRNAS2014
But …
Missing pieces 
We are still missing … 
! 
• Independent scaling of every service 
! 
• Real isolation 
! 
• Solutions to the previous problems 
! 
• Process (JVM) 
! 
• Linux Containers (Solaris Zones, …) 
! 
• Distribution 
#LRNAS2014
Missing pieces 
A typical approach 
! 
• Deploy your app in a different machine/container/process 
! 
• Communicate them using your preferred approach 
! 
• REST 
! 
• ZeroMQ 
! 
• AMQP 
#LRNAS2014
Missing pieces 
OSGi Remote Services 
! 
• Near transparent extension to the Services model 
! 
• No explicit infrastructure API in user land 
! 
• Non mandatory technology (HTTP, JMS, RMI, …) 
! 
• Two OSGi specifications 
! 
• Remote Services: mechanics of transport 
! 
• Remote Service Admin: topology, service discovery 
#LRNAS2014
OSGi Remote 
Services
Remote services 
#LRNAS2014
Remote services 
Alternatives 
! 
• Amdatu 
! 
• Eclipse Communication Framework 
! 
• Apache CXF Distributed OSGi 
#LRNAS2014
Remote services 
#LRNAS2014
Remote services 
#LRNAS2014
Remote services 
#LRNAS2014 
Polls Service
Remote services 
#LRNAS2014 
Bookmarks 
Service 
Polls Service
Remote services 
#LRNAS2014 
Bookmarks 
Service 
Polls Service 
MB Service
Remote services 
#LRNAS2014 
Bookmarks 
Service 
Polls Service 
MB Service 
Client 
Service 
Client 
Service
Remote services 
#LRNAS2014 
Bookmarks 
Service 
Polls Service 
MB Service 
Polls Service 
Client 
Service 
Client 
Service
Remote services 
#LRNAS2014 
Bookmarks 
Service 
Polls Service 
MB Service 
Client 
Service 
Polls Service Polls Service 
Client 
Service
Remote services 
#LRNAS2014 
Bookmarks 
Service 
Polls Service 
MB Service 
Client 
Service 
Client 
Service 
Polls Service Polls Service Polls Service
Remote services 
#LRNAS2014 
Bookmarks 
Service 
Polls Service 
MB Service 
Client 
Service 
Client 
Service 
Polls Service Polls Service Polls Service
Remote services 
#LRNAS2014 
Bookmarks 
Service 
Polls Service 
MB Service 
Client 
Service 
Client 
Service 
Polls Service Polls Service Polls Service
Missing pieces 
Usage 
! 
• Install and configure your infrastructure 
! 
• Non intrusive: just a few properties in your service definition 
#LRNAS2014
Missing pieces 
Usage 
! 
• Install and configure your infrastructure 
! 
• Non intrusive: just a few properties in your service definition 
#LRNAS2014
Liferay!?
Liferay 
Can we apply this to Liferay? 
! 
• OSGi as one of the core techs of the product 
! 
• Split the product into small and independent focused 
components/services 
! 
• Independent deployments 
• Still within the same JVM 
! 
• Focused teams and efforts 
#LRNAS2014
Questions 
(and hopefully answers)

Contenu connexe

Tendances

Connecting All Abstractions with Istio
Connecting All Abstractions with IstioConnecting All Abstractions with Istio
Connecting All Abstractions with IstioVMware Tanzu
 
Microservices Integration Patterns with Kafka
Microservices Integration Patterns with KafkaMicroservices Integration Patterns with Kafka
Microservices Integration Patterns with KafkaKasun Indrasiri
 
Asynchronous Microservices in nodejs
Asynchronous Microservices in nodejsAsynchronous Microservices in nodejs
Asynchronous Microservices in nodejsBruno Pedro
 
Microservices in Action
Microservices in ActionMicroservices in Action
Microservices in ActionBhagwat Kumar
 
Debugging Microservices - key challenges and techniques - Microservices Odesa...
Debugging Microservices - key challenges and techniques - Microservices Odesa...Debugging Microservices - key challenges and techniques - Microservices Odesa...
Debugging Microservices - key challenges and techniques - Microservices Odesa...Lohika_Odessa_TechTalks
 
Application Rollout - Istio
Application Rollout - Istio Application Rollout - Istio
Application Rollout - Istio Mandar Jog
 
Building Microservices with .NET (speaker Anton Vasilenko, Binary Studio)
Building Microservices with .NET (speaker Anton Vasilenko, Binary Studio)Building Microservices with .NET (speaker Anton Vasilenko, Binary Studio)
Building Microservices with .NET (speaker Anton Vasilenko, Binary Studio)Binary Studio
 
[WSO2Con EU 2017] Writing Microservices Using MSF4J
[WSO2Con EU 2017] Writing Microservices Using MSF4J[WSO2Con EU 2017] Writing Microservices Using MSF4J
[WSO2Con EU 2017] Writing Microservices Using MSF4JWSO2
 
[WSO2Con EU 2017] Microservices for Enterprises
[WSO2Con EU 2017] Microservices for Enterprises[WSO2Con EU 2017] Microservices for Enterprises
[WSO2Con EU 2017] Microservices for EnterprisesWSO2
 
API Gateway: Nginx way
API Gateway: Nginx wayAPI Gateway: Nginx way
API Gateway: Nginx wayinovia
 
Intro Istio and what's new Istio 1.1
Intro Istio and what's new Istio 1.1Intro Istio and what's new Istio 1.1
Intro Istio and what's new Istio 1.1Christian Posta
 
Microservices Architecture (MSA) - Presentation made at AEA-MN quarterly even...
Microservices Architecture (MSA) - Presentation made at AEA-MN quarterly even...Microservices Architecture (MSA) - Presentation made at AEA-MN quarterly even...
Microservices Architecture (MSA) - Presentation made at AEA-MN quarterly even...Somasundram Balakrushnan
 
Modularity, Microservices and Containerisation - Neil Bartlett, Derek Baum
Modularity, Microservices and Containerisation - Neil Bartlett, Derek BaumModularity, Microservices and Containerisation - Neil Bartlett, Derek Baum
Modularity, Microservices and Containerisation - Neil Bartlett, Derek Baummfrancis
 
Making sense of microservices, service mesh, and serverless
Making sense of microservices, service mesh, and serverlessMaking sense of microservices, service mesh, and serverless
Making sense of microservices, service mesh, and serverlessChristian Posta
 
Adaptive and Iterative Integration for Microservices and Cloud Native Archite...
Adaptive and Iterative Integration for Microservices and Cloud Native Archite...Adaptive and Iterative Integration for Microservices and Cloud Native Archite...
Adaptive and Iterative Integration for Microservices and Cloud Native Archite...Kasun Indrasiri
 
Chick-fil-A: Milking the most out of thousands of kubernetes clusteres
Chick-fil-A: Milking the most out of thousands of kubernetes clusteresChick-fil-A: Milking the most out of thousands of kubernetes clusteres
Chick-fil-A: Milking the most out of thousands of kubernetes clusteresBrian Chambers
 
[WSO2Con EU 2017] Container-native Architecture
[WSO2Con EU 2017] Container-native Architecture[WSO2Con EU 2017] Container-native Architecture
[WSO2Con EU 2017] Container-native ArchitectureWSO2
 
Atlanta Microservices Day: Istio Service Mesh
Atlanta Microservices Day: Istio Service MeshAtlanta Microservices Day: Istio Service Mesh
Atlanta Microservices Day: Istio Service MeshChristian Posta
 

Tendances (20)

Connecting All Abstractions with Istio
Connecting All Abstractions with IstioConnecting All Abstractions with Istio
Connecting All Abstractions with Istio
 
Microservices Integration Patterns with Kafka
Microservices Integration Patterns with KafkaMicroservices Integration Patterns with Kafka
Microservices Integration Patterns with Kafka
 
Asynchronous Microservices in nodejs
Asynchronous Microservices in nodejsAsynchronous Microservices in nodejs
Asynchronous Microservices in nodejs
 
Microservices in Action
Microservices in ActionMicroservices in Action
Microservices in Action
 
Debugging Microservices - key challenges and techniques - Microservices Odesa...
Debugging Microservices - key challenges and techniques - Microservices Odesa...Debugging Microservices - key challenges and techniques - Microservices Odesa...
Debugging Microservices - key challenges and techniques - Microservices Odesa...
 
Microservices with Spring
Microservices with SpringMicroservices with Spring
Microservices with Spring
 
Application Rollout - Istio
Application Rollout - Istio Application Rollout - Istio
Application Rollout - Istio
 
Building Microservices with .NET (speaker Anton Vasilenko, Binary Studio)
Building Microservices with .NET (speaker Anton Vasilenko, Binary Studio)Building Microservices with .NET (speaker Anton Vasilenko, Binary Studio)
Building Microservices with .NET (speaker Anton Vasilenko, Binary Studio)
 
Microservice architecture
Microservice architectureMicroservice architecture
Microservice architecture
 
[WSO2Con EU 2017] Writing Microservices Using MSF4J
[WSO2Con EU 2017] Writing Microservices Using MSF4J[WSO2Con EU 2017] Writing Microservices Using MSF4J
[WSO2Con EU 2017] Writing Microservices Using MSF4J
 
[WSO2Con EU 2017] Microservices for Enterprises
[WSO2Con EU 2017] Microservices for Enterprises[WSO2Con EU 2017] Microservices for Enterprises
[WSO2Con EU 2017] Microservices for Enterprises
 
API Gateway: Nginx way
API Gateway: Nginx wayAPI Gateway: Nginx way
API Gateway: Nginx way
 
Intro Istio and what's new Istio 1.1
Intro Istio and what's new Istio 1.1Intro Istio and what's new Istio 1.1
Intro Istio and what's new Istio 1.1
 
Microservices Architecture (MSA) - Presentation made at AEA-MN quarterly even...
Microservices Architecture (MSA) - Presentation made at AEA-MN quarterly even...Microservices Architecture (MSA) - Presentation made at AEA-MN quarterly even...
Microservices Architecture (MSA) - Presentation made at AEA-MN quarterly even...
 
Modularity, Microservices and Containerisation - Neil Bartlett, Derek Baum
Modularity, Microservices and Containerisation - Neil Bartlett, Derek BaumModularity, Microservices and Containerisation - Neil Bartlett, Derek Baum
Modularity, Microservices and Containerisation - Neil Bartlett, Derek Baum
 
Making sense of microservices, service mesh, and serverless
Making sense of microservices, service mesh, and serverlessMaking sense of microservices, service mesh, and serverless
Making sense of microservices, service mesh, and serverless
 
Adaptive and Iterative Integration for Microservices and Cloud Native Archite...
Adaptive and Iterative Integration for Microservices and Cloud Native Archite...Adaptive and Iterative Integration for Microservices and Cloud Native Archite...
Adaptive and Iterative Integration for Microservices and Cloud Native Archite...
 
Chick-fil-A: Milking the most out of thousands of kubernetes clusteres
Chick-fil-A: Milking the most out of thousands of kubernetes clusteresChick-fil-A: Milking the most out of thousands of kubernetes clusteres
Chick-fil-A: Milking the most out of thousands of kubernetes clusteres
 
[WSO2Con EU 2017] Container-native Architecture
[WSO2Con EU 2017] Container-native Architecture[WSO2Con EU 2017] Container-native Architecture
[WSO2Con EU 2017] Container-native Architecture
 
Atlanta Microservices Day: Istio Service Mesh
Atlanta Microservices Day: Istio Service MeshAtlanta Microservices Day: Istio Service Mesh
Atlanta Microservices Day: Istio Service Mesh
 

En vedette

Moved to https://slidr.io/azzazzel/liferay-7-microservices-for-the-enterprise
Moved to https://slidr.io/azzazzel/liferay-7-microservices-for-the-enterpriseMoved to https://slidr.io/azzazzel/liferay-7-microservices-for-the-enterprise
Moved to https://slidr.io/azzazzel/liferay-7-microservices-for-the-enterpriseMilen Dyankov
 
Microservices OSGi-running-with-apache-karaf
Microservices OSGi-running-with-apache-karafMicroservices OSGi-running-with-apache-karaf
Microservices OSGi-running-with-apache-karafAchim Nierbeck
 
Liferay Portal Introduction
Liferay Portal IntroductionLiferay Portal Introduction
Liferay Portal IntroductionNguyen Tung
 
TDD on OSGi, in practice.
TDD on OSGi, in practice.TDD on OSGi, in practice.
TDD on OSGi, in practice.Elian, I.
 
Integrazione Sistemi CRM (Joomla) & CRM (SugarCRM)
Integrazione Sistemi CRM (Joomla) & CRM (SugarCRM)Integrazione Sistemi CRM (Joomla) & CRM (SugarCRM)
Integrazione Sistemi CRM (Joomla) & CRM (SugarCRM)Antonio Musarra
 
2011.10 Liferay European Symposium. Alistair Oldfield
2011.10 Liferay European Symposium. Alistair Oldfield2011.10 Liferay European Symposium. Alistair Oldfield
2011.10 Liferay European Symposium. Alistair OldfieldEmeldi Group
 
Intro to OSGi – the Microservices kernel - P Kriens & T Ward
Intro to OSGi – the Microservices kernel - P Kriens & T WardIntro to OSGi – the Microservices kernel - P Kriens & T Ward
Intro to OSGi – the Microservices kernel - P Kriens & T Wardmfrancis
 
Liferay hardening principles
Liferay hardening principlesLiferay hardening principles
Liferay hardening principlesAmbientia
 
Liferay - Quick Start 1° Episodio
Liferay - Quick Start 1° EpisodioLiferay - Quick Start 1° Episodio
Liferay - Quick Start 1° EpisodioAntonio Musarra
 
QCon Sao Paulo Keynote - Microservices, an Unexpected Journey
QCon Sao Paulo Keynote - Microservices, an Unexpected JourneyQCon Sao Paulo Keynote - Microservices, an Unexpected Journey
QCon Sao Paulo Keynote - Microservices, an Unexpected JourneySam Newman
 
Introduzione ai sistemi di Content Management System (CMS)
Introduzione ai sistemi di Content Management System (CMS)Introduzione ai sistemi di Content Management System (CMS)
Introduzione ai sistemi di Content Management System (CMS)Antonio Musarra
 
Liferay Configuration and Customization
Liferay Configuration and CustomizationLiferay Configuration and Customization
Liferay Configuration and CustomizationThành Nguyễn
 
The Dark Side of Microservices
The Dark Side of MicroservicesThe Dark Side of Microservices
The Dark Side of MicroservicesNicolas Fränkel
 

En vedette (20)

Moved to https://slidr.io/azzazzel/liferay-7-microservices-for-the-enterprise
Moved to https://slidr.io/azzazzel/liferay-7-microservices-for-the-enterpriseMoved to https://slidr.io/azzazzel/liferay-7-microservices-for-the-enterprise
Moved to https://slidr.io/azzazzel/liferay-7-microservices-for-the-enterprise
 
Overview of Liferay 7 Technology
Overview of Liferay 7 TechnologyOverview of Liferay 7 Technology
Overview of Liferay 7 Technology
 
Liferay 7
Liferay 7Liferay 7
Liferay 7
 
OSGi e Liferay 7
OSGi e Liferay 7OSGi e Liferay 7
OSGi e Liferay 7
 
Microservices OSGi-running-with-apache-karaf
Microservices OSGi-running-with-apache-karafMicroservices OSGi-running-with-apache-karaf
Microservices OSGi-running-with-apache-karaf
 
Liferay Portal Introduction
Liferay Portal IntroductionLiferay Portal Introduction
Liferay Portal Introduction
 
TDD on OSGi, in practice.
TDD on OSGi, in practice.TDD on OSGi, in practice.
TDD on OSGi, in practice.
 
Liferay e Modularização com Arquitetura OSGi
Liferay e Modularização com Arquitetura OSGiLiferay e Modularização com Arquitetura OSGi
Liferay e Modularização com Arquitetura OSGi
 
Integrazione Sistemi CRM (Joomla) & CRM (SugarCRM)
Integrazione Sistemi CRM (Joomla) & CRM (SugarCRM)Integrazione Sistemi CRM (Joomla) & CRM (SugarCRM)
Integrazione Sistemi CRM (Joomla) & CRM (SugarCRM)
 
2011.10 Liferay European Symposium. Alistair Oldfield
2011.10 Liferay European Symposium. Alistair Oldfield2011.10 Liferay European Symposium. Alistair Oldfield
2011.10 Liferay European Symposium. Alistair Oldfield
 
Liferay on docker
Liferay on dockerLiferay on docker
Liferay on docker
 
Intro to OSGi – the Microservices kernel - P Kriens & T Ward
Intro to OSGi – the Microservices kernel - P Kriens & T WardIntro to OSGi – the Microservices kernel - P Kriens & T Ward
Intro to OSGi – the Microservices kernel - P Kriens & T Ward
 
Liferay hardening principles
Liferay hardening principlesLiferay hardening principles
Liferay hardening principles
 
Liferay - Quick Start 1° Episodio
Liferay - Quick Start 1° EpisodioLiferay - Quick Start 1° Episodio
Liferay - Quick Start 1° Episodio
 
Introduzione al Web 2.0
Introduzione al Web 2.0Introduzione al Web 2.0
Introduzione al Web 2.0
 
QCon Sao Paulo Keynote - Microservices, an Unexpected Journey
QCon Sao Paulo Keynote - Microservices, an Unexpected JourneyQCon Sao Paulo Keynote - Microservices, an Unexpected Journey
QCon Sao Paulo Keynote - Microservices, an Unexpected Journey
 
Introduzione ai sistemi di Content Management System (CMS)
Introduzione ai sistemi di Content Management System (CMS)Introduzione ai sistemi di Content Management System (CMS)
Introduzione ai sistemi di Content Management System (CMS)
 
Liferay Configuration and Customization
Liferay Configuration and CustomizationLiferay Configuration and Customization
Liferay Configuration and Customization
 
JAX-WS e JAX-RS
JAX-WS e JAX-RSJAX-WS e JAX-RS
JAX-WS e JAX-RS
 
The Dark Side of Microservices
The Dark Side of MicroservicesThe Dark Side of Microservices
The Dark Side of Microservices
 

Similaire à Microservices: The OSGi way A different vision on microservices

Microservices Without the Hassle
Microservices Without the HassleMicroservices Without the Hassle
Microservices Without the HassleFintan Ryan
 
Microservices Without The Hassle
Microservices Without The HassleMicroservices Without The Hassle
Microservices Without The HassleWeaveworks
 
AWS re:Invent 2016: Moving Mission Critical Apps from One Region to Multi-Reg...
AWS re:Invent 2016: Moving Mission Critical Apps from One Region to Multi-Reg...AWS re:Invent 2016: Moving Mission Critical Apps from One Region to Multi-Reg...
AWS re:Invent 2016: Moving Mission Critical Apps from One Region to Multi-Reg...Amazon Web Services
 
Introduction to Microservices
Introduction to MicroservicesIntroduction to Microservices
Introduction to MicroservicesMahmoudZidan41
 
Cloud-native Data: Every Microservice Needs a Cache
Cloud-native Data: Every Microservice Needs a CacheCloud-native Data: Every Microservice Needs a Cache
Cloud-native Data: Every Microservice Needs a Cachecornelia davis
 
Microservices - opportunities, dilemmas and problems
Microservices - opportunities, dilemmas and problemsMicroservices - opportunities, dilemmas and problems
Microservices - opportunities, dilemmas and problemsŁukasz Sowa
 
Monoliths, Myths, and Microservices - CfgMgmtCamp
Monoliths, Myths, and Microservices - CfgMgmtCampMonoliths, Myths, and Microservices - CfgMgmtCamp
Monoliths, Myths, and Microservices - CfgMgmtCampMichael Ducy
 
Serverless applications
Serverless applicationsServerless applications
Serverless applicationsmbaric
 
Inside Wordnik's Architecture
Inside Wordnik's ArchitectureInside Wordnik's Architecture
Inside Wordnik's ArchitectureTony Tam
 
QCon 2015 - Microservices Track Notes
QCon 2015 - Microservices Track Notes QCon 2015 - Microservices Track Notes
QCon 2015 - Microservices Track Notes Abdul Basit Munda
 
Lightening Talk @Symfony Conference 2016
Lightening Talk @Symfony Conference 2016Lightening Talk @Symfony Conference 2016
Lightening Talk @Symfony Conference 2016ProjectAcom
 
IBM Connect 2017: Your Data In the Major Leagues: A Practical Guide to REST S...
IBM Connect 2017: Your Data In the Major Leagues: A Practical Guide to REST S...IBM Connect 2017: Your Data In the Major Leagues: A Practical Guide to REST S...
IBM Connect 2017: Your Data In the Major Leagues: A Practical Guide to REST S...Serdar Basegmez
 
SACon 2019 - Surviving in a Microservices Environment
SACon 2019 - Surviving in a Microservices EnvironmentSACon 2019 - Surviving in a Microservices Environment
SACon 2019 - Surviving in a Microservices EnvironmentSteve Pember
 
Your last mile to SOA and Web 2.0- Lotus Expeditor for Devices - Eric MF Hsu,...
Your last mile to SOA and Web 2.0- Lotus Expeditor for Devices - Eric MF Hsu,...Your last mile to SOA and Web 2.0- Lotus Expeditor for Devices - Eric MF Hsu,...
Your last mile to SOA and Web 2.0- Lotus Expeditor for Devices - Eric MF Hsu,...mfrancis
 
Pros & Cons of Microservices Architecture
Pros & Cons of Microservices ArchitecturePros & Cons of Microservices Architecture
Pros & Cons of Microservices ArchitectureAshwini Kuntamukkala
 
Creating an Elastic Platform Using Kafka and Microservices in OpenShift
Creating an Elastic Platform Using Kafka and Microservices in OpenShift Creating an Elastic Platform Using Kafka and Microservices in OpenShift
Creating an Elastic Platform Using Kafka and Microservices in OpenShift confluent
 
Surviving in a microservices environment
Surviving in a microservices environmentSurviving in a microservices environment
Surviving in a microservices environmentSteve Pember
 
Liberty: The Right Fit for Micro Profile?
Liberty: The Right Fit for Micro Profile?Liberty: The Right Fit for Micro Profile?
Liberty: The Right Fit for Micro Profile?Dev_Events
 
Microservices and Best Practices
Microservices and Best Practices Microservices and Best Practices
Microservices and Best Practices Weaveworks
 
IBM Connect 2017: Refresh and Extend IBM Domino Applications
IBM Connect 2017: Refresh and Extend IBM Domino ApplicationsIBM Connect 2017: Refresh and Extend IBM Domino Applications
IBM Connect 2017: Refresh and Extend IBM Domino ApplicationsEd Brill
 

Similaire à Microservices: The OSGi way A different vision on microservices (20)

Microservices Without the Hassle
Microservices Without the HassleMicroservices Without the Hassle
Microservices Without the Hassle
 
Microservices Without The Hassle
Microservices Without The HassleMicroservices Without The Hassle
Microservices Without The Hassle
 
AWS re:Invent 2016: Moving Mission Critical Apps from One Region to Multi-Reg...
AWS re:Invent 2016: Moving Mission Critical Apps from One Region to Multi-Reg...AWS re:Invent 2016: Moving Mission Critical Apps from One Region to Multi-Reg...
AWS re:Invent 2016: Moving Mission Critical Apps from One Region to Multi-Reg...
 
Introduction to Microservices
Introduction to MicroservicesIntroduction to Microservices
Introduction to Microservices
 
Cloud-native Data: Every Microservice Needs a Cache
Cloud-native Data: Every Microservice Needs a CacheCloud-native Data: Every Microservice Needs a Cache
Cloud-native Data: Every Microservice Needs a Cache
 
Microservices - opportunities, dilemmas and problems
Microservices - opportunities, dilemmas and problemsMicroservices - opportunities, dilemmas and problems
Microservices - opportunities, dilemmas and problems
 
Monoliths, Myths, and Microservices - CfgMgmtCamp
Monoliths, Myths, and Microservices - CfgMgmtCampMonoliths, Myths, and Microservices - CfgMgmtCamp
Monoliths, Myths, and Microservices - CfgMgmtCamp
 
Serverless applications
Serverless applicationsServerless applications
Serverless applications
 
Inside Wordnik's Architecture
Inside Wordnik's ArchitectureInside Wordnik's Architecture
Inside Wordnik's Architecture
 
QCon 2015 - Microservices Track Notes
QCon 2015 - Microservices Track Notes QCon 2015 - Microservices Track Notes
QCon 2015 - Microservices Track Notes
 
Lightening Talk @Symfony Conference 2016
Lightening Talk @Symfony Conference 2016Lightening Talk @Symfony Conference 2016
Lightening Talk @Symfony Conference 2016
 
IBM Connect 2017: Your Data In the Major Leagues: A Practical Guide to REST S...
IBM Connect 2017: Your Data In the Major Leagues: A Practical Guide to REST S...IBM Connect 2017: Your Data In the Major Leagues: A Practical Guide to REST S...
IBM Connect 2017: Your Data In the Major Leagues: A Practical Guide to REST S...
 
SACon 2019 - Surviving in a Microservices Environment
SACon 2019 - Surviving in a Microservices EnvironmentSACon 2019 - Surviving in a Microservices Environment
SACon 2019 - Surviving in a Microservices Environment
 
Your last mile to SOA and Web 2.0- Lotus Expeditor for Devices - Eric MF Hsu,...
Your last mile to SOA and Web 2.0- Lotus Expeditor for Devices - Eric MF Hsu,...Your last mile to SOA and Web 2.0- Lotus Expeditor for Devices - Eric MF Hsu,...
Your last mile to SOA and Web 2.0- Lotus Expeditor for Devices - Eric MF Hsu,...
 
Pros & Cons of Microservices Architecture
Pros & Cons of Microservices ArchitecturePros & Cons of Microservices Architecture
Pros & Cons of Microservices Architecture
 
Creating an Elastic Platform Using Kafka and Microservices in OpenShift
Creating an Elastic Platform Using Kafka and Microservices in OpenShift Creating an Elastic Platform Using Kafka and Microservices in OpenShift
Creating an Elastic Platform Using Kafka and Microservices in OpenShift
 
Surviving in a microservices environment
Surviving in a microservices environmentSurviving in a microservices environment
Surviving in a microservices environment
 
Liberty: The Right Fit for Micro Profile?
Liberty: The Right Fit for Micro Profile?Liberty: The Right Fit for Micro Profile?
Liberty: The Right Fit for Micro Profile?
 
Microservices and Best Practices
Microservices and Best Practices Microservices and Best Practices
Microservices and Best Practices
 
IBM Connect 2017: Refresh and Extend IBM Domino Applications
IBM Connect 2017: Refresh and Extend IBM Domino ApplicationsIBM Connect 2017: Refresh and Extend IBM Domino Applications
IBM Connect 2017: Refresh and Extend IBM Domino Applications
 

Plus de Miguel Pastor

Liferay & Big Data Dev Con 2014
Liferay & Big Data Dev Con 2014Liferay & Big Data Dev Con 2014
Liferay & Big Data Dev Con 2014Miguel Pastor
 
Liferay and Big Data
Liferay and Big DataLiferay and Big Data
Liferay and Big DataMiguel Pastor
 
Reactive applications and Akka intro used in the Madrid Scala Meetup
Reactive applications and Akka intro used in the Madrid Scala MeetupReactive applications and Akka intro used in the Madrid Scala Meetup
Reactive applications and Akka intro used in the Madrid Scala MeetupMiguel Pastor
 
Reactive applications using Akka
Reactive applications using AkkaReactive applications using Akka
Reactive applications using AkkaMiguel Pastor
 
Liferay Devcon 2013: Our way towards modularity
Liferay Devcon 2013: Our way towards modularityLiferay Devcon 2013: Our way towards modularity
Liferay Devcon 2013: Our way towards modularityMiguel Pastor
 
Liferay Module Framework
Liferay Module FrameworkLiferay Module Framework
Liferay Module FrameworkMiguel Pastor
 
Hadoop, Cloud y Spring
Hadoop, Cloud y Spring Hadoop, Cloud y Spring
Hadoop, Cloud y Spring Miguel Pastor
 
Scala: un vistazo general
Scala: un vistazo generalScala: un vistazo general
Scala: un vistazo generalMiguel Pastor
 
Platform as a Service overview
Platform as a Service overviewPlatform as a Service overview
Platform as a Service overviewMiguel Pastor
 
Aspect Oriented Programming introduction
Aspect Oriented Programming introductionAspect Oriented Programming introduction
Aspect Oriented Programming introductionMiguel Pastor
 
Software measure-slides
Software measure-slidesSoftware measure-slides
Software measure-slidesMiguel Pastor
 
Groovy and Grails intro
Groovy and Grails introGroovy and Grails intro
Groovy and Grails introMiguel Pastor
 

Plus de Miguel Pastor (18)

Liferay & Big Data Dev Con 2014
Liferay & Big Data Dev Con 2014Liferay & Big Data Dev Con 2014
Liferay & Big Data Dev Con 2014
 
Liferay and Big Data
Liferay and Big DataLiferay and Big Data
Liferay and Big Data
 
Reactive applications and Akka intro used in the Madrid Scala Meetup
Reactive applications and Akka intro used in the Madrid Scala MeetupReactive applications and Akka intro used in the Madrid Scala Meetup
Reactive applications and Akka intro used in the Madrid Scala Meetup
 
Reactive applications using Akka
Reactive applications using AkkaReactive applications using Akka
Reactive applications using Akka
 
Liferay Devcon 2013: Our way towards modularity
Liferay Devcon 2013: Our way towards modularityLiferay Devcon 2013: Our way towards modularity
Liferay Devcon 2013: Our way towards modularity
 
Liferay Module Framework
Liferay Module FrameworkLiferay Module Framework
Liferay Module Framework
 
Liferay and Cloud
Liferay and CloudLiferay and Cloud
Liferay and Cloud
 
Jvm fundamentals
Jvm fundamentalsJvm fundamentals
Jvm fundamentals
 
Scala Overview
Scala OverviewScala Overview
Scala Overview
 
Hadoop, Cloud y Spring
Hadoop, Cloud y Spring Hadoop, Cloud y Spring
Hadoop, Cloud y Spring
 
Scala: un vistazo general
Scala: un vistazo generalScala: un vistazo general
Scala: un vistazo general
 
Platform as a Service overview
Platform as a Service overviewPlatform as a Service overview
Platform as a Service overview
 
HadoopDB
HadoopDBHadoopDB
HadoopDB
 
Aspect Oriented Programming introduction
Aspect Oriented Programming introductionAspect Oriented Programming introduction
Aspect Oriented Programming introduction
 
Software measure-slides
Software measure-slidesSoftware measure-slides
Software measure-slides
 
Arquitecturas MMOG
Arquitecturas MMOGArquitecturas MMOG
Arquitecturas MMOG
 
Software Failures
Software FailuresSoftware Failures
Software Failures
 
Groovy and Grails intro
Groovy and Grails introGroovy and Grails intro
Groovy and Grails intro
 

Dernier

Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
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-...Steffen Staab
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsArshad QA
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
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 GoalsJhone kinadey
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️Delhi Call girls
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionSolGuruz
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️anilsa9823
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...OnePlan Solutions
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxComplianceQuest1
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerThousandEyes
 

Dernier (20)

Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
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-...
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
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
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
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
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 

Microservices: The OSGi way A different vision on microservices

  • 1. Microservices: The OSGi way A different vision on microservices ! Miguel Ángel Pastor Olivar Senior Software Engineer
  • 2. About me Who am I? ! • Just a random guy ! • Member of the Liferay core infrastructure team ! • Email: miguel.pastor@liferay.com ! • @miguelinlas3 #LRNAS2014
  • 3. Synopsis What are we going to talk about? ! • Traditional approaches for development and deployment ! • Micro services: demystifying it! ! • An OSGi based vision of it ! • How does it relate to Liferay? ! • Questions (and hopefully answers) #LRNAS2014
  • 5. The monolith #LRNAS2014 Web Browser Relational Database App Server Load Balancer UI Business Services Domain Model War File Mobile Device
  • 6. The monolith Benefits ! • Easier to develop ! • Simple to deploy ! • Simple to scale ! • Works well for small applications #LRNAS2014
  • 7. The monolith Drawbacks ! • Unwieldy for big and complex applications ! • Hard to understand, maintain and reason about ! – Hard to get up to speed ! • Complex “continuous deployment” scenarios ! – Deploy the whole entity on every change ! • Extremely hard to try/adopt new technologies/architectures #LRNAS2014
  • 8. The monolith Drawbacks ! • Scaling can become difficult ! – Only one dimension scaling ! • Scaling development teams ! – Hard to focus teams and efforts #LRNAS2014
  • 10. The scale cube Source http://microservices.io/articles/ scalecube.html #LRNAS2014
  • 12. The scale cube X-Axis scaling ! • Multiple copies running behind a load balancer ! • Ideally, each copy handles 1/N of the load ! • Great way to improve capacity and availability ! • Common approach to scaling #LRNAS2014
  • 13. The scale cube Server 1 #LRNAS2014 X-Axis scaling Load Balancer Web Browser Mobile Device Server N 1/N 1/N
  • 15. The scale cube Z-Axis scaling ! • Each server runs and identical copy of the code ! – Similar to X-axis scaling ! • But each server is in charge of a subset of the data ! • We need smarter routing ! • We can apply the similar concepts to applications ! • Sharding, SLA, … #LRNAS2014
  • 16. The scale cube #LRNAS2014 Load Balancer Web Browser Mobile Device SLA 99.99% Y-Axis scaling Server 1 Server 2 Server 4 Server 3 Server 1 Server 2 Server 4 Server 3 SLA 99%
  • 17. The scale cube Z-Axis scaling: Benefits ! • Each server deals with a subset of the data ! • Cache and memory usage are improved ! • I/O traffic is reduced ! • Transaction scalability is improved ! • Improved fault isolation #LRNAS2014
  • 18. The scale cube Z-Axis scaling: Drawbacks ! • Application complexity increases ! • Partitioning scheme needs to be implemented ! • Doesn’t solve the problems of increasing development and application complexity #LRNAS2014
  • 20. The scale cube Y-Axis scaling ! • Functional decomposition ! • Each service is in charge of 1 (or multiple) tightly related functions ! • No golden rule ! – Verb based decomposition ! – Entity/resources related operations #LRNAS2014
  • 21. The scale cube #LRNAS2014 UI Business Services War File Business Services Business Services UI UI Business Services
  • 22. The scale cube Y-Axis scaling: Benefits ! • Each service is reasonably small ! • Faster startup ! • Independent scaling ! – X-axis or Y-axis scaling on every single service ! • Fault isolation improvements ! • Breakage with long term tech commitments #LRNAS2014
  • 23.
  • 24. The scale cube Y-Axis scaling: drawbacks ! • Distributed systems are hard!! ! • Really really hard!! ! • Interprocess communication ! • Operational complexity introduced ! • Stronger coordination among teams ! • Not suitable for everybody #LRNAS2014
  • 26. Communications: Gateway pattern Browser #LRNAS2014 Business Services War File Business Services Business Services Mobile Device Business Services API Gateway
  • 27. Gateway API Gateway API ! • API tailored client ! • Encapsulation ! • Composition ! • Different evolution #LRNAS2014
  • 29. Interprocess communications Synchronous RPC ! • REST or SOAP ! • Both are “simple?” and familiar ! • Firewall friendly ! • Discovery service (Zookeeper, Etcd, …) ! • IMHO, there is better options than HTTP #LRNAS2014
  • 30. Interprocess communications Asynchronous messaging ! • “AMQP like” message broker ! • Decouple producers from consumers ! • New element to deploy and manage (the message broker) ! • Actor model? #LRNAS2014
  • 32. Data management Decentralized data management ! • Each service, potentially, could have its own database ! • Even different types of databases (SQL, NoSQL, …) ! • Distributed transactions come into place :( • 2PC, 3PC, … ! • Event-driven asynchronous updates ! • Different consistency model #LRNAS2014
  • 33. An OSGi based vision of Microservices
  • 34. What is OSGi #LRNAS2014
  • 36. OSGi μServices Features ! • Run within the same JVM ! • Highly dynamic ! • Implemented within the Service registry ! • Runtime lifecycle management #LRNAS2014
  • 39. Focused components OSGi modules and services ! • Modules allow us to hide implementations and decouple ! • Use service layer to communicate each other ! • They can be deployed independently ! – For now we are talking about single JVM ! • Modules/services can disappear at any point in time – Highly dynamic ! – Closely related to distribution (more details later on) #LRNAS2014
  • 41. Fault isolation Not real fault isolation ! • We get independent deployments through bundles ! • Living within the same JVM. No real fault isolation ! • A service could consume the whole CPU/memory or saturates the network ! • Some research work on multi tenant JVM by IBM #LRNAS2014
  • 43. Tech commitment Partial breakage with long tech commitments ! • We already have isolated and highly focused pieces ! • Communication is done through services ! • Some nice JVM based alternatives: Scala, Clojure, Groovy, … ! • Cannot use a completely different tech: Erlang, Go, … #LRNAS2014
  • 45. Missing pieces We are still missing … ! • Independent scaling of every service ! • Real isolation ! • Solutions to the previous problems ! • Process (JVM) ! • Linux Containers (Solaris Zones, …) ! • Distribution #LRNAS2014
  • 46. Missing pieces A typical approach ! • Deploy your app in a different machine/container/process ! • Communicate them using your preferred approach ! • REST ! • ZeroMQ ! • AMQP #LRNAS2014
  • 47. Missing pieces OSGi Remote Services ! • Near transparent extension to the Services model ! • No explicit infrastructure API in user land ! • Non mandatory technology (HTTP, JMS, RMI, …) ! • Two OSGi specifications ! • Remote Services: mechanics of transport ! • Remote Service Admin: topology, service discovery #LRNAS2014
  • 50. Remote services Alternatives ! • Amdatu ! • Eclipse Communication Framework ! • Apache CXF Distributed OSGi #LRNAS2014
  • 53. Remote services #LRNAS2014 Polls Service
  • 54. Remote services #LRNAS2014 Bookmarks Service Polls Service
  • 55. Remote services #LRNAS2014 Bookmarks Service Polls Service MB Service
  • 56. Remote services #LRNAS2014 Bookmarks Service Polls Service MB Service Client Service Client Service
  • 57. Remote services #LRNAS2014 Bookmarks Service Polls Service MB Service Polls Service Client Service Client Service
  • 58. Remote services #LRNAS2014 Bookmarks Service Polls Service MB Service Client Service Polls Service Polls Service Client Service
  • 59. Remote services #LRNAS2014 Bookmarks Service Polls Service MB Service Client Service Client Service Polls Service Polls Service Polls Service
  • 60. Remote services #LRNAS2014 Bookmarks Service Polls Service MB Service Client Service Client Service Polls Service Polls Service Polls Service
  • 61. Remote services #LRNAS2014 Bookmarks Service Polls Service MB Service Client Service Client Service Polls Service Polls Service Polls Service
  • 62. Missing pieces Usage ! • Install and configure your infrastructure ! • Non intrusive: just a few properties in your service definition #LRNAS2014
  • 63. Missing pieces Usage ! • Install and configure your infrastructure ! • Non intrusive: just a few properties in your service definition #LRNAS2014
  • 65. Liferay Can we apply this to Liferay? ! • OSGi as one of the core techs of the product ! • Split the product into small and independent focused components/services ! • Independent deployments • Still within the same JVM ! • Focused teams and efforts #LRNAS2014