- Open Source Day 2015

Liferay Portal 7
(micro)services
for the enterprise
Milen Dyankov
@milendyankov
Microservices
characteristics!
Componentization via Services
Organized around Business Capabilities
Products not Projects
Smart endpoints and dumb pipes
Decentralized Governance
Decentralized Data Management
Infrastructure Automation
Design for failure
Evolutionary Design
...
...
...
or
...
...
∞
or
...
...
...
∞
or
...
Reduced complexity !!!
...
...
∞
or
...
...
then all you are doing is shifting
complexity from inside a
component to the connections
between components.
...
it moves it to a place that's
less explicit and harder to
control.
...
The Deployment Model is a Detail.
...
there is no such thing
as a micro-service
architecture.
Micro-services are a
deployment option
...
50% not strictly software but
rather operations related!
Componentization via Services
Organized around Business Capabilities
Products not Projects
Smart endpoints and dumb pipes
Decentralized Governance
Decentralized Data Management
Infrastructure Automation
Design for failure
Evolutionary Design
Let's focus on software
related ones
Componentization via Services
Smart endpoints and dumb pipes
Decentralized Data Management
Design for failure
OSGi services
OSGi service registry
Interface
Service 1
...
Service N
manifest
manifest
manifest
OSGi services
OSGi service registry
Interface
Service 1
REGISTER
...
Service N
REGISTER
manifest
USE
manifest
manifest
OSGi services
OSGi service registry
HTTP
Service
GET
HTTPServiceImpl
REGISTER
manifest
REGISTER
SERVLET
HTTPServiceImpl
REGISTER
SERVLET
GET
OSGi services
applying White Board Pattern
OSGi service registry
HTTP
Servlet
Servlet1
(path=”/1”)
REGISTER
Servlet2
(path=”/2”)
manifest
REGISTER
GET
(when needed)
SERVLET
HTTPServiceImpl
SERVLET
●
Componentization via Services
OSGi service registry
HTTP
Servlet
Servlet1
(path=”/1”)
REGISTER
Servlet2
(path=”/2”)
manifest
REGISTER
GET
(when needed)
SERVLET
HTTPServiceImpl
SERVLET
no
Smart endpoints and dumb pipes
OSGi service registry
HTTP
Servlet
Servlet1
(path=”/1”)
REGISTER
Servlet2
(path=”/2”)
manifest
REGISTER
GET
(when needed)
SERVLET
HTTPServiceImpl
SERVLET
Decentralized Data Management
Everything
OSGi service registry
HTTP
Servlet
Servlet1
(path=”/1”)
REGISTER
Servlet2
(path=”/2”)
manifest
REGISTER
GET
(when needed)
SERVLET
HTTPServiceImpl
SERVLET
Design for failure
OSGi service registry
HTTP
Servlet
Servlet1
(path=”/1”)
REGISTER
Servlet2
(path=”/2”)
manifest
REGISTER
GET
(when needed)
SERVLET
HTTPServiceImpl
SERVLET
Remote services
OSGi service registry
Interface
Service 1
Service 1 (remote)
OSGi service registry
Interface
Service 1
DEMO
milen.dyankov@liferay.com
http://www.liferay.com/web/milen.dyankov/
@milendyankov
@LiferayPL
http://www.liferay.com
@Liferay
http://www.facebook.com/Liferay