Distributed Configuration & Service Change Planning

Similar documents
Distributed System Configuration

System Configuration. Paul Anderson. publications/oslo-2008a-talk.pdf I V E R S I U N T Y T H

LCFG. Paul Anderson. A practical tool for system configuration.

Proceedings of the 17 th Large Installation Systems Administration Conference

SmartFrog meets LCFG Autonomous Reconfiguration with Central Policy Control

Fully Distributed Service Configuration Management

Puppet and RBS Presents: Driving Digital Transformation in the Real World with VMware vrealize

MarkLogic 8 Overview of Key Features COPYRIGHT 2014 MARKLOGIC CORPORATION. ALL RIGHTS RESERVED.

Web and API Apps in Azure

Azure Day Application Development. Randy Pagels Sr. Developer Technology Specialist US DX Developer Tools - Central Region

Developing Microsoft Azure Solutions (70-532) Syllabus

Il Mainframe e il paradigma dell enterprise mobility. Carlo Ferrarini zsystems Hybrid Cloud

YOUR APPLICATION S JOURNEY TO THE CLOUD. What s the best way to get cloud native capabilities for your existing applications?

Developing Microsoft Azure Solutions (70-532) Syllabus

Agile CI/CD with Jenkins and/at ZeroStack. Kiran Bondalapati CTO, Co-Founder & Jenkins Admin ZeroStack, Inc. (

Actual4Test. Actual4test - actual test exam dumps-pass for IT exams

DEVOPS COURSE CONTENT

UNIT 5 - UML STATE DIAGRAMS AND MODELING

Announcements. Written Assignment 2 due today at 5:00PM. Programming Project 2 due Friday at 11:59PM. Please contact us with questions!

Developing Microsoft Azure Solutions (70-532) Syllabus

Equinox Project Update

Best Practice Deployment of F5 App Services in Private Clouds. Henry Tam, Senior Product Marketing Manager John Gruber, Sr. PM Solutions Architect

A Cloud WHERE PHYSICAL ARE TOGETHER AT LAST

Peer-to-Peer Secure Update for Heterogeneous Edge Devices

Object Orientated Analysis and Design. Benjamin Kenwright

Load Balancing Algorithm over a Distributed Cloud Network

Airship A New Open Infrastructure Project for OpenStack

BRKDCT-1253: Introduction to OpenStack Daneyon Hansen, Software Engineer

Developing Enterprise Cloud Solutions with Azure

Automated Planning for Configuration Changes

* Inter-Cloud Research: Vision

Welcome to Docker Birthday # Docker Birthday events (list available at Docker.Party) RSVPs 600 mentors Big thanks to our global partners:

Android System Architecture. Android Application Fundamentals. Applications in Android. Apps in the Android OS. Program Model 8/31/2015

Principles of Programming Languages

Zero to Microservices in 5 minutes using Docker Containers. Mathew Lodge Weaveworks

HP SDN Document Portfolio Introduction

Semantic Analysis Type Checking

Course Outline. Module 1: Microsoft Azure for AWS Experts Course Overview

A Declarative Approach to Automated System Configuration

Implementing the HP Matrix Operating Environment, Rev

Architect your deployment using Chef

vcloud Automation Center Reference Architecture vcloud Automation Center 5.2

REALIZE YOUR. DIGITAL VISION with Digital Private Cloud from Atos and VMware

The VERCE Architecture for Data-Intensive Seismology

Grid Computing Middleware. Definitions & functions Middleware components Globus glite

/ Cloud Computing. Recitation 5 February 14th, 2017

Securing Your Amazon Web Services Virtual Networks

/ Cloud Computing. Recitation 5 September 27 th, 2016

Developing corporate mobile applications. An alternative approach to native development

Orchestration vs Choreography

PaaS Anywhere. Isaac Christoffersen Architect, Vizuri

A Dream of Software Engineers -- Service Orientation and Cloud Computing

CLOUD WORKLOAD SECURITY

Declarative Modeling for Cloud Deployments

Azure Certification BootCamp for Exam (Developer)

CONTINUOUS DELIVERY WITH DC/OS AND JENKINS

Chapter 3 Virtualization Model for Cloud Computing Environment

DevOps Course Content

A Hands on Introduction to Docker

WHITE PAPER. RedHat OpenShift Container Platform. Benefits: Abstract. 1.1 Introduction

JAVASCRIPT AND JQUERY: AN INTRODUCTION (WEB PROGRAMMING, X452.1)

Forescout. Work with IPv6 Addressable Endpoints. How-to Guide. Forescout version 8.1

Model-Driven *: Beyond Code Generation

Containers, Serverless and Functions in a nutshell. Eugene Fedorenko

Programming Safe Agents in Blueprint. Alex Muscar University of Craiova

PaaS Anywhere. Isaac Christoffersen Architect, Vizuri

Continuous delivery of Java applications. Marek Kratky Principal Sales Consultant Oracle Cloud Platform. May, 2016

2018 Report The State of Securing Cloud Workloads

How to Route Internet Traffic between A Mobile Application and IoT Device?

5 Things You Need for a True VMware Private Cloud

Policy-Aware Provisioning of Cloud Applications

Programming Languages Third Edition

WHITEPAPER. Embracing Containers & Microservices for future-proof application modernization

Optimizing High-Performance Trading Solutions: An Engineering Perspective

Automated Deployment of Private Cloud (EasyCloud)

Europeana Core Service Platform

OSGi on the Server. Martin Lippert (it-agile GmbH)

SDN controller: Intent-based Northbound Interface realization for extended applications

The Team. Using Sun Grid Engine and Globus to Schedule Jobs Across a Combination of Local and Remote Machines

Web Services Choreography and Process Algebra

ForeScout CounterACT. Work with IPv6 Addressable Endpoints. How-to Guide. Version 8.0

Grid & Virtualization Working Group

SUSE Manager and Salt

Building Hyper-V Cloud Solutions with Microsoft

Modern and Fast: A New Wave of Database and Java in the Cloud. Joost Pronk Van Hoogeveen Lead Product Manager, Oracle

HALO IN ACTION COMPLIANCE DON T LET LEGACY SECURITY TOOLS HOLD UP PCI COMPLIANCE IN THE CLOUD. Automated PCI compliance anytime, anywhere.

CSE 307: Principles of Programming Languages

Huawei OceanStor ReplicationDirector Software Technical White Paper HUAWEI TECHNOLOGIES CO., LTD. Issue 01. Date

Research and Design Application Platform of Service Grid Based on WSRF

Run and Reporting Rules for VMware View Planner Updated July 17, 2013

Windows Azure Question-Answer Part II- Azure Web Apps. KRUNAL TRIVEDI MCT, MCT INDIA REGIONAL LEAD TRAINER, WRITER, SPEAKER

axiomatic semantics involving logical rules for deriving relations between preconditions and postconditions.

Lecture 3. COMP1006/1406 (the Java course) Summer M. Jason Hinek Carleton University

Semantic Web Services and Cloud Platforms

Distributed Consensus Protocols

CONTINUOUS DELIVERY WITH MESOS, DC/OS AND JENKINS

ORACLG. Oracle Press. Advanced Tuning for. JD Edwards EnterpriseOne. Implementations

Decentralized Control of Large-Scale Distributed System

Component-based Runtime Environment for Cloud Applications

Writing LCFG components

Transcription:

Distributed Configuration & Service Change Planning Paul Anderson & Herry <dcspaul@ed.ac.uk> <h.herry@sms.ed.ac.uk> http://homepages.inf.ed.ac.uk/dcspaul/ publications/hp-2012.pdf

Overview Configuration Research (paul) - overview of area & current work Agent-based configuration with lcc (paul) - centralised policy and distributed execution - an example using the lightweight coordination calculus Planning for configuration change (herry) - centralised planning and workflow execution - distributed workflow execution using behavioural signatures - distributed workflow execution using lcc

Some Current Projects Constraint-based specification (John Hewson) Planning for configuration change (Herry) Agents and interaction models for VM Migration Student projects - distributed planning for service changes - planning deployments on the HP public cloud - machine learning for VM migration Other interests - Semantics, provenance and security of configuration specifications

Implementing Virtual Machine Migration Policies With LCC Work with Shahriar Bijani <S.Bijani@sms.ed.ac.uk> http://homepages.inf.ed.ac.uk/s0880557

Centralised Configuration? Centralised configuration - allows a global view with complete knowledge But... - it is not scalable - it is not robust against communication failures - federated environments have no obvious centre - different security policies may apply to different subsystems The challenge... - devolve control to an appropriately low level - but allow high-level policies to determine the behaviour

GPrint (2003) PRINT CONTROLLER LCFG GLOBUS SERVER Gprint OGSA Portal LCFG Print Manager SmartFrog Daemon Print Monitor PRINT SERVER SLP print queue announcements SLP printer announcements LCFG SmartFrog Daemon Heartbeat Print Server LCFG lpd component Distributed configuration with centralised policy Printer Subsystem-specific mechanisms

OpenKnowledge & LCC Agents execute interaction models Wri en in a lightweight coordination calculus (LCC) This provides a very general mechanism for doing distributed configuration Policy is determined by the interaction models themselves which can be managed and distributed from a central point of control The choice of interaction model and the decision to participate in a particular role remains with the individual peer - and hence, the management authority

A Simple LCC Example a(buyer, B) :: ask(x) => a(shopkeeper, S) then price(x,p) <= a(shopkeeper, S) then buy(x,p) => a(shopkeeper, S) afford(x, P) then sold(x,p) <= a(shopkeeper, S) a(shopkeeper, S) :: ask(x) <= a(buyer, B) then price(x, P) => a(buyer, B) in_stock(x, P)then buy(x,p) <= a(buyer, B) then sold(x, P) => a(buyer, B)

An Example: VM Allocation migrate IM role: underloaded IM Discovery service IM role: overloaded IM Policy 1 - power saving - pack VMs onto the minimum number of physical machines Policy 2 - agility - maintain an even loading across the physical machines

An Idle Host a(idle, ID1) :: null overloaded(status) then a(overload(status), ID1) ) or ( null underloaded(status) then a(underload(status), ID1) ) or ( a(idle, ID1) )

An Overloaded Host a(overloaded(need), ID2) :: readytomigrate(need) => a(underloaded, ID3) then migration(ok) <= a(underloaded, ID3) then null migration(id2, ID3) then a(idle, ID2)

An Underloaded Host a(underloaded(capacity), ID3) :: readytomigrate(need) <= a(overloaded, ID2) then migration(ok) => a(overloaded, ID2) canmigrate(capacity, Need) then null waitformigration() then a(idle, ID3)

Migration Example 1 3 2 1 2 4 6 8 4 6 8 3 5 7 9 5 7 9 PM1 PM2 PM3 PM4 PM1 PM2 PM3 PM4

A Simulation Physical Machine Load Average (%) 200 150 100 50 0 120% average load 80% average load 0 5000 10000 15000 20000 Time (ms)

Some Issues LCC can be used to implement more sophisticated protocols - such as auctions which are ideal for many configuration scenarios But some things are hard to do without global knowledge - balance the system so that all the machines have exactly the same load? Handling errors and timeouts in an unreliable distributed system is hard

Planning for Configuration Changes HP IRP HP Innovation Research Project

Overview Multi-agent planning Centralised Planner (LISA) Puppet + ControlTier (Demo) SFplanner New Planner (Demo) New Language Automated Composition of Behavioural Signature HPCloud Lightweight Coordination Calculus (LCC)

Declarative approach Most commonly used today Popular tools: Puppet, Chef, LCFG Critical shortcomings - Indeterminate order execution of actions - Could violates the system s constraints A B A B PC PC Client must always refer to a running server

Solutions Declarative tools - Possible sequences of states 1) A.running = false PC.refer = B B.running = true X 2) PC.refer = B A.running = false B.running = true X 3) B.running = true A.running = false PC.refer = B X 4) A.running = false B.running = true PC.refer = B X 5) PC.refer = B B.running = true A.running = false X 6) B.running = true PC.refer = B A.running = false - Highly likely producing the wrong sequence! Our prototype - Automated planning technique to generate the workflow - Each action has pre- and post-conditions

System Architecture (LISA 11)

SFp planning system Problem in SFp Language SFp Translator FDR Workflow Fast-Downward SFp language object-oriented planning language Web service interface - Submit planning problem using HTTP POST Implemented as an OSGi Bundle - OSGi platform: Equinox or Felix - Linux OS h p://homepages.inf.ed.ac.uk/s0978621/sfp.html

SFp planning system Demo: h p://hpvm2.diy.inf.ed.ac.uk

Centralised Architecture Central Controller generates and orchestrates the execute of the workflow Problems failure on the central controller - The managed system is out of control - Must compute the workflow for every changes Proposed solution - Executing the workflow in distributed way - Implant the pre-compiled workflow onto the components - Employ Behavioural Signature model

Behavioural Signature (BSig) Component can have state-dependencies If a change occurs, each component determines - What action - When to be executed Cascading effects A PC B

BSig: Manual Composition Error prone, time consuming, hard to prove that the result is correct Complex task M components, N states per component (M 2 M) (N 2 ) possible state dependencies Difficult to solve deadlock situation Proposed solution: automated composition

BSig: Automated Composition Fact define the state-dependencies, define the workflow User works in planning domain - Defines a set of pairs (initial, goal) states - Defines the global constraints Experts or engineers define the actions Use the planner to generate the workflow The generated workflow is translated into statedependencies

BSig: Automated Composition Components Actions Offline Online Composer Passive BSig model Active BSig model Constraints A set of pairs (initial, goal) states Goal states designer administrator

Actions Inputs for Composer startserver { s *Server precondition { } postcondition { $s.running true } } Components A stopserver { s *Server precondition { } postcondition { $s.running false } } PC changereference { c *Client s *Server precondition { $s.running true } postcondition { $c.refer $s } } B

Inputs for Composer Constraints [None] Pairs (Initial, Goal) Pair #1 Initial: A.running, B.stopping, PC.refer=A Goal: A.stopping, B.running, PC.refer=B Pair #2 Initial: A.stopping, B.running, PC.refer=B Goal: A.running, B.stopping, PC.refer=A designer

Pair #1 Composition Process Generated Workflow startservice(b) changereference(pc, B) stopservice (A) State-Transition <none> B.running PC.refer=B A.stopping State-dependencies -<none> B.running -B.running PC.refer=B -PC.refer=B A.stopping

Pair #2 Composition Process Generated Workflow startservice(a) changereference(pc, A) stopservice (B) State Transition <none> A.running PC.refer=A B.stopping State-dependencies -<none> A.running -A.running PC.refer=A -PC.refer=A B.stopping

Composition Process Result State-Dependencies 1. B.running PC.refer=B 2. PC.refer=B A.stopping 3. A.running PC.refer=A 4. PC.refer=A B.stopping A 3 PC B 2 1 4

Cloud Burst of 3-Tier WebApps

Problem in BSig BSig s state dependency defines the dependency between two instances Resource pool problem - Using one of multiple resources requires multiple statedependencies Repairing problem - Replacing a failure component - Require repairing the state-dependency

Problem in BSig WS-A WS-B WS-C WS-A WS-B PC WS-A PC WS-B PC

LCC Lightweight Coordination Calculus Define relation between roles, not instances Notation for clearly defining the interaction between components in BSig Some interpreters - OpenKnowledge, LiJ (Java) - Okeileidh (Javascript, Node.js)

BSig vs LCC BSig WS-A WS-B WS-C LCC - WS is a Role WS-A WS-B WS-C WS PC PC

BSig in LCC Notation a(ws-b, B) :: set(refer,ws-a) => a(pc, PC) then achieve(running,false) <- at(refer,ws-a) <= a(pc, PC). a(pc, PC) :: set(refer,ws-a) <= a(ws-b, B) then set(running,true) => a(ws-a, A) then at(running,true) <= a(ws-a, A) then at(refer,ws-a) => a(ws-b, B) <- achieve(refer,ws-a). a(ws-a, A) :: set(running,true) <= (pc, PC) then at(running,true) => a(pc, PC) <- achieve(running,true). A PC B

LCC Design Pattern for BSig a(webservice, WS) :: set(variable, Value) <= a(pc, PC)! then a(webserviceresponder(variable, Value), WS) then at(variable, Value) => a(pc, PC).! a(webserviceresponder(variable, Value), R) :: null <-- current(variable, Value)! or ( null <- getprecondition(variable, Value, Comps, Vars, Vals) then a(webservicerequester(comps, Vars, Vals), R) then null <- achieve(variable, Value) ) or null <- achieve(variable, Value).! a(webservicerequester(c, Vars, Vals), R) :: null <- C = [] or ( set(var1, Val1) => a(c1, CX) <- list(c,c1,cr) && list(vars,var1,varr) && list(vals,val1,valr) then at(var1, Val1) <= a(c1, CX) then a(webservicerequester(cr, Varr, Valr), R) ).

Future Works Automated composition of BSig for real use cases Adopt LCC relation on BSig Hierarchical composition for large scale system

IRP Thank you! Q & A