continuous delivery with efficient automated testing · pdf filecontinuous delivery with...

12
Budapest, 26-28 October 2016 CONTINUOUS DELIVERY WITH EFFICIENT AUTOMATED TESTING IN CLOUD Presented by [Teresa Song] © All rights reserved

Upload: nguyennguyet

Post on 16-Feb-2018

224 views

Category:

Documents


5 download

TRANSCRIPT

Page 1: CONTINUOUS DELIVERY WITH EFFICIENT AUTOMATED TESTING · PDF filecontinuous delivery with efficient automated testing in cloud ... ericsson iot applications marketplace ... ci script

Budapest, 26-28 October 2016

CONTINUOUS DELIVERY WITH EFFICIENT AUTOMATED TESTING IN CLOUDPresented by [Teresa Song] © All rights reserved

Page 2: CONTINUOUS DELIVERY WITH EFFICIENT AUTOMATED TESTING · PDF filecontinuous delivery with efficient automated testing in cloud ... ericsson iot applications marketplace ... ci script

Agenda

2

• Product Introduction

• Challenge & Solution

©All rights reserved

Page 3: CONTINUOUS DELIVERY WITH EFFICIENT AUTOMATED TESTING · PDF filecontinuous delivery with efficient automated testing in cloud ... ericsson iot applications marketplace ... ci script

Product Intro – IOT PLATFORM

3 © All rights reserved

ERICSSON IOT APPLICATIONS MARKETPLACE

ER

ICS

SO

N P

RO

FES

SIO

NA

L SE

RV

ICE

S

Ericsson Apps

TRANSPORTUTILITIES PUBLICSAFETY SMART CITIES OTHER

INDUSTRIES

App SDK

Customer Apps Partners Apps

Device SDK

Device Management

Network and Device Adaptation

Device Authentication

M2M Data Management

Real-Time Rule Execution

Data Encryption

IoT Platform

Device Registry

Device

Industry Solution

Page 4: CONTINUOUS DELIVERY WITH EFFICIENT AUTOMATED TESTING · PDF filecontinuous delivery with efficient automated testing in cloud ... ericsson iot applications marketplace ... ci script

Test Strategy

4 © All rights reserved

High Priority Function Test All Function Test >98%

Performance TestStability Test

Manual FT <2%Upgrade Test

Document Test

Unit Test

Component Test

DAILY PER SPRINT PER RELEASEPER CHECK‐IN

RBT

Deployed PlatformPhysical Server

Virtualization

• KVM• VMWare

OpenstackSupport Multi-Cloud

• Openstack• ECC• AWS• Docker

Page 5: CONTINUOUS DELIVERY WITH EFFICIENT AUTOMATED TESTING · PDF filecontinuous delivery with efficient automated testing in cloud ... ericsson iot applications marketplace ... ci script

Challenge & Solution

5 © All rights reserved

Good

Jenkins job, Longest > 2 hours

CI with sufficient test

10,000+ test scriptsmore and more

Extract foundation modules as image

Introduce new CI framework

> 98% automation rate

Challenge

Page 6: CONTINUOUS DELIVERY WITH EFFICIENT AUTOMATED TESTING · PDF filecontinuous delivery with efficient automated testing in cloud ... ericsson iot applications marketplace ... ci script

Extract Foundation Image

6 © All rights reserved

Check-inUT/CT is pass?

Fail

PassFT/NFT is pass?

Fail

Pass Ready for Customer

Hierarchical images are used here

Image with component A+B

Send feedback Send feedbackCustomer

AB CD

AB CD

E

Customer

Sold by Value Package

Customer

Build A

Build B Build D

Build C

Check-in

AB CD

E

Image AB

Image Repo

Image A

Reduced,38 Min30%

FG

Page 7: CONTINUOUS DELIVERY WITH EFFICIENT AUTOMATED TESTING · PDF filecontinuous delivery with efficient automated testing in cloud ... ericsson iot applications marketplace ... ci script

Challenge & Solution

7 © All rights reserved

Good

Jenkins job, Longest > 2 hours

CI with sufficient test

10,000+ test scriptsmore and more

Extract foundation modules as image

Introduce new CI framework

> 98% automation rate

Challenge

Page 8: CONTINUOUS DELIVERY WITH EFFICIENT AUTOMATED TESTING · PDF filecontinuous delivery with efficient automated testing in cloud ... ericsson iot applications marketplace ... ci script

Test CI Framework

8 © All rights reserved

CI Script

Customized JClouds Plugin

Jenkins

Test Job

Artifactory

GIT Repo

Dispatch Slave

Resource Helper

CI Script Frontend

Exclusive Slave 

OpenStack

Call Flow

Reference

Default Image

Slave instance –--

Dispatcher Slave

Component Image

Slave instance –--

Exclusive Slave

Invoker

Default Action hook

Library

glance

nova

Image Interface

Server Interface

create imageUpload imagedelete image

create server delete server

Support Image Launch

Page 9: CONTINUOUS DELIVERY WITH EFFICIENT AUTOMATED TESTING · PDF filecontinuous delivery with efficient automated testing in cloud ... ericsson iot applications marketplace ... ci script

Exclusive Slave

9 © All rights reserved

• Invoker Layer • Jenkins job invoke Core 

script in CI invoker bring job’s configuration as input parameter

• Core script combine Job’s input and default configure to action  invoke list

• Invoke action by list• Action Layer

• Associate library script for default action

• invoke hook before and after action perform  

• Library Layer Provide basic API

Invoker

Defaultconfig

Core

Default Action

Config

ActionList

Action List

Library

Script List

Invoke Layer

Action Layer

Library Layer

hook

Hook List

Jenkins

Test Job

Job on Dispatch Slave

Exclusive Slave 

Config

CI ScriptCI Script

Dispatch Slave

Resource Helper

CI Script Frontend

Exclusive Slave 

Invoker

Default Action hook

Library

Unified CI APISmart Execute Test

Page 10: CONTINUOUS DELIVERY WITH EFFICIENT AUTOMATED TESTING · PDF filecontinuous delivery with efficient automated testing in cloud ... ericsson iot applications marketplace ... ci script

Example

10 © All rights reserved

| ‐ function/   (ft/smoketest/upgrade)| ‐ deploy

| ‐ network.py| ‐ class ipv6

| ‐ appserver.py| ‐ class occas| ‐ class jboss

| ‐ installation.py | ‐ class m2m| ‐ class messaging 

| ‐ verify| ‐ testInit.py

| ‐ class common | ‐ functiontest.py 

| ‐ class common | ‐ class m2m| ‐ class messaging 

Master

Function

appserver : occas

deploy

verify

Installation : m2m

Action List

gatherInfo

testInit : m2m

functiontest: m2m

Use to Locate branch or folder

| ‐ DbExecution| ‐ performMySQL.py| ‐ performOracle.py

| ‐ getComponent| ‐ getRpmFromRepo.py| ‐ getWarFromRepo.py

| ‐ deployRPM| ‐ installRPM.py| ‐ installWar.py

| ‐ activeComponent| ‐ activeOccas.py| ‐ activeJboss.py

Action Layer

Library LayerCore

Invoke Layer CI Script

Dispatch Slave

Resource Helper

CI Script Frontend

Exclusive Slave 

Invoker

Default Action hook

Library

Library

Action List

| ‐ function| ‐ deploy

| ‐ installation.py | ‐ class m2m‐pre| ‐ class m2m‐post 

Hook List

Use common when not find

Page 11: CONTINUOUS DELIVERY WITH EFFICIENT AUTOMATED TESTING · PDF filecontinuous delivery with efficient automated testing in cloud ... ericsson iot applications marketplace ... ci script

Challenge & Solution

11 © All rights reserved

Good

Jenkins job, Longest > 2 hours

CI with sufficient test

10,000+ test scriptsmore and more

Extract foundation modules as image

Introduce new CI framework

> 98% automation rate

Challenge

Average 38 minutes/30% are saved for each Jenkins test job

Time to Error Discovery is much shorten

Easy and flexible to support testing on future multi-cloud platform

Page 12: CONTINUOUS DELIVERY WITH EFFICIENT AUTOMATED TESTING · PDF filecontinuous delivery with efficient automated testing in cloud ... ericsson iot applications marketplace ... ci script

Changing On The Way

12 © All rights reserved

Deployed PlatformPhysical Server

Virtualization

• KVM• VMWare

OpenstackSupport Multi-Cloud

• Openstack• ECC• AWS• Docker

Q & A