34
DICE Horizon 2020 Project Grant Agreement no. 644869 http://www.dice-h2020.eu Funded by the Horizon 2020 Framework Programme of the European Union DICE: Quality-Aware DevOps For Big Data Applications Giuliano Casale Imperial College London

DICE: Quality-Aware DevOps For Big Data Applicationswp.doc.ic.ac.uk/dice-h2020/wp-content/uploads/... · ©DICE 01/16/2018 I want to check if critical bolts could create problems

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: DICE: Quality-Aware DevOps For Big Data Applicationswp.doc.ic.ac.uk/dice-h2020/wp-content/uploads/... · ©DICE 01/16/2018 I want to check if critical bolts could create problems

DICE Horizon 2020 Project Grant Agreement no. 644869 http://www.dice-h2020.eu Funded by the Horizon 2020

Framework Programme of the European Union

DICE: Quality-Aware DevOps For Big Data Applications

Giuliano Casale Imperial College London

Page 2: DICE: Quality-Aware DevOps For Big Data Applicationswp.doc.ic.ac.uk/dice-h2020/wp-content/uploads/... · ©DICE 01/16/2018 I want to check if critical bolts could create problems

The Rapid Growth of Big Data

©DICE 01/16/2018

o Software market rapidly shifting to Big data 27% compound annual growth rate through 2017 (IDC) Popular technologies such as Spark, Hadoop, and NoSQL

boost Big Data adoption and revenues from new services

Business issue: 65% of Big data projects still fail (CapGemini)

Source: IDC Source: Wikibon

2

Page 3: DICE: Quality-Aware DevOps For Big Data Applicationswp.doc.ic.ac.uk/dice-h2020/wp-content/uploads/... · ©DICE 01/16/2018 I want to check if critical bolts could create problems

What problems EU SMEs face? An example from our consortium

©DICE 01/16/2018

Traditional market: Legacy software systems

Customers with legacy data now ask for Big Data technologies Growth in sight, but …

Learning curves

Initial prototype

Risk of failure

(+ others…)

Fast-paced market

3

Page 4: DICE: Quality-Aware DevOps For Big Data Applicationswp.doc.ic.ac.uk/dice-h2020/wp-content/uploads/... · ©DICE 01/16/2018 I want to check if critical bolts could create problems

DICE: DevOps for DIAs Horizon 2020 research project (4M€, 2015-18) 9 partners (Academia & SMEs), 7 EU countries

©DICE 01/16/2018

Mission: support SMEs in developing high-quality cloud-based data-intensive applications (DIAs)

4

Page 5: DICE: Quality-Aware DevOps For Big Data Applicationswp.doc.ic.ac.uk/dice-h2020/wp-content/uploads/... · ©DICE 01/16/2018 I want to check if critical bolts could create problems

Prototype

Deploy

Monitor

Enhance

Design

DICE: Quality-Aware DevOps for Big Data

©DICE 01/16/2018 5

Page 6: DICE: Quality-Aware DevOps For Big Data Applicationswp.doc.ic.ac.uk/dice-h2020/wp-content/uploads/... · ©DICE 01/16/2018 I want to check if critical bolts could create problems

How to support DIA development?

©DICE 01/16/2018

Characterize Data Properties

Location

Velocity Volume

Variety Privacy

Big Data Technologies

NoSQL Hadoop

Spark Storm

Development Methods & Tools

UML

Delivery DevOps

Kafka

Integration QA

6

Page 7: DICE: Quality-Aware DevOps For Big Data Applicationswp.doc.ic.ac.uk/dice-h2020/wp-content/uploads/... · ©DICE 01/16/2018 I want to check if critical bolts could create problems

o Reliability

o Efficiency

o Correctness

What do we mean by Quality?

Availability Fault-tolerance

Performance Costs

©DICE 01/16/2018

Privacy & security Temporal metrics

7

Page 8: DICE: Quality-Aware DevOps For Big Data Applicationswp.doc.ic.ac.uk/dice-h2020/wp-content/uploads/... · ©DICE 01/16/2018 I want to check if critical bolts could create problems

Big Data Technologies

Cloud (Priv/Pub) `

DICE Framework

©DICE 01/16/2018

DICE IDE

Profile

Plugins

Quality Analysis

UML-Based MDE Methodology

Feedback & Iterative

Enhancement

Data Intensive Application (DIA)

Continuous Delivery & Testing

8

Page 9: DICE: Quality-Aware DevOps For Big Data Applicationswp.doc.ic.ac.uk/dice-h2020/wp-content/uploads/... · ©DICE 01/16/2018 I want to check if critical bolts could create problems

Cloud (Priv/Pub)

DICE Framework

DICE IDE

DICE Profile

Plugins

Sim Ver Opt

DPIM

DTSM

DDSM TOSCA Code

Mon

Anomaly Trace

Enhance

Big Data Technologies

Data Intensive Application (DIA)

Deploy Config Test Cont.Int Fault Inj.

©DICE 01/16/2018 9

Page 10: DICE: Quality-Aware DevOps For Big Data Applicationswp.doc.ic.ac.uk/dice-h2020/wp-content/uploads/... · ©DICE 01/16/2018 I want to check if critical bolts could create problems

DICE Workflow - Dev

©DICE 01/16/2018

“Will the DIA meet SLAs and costs?”

Design Transform to Formal Models

Simulate & Verify Optimize

Enhance DICE Eclipse IDE

“I want to design for Big data”

10

Page 11: DICE: Quality-Aware DevOps For Big Data Applicationswp.doc.ic.ac.uk/dice-h2020/wp-content/uploads/... · ©DICE 01/16/2018 I want to check if critical bolts could create problems

DICE Workflow - Ops

©DICE 01/16/2018

“I want to quickly deploy and tune the DIA”

Deploy Quality Testing Fault injection

Configuration Optimization

“I want an integrated DevOps toolchain”

Enhance

11

Page 12: DICE: Quality-Aware DevOps For Big Data Applicationswp.doc.ic.ac.uk/dice-h2020/wp-content/uploads/... · ©DICE 01/16/2018 I want to check if critical bolts could create problems

DICE Workflow: Unified Toolchain

©DICE 01/16/2018

Design Transform to Formal Models

Simulate & Verify Optimize

Enhance DICE Eclipse IDE

Deploy Quality Testing Fault

injection Configuration Optimization

Enhance

Following the DevOps paradigm, DICE delivers a unified toolchain for the enterprise team

12

Page 13: DICE: Quality-Aware DevOps For Big Data Applicationswp.doc.ic.ac.uk/dice-h2020/wp-content/uploads/... · ©DICE 01/16/2018 I want to check if critical bolts could create problems

DICE Horizon 2020 Project Grant Agreement no. 644869 http://www.dice-h2020.eu Funded by the Horizon 2020

Framework Programme of the European Union

DICE Approach, Tools, Architecture and Methodology

Page 14: DICE: Quality-Aware DevOps For Big Data Applicationswp.doc.ic.ac.uk/dice-h2020/wp-content/uploads/... · ©DICE 01/16/2018 I want to check if critical bolts could create problems

Ingredients of technical approach

o DevOps

o Model-Driven Engineering

©DICE 01/16/2018

Dev Ops Dev Ops

Analysis

Deployment blueprint

14

Page 15: DICE: Quality-Aware DevOps For Big Data Applicationswp.doc.ic.ac.uk/dice-h2020/wp-content/uploads/... · ©DICE 01/16/2018 I want to check if critical bolts could create problems

DICE incremental modeling and analysis

©DICE 01/16/2018

DICE Platform Independent Model (DPIM)

DICE Technology Specific Model (DTSM)

DICE Deployment Specific Model (DDSM)

is implemented by

is deployed onto

TOSCA blueprint

Analysis

Analysis

Analysis & Optimization

M2T transformation

DICE Methodology

15

Page 16: DICE: Quality-Aware DevOps For Big Data Applicationswp.doc.ic.ac.uk/dice-h2020/wp-content/uploads/... · ©DICE 01/16/2018 I want to check if critical bolts could create problems

DICE deployment, monitoring and testing

©DICE 01/16/2018

Deployment

Testbed

Monitoring

Fault Injection

Quality Testing

Trace Checking

Enhancement

Anomaly

Detection

Running DIA

Comp

MW

VM

Running DIA

Comp

MW

VM

Configuration optimization

TOSCA blueprint DICE M

ethodology

16

Page 17: DICE: Quality-Aware DevOps For Big Data Applicationswp.doc.ic.ac.uk/dice-h2020/wp-content/uploads/... · ©DICE 01/16/2018 I want to check if critical bolts could create problems

Modeling in the IDE

©DICE 01/16/2018

I’m defining the DPIM model for my application

17

Page 18: DICE: Quality-Aware DevOps For Big Data Applicationswp.doc.ic.ac.uk/dice-h2020/wp-content/uploads/... · ©DICE 01/16/2018 I want to check if critical bolts could create problems

DPIM-level simulation

©DICE 01/16/2018

A two VMs configuration will not be acceptable for this application

18

Page 19: DICE: Quality-Aware DevOps For Big Data Applicationswp.doc.ic.ac.uk/dice-h2020/wp-content/uploads/... · ©DICE 01/16/2018 I want to check if critical bolts could create problems

The verification step

©DICE 01/16/2018

I want to check if critical bolts could create problems at runtime

19

演示者
演示文稿备注
From the project explorer view, right click on the model, select Run as -> Run configurations…  Create new launch configuration of type DICE Verification  The launch configuration allows the user to define a set of parameters that will be given to the tool in order to run the verification task. As depicted in the figure below, the first parameter is the DICE-profiled UML model, that can be selected by browsing the workspace. It is possible to store some intermediate files in the workspace, such as the JSON file containing a compact representation of the data-intensive application. This can be done by simply selecting the checkbox and the location where to save the files. Next, the user can select the time bound against which run the verification, the Zot plugin to be used and the bolts that will be monitored to detect possible unwanted behaviors. Once all the parameters are valued, it is possible to run the verification task by selecting the Run button.
Page 20: DICE: Quality-Aware DevOps For Big Data Applicationswp.doc.ic.ac.uk/dice-h2020/wp-content/uploads/... · ©DICE 01/16/2018 I want to check if critical bolts could create problems

The optimization step

©DICE 01/16/2018

Max>> Everything seems to be ok. Let’s focus on optimization…

Let’s identify the optimal configuration for Amazon reserved instances

20

演示者
演示文稿备注
From the top bar it is possible to open the optimization wizard. Here the user should define the relevant framework, the number of application classes, whether to solve for a private or public cloud, and possibly provide information about applicable long term contracts, e.g., Amazon EC2 reserved instances. Afterwards, the user should choose candidate VMs to compare during the optimization process, associating them to the relevant DTSMs, and provide the DDSM where the result will be written.
Page 21: DICE: Quality-Aware DevOps For Big Data Applicationswp.doc.ic.ac.uk/dice-h2020/wp-content/uploads/... · ©DICE 01/16/2018 I want to check if critical bolts could create problems

Deployment step– creating the TOSCA YAML

©DICE 01/16/2018

I have got all I need to create the blueprint!

21

Page 22: DICE: Quality-Aware DevOps For Big Data Applicationswp.doc.ic.ac.uk/dice-h2020/wp-content/uploads/... · ©DICE 01/16/2018 I want to check if critical bolts could create problems

Deployment step – sending the TOSCA YAML to the deployment service

©DICE 01/16/2018

… and now let’s deploy!

22

Page 23: DICE: Quality-Aware DevOps For Big Data Applicationswp.doc.ic.ac.uk/dice-h2020/wp-content/uploads/... · ©DICE 01/16/2018 I want to check if critical bolts could create problems

Monitoring and detecting anomalies

©DICE 01/16/2018

Everything is fine today!

23

Page 24: DICE: Quality-Aware DevOps For Big Data Applicationswp.doc.ic.ac.uk/dice-h2020/wp-content/uploads/... · ©DICE 01/16/2018 I want to check if critical bolts could create problems

Txt/JSON/ MongoDB/…

Quality testing

4. Test results in DMon

Features: • Load generation for stream processing systems • Load replay • Load scaling (via Hidden Markov Model representation)

Load injection into the DIA

QT Tool workflow:

QT-LIB QT-GEN

Generates load w/given parameters

Makes load an input to custom spout

Deployment

DICE IDE

1. Max & Ophra add QT tool as a spout, provide (initial) load & deploys DIA

2. QT tool starts simultaneously with DIA

3. Injects load

Load file

DIA

©DICE 01/16/2018

Let’s stress our DIA!

24

Page 25: DICE: Quality-Aware DevOps For Big Data Applicationswp.doc.ic.ac.uk/dice-h2020/wp-content/uploads/... · ©DICE 01/16/2018 I want to check if critical bolts could create problems

Fault injection

©DICE 01/16/2018

Ophra&Max>> And now let’s check robustness!

25

Page 26: DICE: Quality-Aware DevOps For Big Data Applicationswp.doc.ic.ac.uk/dice-h2020/wp-content/uploads/... · ©DICE 01/16/2018 I want to check if critical bolts could create problems

Enhancement tool

o Objective: designed for iteratively enhancing the DIA quality o Functions:

o Providing a performance and reliability analysis o Updating UML models with analysis results o Anti-patterns Detection o Refactoring the design model

©DICE 01/16/2018

let’s consider the proposed improvements!

26

演示者
演示文稿备注
The Enhancement Tools are the main tool to close the loop between runtime (monitoring data) and design time (models and tools). They feature the correlation between monitoring data to find the existence of different abstractions between design concepts and runtime measurements. They also provide the initial parameters for the Simulation tools and optimization tools from monitoring data and detect the anti-patterns in the application design. Provide statistical estimation algorithms to infer resource consumption of an application. Provide fitting algorithms to match monitoring data to parametric statistical distributions.
Page 27: DICE: Quality-Aware DevOps For Big Data Applicationswp.doc.ic.ac.uk/dice-h2020/wp-content/uploads/... · ©DICE 01/16/2018 I want to check if critical bolts could create problems

Summing up

©DICE 01/16/2018

Design Transform to Formal Models

Simulate & Verify Optimize

Enhance DICE Eclipse IDE

Deploy Quality Testing Fault

injection Configuration Optimization

Enhance

Following the DevOps paradigm, DICE delivers a unified toolchain for the enterprise team

27

Page 28: DICE: Quality-Aware DevOps For Big Data Applicationswp.doc.ic.ac.uk/dice-h2020/wp-content/uploads/... · ©DICE 01/16/2018 I want to check if critical bolts could create problems

Demonstrators

©DICE 01/16/2018

News&Media Market

e-Government Market

Maritime Sector

Tax Fraud Detection Application

Posidonia Operations News Asset

28

Page 29: DICE: Quality-Aware DevOps For Big Data Applicationswp.doc.ic.ac.uk/dice-h2020/wp-content/uploads/... · ©DICE 01/16/2018 I want to check if critical bolts could create problems

News analysis demonstrator

©DICE 01/16/2018 29

Page 30: DICE: Quality-Aware DevOps For Big Data Applicationswp.doc.ic.ac.uk/dice-h2020/wp-content/uploads/... · ©DICE 01/16/2018 I want to check if critical bolts could create problems

!

Configuring a Big data system

©DICE 01/16/2018 30

Page 31: DICE: Quality-Aware DevOps For Big Data Applicationswp.doc.ic.ac.uk/dice-h2020/wp-content/uploads/... · ©DICE 01/16/2018 I want to check if critical bolts could create problems

DICE configuration optimization

©DICE 01/16/2018 31

Page 32: DICE: Quality-Aware DevOps For Big Data Applicationswp.doc.ic.ac.uk/dice-h2020/wp-content/uploads/... · ©DICE 01/16/2018 I want to check if critical bolts could create problems

DICE configuration optimization

©DICE 01/16/2018 32

Page 33: DICE: Quality-Aware DevOps For Big Data Applicationswp.doc.ic.ac.uk/dice-h2020/wp-content/uploads/... · ©DICE 01/16/2018 I want to check if critical bolts could create problems

Applying Bayesian Optimization to DevOps

DICE configuration optimization

©DICE 01/16/2018 33

Page 34: DICE: Quality-Aware DevOps For Big Data Applicationswp.doc.ic.ac.uk/dice-h2020/wp-content/uploads/... · ©DICE 01/16/2018 I want to check if critical bolts could create problems

Thanks!

©DICE 01/16/2018 34