liferay 7 - microservices for the enterprise

25
Milen Dyankov @milendyankov Liferay Portal 7 (micro)services for the enterprise

Upload: milen-dyankov

Post on 30-Jul-2015

204 views

Category:

Software


2 download

TRANSCRIPT

Milen Dyankov@milendyankov

Liferay Portal 7 (micro)services for the enterprise

Componentization via ServicesOrganized around Business CapabilitiesProducts not ProjectsSmart endpoints and dumb pipesDecentralized GovernanceDecentralized Data ManagementInfrastructure AutomationDesign for failureEvolutionary Design

Microservices characteristics!

. . .

. . .

. . .

. . .or

. . .or

. . .∞

. . .or

. . .∞

. . .

. . .or

. . .

Reduced complexity !!!

. . .

. . .

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 . . .

Componentization via ServicesOrganized around Business CapabilitiesProducts not ProjectsSmart endpoints and dumb pipesDecentralized GovernanceDecentralized Data ManagementInfrastructure AutomationDesign for failureEvolutionary Design

50% not strictly software butrather operations related!

Componentization via Services

Smart endpoints and dumb pipes

Decentralized Data Management

Design for failure

Let's focus on software related ones

OSGi services

manifestmanifestmanifest manifest

OSGi service registry

Interface

Service 1

. . .

Service N

OSGi services

manifestmanifestmanifest

OSGi service registry

REGISTER

REGISTER

USE

manifest

Interface

Service 1

. . .

Service N

OSGi services

manifestmanifest

OSGi service registry

SERVLET

SERVLET

GET GET

REGISTER

REGISTER

HTTPServiceImpl

HTTPService

HTTPServiceImpl

REGISTER

OSGi services

manifestmanifest

OSGi service registry

HTTPServlet

REGISTER

SERVLET

SERVLET

GET(when needed)

HTTPServiceImpl

Servlet1 (path=”/1”)

Servlet2 (path=”/2”)

REGISTER

applying White Board Pattern

● Componentization via Services

manifestmanifest

OSGi service registry

HTTPServlet

REGISTER

SERVLET

SERVLET

GET(when needed)

HTTPServiceImpl

Servlet1 (path=”/1”)

Servlet2 (path=”/2”)

REGISTER

Smart endpoints and dumb pipes

manifestmanifest

OSGi service registry

HTTPServlet

REGISTER

SERVLET

SERVLET

GET(when needed)

HTTPServiceImpl

Servlet1 (path=”/1”)

Servlet2 (path=”/2”)

REGISTER

no

Decentralized Data Management

manifestmanifest

OSGi service registry

HTTPServlet

REGISTER

SERVLET

SERVLET

GET(when needed)

HTTPServiceImpl

Servlet1 (path=”/1”)

Servlet2 (path=”/2”)

REGISTER

Everything

Design for failure

manifestmanifest

OSGi service registry

HTTPServlet

REGISTER

SERVLET

SERVLET

GET(when needed)

Servlet1 (path=”/1”)

Servlet2 (path=”/2”)

REGISTER

HTTPServiceImpl

Remote services

OSGi service registry

Interface

Service 1

Service 1 (remote)

OSGi service registry

Interface

Service 1

DEMO

[email protected]

http://www.liferay.com/web/milen.dyankov/

@milendyankov@LiferayPL

http://www.liferay.com

@Liferay

http://www.facebook.com/Liferay