javawug

22
Actor Patterns in Distributed Systems using Dynamic Provisioning and SLA Management Paul McGrath and Shaine Ismail Javawug BOF-56 PSMI Limited

Upload: skills-matter

Post on 12-Jan-2015

388 views

Category:

Technology


0 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Javawug

Actor Patterns in Distributed Systems

using Dynamic Provisioning and SLA Management

Paul McGrath and Shaine Ismail

Javawug BOF-56 PSMI Limited

Page 2: Javawug

Introduction

• Biographies

• Actor patterns in Distributed Systems

• Enterprise IT Challenges

• Trends and Needs

• Fault tolerance / SLAs

• Putting it all together - a demo

• Questions

Page 3: Javawug

• IT Software Developer (19 years)

• Wide range of business domains

• Finance/Banking since 1995

• Expertise in large scale systems

design/implementation and delivery

• Founder/organiser of London Cloud Computing

Meetup group

Biography: Paul McGrath

Page 4: Javawug

• Java Developer for 10 Years.

• JPMorgan, BT, Lehman Brothers, Swiss Re.

• Experienced in delivering hi-performance, low

maintenance solutions.

Biography: Shaine Ismail

Page 5: Javawug

Kylie Minogue website

Failures to Scale - examples

Page 6: Javawug

iPhone launch

Page 7: Javawug

London Stock Exchange

Page 8: Javawug

.

London Stock Exchange (again)

Page 9: Javawug

Northern Rock

Page 10: Javawug

• Lack of scalability

• Failure to adapt to short-term volume spikes

• Operational risk

• Reputational risk → Company failure

Common issues

Page 11: Javawug

Enterprise IT Challenges

•Fast changing business requirements

•Short term project horizons

•Demanding customers

•Small budgets - do more with less

•Reactive management

•Hardware trends

•Rising energy costs

Page 12: Javawug

IT Trends

•Clock speeds levelling off

•More execution cores per machine

•More machines available - more resources

•Migration towards commodity hardware

•Heterogeneous execution environments

•Offsite Clouds/Machine clusters

•Green agenda

Page 13: Javawug

Enterprise Needs

IT Execution model that scales across multiple cores/multiple heterogeneous machines → concurrent programming

 "For concurrent programming to become

mainstream, we must discard threads as aprogramming model" 

- Ed Lee, The Problem with ThreadsBerkeley CS Tech Report

Page 14: Javawug

Actors - a definition

"Actors form the universal primitives of concurrent digital computation - in response to a message that it receives, an actor can make local decisions, create more actors, send more messages, and determine how to respond to the next message received" 

 (wikipedia 2010)

Page 15: Javawug

Actors

Actors encapsulate •     state•     instructions•     and execution

Actors provide architectural bind points whose execution can be monitored and to which we can associate Service Level Agreements.

Page 16: Javawug

Actors need:  Direction

– Where they should execute 

– How many copies should be executed

Roles

– Bespoke functional responsibility

Scripts

–  Exact, repeatable behaviour to message receipt

Page 17: Javawug

Chameleon

implements Actors in a distributed system - allowing dynamic provisioning of actors into a system, and SLA management of said actors.

Provides dynamic load balancing and active workload scaling.

→ Adaptive Execution Fabric

Page 18: Javawug

Chameleon

Directed Acyclic Graph Execution  

  

Modelled as a Workflow class – with split, join and block directives 

Page 19: Javawug

Chameleon

A demo....

Page 20: Javawug

Chameleon - under the hood

Java  Jini /JavaSpaces Rio

Page 21: Javawug

• Not a complete solution

• Potential integration points

Data grids (Coherence, EHCache etc), Rules Engines

(Drools, Esper)

• Potential use cases

Batch processing, ETL, STP, Workflow, Load

Balancing

Chameleon – the whole solution ?

Page 22: Javawug

Questions?