paremus service fabric

83
Introduction to The Paremus Services Fabric 19 January 2012 OSGi™ Users’ Forum DC Metro …a distributed application server for running OSGi technology-based applications across anything from a few computing resources to a large-scale Cloud. The Paremus Service Fabric extends OSGi technology’s dynamic module capabilities across multiple network-connected Java Virtual Machines (JVMs) to create an incredibly robust and efficient distributed platform for enterprise applications.

Upload: pjhinovex

Post on 13-May-2015

1.458 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Paremus service fabric

Introduction to The Paremus Services Fabric

19 January 2012

OSGi™ Users’ Forum DC Metro

…a distributed application server for running OSGi technology-based applications across anything from a few computing resources to a large-scale Cloud. The Paremus Service Fabric

extends OSGi technology’s dynamic module capabilities across multiple network-connected Java Virtual Machines (JVMs) to create an incredibly robust and efficient distributed platform for enterprise

applications.

Page 2: Paremus service fabric

But First!

… a little context about OSGi technology…

Page 3: Paremus service fabric

The Problem• Software Complexity is Increasing at an Alarming Rate

• Shortened Product Cycles

• Requirements for Drastically Increased Functionality

• Increasing Number of Variations of the Same Product

• Software Development [Today] Largely Consists of Adapting Existing Functionality to Perform in a New Environment.

• Integrating Many Different Libraries Can be Daunting

• Monolithic Software Products Undergo Heavy Testing Cycle

• Unsynchronized Evolution of Different Libraries

• Key Issue: Today's Software Environments Focus On Writing New Software, Instead of Integrating Existing Software Into New Systems

• Need Tools That Standardize Integration Aspects of Software so that Reusing Existing Components Becomes Reliable, Robust and Cheap

From OSGi™ Alliance

Page 4: Paremus service fabric

The Solution – OSGi™ • The Dynamic Module System for Java™

• Provides Standardized Primitives That Allow Applications to be Constructed from Small, Reusable and Collaborative Components

• Components can be Composed Into an Application and Deployed

• Provides Functions to Change Composition Dynamically on Device of a Variety of Networks, Without Requiring Restarts

• To Minimize & Manage Coupling, Provides a Service-oriented Architecture that Enables Components to Dynamically Discover Each Other

• Many Standard Component Interfaces Developed (e.g. HTTP Servers, Configuration, Logging, Security, User Administration, and XML)

• Provides for Integration of Pre-built, Pre-tested, [Pre-Approved] Component Subsystems

• Reduces Maintenance Costs and Enables Unique New Aftermarket Opportunities Because Components can be Dynamically Delivered to Devices in the FieldFrom OSGi™ Alliance

Page 5: Paremus service fabric

Fine! But What about Cloud [Computing]?

I’m glad you asked!

Let’s Talk about Cloud and OSGi technology.

Page 6: Paremus service fabric

Copyright © 2011 Paremus Ltd.May not be reproduced by any means without express permission. All rights reserved.

Service Fabric Overview November 2011

[email protected]

The Dawn of Composite Clouds

Richard Nicholson: Paremus CEOPresident of the OSGi Alliance

Page 7: Paremus service fabric

Copyright © 2011 Paremus Ltd.May not be reproduced by any means without express permission. All rights reserved.

Service Fabric Overview November 2011

•Background & Drivers

•Atlas Resource Management

•The Service Fabric

•Additional Slides

Page 8: Paremus service fabric

Copyright © 2011 Paremus Ltd.May not be reproduced by any means without express permission. All rights reserved.

Service Fabric Overview November 2011

Background & Drivers

Page 9: Paremus service fabric

Copyright © 2011 Paremus Ltd.May not be reproduced by any means without express permission. All rights reserved.

Service Fabric Overview November 2011

‘Cloud Computing’, ‘Grid’, ‘Virtualisation’addresses this.

?

Breakdown of OPEX costs

Anne Thomas Manes (Gartner) – SOA Symposium: Berlin, October 2010

Environmental Complexity!

Page 10: Paremus service fabric

Copyright © 2011 Paremus Ltd.May not be reproduced by any means without express permission. All rights reserved.

Service Fabric Overview November 2011

Hardware Cost?

Resource Current

Image Cloud Image Cloud

Target Resource Utilisation 5% 30% 50%

Network Loading / Upgrade Cost ? minimal

Storage Consumption ? minimal

Page 11: Paremus service fabric

Copyright © 2011 Paremus Ltd.May not be reproduced by any means without express permission. All rights reserved.

Service Fabric Overview November 2011

Development Breakdown?

Activities Saving

Code Re-Use % of code re-use

Agile Development (modules) smaller parallel teams

Increased Test Efficiency % increase in test / release efficiency

Effective Outsource of Modules % of modules outsourced / market

Increased Project Success failed projects / overruns

Page 12: Paremus service fabric

Copyright © 2011 Paremus Ltd.May not be reproduced by any means without express permission. All rights reserved.

Service Fabric Overview November 2011

Maintenance Breakdown?

Activities % of Maintenance

OPEX

Initial Install / Deploy _? small

Library / Code upgrades - IT Debt / avoiding code rot _? large (Gartner)

Ongoing Configure / Re-Configure

effort required / cost

Failure / Fix / Recoverlost business due to service

outage

Functional Updates effort required / cost

Page 13: Paremus service fabric

Copyright © 2011 Paremus Ltd.May not be reproduced by any means without express permission. All rights reserved.

Service Fabric Overview November 2011

Observations

1. The Unit of Deployment is...

• The Unit of Fix / Maintenance

• The Potential Unit of Reuse

2. Time to Deploy - Directly Influences...

• Time to Recover a Failed Service / Environment

• Time to Scale an Environment in Response to Business Load

DetectDecision

Response

Must Optimize

Page 14: Paremus service fabric

Copyright © 2011 Paremus Ltd.May not be reproduced by any means without express permission. All rights reserved.

Service Fabric Overview November 2011

Modules vs. Images Deployment Artifact

Artifact Module Centric Image Centric

Machine Image ~ 1 to 2 Gbytes per

node~ 1 to 2 Gbytes per node

Application ~ 1 TO 100 Mbytes ~ 1 to 2 Gbytes per node

Application Patch ~ 100’s Kbytes ~ 1 to 2 Gbytes per node

Property / Config Changes ~ 1 Kbyte ~ 1 to 2 Gbytes per node

Page 15: Paremus service fabric

Copyright © 2011 Paremus Ltd.May not be reproduced by any means without express permission. All rights reserved.

Service Fabric Overview November 2011

What does this mean?

Action Module Centric Image Centric

Deploying an Application ~20 minutes ~3.3 hours

Patching / Roll Back ~ 4 minute ~3.3 hours

Updating a Configuration / Property < 1 minute ~3.3 hours

Time to Scale Resource Horizontally by 10% ~2 minutes 33 minutes

Impact on Network Utilization Low High

Impact on Business Service Fast Scale & Recovery Slow Scale & Recovery

Impact on Operations Low High

The Following Assumes:• 1 Gbit Network

• 1000 Physical Nodes DetectDecision

Response

DetectDecision

Response

~4 mins. 3.3 hours!

Page 16: Paremus service fabric

Copyright © 2011 Paremus Ltd.May not be reproduced by any means without express permission. All rights reserved.

Service Fabric Overview November 2011

What does this mean?

Module Centric Image CentricSize of Repository ~150 Gigabyte ~40 Terabyte

The following Assumes:• 1,500 Applications

• 3 Versions of Application

• 6 Different Configurations of Each Application • (Development, UAT, Production, Contingency, etc.)

Page 17: Paremus service fabric

Copyright © 2011 Paremus Ltd.May not be reproduced by any means without express permission. All rights reserved.

Service Fabric Overview November 2011

• 120 Billion Lines of Code Written in 1990• 250 Billion Lines of Code Written in 2000• Lines of Code Double Every 7 Years• 50% of Development Time Spent Understanding Code• 90% of Software Cost is Maintenance & Evolution

Source: http://users.jyu.fi/~koskinen/smcosts.htm

The Complexity Crisis

Source: Burton Group Analyst Kirk Koernschild - http://techdistrict.kirkk.com/

2010

2003

1996

1989

Consider this…

Page 18: Paremus service fabric

Copyright © 2011 Paremus Ltd.May not be reproduced by any means without express permission. All rights reserved.

Service Fabric Overview November 2011

Why OSGi?

•Modularization Forces ‘Accidental Complexity’ out of the Development Environment

•Boundaries Enforce a Clean Interface / Contract between Participants in the Environment: at Each Layer of Structural Hierarchy!

•Enforces Low Coupling & High Cohesion

•Unit of Deployment is Unit of Re-use

•Unit of Deployment is Unit of MaintenancePatterns of Modular Architecture

Kirk Knoernschild - http://www.kirkk.com/modularity/chapters/Think about that for a second!

Page 19: Paremus service fabric

Copyright © 2011 Paremus Ltd.May not be reproduced by any means without express permission. All rights reserved.

Service Fabric Overview November 2011

Design Principles

➟ The Smaller the Deployment Artifacts - the

Better! Deploy Bundles

➟ But We Must Manage the ‘Aggregate’ to

AvoidOperational Complexity -

Manage the Composite Systems

DetectDecision

Response

Must Optimize

Page 20: Paremus service fabric

Copyright © 2011 Paremus Ltd.May not be reproduced by any means without express permission. All rights reserved.

Service Fabric Overview November 2011

Modular Systems are Maintainable Systems

Anne Thomas Manes (Gartner) – SOA Symposium: Berlin, October 2010

Paremus Service FabricAddresses Maintenance Costs, Development Costs, as well as Resource Optimization.

OPEX Applicability of VM-based (non-Modular) Private Cloud Solutions.

Page 21: Paremus service fabric

Copyright © 2011 Paremus Ltd.May not be reproduced by any means without express permission. All rights reserved.

Service Fabric Overview November 2011

Atlas - Resource Management

Page 22: Paremus service fabric

Copyright © 2011 Paremus Ltd.May not be reproduced by any means without express permission. All rights reserved.

Service Fabric Overview November 2011

Managing characteristics of population

rather than each individual node has a

dramatic effect on decreasing runtime

complexity -

http://adaptevolve.blogspot.com/

2008/01/complexity-part-ii-it-all-

depends-on.html

Manage Populations NOT Instances Atlas, Resource Target State & Dynamic Runtime Assembly

Page 23: Paremus service fabric

Copyright © 2011 Paremus Ltd.May not be reproduced by any means without express permission. All rights reserved.

Service Fabric Overview November 2011

Off Fabric node

Bootstrap Atlas ManagerSource Repository for

ExamplesPOSH CLI

Application UI

Service Fabric Nodes

Service Fabric InfrastructureCached Examples Deployed Systems

Demo EnvironmentA ‘blue’ Atlas Agent

Page 24: Paremus service fabric

Copyright © 2011 Paremus Ltd.May not be reproduced by any means without express permission. All rights reserved.

Service Fabric Overview November 2011

Resource Management & Bootstrap

Page 25: Paremus service fabric

Copyright © 2011 Paremus Ltd.May not be reproduced by any means without express permission. All rights reserved.

Service Fabric Overview November 2011

[email protected]

The Service Fabric

Richard Nicholson: Paremus CEOPresident of the OSGi Alliance

Page 26: Paremus service fabric

Copyright © 2011 Paremus Ltd.May not be reproduced by any means without express permission. All rights reserved.

Service Fabric Overview November 2011

Introducing the Paremus Service Fabric

(1..m) ‘Composite Applications’ (a.k.a. Systems) may be Dynamically Assembled and Run Upon a single Service Fabric

(1..n) Compute Resources may Contribute to a Service Fabric

An OSGi™ Technology-based Cloud Runtime for the Enterprise

Page 27: Paremus service fabric

Components

Service Instance

Dynamiccomponent

wire-up(local)

Distributed Services Fabric

Service Groups

Serviceaggregation

Dynamicservicewire-up

(network)

Composite Application(fine-grained)

Composite Application(coarse-grained)

Web 3.0 / WSwire-up

(network)

Paremus Service Fabric

Page 28: Paremus service fabric

Copyright © 2011 Paremus Ltd.May not be reproduced by any means without express permission. All rights reserved.

Service Fabric Overview November 2011

Industry Standards

• OSGi framework - Equinox, Knopflerfish or Felix

• Paremus OSGi command shell (Posh): OSGi RFC147

• Paremus Nimble Resolver: OSGi OBR resolver (RFC112)

• Paremus implementation of OSGi Remote Services Administration

• OSGi ConfigAdmin

• Paremus implementation of OSGi Web Archive Bundle (RFC66)

• RTI implementation of OMG DDS: Used within Service Fabric as a low latency control P2P ‘backplane’ - see http://www.rti.com/company/customers.html

Page 29: Paremus service fabric

Copyright © 2011 Paremus Ltd.May not be reproduced by any means without express permission. All rights reserved.

Service Fabric Overview November 2011

Self-Describing System

Description

Running System

A Model Driven Runtime

Page 30: Paremus service fabric

Copyright © 2011 Paremus Ltd.May not be reproduced by any means without express permission. All rights reserved.

Service Fabric Overview November 2011

Target State

Runtime State

Deploy

Starting a System

Page 31: Paremus service fabric

Copyright © 2011 Paremus Ltd.May not be reproduced by any means without express permission. All rights reserved.

Service Fabric Overview November 2011

Planned Deltase.g. Configuration

changes

Unplanned Deltase.g. Resource

failures

Target State

Runtime State

The Service Fabric Responds by Creating the Corresponding System – Deploying all Required Components and ‘Wiring’

these Together.

Starting a System

Page 32: Paremus service fabric

Copyright © 2011 Paremus Ltd.May not be reproduced by any means without express permission. All rights reserved.

Service Fabric Overview November 2011

Runtime State

Target State

To Change a Runtime System, Change its Model in the Required Manner

Re-Configure

Updating a System

Page 33: Paremus service fabric

Copyright © 2011 Paremus Ltd.May not be reproduced by any means without express permission. All rights reserved.

Service Fabric Overview November 2011

Planned Deltase.g. Configuration

changes

Unplanned Deltase.g. Resource

failures

Target State

Runtime State

The Service Fabric Responds by Modifying the Running System – Unloading Old Versions and Deploying New

Versions of Affected Components

Updating a System

Page 34: Paremus service fabric

Copyright © 2011 Paremus Ltd.May not be reproduced by any means without express permission. All rights reserved.

Service Fabric Overview November 2011

JEE

EAR

Each Service Fabric Node Dynamically Deploys and Configures Local Infrastructure Services in Response to the Requirements of the Installed Business Component

A self-configuring PaaS Automatically addressing modular & runtime dependencies

WAB

WAR

triggers policy based runtime installation

of GlassFish

triggers policybased runtime installation

of Jetty

Page 35: Paremus service fabric

Copyright © 2011 Paremus Ltd.May not be reproduced by any means without express permission. All rights reserved.

Service Fabric Overview November 2011

Systems and Architecture Templates

System

= +

An Architecturaltemplate

Business Component(s)

In-house Architects Select / Define Appropriate Patterns

Business Unit

Developer

A System May Be Optionally Split Into an Architecture Pattern (Template) + Business Components

Page 36: Paremus service fabric

Copyright © 2011 Paremus Ltd.May not be reproduced by any means without express permission. All rights reserved.

Service Fabric Overview November 2011

System (Versioned)

Parts(Each Versioned)

Scaling Behavior(How Many Part Instances are

Required? Scaling behavior May be Operator-driven or Dynamic in

Response to Environmental

Conditions.)

+

Resource Contract

The System Model

On-fabric ‘Part’ runs outside the fibre’s JVMdoes not use ConfigAdmin or RSAPOJOSR, Java & non-Java Processeseven Virtual Machine images

service wires (remote)

OSGi - Remote Service / Remote Service Admin

+

(Defines Resource Characteristics Required by the

Part)

=

In-fabric ‘Part’ runs in the fibre’s JVMa well-behaved OSGi assemblyuses ConfigAdmin & RSAJVM targeted language - Java / ScalaBlueprint, DS also WAR & EE

Page 37: Paremus service fabric

Copyright © 2011 Paremus Ltd.May not be reproduced by any means without express permission. All rights reserved.

Service Fabric Overview November 2011

In-, On- & Off- Fabric

• A Java / Scala / OSGi Assembly Running in the ‘fibres’ own OSGi framework.

• Typically Blueprint or Declarative Services.

• Configured via ConfigAdmin (ideally).

• Remote Services via RSA (ideally).

• Probably not OSGi or Java.

• Runs in a Different Process Space to ‘fibres’ OSGi framework

• Configuration via Properties File or Configuration Scripts / API’s.

• Remote Services Embedded in Artifact.

• Installation and Lifecycle Management still Performed by Fabric.

A ‘Part’ within a System may be ‘In-Fabric’, ‘On-Fabric’ or a Reference / Proxy to an Off-Fabric Resource. An In-Fabric ‘Part’

An On-Fabric ‘Part’

Page 38: Paremus service fabric

Copyright © 2011 Paremus Ltd.May not be reproduced by any means without express permission. All rights reserved.

Service Fabric Overview November 2011

On-Fabric

Page 39: Paremus service fabric

Copyright © 2011 Paremus Ltd.May not be reproduced by any means without express permission. All rights reserved.

Service Fabric Overview November 2011

A System Model

Defines: •System Name and Version,•Whether System is Distributed,•Repository Indexes to be used when Assembling Parts, and•Runtime Security Group.

Page 40: Paremus service fabric

Copyright © 2011 Paremus Ltd.May not be reproduced by any means without express permission. All rights reserved.

Service Fabric Overview November 2011

Repositories, Resolvers & REPOPATHs

• Each Service Fabric Fibre has its own Local OBR Resolver.

• Upon Agreeing to Host a Part - The ‘Fibre’ Must

- Resolve Bundle Dependencies

- Download Required Artifacts

- Assemble the Part.

• Resolver Must Resolve Required Part in a Manner that Meets Stated Requirements.

• Resolver Must Resolve Required Part W.R.T Specified Environment.

Page 41: Paremus service fabric

Copyright © 2011 Paremus Ltd.May not be reproduced by any means without express permission. All rights reserved.

Service Fabric Overview November 2011

Repositories, Resolvers & REPOPATHs

In a Service Fabric… •A Resolver Environment is not Defined per OSGi Framework, is not set for the Whole Fabric - BUT Defined for Each System - i.e. a List of Repository Indexes Known as the REPOPATH.

•Each Fibre’s Resolver Traverses the REPOPATH of the Deployed PART Left to Right through the List.

Page 42: Paremus service fabric

Copyright © 2011 Paremus Ltd.May not be reproduced by any means without express permission. All rights reserved.

Service Fabric Overview November 2011

Repositories, Resolvers & REPOPATHs

A fibre Hosting PART A from System I: its Resolver will use Bundle B-1.6.0 from the Equities Repository.

A fibre Hosting PART A from System II: its Resolver will use Bundle B-1.6.1 from the System II Repository.

Page 43: Paremus service fabric

Copyright © 2011 Paremus Ltd.May not be reproduced by any means without express permission. All rights reserved.

Service Fabric Overview November 2011

<system name="gateway.system" version="1.0“ boundary="fabric" repopath="gateway,nimble-rs,aries,aries-ext,fabric,fabric-ext,nimble-cmpn“ xmlns="http://schema.paremus.com/sf/1"> <description>Deploys a pricer and gateway component wired together using slp and essencermi</description> <!-- set SystemGroup for security control --> <nature group="demo" /> <system name="pricer" boundary="fibre"> <system.part category="msf" name="com.example.pricer"> <property name="type" value="firm" /> </system.part> <system.part category="osgi.active.bundle" name="com.paremus.dosgi.dsw.essencermi" /> <system.part category="osgi.active.bundle" name="com.paremus.dosgi.discovery.slp" /> <system.part category="osgi.active.bundle" name="com.paremus.dosgi.topologymanager" /> <replication.handler type="scalable"> <property name="scaleFactor" value="1" type="float" /> <property name="fixedDelta" value="-2" type="integer" /> <property name="minimum" value="1" type="integer" /> </replication.handler> </system> <system name="gateway" boundary="fibre"> <system.part category="msf" name="com.example.gateway"> <property name="id" value="foo" /> </system.part> <system.part category="osgi.active.bundle" name="com.paremus.dosgi.dsw.essencermi" /> <system.part category="osgi.active.bundle" name="com.paremus.dosgi.discovery.slp" /> <system.part category="osgi.active.bundle" name="com.paremus.dosgi.topologymanager" /> </system></system>

A System Model

The Pricer Part. The constituents of each Pricer instance are all deployed/collocated to the same fibre (JVM instance) - hence ‘boundary=fibre’

Page 44: Paremus service fabric

<system name="gateway.system" version="1.0“ boundary="fabric" repopath="gateway,nimble-rs,aries,aries-ext,fabric,fabric-ext,nimble-cmpn“ xmlns="http://schema.paremus.com/sf/1"> <description>Deploys a pricer and gateway component wired together using slp and essencermi</description> <!-- set SystemGroup for security control --> <nature group="demo" /> <system name="pricer" boundary="fibre"> <system.part category="msf" name="com.example.pricer"> <property name="type" value="firm" /> </system.part> <system.part category="osgi.active.bundle" name="com.paremus.dosgi.dsw.essencermi" /> <system.part category="osgi.active.bundle" name="com.paremus.dosgi.discovery.slp" /> <system.part category="osgi.active.bundle" name="com.paremus.dosgi.topologymanager" /> <replication.handler type="scalable"> <property name="scaleFactor" value="1" type="float" /> <property name="fixedDelta" value="-2" type="integer" /> <property name="minimum" value="1" type="integer" /> </replication.handler> </system> <system name="gateway" boundary="fibre"> <system.part category="msf" name="com.example.gateway"> <property name="id" value="foo" /> </system.part> <system.part category="osgi.active.bundle" name="com.paremus.dosgi.dsw.essencermi" /> <system.part category="osgi.active.bundle" name="com.paremus.dosgi.discovery.slp" /> <system.part category="osgi.active.bundle" name="com.paremus.dosgi.topologymanager" /> </system></system>

Copyright © 2011 Paremus Ltd.May not be reproduced by any means without express permission. All rights reserved.

Service Fabric Overview November 2011

A System Model

The Pricer Part. A managed service fabric based built from com.example.pricer. An instance of which is created with attribute ‘firm’

Page 45: Paremus service fabric

<system name="gateway.system" version="1.0“ boundary="fabric" repopath="gateway,nimble-rs,aries,aries-ext,fabric,fabric-ext,nimble-cmpn“ xmlns="http://schema.paremus.com/sf/1"> <description>Deploys a pricer and gateway component wired together using slp and essencermi</description> <!-- set SystemGroup for security control --> <nature group="demo" /> <system name="pricer" boundary="fibre"> <system.part category="msf" name="com.example.pricer"> <property name="type" value="firm" /> </system.part> <system.part category="osgi.active.bundle" name="com.paremus.dosgi.dsw.essencermi" /> <system.part category="osgi.active.bundle" name="com.paremus.dosgi.discovery.slp" /> <system.part category="osgi.active.bundle" name="com.paremus.dosgi.topologymanager" /> <replication.handler type="scalable"> <property name="scaleFactor" value="1" type="float" /> <property name="fixedDelta" value="-2" type="integer" /> <property name="minimum" value="1" type="integer" /> </replication.handler> </system> <system name="gateway" boundary="fibre"> <system.part category="msf" name="com.example.gateway"> <property name="id" value="foo" /> </system.part> <system.part category="osgi.active.bundle" name="com.paremus.dosgi.dsw.essencermi" /> <system.part category="osgi.active.bundle" name="com.paremus.dosgi.discovery.slp" /> <system.part category="osgi.active.bundle" name="com.paremus.dosgi.topologymanager" /> </system></system>

Copyright © 2011 Paremus Ltd.May not be reproduced by any means without express permission. All rights reserved.

Service Fabric Overview November 2011

A System Model

Remote Services using the Paremus implementation of the OSGI Alliance RSA specification.

In this example Essence RMI is the protocol - and SLP isused for discover. Normally we recommend DDS - which is the default.

Page 46: Paremus service fabric

Copyright © 2011 Paremus Ltd.May not be reproduced by any means without express permission. All rights reserved.

Service Fabric Overview November 2011

Exporting a Service

1.Service E has a service property service.exported.interfaces set.2.Local Topology Manager is informed of Service E.3.Based on policy, the Topology Manager informs registered Remote Service Admin services.4.If a Remote Service Admin can support Service E an appropriate Service Endpoint is created.5.The framework wires the Service Endpoint to its service; in this case Service E.6.The Remote Service Admin also creates an Endpoint Description and passes this to registered Discovery Providers.7.Each Discovery Provider encapsulates the Endpoint Description in the appropriate manner and issues an implementation specific advertisement. NOTE: multiple concurrent discovery providers as supported.

OSGi Remote Services

Page 47: Paremus service fabric

Copyright © 2011 Paremus Ltd.May not be reproduced by any means without express permission. All rights reserved.

Service Fabric Overview November 2011

Importing a Service

1.A Discovery Provider receives a remote-advertisement.2.The Endpoint Description is unpacked and sent to the local Topology Manager.3.The Topology Manager is aware that Service B has a reference to Service E, hence the Topology Manager sends the Endpoint Description to the appropriate Remote Service Admin.4.The Remote Service Admin creates a local proxy for Service E.5.The framework wiring this to the Service B reference.

OSGi Remote References

Page 48: Paremus service fabric

<system name="gateway.system" version="1.0“ boundary="fabric" repopath="gateway,nimble-rs,aries,aries-ext,fabric,fabric-ext,nimble-cmpn“ xmlns="http://schema.paremus.com/sf/1"> <description>Deploys a pricer and gateway component wired together using slp and essencermi</description> <!-- set SystemGroup for security control --> <nature group="demo" /> <system name="pricer" boundary="fibre"> <system.part category="msf" name="com.example.pricer"> <property name="type" value="firm" /> </system.part> <system.part category="osgi.active.bundle" name="com.paremus.dosgi.dsw.essencermi" /> <system.part category="osgi.active.bundle" name="com.paremus.dosgi.discovery.slp" /> <system.part category="osgi.active.bundle" name="com.paremus.dosgi.topologymanager" /> <replication.handler type="scalable"> <property name="scaleFactor" value="1" type="float" /> <property name="fixedDelta" value="-2" type="integer" /> <property name="minimum" value="1" type="integer" /> </replication.handler> </system> <system name="gateway" boundary="fibre"> <system.part category="msf" name="com.example.gateway"> <property name="id" value="foo" /> </system.part> <system.part category="osgi.active.bundle" name="com.paremus.dosgi.dsw.essencermi" /> <system.part category="osgi.active.bundle" name="com.paremus.dosgi.discovery.slp" /> <system.part category="osgi.active.bundle" name="com.paremus.dosgi.topologymanager" /> </system></system>

Copyright © 2011 Paremus Ltd.May not be reproduced by any means without express permission. All rights reserved.

Service Fabric Overview November 2011

A System Model

Replication Handlers control the number of Part instances required in the runtime.

Page 49: Paremus service fabric

Copyright © 2011 Paremus Ltd.May not be reproduced by any means without express permission. All rights reserved.

Service Fabric Overview November 2011

System Provisioning

Push-based Deployment of Artifacts ✘To Scale

• Need to Avoid Bottlenecks / Choke-points: • Don’t Push Artifacts through the Provisioner!

Avoid Synchronous Behaviors Also Provisioner Cannot Assume:

• Resource Population is Static: Compute Resources may come and go.

• Deployment Artifacts are Static: Feature Upgrades / Patches and rollbacks Occur all the Time.

⟶ Pull-based - Asynchronous ‘Target State’ Provisioning ✔

Page 50: Paremus service fabric

Copyright © 2011 Paremus Ltd.May not be reproduced by any means without express permission. All rights reserved.

Service Fabric Overview November 2011

Target State Provisioning

Page 51: Paremus service fabric

Copyright © 2011 Paremus Ltd.May not be reproduced by any means without express permission. All rights reserved.

Service Fabric Overview November 2011

Target State Provisioning

Page 52: Paremus service fabric

Copyright © 2011 Paremus Ltd.May not be reproduced by any means without express permission. All rights reserved.

Service Fabric Overview November 2011

Demo: Application AgilityScreencast of demo is available from YouTube at:http://bit.ly/app-agility_screencast

Page 53: Paremus service fabric

Copyright © 2011 Paremus Ltd.May not be reproduced by any means without express permission. All rights reserved.

Service Fabric Overview November 2011

DDS pub/sub Topic-based Messaging is Used for:

Service Discovery

Dynamic Configuration of Dynamically Deployed Components

Optional Low Latency (> 100μs) pub/sub Messaging for Hosted Applications

Dynamic Configuration

Page 54: Paremus service fabric

Copyright © 2011 Paremus Ltd.May not be reproduced by any means without express permission. All rights reserved.

Service Fabric Overview November 2011

DDS pub/sub Topic-based Messaging is Used for:

Service Discovery

Dynamic Configuration of Dynamically Deployed Components

Optional Low Latency (> 100μs) pub/sub Messaging for Hosted Applications

Dynamic Configuration

Page 55: Paremus service fabric

Copyright © 2011 Paremus Ltd.May not be reproduced by any means without express permission. All rights reserved.

Service Fabric Overview November 2011

A ‘Robust’ platform is designed to survive cascading failure

A ‘Robust’ platform is adaptive & self-repairing: continually attempting to ‘settle’ into the desired state

No central or static points of command & control

Adaptive & Recovery Oriented

What do we mean by Robust?

Page 56: Paremus service fabric

Copyright © 2011 Paremus Ltd.May not be reproduced by any means without express permission. All rights reserved.

Service Fabric Overview November 2011

Robustness demonstrationScreencast of demo is available from YouTube at: http://bit.ly/robustness_screencast

Page 57: Paremus service fabric

Copyright © 2011 Paremus Ltd.May not be reproduced by any means without express permission. All rights reserved.

Service Fabric Overview November 2011

Atlas - Resource Management

Page 58: Paremus service fabric

Copyright © 2011 Paremus Ltd.May not be reproduced by any means without express permission. All rights reserved.

Service Fabric Overview November 2011

Managing characteristics of population

rather than each individual node has a

dramatic effect on decreasing runtime

complexity -

http://adaptevolve.blogspot.com/

2008/01/complexity-part-ii-it-all-

depends-on.html

Manage Populations NOT Instances Atlas, Resource Target State & Dynamic Runtime Assembly

Page 59: Paremus service fabric

Copyright © 2011 Paremus Ltd.May not be reproduced by any means without express permission. All rights reserved.

Service Fabric Overview November 2011

Off Fabric node

Bootstrap Atlas ManagerSource Repository for

ExamplesPOSH CLI

Application UI

Service Fabric Nodes

Service Fabric InfrastructureCached Examples Deployed Systems

Demo EnvironmentA ‘blue’ Atlas Agent

Page 60: Paremus service fabric

Copyright © 2011 Paremus Ltd.May not be reproduced by any means without express permission. All rights reserved.

Service Fabric Overview November 2011

Resource Management & Bootstrap

Page 61: Paremus service fabric

Copyright © 2011 Paremus Ltd.May not be reproduced by any means without express permission. All rights reserved.

Service Fabric Overview November 2011

On Roadmap (2012):

•Cobra - (Caching OBR for Availability)

•Then

• Federate Service Fabrics across data-centers

• Enable public Cloud ‘burst’ behaviors for ‘stateless’, ‘latency insensitive’ business components into third party environments - e.g. EC2, Azure etc.

2012 - A Federated Cloud Runtime...

Page 62: Paremus service fabric

Copyright © 2011 Paremus Ltd.May not be reproduced by any means without express permission. All rights reserved.

Service Fabric Overview November 2011

2012 - The Pervasive Cloud

Service Fabric enabled Cloud Core

(Ambient Assisted LivingMobile / Automotive

Smart Grid )

Page 63: Paremus service fabric

Copyright © 2011 Paremus Ltd.May not be reproduced by any means without express permission. All rights reserved.

Service Fabric Overview November 2011

2012 - The Pervasive Cloud

Page 64: Paremus service fabric

Copyright © 2011 Paremus Ltd.May not be reproduced by any means without express permission. All rights reserved.

Service Fabric Overview November 2011

Why Paremus?• Industry leading OSGi platform - Cloud Core: The Service Fabric

- OSGi edge: Nimble

- Not just OSGi (WAR, EJB, binary)

•High quality OEM support - ensuring project success

•Aggressive Pricing

•ESCROW option available

•Training: High Quality OSGi Training for internal teams.

•Tooling: OSS BNDTools project

•Leading OSGi consulting Services: Dev, Build, Test, Release, Run & Update processes

Ongoing guidance to ensure successful project delivery

Page 65: Paremus service fabric

Copyright © 2011 Paremus Ltd.May not be reproduced by any means without express permission. All rights reserved.

Service Fabric Overview November 2011

Third Party Comments

Application servers will look a lot more like elastic application platforms than like today’s products...... the Paremus Service Fabric is a good example

The rise of the

stack-less stack

“...Paremus are doing really interesting leading edge work, leading edge in the sense that they are getting to and solving problems before most of us realise they are problems...”

Zoe Slattery - IBM Technology Evangelist

Page 66: Paremus service fabric

Copyright © 2011 Paremus Ltd.May not be reproduced by any means without express permission. All rights reserved.

Service Fabric Overview November 2011

Additional Slides

Page 67: Paremus service fabric

Copyright © 2011 Paremus Ltd.May not be reproduced by any means without express permission. All rights reserved.

Service Fabric Overview November 2011

Usually starts with a focused Proof of Concept•A single Java application

•Develop / build / unit test / integration / release chain

•Initial integration with production

Getting there...

Page 68: Paremus service fabric

Copyright © 2011 Paremus Ltd.May not be reproduced by any means without express permission. All rights reserved.

Service Fabric Overview November 2011

Creation of an in-house ‘Heroku type’ PaaS

•Full Service Fabric Integration with Production Environment

•Simple WAR and / or Java-based Applications Migrated to Instances of Service Fabric (i.e. a Web ‘farm’)

•Implement Production Repositories (in-house bundles) and Third Party Repositories (OSS bundles)

•Implement Pattern Library - Deciding which Middleware and NoSQL Solutions can be Used

•Steppingstone to Next Phase.

Getting there...

Page 69: Paremus service fabric

Copyright © 2011 Paremus Ltd.May not be reproduced by any means without express permission. All rights reserved.

Service Fabric Overview November 2011

Migration - Service Level Integration

Integrate with Legacy Services via Usual SOA Mechanisms

Page 70: Paremus service fabric

Copyright © 2011 Paremus Ltd.May not be reproduced by any means without express permission. All rights reserved.

Service Fabric Overview November 2011

Transition of Enterprise•Start Migration away from ‘silos’ of Batch Grid & Middleware Stovepipes

•Migration away from Application Servers & Other High ‘Ticket’ Middleware

•Asynchronous / Parallel Compensational, Transactional – for High ‘Flow’ Systems

•Enable Federated Data Center and Public Cloud Capabilities

Getting there...

Page 71: Paremus service fabric

Copyright © 2011 Paremus Ltd.May not be reproduced by any means without express permission. All rights reserved.

Service Fabric Overview November 2011

Lab49 is a strategy, design and technology consulting firm. Lab49 deliver strategic consulting and build advanced solutions for the world’s leading investment banks, hedge funds and exchanges.

“Lab49 deliver world-class solutions to some of the most sophisticated firms in financial services today. Our innovative approach stems from adopting user-centric practices enabling clients to respond quickly to today’s challenges, as well as realize new business opportunities in the modern world of trading.

SDP Foreign Exchange (FX) functionality;

‣Request for Quote (RFQ)

‣Request for Stream (RFS)

‣Execution Blotter

‣Research and News

Lab49 SDP Leverages;

‣Paremus OSGi Service Fabric

‣Akka Open Source Agent-Actor Framework

‣Lab49 Design and Engineering

‣HTML5/JavaScript

Page 72: Paremus service fabric

Copyright © 2011 Paremus Ltd.May not be reproduced by any means without express permission. All rights reserved.

Service Fabric Overview November 2011

Demo: Single Dealer Platform

QuickTime™ and aJVT/AVC Coding decompressorare needed to see this picture.

Page 73: Paremus service fabric

Copyright © 2011 Paremus Ltd.May not be reproduced by any means without express permission. All rights reserved.

Service Fabric Overview November 2011

No Silver Bullets!Consistency, Availability, Partition-ability (CAP) Trade-offs Still Apply. Use most Appropriate Data Service for each Business Application.

•Unstructured data processing - Hadoop

•Key / Value - Voldemort

•Column - Cassandra

•Graph Database - Neo

•Relational - Derby, MySQL

•Distribution to Nodes - BitTorrent

What about Application Data?

http://blog.nahurst.com/visual-guide-to-nosql-systems

Page 74: Paremus service fabric

Copyright © 2011 Paremus Ltd.May not be reproduced by any means without express permission. All rights reserved.

Service Fabric Overview November 2011

http://dspace.mit.edu/bitstream/handle/1721.1/60085/BBFRFC66.pdf?sequence=1

Modularity is a Must Have not a Maybe.

Patterns of Modular Architecture (Kirk Knoernschild) - http://www.kirkk.com/modularity/chapters/

Diversity and Complexity - Scott E. Page

Page 75: Paremus service fabric

Copyright © 2011 Paremus Ltd.May not be reproduced by any means without express permission. All rights reserved.

Service Fabric Overview November 2011

Traditional VM approach

Hypervisors

Image Serversets of static VM images

Deployment Servicefixed address of Hypervisors

Page 76: Paremus service fabric

Copyright © 2011 Paremus Ltd.May not be reproduced by any means without express permission. All rights reserved.

Service Fabric Overview November 2011

Traditional VM approach

Hypervisors

Image Serversets of static VM images

Deployment Servicefixed address of Hypervisors

Static VM imagesbuilt and deployed

to image server

Page 77: Paremus service fabric

Copyright © 2011 Paremus Ltd.May not be reproduced by any means without express permission. All rights reserved.

Service Fabric Overview November 2011

Traditional VM approach

Hypervisors

Image Serversets of static VM images

Deployment Servicefixed address of Hypervisors

Page 78: Paremus service fabric

Copyright © 2011 Paremus Ltd.May not be reproduced by any means without express permission. All rights reserved.

Service Fabric Overview November 2011

Problems with Approach

•Resource is Static - Requires Manual Configuration

•SPoF - Image and Deployment Services

• If a Hypervisor Fails Hosting a Set of Images - What Does this Mean?

•Each Change Requires Generation of a New Software Image!

• Image Explosion

•Network and Storage Costs

•Versioning Issues Relating to Images

•No Runtime Management or Re-configuration of Deployed Services

Page 79: Paremus service fabric

Copyright © 2011 Paremus Ltd.May not be reproduced by any means without express permission. All rights reserved.

Service Fabric Overview November 2011

Industry Responses - mostly Proprietary

• Naming Conventions and Versioning for Images?

• Some Type of Runtime Description?

• Collection of Image Types Required?

• High Availability Critical ‘Infrastructure’ Servers

BETTER YET

• Deploy Packages Directly from Software Repository to Blank VMs on HyperV’s o Removes Need for VM Image Assembly Tooling Step. (Puppet,

CodeChef)

BUT

• Still No Runtime Management or Reconfiguration of Deployed Services

Page 80: Paremus service fabric

Copyright © 2011 Paremus Ltd.May not be reproduced by any means without express permission. All rights reserved.

Service Fabric Overview November 2011

BoAML Service Fabric Usage

Hypervisors

Image ServerSets of static VM images

Service Fabric Deployment ServiceDynamic discovery of Hypervisors

Service Fabric Runtime Management

Page 81: Paremus service fabric

Copyright © 2011 Paremus Ltd.May not be reproduced by any means without express permission. All rights reserved.

Service Fabric Overview November 2011

Service FabricService Fabric Selected by BoA to Provide:

• Runtime Management of Deployed Services on Pre-canned Images

• An Operationally Simpler and Self-maintaining Environment - So No Additional HA Expense

• Well Defined Runtime Model - Which Drives Deployment and Recovery

But Within BoAML Design

• Deployment Artifact – ‘Pre-canned’ VM Images??

• If so, VM Images and Software Artifacts those Images Use Must be Versioned

• Which Requires SVM Image Assembly Tooling

• And, Potentially Requires Management of Two Models: VM Deployment Model and Service Fabric System Model

Page 82: Paremus service fabric

Copyright © 2011 Paremus Ltd.May not be reproduced by any means without express permission. All rights reserved.

Service Fabric Overview November 2011

Service Fabric

An Alternative Approach: • Service Fabric Deploys Vanilla Virtual Machines into Environment as

Required

• Dynamically Deploys Software Artifacts as Required

• As Done at Present, Manages Those Software Artifacts

Advantages• One Runtime Model

• Only Required Artifacts are Deployed – No VM Image Explosion

• Lighter on Network and Storage

• Can Still Ensure ‘Bootstrap’ Appliance Behavior for Sites

• But also - Via Cobra - Low Maintenance Upgrade Behaviors

Page 83: Paremus service fabric

Copyright © 2011 Paremus Ltd.May not be reproduced by any means without express permission. All rights reserved.

Service Fabric Overview November 2011

Thank You