Reliable Self-Deployment of Cloud Applications

Similar documents
Formal Design of Dynamic Reconfiguration Protocol for Cloud Applications

Checking the Realizability of BPMN 2.0 Choreographies

Automated Configuration of Legacy Applications in the Cloud

Asynchronous synthesis techniques for coordinating autonomic managers in the cloud

Counterexample Guided Synthesis of Monitors for Realizability Enforcement. Matthias Güdemann Gwen Salaün Meriem Ouederni

Asynchronous Coordination of Stateful Autonomic Managers in the Cloud

Using LNT Formal Descriptions for Model-Based Diagnosis

A step towards reconciling GALS industrial design with formal verification

VBPMN: Automated Verification of BPMN Processes

The Fractal Open Component Model

Lesson 5 Web Service Interface Definition (Part II)

Formal Analysis of the ACE Specification for Cache Coherent Systems-On-Chip

DLC: Compiling a Concurrent System Formal Specification to a Distributed Implementation

TTool Training. III. Using TTool

Hardware/Software Co-design

Realizability of Choreographies using Process Algebra Encodings

On the Expressiveness of Polyadicity in Higher-Order Process Calculi

A Model-based Certification Framework for the EnergyBus Standard

Program verification. Generalities about software Verification Model Checking. September 20, 2016

Transactum Business Process Manager with High-Performance Elastic Scaling. November 2011 Ivan Klianev

Cover Page. The handle holds various files of this Leiden University dissertation

Promela and SPIN. Mads Dam Dept. Microelectronics and Information Technology Royal Institute of Technology, KTH. Promela and SPIN

Self-Managed Systems: an Architectural Challenge

Developing Windows Azure and Web Services

Realizability of Choreographies using Process Algebra Encodings

Complex Systems Design &DistributedCalculusandCoordination

Dynamic Adaptability of Services in Enterprise JavaBeans Architecture

Model Checking Revision: Model Checking for Infinite Systems Revision: Traffic Light Controller (TLC) Revision: 1.12

[MS20487]: Developing Windows Azure and Web Services

Description of a Lightweight Bartering Grid Architecture

Open mustard seed. Patrick Deegan, Ph.D. ID3

Formal Verification for safety critical requirements From Unit-Test to HIL

Software Design COSC 4353/6353 DR. RAJ SINGH

Developing Microsoft Azure and Web Services. Course Code: 20487C; Duration: 5 days; Instructor-led

Distributed Systems Programming (F21DS1) Formal Verification

Shao-Wen Yang, Ph.D. Staff Research Scientist Intel Labs, Intel Corporation

Synopsis by: Stephen Roberts, GMU CS 895, Spring 2013

A Specification Language for Distributed Components

COURSE 20487B: DEVELOPING WINDOWS AZURE AND WEB SERVICES

Language-Based Security on Android (call for participation) Avik Chaudhuri

The Case for Meta-modeling Frameworks Specialisation

Formal Modelling of Railway Interlockings Using Event-B and the Rodin Tool-chain

Ground Control Segment automated deployment and configuration with ANSIBLE and GIT

CAS 703 Software Design

Implementing and Maintaining Microsoft SQL Server 2008 Integration Services

Specification and Analysis of Contracts Tutorial

Developing Microsoft Azure Solutions

Planning and Administering SharePoint 2016

From Analysis to Code Generation of Protocols and Embedded Software with a UML-Based Formal Environment Named TURTLE 2005

Model driven Engineering & Model driven Architecture

Provisioning SQL Databases

Hybrid Agent-Landscape Model Composition

Handout 9: Imperative Programs and State

A: PLANNING AND ADMINISTERING SHAREPOINT 2016

On Hierarchical, parallel and distributed components for Grid programming

Behavioural Verification of Distributed Components

Implementing a Data Warehouse with Microsoft SQL Server 2012

XSEDE Infrastructure as a Service Use Cases

Planning and Administering SharePoint 2016

End-to-End Cloudification of Mobile Telecoms. The MCN Consortium Presenter: Andy Edmonds ZHAW

Microsoft CSHARP. PRO-Design and Develop Wdws-Based Appl by Using MS.NET Frmwk.

Formal Modeling and Verification of GALS Systems Using GRL and CADP

FUJITSU Cloud Service S5. Introduction Guide. Ver. 1.3 FUJITSU AMERICA, INC.

OASIS: Architecture, Model and Management of Policy

Cross-layer Self-adaptation of Service-oriented Architectures

Verfying the SSH TLP with ProVerif

Architectural Model and Planification Algorithm for the Self-Management of Elastic Cloud Applications

Whitepaper. Web-based Architecture. Author : Jayamsakthi Shanmugam and Ravi Bhardwaj

Network Based Hard/Soft Information Fusion Network Architecture/SOA J. Rimland

COURSE OUTLINE MOC : PLANNING AND ADMINISTERING SHAREPOINT 2016

Oracle Real Application Clusters (RAC) Your way to the Cloud

Automated Analysis of Industrial Workflow-based Models

Proactive data replication using semantic information within mobility groups in MANETs

Fulvio Risso, Matteo Bertrone, Mauricio Vasquez Bernal

WildFly: Parallel Approach for automated deployment application server

Efficient Scheduling of Scientific Workflows using Hot Metadata in a Multisite Cloud

The UPPAAL Model Checker. Julián Proenza Systems, Robotics and Vision Group. UIB. SPAIN

Comparator: A Tool for Quantifying Behavioural Compatibility

Software Architecture

Temporal Refinement Using SMT and Model Checking with an Application to Physical-Layer Protocols

SMEDL: Combining Synchronous and Asynchronous Monitoring

Reflective Middleware. INF Tommy Gudmundsen

YANG-Based Configuration Modeling - The SecSIP IPS Case Study

Implementing a SQL Data Warehouse

Octave: A Portable, Distributed, Opened Platform for Interoperable Monitoring Services

PSD1B Advance Java Programming Unit : I-V. PSD1B- Advance Java Programming

Investigation of System Timing Concerns in Embedded Systems: Tool-based Analysis of AADL Models

Announcements. me your survey: See the Announcements page. Today. Reading. Take a break around 10:15am. Ack: Some figures are from Coulouris

INF672 Protocol Safety and Verification. Karthik Bhargavan Xavier Rival Thomas Clausen

Large Scale Sky Computing Applications with Nimbus

A Data-Centric Approach for Modular Assurance Abstract. Keywords: 1 Introduction

Kurento Real Time Media Stream Processing. Juan Ángel Fuentes Software Developer. Stream Oriented GE

Multi-Agent Multi-Model Simulation of Smart Grids in the MS4SG Project

Automatic Distributed Code Generation from Formal Models of Asynchronous Processes Interacting by Multiway Rendezvous

Héméra Inria Large Scale Initiative

Distributed TLC. Markus A. Kuppe. TLA + Community Event, ABZ 2014 Toulouse, June 3, /33

Modeling Kernel Language (MKL)

A SELF-ADAPTIVE ARCHITECTURE FOR AUTONOMIC SYSTEMS DEVELOPED WITH ASSL

One Platform Kit: The Power to Innovate

Duration: 5 Days. EZY Intellect Pte. Ltd.,

Transcription:

Reliable Self-Deployment of Cloud Applications Xavier Etchevers 1, Gwen Salaün 2, Fabienne Boyer 3, Thierry Coupaye 1, Noel De Palma 3 1 Orange Labs, France 2 Grenoble INP, Inria, France 3 UJF-Grenoble 1, INRIA, France 1

Introduction Cloud computing aims at delivering resources and applications as a service over a network (e.g., the Internet) Cloud applications are complex distributed applications composed of interconnected software components running on separate virtual machines Setting up, (re)configuring, and monitoring these applications are complicated tasks, and involve complex management protocols In this talk, we present a reliable self-deployment protocol automating the configuration and start-up of distributed applications in the cloud 2

Outline 1. Self-Deployment Protocol 2. Verification 3. Implementation 4. Concluding Remarks 3

Application Model An application model consists of a set of components and a set of bindings connecting these components together A component is composed of input and output ports, namely imports and exports An import can be either optional or mandatory A binding connects an import of one component to an export of another component import export C1 component binding C2 Components are distributed over virtual machines, which are in charge of their administration (local and remote bindings + start-up process) 4

Self-Deployment Protocol This protocol (developed at Orange labs) for configuring distributed applications is decentralized and loosely-coupled Each virtual machine (VM) embeds the application model and a configurator in charge of the component binding and application start-up Web application model Configurators interact together through a Message Oriented Middleware (MOM), which relies on message buffers 5

Web Application Start-Up Scenario Web application model 6

Reliable Self-Deployment The self-deployment protocol also supports VM / configurator / network failures, detected using a heartbeat mechanism The deployment manager re-instantiates the failed VM and sends messages to the other VMs to let them know of this failure / instantiation Those VMs send a specific message to the new VM and may repeat parts of the configuration protocol VM1 send again export info. VM2 C1 C2 Several failures may occur, either failures of different instances of a same VM or failures of different VMs 7

Web Application Failure Scenario Web application model 8

Outline 1. Self-Deployment Protocol 2. Verification 3. Implementation 4. Concluding Remarks 9

LNT and CADP LOTOS NT (LNT) is a value-passing process algebra with user-friendly syntax and operational semantics LNT is an imperative-like language where you can specify data types, functions (pattern matching and recursion), and processes LNT is one of the input languages of the CADP toolbox, which provides a large variety of verification techniques and tools We particularly used branching temporal logics and model checking techniques 10

Specification in LNT The specification consists of at least 2,500 lines of code (data types, functions, processes) Data types describe the application model (components, ports, bindings, buffers, etc.) Functions are necessary for: - extracting information from the application model - describing buffers and basic operations on them - keeping track of the started components to know when components can be started Processes specify VMs (configurator, input and output buffer), the communication layer (MOM), and the system architecture consisting of VMs interacting through the MOM 11

Model Checking with CADP We identified and checked 15 safety and liveness properties that must be preserved by the protocol These properties specify final objectives to be fulfilled (1), architectural invariants (2), or ordering constraints (3, 4, 5) 1. All components are eventually started 2. A component cannot be started before the components it depends on through mandatory imports 3. After a VM fails, all other VMs are informed of that failure 4. Each VM failure is followed by a new creation of that VM 5. There is no sequence with two failures (same VM) without a VM creation between them They were specified in the MCL language and verified with the Evaluator 4.0 model checker 12

Tool Support input appli.lnt selfconfig.py properties.mcl CADP tools.svl selfconfig.lnt LNT specif. lnt.open script.bcg resulting LTS output diagnostics true/false Experiments were conducted on about 170 application models We were able to analyze up to 4 VMs with up to 5 failures in a few hours A bug was found in the configurator start-up part of the protocol it was corrected in the Java implementation (Orange Labs) 13

Outline 1. Self-Deployment Protocol 2. Verification 3. Implementation 4. Concluding Remarks 14

VAMP Principles VAMP: Virtual Applications Management Platform VAMP first creates a new VM in which a deployment manager is instantiated The DM generates virtual images and instantiates them as VMs in one or several Infrastructure-as-a-Service platforms Each virtual image embeds the configurator (written in Java), which encodes most of the self-deployment protocol All the participants (DM and configurators) communicate through the AAA asynchronous message-oriented middleware 15

Evaluation The evaluation process aims at measuring the time to deploy the 3-tier Web application (running example) while randomly injecting failures The time to deploy the Web application increases linearly with the number of failures 16

Outline 1. Self-Deployment Protocol 2. Verification 3. Implementation 4. Concluding Remarks 17

Concluding Remarks We propose and design an innovative, decentralized protocol to automatically deploy cloud applications consisting of interconnected software components hosted on several VMs The deployment process is able to detect and handle VM and network failures, and always succeeds in configuring the application We verified that the protocol respects some key properties using formal specification languages and model checking techniques We implemented the protocol in Java and applied it to real-world applications for evaluation purposes Main perspective: dynamic reconfiguration of cloud applications 18