SlideShare a Scribd company logo
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)

More Related Content

What's hot

Connecting All Abstractions with Istio
Connecting All Abstractions with IstioConnecting All Abstractions with Istio
Connecting All Abstractions with Istio
VMware Tanzu
 
Microservices Integration Patterns with Kafka
Microservices Integration Patterns with KafkaMicroservices Integration Patterns with Kafka
Microservices Integration Patterns with Kafka
Kasun Indrasiri
 
Asynchronous Microservices in nodejs
Asynchronous Microservices in nodejsAsynchronous Microservices in nodejs
Asynchronous Microservices in nodejs
Bruno Pedro
 
Microservices in Action
Microservices in ActionMicroservices in Action
Microservices in Action
Bhagwat 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
 
Microservices with Spring
Microservices with SpringMicroservices with Spring
Microservices with Spring
Software Infrastructure
 
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
 
Microservice architecture
Microservice architectureMicroservice architecture
Microservice architecture
Žilvinas Kuusas
 
[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
WSO2
 
[WSO2Con EU 2017] Microservices for Enterprises
[WSO2Con EU 2017] Microservices for Enterprises[WSO2Con EU 2017] Microservices for Enterprises
[WSO2Con EU 2017] Microservices for Enterprises
WSO2
 
API Gateway: Nginx way
API Gateway: Nginx wayAPI Gateway: Nginx way
API Gateway: Nginx way
inovia
 
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
Christian 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 Baum
mfrancis
 
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
Christian 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 clusteres
Brian Chambers
 
[WSO2Con EU 2017] Container-native Architecture
[WSO2Con EU 2017] Container-native Architecture[WSO2Con EU 2017] Container-native Architecture
[WSO2Con EU 2017] Container-native Architecture
WSO2
 
Atlanta Microservices Day: Istio Service Mesh
Atlanta Microservices Day: Istio Service MeshAtlanta Microservices Day: Istio Service Mesh
Atlanta Microservices Day: Istio Service Mesh
Christian Posta
 

What's hot (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
 

Viewers also liked

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
Milen Dyankov
 
Overview of Liferay 7 Technology
Overview of Liferay 7 TechnologyOverview of Liferay 7 Technology
Overview of Liferay 7 Technology
Azilen Technologies Pvt. Ltd.
 
Liferay 7
Liferay 7Liferay 7
Liferay 7
Son Nguyen
 
OSGi e Liferay 7
OSGi e Liferay 7OSGi e Liferay 7
OSGi e Liferay 7
Antonio Musarra
 
Microservices OSGi-running-with-apache-karaf
Microservices OSGi-running-with-apache-karafMicroservices OSGi-running-with-apache-karaf
Microservices OSGi-running-with-apache-karaf
Achim Nierbeck
 
Liferay Portal Introduction
Liferay Portal IntroductionLiferay Portal Introduction
Liferay Portal Introduction
Nguyen Tung
 
TDD on OSGi, in practice.
TDD on OSGi, in practice.TDD on OSGi, in practice.
TDD on OSGi, in practice.
Elian, I.
 
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
André Ricardo Barreto de Oliveira
 
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 Oldfield
Emeldi Group
 
Liferay on docker
Liferay on dockerLiferay on docker
Liferay on docker
Geeta Raghu Vamsi Kotipalli
 
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
mfrancis
 
Liferay hardening principles
Liferay hardening principlesLiferay hardening principles
Liferay hardening principles
Ambientia
 
Liferay - Quick Start 1° Episodio
Liferay - Quick Start 1° EpisodioLiferay - Quick Start 1° Episodio
Liferay - Quick Start 1° Episodio
Antonio Musarra
 
Introduzione al Web 2.0
Introduzione al Web 2.0Introduzione al Web 2.0
Introduzione al Web 2.0
Antonio 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 Journey
Sam 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 Customization
Thành Nguyễn
 
JAX-WS e JAX-RS
JAX-WS e JAX-RSJAX-WS e JAX-RS
JAX-WS e JAX-RS
Antonio Musarra
 
The Dark Side of Microservices
The Dark Side of MicroservicesThe Dark Side of Microservices
The Dark Side of Microservices
Nicolas Fränkel
 

Viewers also liked (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
 

Similar to Microservices: The OSGi way A different vision on microservices

Microservices Without the Hassle
Microservices Without the HassleMicroservices Without the Hassle
Microservices Without the Hassle
Fintan Ryan
 
Microservices Without The Hassle
Microservices Without The HassleMicroservices Without The Hassle
Microservices Without The Hassle
Weaveworks
 
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 Microservices
MahmoudZidan41
 
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
cornelia 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 - CfgMgmtCamp
Michael Ducy
 
Serverless applications
Serverless applicationsServerless applications
Serverless applications
mbaric
 
Inside Wordnik's Architecture
Inside Wordnik's ArchitectureInside Wordnik's Architecture
Inside Wordnik's Architecture
Tony 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 2016
ProjectAcom
 
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 Environment
Steve 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 Architecture
Ashwini 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 environment
Steve 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 Applications
Ed Brill
 

Similar to 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
 

More from Miguel Pastor

Liferay & Big Data Dev Con 2014
Liferay & Big Data Dev Con 2014Liferay & Big Data Dev Con 2014
Liferay & Big Data Dev Con 2014
Miguel Pastor
 
Liferay and Big Data
Liferay and Big DataLiferay and Big Data
Liferay and Big Data
Miguel 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 Akka
Miguel 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 Framework
Miguel Pastor
 
Liferay and Cloud
Liferay and CloudLiferay and Cloud
Liferay and Cloud
Miguel Pastor
 
Jvm fundamentals
Jvm fundamentalsJvm fundamentals
Jvm fundamentals
Miguel Pastor
 
Scala Overview
Scala OverviewScala Overview
Scala Overview
Miguel 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 general
Miguel Pastor
 
Platform as a Service overview
Platform as a Service overviewPlatform as a Service overview
Platform as a Service overview
Miguel Pastor
 
HadoopDB
HadoopDBHadoopDB
HadoopDB
Miguel Pastor
 
Aspect Oriented Programming introduction
Aspect Oriented Programming introductionAspect Oriented Programming introduction
Aspect Oriented Programming introduction
Miguel Pastor
 
Software measure-slides
Software measure-slidesSoftware measure-slides
Software measure-slides
Miguel Pastor
 
Arquitecturas MMOG
Arquitecturas MMOGArquitecturas MMOG
Arquitecturas MMOG
Miguel Pastor
 
Groovy and Grails intro
Groovy and Grails introGroovy and Grails intro
Groovy and Grails intro
Miguel Pastor
 

More from 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
 

Recently uploaded

Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Anthony Dahanne
 
2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx
Georgi Kodinov
 
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdfDominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
AMB-Review
 
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.ILBeyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Natan Silnitsky
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
abdulrafaychaudhry
 
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdfEnhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
Jay Das
 
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume MontevideoVitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
Paco van Beckhoven
 
Cyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdfCyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdf
Cyanic lab
 
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
rickgrimesss22
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
Adele Miller
 
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
XfilesPro
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
Philip Schwarz
 
BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024
Ortus Solutions, Corp
 
Enhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdfEnhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdf
Globus
 
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisProviding Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Globus
 
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Globus
 
How Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptxHow Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptx
wottaspaceseo
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
Max Andersen
 
top nidhi software solution freedownload
top nidhi software solution freedownloadtop nidhi software solution freedownload
top nidhi software solution freedownload
vrstrong314
 

Recently uploaded (20)

Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
 
2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx
 
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdfDominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
 
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.ILBeyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
 
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdfEnhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
 
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume MontevideoVitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume Montevideo
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
 
Cyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdfCyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdf
 
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
 
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
 
BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024
 
Enhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdfEnhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdf
 
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisProviding Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
 
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
 
How Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptxHow Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptx
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
 
top nidhi software solution freedownload
top nidhi software solution freedownloadtop nidhi software solution freedownload
top nidhi software solution freedownload
 

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