SALSA: A Framework for Dynamic Configuration of Cloud Services

21
SALSA: A Framework for Dynamic Configuration of Cloud Services Duc-Hung Le, Hong-Linh Truong, Georgiana Copil, Stefan Nastic and Schahram Dustdar Distributed Systems Group, Vienna University of Technology http://www.infosys.tuwien.ac.at/research/viecom/ 6th International Conference on Cloud Computing Technology and Science Singapore, 15-18 December 2014

Transcript of SALSA: A Framework for Dynamic Configuration of Cloud Services

Page 1: SALSA: A Framework for Dynamic Configuration of Cloud Services

SALSA: A Framework for Dynamic

Configuration of Cloud Services

Duc-Hung Le, Hong-Linh Truong, Georgiana Copil,

Stefan Nastic and Schahram Dustdar

Distributed Systems Group, Vienna University of Technology

http://www.infosys.tuwien.ac.at/research/viecom/

6th International Conference on Cloud Computing Technology and Science

Singapore, 15-18 December 2014

Page 2: SALSA: A Framework for Dynamic Configuration of Cloud Services

CloudCom 2014 2

Overview

Scenario

Research issues

Framework for dynamic configuration

Demo

Conclusions and future work

Page 3: SALSA: A Framework for Dynamic Configuration of Cloud Services

CloudCom 2014 3

Scenario - Complexity of configuration

(1) Interact

via web

interface

(I) Interact via

cloud API

(2) Access to

each VM by

SSH/VNC

> apt-get update

> vim configure.conf

> make clean install

Error !

(3) Configure

> service X start

> ./decommiss.sh

> ./register.sh

Warning !

(II) Configure

remotely via

SSH/JSch

Multiple IaaS

cloud providers

Service

developer

Elasticity

controller

Page 4: SALSA: A Framework for Dynamic Configuration of Cloud Services

CloudCom 2014 4

Scenario - Complexity of the cloud

service configuration

M2MDaaS topology

Topology 1 Topology 2IoT topology

Data controller

Data nodeLoad balancer

Event Processing

MOM

Sensor GatewayApplication

level

Legends:

Connect via network

Page 5: SALSA: A Framework for Dynamic Configuration of Cloud Services

CloudCom 2014 5

Scenario - Complexity of the cloud

service configuration

Linux

docker

Java

Linux

Java

Linux

Java

Linux

docker

Tomcat

Linux

Java

Linux

JavaOS/

Container

level

Legends:

Connect via network

Placed on

M2MDaaS topology

Topology 1 Topology 2IoT topology

Data controller

Data nodeLoad balancer

Event Processing

MOM

Sensor GatewayApplication

level

Page 6: SALSA: A Framework for Dynamic Configuration of Cloud Services

CloudCom 2014 6

Scenario - Complexity of the cloud

service configuration

Linux

docker

Java

Linux

Java

Linux

Java

Linux

docker

Tomcat

Linux

Java

Linux

JavaOS/

Container

level

Virtual

machine

level

m1.small

instance

m1.small

instance

c1.medium

instance

m1.medium

instance

Cloud infrastructure 1

Public

networkc1.medium

snapshot

instance

m1.large

instance

m1.medium

instanceCloud infrastructure 2

Legends:

Connect via network

Placed on

M2MDaaS topology

Topology 1 Topology 2IoT topology

Data controller

Data nodeLoad balancer

Event Processing

MOM

Sensor GatewayApplication

level

Page 7: SALSA: A Framework for Dynamic Configuration of Cloud Services

CloudCom 2014 7

Scenario - Complexity of the cloud

service configuration

Linux

docker

Java

Linux

Java

Linux

Java

Linux

docker

Tomcat

Linux

Java

Linux

JavaOS/

Container

level

Virtual

machine

level

m1.small

instance

m1.small

instance

c1.medium

instance

m1.medium

instance

Public

networkc1.medium

snapshot

instance

m1.large

instance

m1.medium

instance

Quick startup VMsHigh compute

intensive VMsLow price VMs High data

intensive VMs

M2MDaaS topology

Topology 1 Topology 2IoT topology

Data controller

Data nodeLoad balancer

Event Processing

MOM

Sensor GatewayApplication

level

Page 8: SALSA: A Framework for Dynamic Configuration of Cloud Services

CloudCom 2014 8

Requirements

Elasticity controllers– Fine-grained actions.

– Control all service levels.

– Manage the whole service.

Well-known tools- Chef, Puppet, Ansible…

- Google CDM, Slipstream,

Brooklyn, Juju …

- OpenTOSCA

Limitations- Support single configuration level.

- Need human interaction.

- Not support runtime configuration.

Multi-cloud environment

- Diversity

- Dynamicity

Service developers– Automate complex tasks.

– Manage only application level.

– Semantic service management.

Page 9: SALSA: A Framework for Dynamic Configuration of Cloud Services

CloudCom 2014 9

Research issues and Approach

Research questions- Full automated configuration for complex cloud services.

- Support multiple cloud infrastructures.

- Configure multiple software stacks: VM, container, webapp.

Approach– Capture information of multiple configuration levels:

• Cloud service structure

• Deployment information

– Coordinate of the configuration tasks by orchestration.

– Support many types of configuration on different levels.

Page 10: SALSA: A Framework for Dynamic Configuration of Cloud Services

CloudCom 2014 10

SALSA

Framework

Service configuration flow

Preprocess

Cloud systemsVM

Orchestrate

configuration

tasks

Bootstrap VMArtifact

deployment

Configure cloud

resourcesLifecycle

management

Configure VM

environment

Setup

configuration

environment

Configuration

plan

PUT [service_structure]

Configured service

Developer

POST [unit_ID, scaleout]

Controller

DELETE [instance_ID]

GET [serviceID]

Page 11: SALSA: A Framework for Dynamic Configuration of Cloud Services

CloudCom 2014 11

SALSA Framework architecture

Information services

– Provide services

information, e.g.

artifact, relationships

– Link to cloud

providers and external

repositories.

– Enable third parties

add configuration

capabilities to the

existing services.

Central service

– Orchestrate the

configuration tasks

– Interface with multiple

cloud providers.

– Plug-in configuration

algorithms

Local configurator

– Configure artifacts on VM.

– Interface with multiple

configuration tools.

Page 12: SALSA: A Framework for Dynamic Configuration of Cloud Services

CloudCom 2014 12

Capturing configuration information

Configuration

capability

categorized

Primitive

Add/remove

Complex

Start/stop

Reconfigure

Scale in/out

Redeploy

Migrate

associateDeployment stack

Cloud 1 Cloud N

Virtual machine

OS container

App container

Web service

associated

at runtime

Executable

Multiple service levels

Complex configuration capability

Multiple deployment stacks

[1] G. Copil, D. Moldovan, H.-L.

Truong, and S. Dustdar, “Multi-

level elasticity control of cloud

services,”, ICSOC 2013

Cloud service

Service topology

Service unit

Service instance

consist of

consist of consist of

consist of depend-on

Page 13: SALSA: A Framework for Dynamic Configuration of Cloud Services

CloudCom 2014 13

Generating deployment information

Enrich missing information

– Different service types.

– Based on many criteria.

Service unit eco-system

– Connect to clouds

– Service relationships

Plugin-able enrichment

algorithms

– Enrich based on

configuration capabilities.

– Determine the relationship

between service units.

• Hosted-on relationship

• Connect-to relationship

Page 14: SALSA: A Framework for Dynamic Configuration of Cloud Services

CloudCom 2014 14

Orchestrate configuration tasks

Maintain the dependencies and the order of tasks.

– Tasks can be executed in parallel.

– Forward tasks to the right configurator module to execute.

Plugin-able module for develop different algorithms

– Distributed orchestration.

– Workflow, plan-based.

Service unit

orchestrator

..Service unit

orchestrator

Cloud service

orchestrator

Service unit

orchestrator

actuate

actions

update

states

Topology of

service units

task

task

task

Web app.

configurator

Container

configurator

System service

configurator

Virtual machine

configurator

Interface for

applications

configuration

Interface for

cloud systems

configuration

Environment

configurator

Page 15: SALSA: A Framework for Dynamic Configuration of Cloud Services

CloudCom 2014 15

Service placement at runtime

Placement

– Decide where to place the service unit.

– Automatic manage the configuration of container and infrastructure.

Placement algorithms:

– Optimal for resource usage or

performance.

– Multi-tenant problem.

Plugin-able module

– Instance number based.

– Resource threshold based.

Page 16: SALSA: A Framework for Dynamic Configuration of Cloud Services

CloudCom 2014 16

Managing configuration states

Configuration states information

– Manage the dependencies between configuration tasks.

– Represent service lifecycle

– Feed-back to users.

Collecting state information

– States from many configuration levels

– States of service structure

Aggregating states on multiple

levels and stacks

– A configuration task exposed its state.

– State of cloud service and topology

are collected from service units.

CloudService

Allocating

Docker

configuring

Tomcat

allocating

VM

deployed

FrontEnd topo

Allocating

BackEnd topo

Running

Webapp 1

Allocating

App 1

Running

App 2

deployed

Actual

configuration

states

Aggregated

configuration

states

Page 17: SALSA: A Framework for Dynamic Configuration of Cloud Services

CloudCom 2014 17

SALSA Prototype

Interface with multiple cloud providers

– OpenStack: by Jclouds

– Flexiant: by Flexiant JADE API

– StratusLab: by StratusLab client command line

– Non-providers: configure existing machine

Interface with multiple configuration tools

– Script-based: bash

– Unix like packages: apt-get, yum, gem

– Chef enterprise and chef-solo

Specific containers and artifact support

– Tomcat, Docker

– Web application in .war artifact

TOSCA

service

definition

SALSA

• Set of VMs running.

• Cloud service

runtime structure.

• Unit configuration.

Page 18: SALSA: A Framework for Dynamic Configuration of Cloud Services

CloudCom 2014 18

Tested services

Sensors

- ~3000 lightweight instances

- On 3 clouds and normal servers

- Dynamic add/remove

M2MDaaS

- Complexity: 8 units, 3 topologies

- Running on 2 cloud systems

EventProcessing DataEnd

DSG OpenStack

- Private cloud

- Vienna

Flexiant

- Public cloud

- Commercial

- London

StratusLab

- Public cloud

- For research

- Paris

Marsa

- Connect with external services

- Distributed sites: Euro and Asia

Market Place

+ databaseIot.eclipse.org

Data customer

Sensor

Normal servers

- Hanoi and HCM

city, Vietnam

- Vienna

Controller

DataNode

EventProcessor

LB MOM

Gateway

GW

Sensor

MQTT

Internet

Sensor

Iot.eclipse.org MQTT Gateway

Scalable unit Static unit External service

Page 19: SALSA: A Framework for Dynamic Configuration of Cloud Services

CloudCom 2014 19

Examples and demo

Demo 1: Simplify complex configuration management

– M2MDaaS: 3 topologies, 7 service units.

– Multiple clouds:

• OpenStack private cloud

• Flexiant public cloud.

– Connect sensors into the running M2MDaaS.

– Maintain service units dependencies.

Demo 2: Enable dynamic and multiple levels configuration

– Focus on one topology of the M2MDaaS

– Enable complex operations at runtime: scale in, scale out.

– Enable configuration at infrastructure and application level.

Page 20: SALSA: A Framework for Dynamic Configuration of Cloud Services

CloudCom 2014 20

Conclusions and future work

Conclusion

– Introduce a framework for developing and experimenting

advanced configuration functionalities.

– Provide initial features for full automatic and dynamic

configuration of cloud services.

– Support single cloud and multiple clouds.

Future work: Focus more on the configuration of

application level

– Understand more configuration relationships of multiple levels

and application structure.

– Optimize the configuration at application level.

Page 21: SALSA: A Framework for Dynamic Configuration of Cloud Services

THANK YOU !

Duc-Hung Le

[email protected]://dsg.tuwien.ac.at/staff/dle/

Prototypes available http://tuwiendsg.github.io

Distributed Systems GroupVienna University of Technology

Austria