+ All Categories
Home > Documents > Orchestrating an OpenStack DevOps Cloud for R&D to Achieve ... · Trac Puppet RabbitMQ ActiveMQ...

Orchestrating an OpenStack DevOps Cloud for R&D to Achieve ... · Trac Puppet RabbitMQ ActiveMQ...

Date post: 18-Mar-2020
Category:
Upload: others
View: 5 times
Download: 0 times
Share this document with a friend
50
Orchestrating an OpenStack DevOps Cloud for R&D to Achieve Continuous Delivery Ting Zou & Tanay Nagjee November 7, 2013
Transcript
Page 1: Orchestrating an OpenStack DevOps Cloud for R&D to Achieve ... · Trac Puppet RabbitMQ ActiveMQ Hive、 HBase CFEngine Subversion Nagios OpenStackCloud Platform CloudStack ge nkins

Orchestrating an OpenStack DevOps Cloud for

R&D to Achieve Continuous Delivery

Ting Zou & Tanay Nagjee – November 7, 2013

Page 2: Orchestrating an OpenStack DevOps Cloud for R&D to Achieve ... · Trac Puppet RabbitMQ ActiveMQ Hive、 HBase CFEngine Subversion Nagios OpenStackCloud Platform CloudStack ge nkins

Introductions

2

Tanay Nagjee

Solutions Engineer @ Electric Cloud

Former ElectricCommander Engineer

Ting Zou

Director, Cloud Computing R&D Data Center

Huawei USA

Page 3: Orchestrating an OpenStack DevOps Cloud for R&D to Achieve ... · Trac Puppet RabbitMQ ActiveMQ Hive、 HBase CFEngine Subversion Nagios OpenStackCloud Platform CloudStack ge nkins

A privately-owned Global Company

An ICT Industry Leader

An Innovative Industry Contributor

This is Huawei

Page 4: Orchestrating an OpenStack DevOps Cloud for R&D to Achieve ... · Trac Puppet RabbitMQ ActiveMQ Hive、 HBase CFEngine Subversion Nagios OpenStackCloud Platform CloudStack ge nkins

A global company providing information

and communications technology (ICT)

solutions.

Products and solutions have been

deployed in 140+ countries, serving 1/3 of

the world’s population.

A privately-owned company founded in

1987, Shenzhen

A Privately-owned Global Company

Page 5: Orchestrating an OpenStack DevOps Cloud for R&D to Achieve ... · Trac Puppet RabbitMQ ActiveMQ Hive、 HBase CFEngine Subversion Nagios OpenStackCloud Platform CloudStack ge nkins

5

Sustainable Growth

By BG (2012) By Region (2012)

2012 Revenue amounted to $35.4 billion, a YoY increase of 8%; net profit reached $2.47 billion

2012 USD 4.8 billion R&D investment

1H 2013, Revenue amounted to USD $18.5B, a YoY increase of 10.8%; Expected net profit margin of

7-8% in 2013.

73%

22%

5%

Carrier Network 25.7 bn

Consumer 7.8 bn

Enterprise 1.9 bn

Americas 5.1 bn China

11.8 bn

Asia Pacific 6.0 bn

EMEA 12.5bn

15% 33%

17% 35%

Currency: USD Currency: USD

Page 6: Orchestrating an OpenStack DevOps Cloud for R&D to Achieve ... · Trac Puppet RabbitMQ ActiveMQ Hive、 HBase CFEngine Subversion Nagios OpenStackCloud Platform CloudStack ge nkins

1.5Bn

2Bn

2.7Bn

3.8Bn

4.8Bn

2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012

2012 R&D investment: USD 4.8

billion, 13% of 2012 revenues

70,000 R&D employees

16 R&D centers worldwide

28 joint innovation centers

41,948 patents in China, 12,453 international

PCTs, 14,494 patents in outside of China.

US$300 million in patent royalties each year.

150+ standards organizations

30,000+ standards proposals

Accumulated R&D investments: USD 19

billion

Continuous Innovation Investment

Page 7: Orchestrating an OpenStack DevOps Cloud for R&D to Achieve ... · Trac Puppet RabbitMQ ActiveMQ Hive、 HBase CFEngine Subversion Nagios OpenStackCloud Platform CloudStack ge nkins

Problem overview

Page 8: Orchestrating an OpenStack DevOps Cloud for R&D to Achieve ... · Trac Puppet RabbitMQ ActiveMQ Hive、 HBase CFEngine Subversion Nagios OpenStackCloud Platform CloudStack ge nkins

What are we solving?

Large scale R&D environment with complicated tools requires multi-

thousands of CPU cores available on demand.

8

120

10

Current Build Time Expected Build Time

300

9

Actual Time Engineering Expectation

5 Million LOC Build

(unit: minute)

10 Million LOC code coverage testing report

(unit:minute)

Page 9: Orchestrating an OpenStack DevOps Cloud for R&D to Achieve ... · Trac Puppet RabbitMQ ActiveMQ Hive、 HBase CFEngine Subversion Nagios OpenStackCloud Platform CloudStack ge nkins

What are we solving?

Environment/tools provisioning is very time-consuming; lab asset

utilization is low.

9

0

100

200

300

400

500

Current expected

480

20

environment provision

Current Provision time Expected Provision Time

10

2

Compile/Build environment Provision

(unit:minute)

Software Testing environment provision

(unit:hour)

Page 10: Orchestrating an OpenStack DevOps Cloud for R&D to Achieve ... · Trac Puppet RabbitMQ ActiveMQ Hive、 HBase CFEngine Subversion Nagios OpenStackCloud Platform CloudStack ge nkins

What are we solving?

R&D data grows rapidly; requires the flexibility of dynamically

expanding PB storage capability.

10

0

500

1000

1500

2000

2500

2011年 2012年

1300

2500

500G

1000G

daily execution data generated by daily build

Millions LoC build static analysis/ build

coverage to generate PB data annually

Data Generated by the Tools in Auto Testing/CI

Page 11: Orchestrating an OpenStack DevOps Cloud for R&D to Achieve ... · Trac Puppet RabbitMQ ActiveMQ Hive、 HBase CFEngine Subversion Nagios OpenStackCloud Platform CloudStack ge nkins

What are we solving?

Integration between development and operation; DevOps enabled

continuous delivery required.

11

Virtualization and cloud computing

converged infrastructure

Automatic provision and

configuration management technology

DevOps

Cloud

R & D requires multi-layer and multi-

platform infrastructure

Allow developers more control over the

production environment

Concise definition of R&D processes,

automate as much as possible

Bridging the gap between development

and operations

Globally distributed R&D teams

Page 12: Orchestrating an OpenStack DevOps Cloud for R&D to Achieve ... · Trac Puppet RabbitMQ ActiveMQ Hive、 HBase CFEngine Subversion Nagios OpenStackCloud Platform CloudStack ge nkins

Solution overview

Page 13: Orchestrating an OpenStack DevOps Cloud for R&D to Achieve ... · Trac Puppet RabbitMQ ActiveMQ Hive、 HBase CFEngine Subversion Nagios OpenStackCloud Platform CloudStack ge nkins

Virtualization/Cloud sounds like a good solution, but...

Servers CPUs Standard Enterprise Enterprise Plus

3000 6000 8 million US$ 20 million US$ 25 million US$

To virtualize 3k 2-CPUs servers, commercial SW license + 1 year support is a big investment:

Shall we leverage low-cost(free) open source cloud OS to reduce R&D TCO?

Source: http://www.qyjohn.net

Page 14: Orchestrating an OpenStack DevOps Cloud for R&D to Achieve ... · Trac Puppet RabbitMQ ActiveMQ Hive、 HBase CFEngine Subversion Nagios OpenStackCloud Platform CloudStack ge nkins

Choose OpenStack as the Provider of IAAS

Controller Node

#3

Controller

Quantum(A)

Swift

Swift-Proxy

Private Switch (Network)

External Switch (Network)

Controller Node #2

Controller

Quantum(A)

Storage Node

Swift

Swift-Proxy

iLCM

(Lab Configuration Manager)

Cobbler Chef

Puppet etc

In-House Dev Module

Controller Node #1

Controller

Quantum(A)

vSwitch

8 Huawei RH2285(dual 6-cores CPUs, 96GB MEM, 8TB storage) servers used in PoC

Openstack is provisioned and managed by Huawei iLCM(intelligent Lab Configuration Manager) with backend

integration with cobbler/chef/puppet open source tools

Leverage the OpenStack open source community as much as we can (Devstack, Mirantis, RPC, Dell crossbar etc)

plus in house developed script modules, will contribute back to the community once it is ready.

Page 15: Orchestrating an OpenStack DevOps Cloud for R&D to Achieve ... · Trac Puppet RabbitMQ ActiveMQ Hive、 HBase CFEngine Subversion Nagios OpenStackCloud Platform CloudStack ge nkins

Single Portal for Cloud Admin and Users

Cloud Admin Portal

for users with

different level of

privileges, integrated

with LDAP at the

backend

Cloud resource

usage monitoring

(Roadmap)

Cloud VM provision

and software

configuration

management

Cloud Network,

Storage and Security

configuration

management

(Roadmap)

Page 16: Orchestrating an OpenStack DevOps Cloud for R&D to Achieve ... · Trac Puppet RabbitMQ ActiveMQ Hive、 HBase CFEngine Subversion Nagios OpenStackCloud Platform CloudStack ge nkins

Cloud is free now, what else can be free?

Design modeling

Code analysis

CI

Redmine

Func Testing

Requirement Analysys

Project Mgmt

SCM

Collaboration

Design Development Testing

gUnit,cppUnit

Automation Framework

Unit Testing Selenium

Pef Testing

IOMeter

Others

Hadoop

Provision

Chef

Travis

-CI

memcached

Github

Reviewboard

Trac

Puppet

RabbitMQ ActiveMQ

Hive、 HBase

CFEngine

Subversion Nagios

Monitor

CloudStack OpenStack Cloud Platform

SourceForg

e

Jenk

ins

PcLint valgrind

Jmeter

Mobitest gMock,JMock

CppCheck Cpplint

Page Speed

JIRA

GIT

Gerrit

Mercurial

OpenGrok

Bugzilla

Page 17: Orchestrating an OpenStack DevOps Cloud for R&D to Achieve ... · Trac Puppet RabbitMQ ActiveMQ Hive、 HBase CFEngine Subversion Nagios OpenStackCloud Platform CloudStack ge nkins

HUDOS (Huawei Unified DevOps System) Technologies

Page 18: Orchestrating an OpenStack DevOps Cloud for R&D to Achieve ... · Trac Puppet RabbitMQ ActiveMQ Hive、 HBase CFEngine Subversion Nagios OpenStackCloud Platform CloudStack ge nkins

Single Portal for R&D engineering

SaaS (instant

creation of an

environment with

complete portfolio of

common R&D tools)

Lab topology

creation with

compute, network,

storage etc

(Roadmap)

Project R&D data

statistics monitoring

Single dashboard

portal for

engineering to

access all the

needed

resource/tools in

R&D process

Page 19: Orchestrating an OpenStack DevOps Cloud for R&D to Achieve ... · Trac Puppet RabbitMQ ActiveMQ Hive、 HBase CFEngine Subversion Nagios OpenStackCloud Platform CloudStack ge nkins

IaaS and PaaS enable DevOps-Engineering link

R&D tools PaaS integrated with engineering desktop

dashboard

IaaS integrated with engineering desktop dashboard

Page 20: Orchestrating an OpenStack DevOps Cloud for R&D to Achieve ... · Trac Puppet RabbitMQ ActiveMQ Hive、 HBase CFEngine Subversion Nagios OpenStackCloud Platform CloudStack ge nkins

OpenStack integration

Page 21: Orchestrating an OpenStack DevOps Cloud for R&D to Achieve ... · Trac Puppet RabbitMQ ActiveMQ Hive、 HBase CFEngine Subversion Nagios OpenStackCloud Platform CloudStack ge nkins

Electric Cloud’s Software Delivery System

Apps

Continuous Delivery Manager

Release Trains | Feature Boards | Pipelines | Gates | Dashboards

Workflow | Resource management I Tools integration | API | Security | Reporting

Automation & Acceleration Services

Software Delivery Platform

Pla

tfo

rm

Build

Automation

CI

Test

Automation

CT

Build

Acceleration

Test

Acceleration

Build Test Deploy

Deploy

AutomationC

D

Infrastructure

Provisioning

Page 22: Orchestrating an OpenStack DevOps Cloud for R&D to Achieve ... · Trac Puppet RabbitMQ ActiveMQ Hive、 HBase CFEngine Subversion Nagios OpenStackCloud Platform CloudStack ge nkins

Before and After Electric Cloud

Issue Before Electric

Cloud After

Electric Cloud Business

Impact

Develop to Deploy 90 Days 10 Minutes 99.93%

Build to Release/Deploy 10+ errors/cycle ~0 errors/cycle 99+%

Audit application changes

(who, what, how, why, when) Days Minutes 90+%

Time to troubleshoot

problems 20 Days Minutes 99+%

Page 23: Orchestrating an OpenStack DevOps Cloud for R&D to Achieve ... · Trac Puppet RabbitMQ ActiveMQ Hive、 HBase CFEngine Subversion Nagios OpenStackCloud Platform CloudStack ge nkins

OpenStack integration

23

Page 24: Orchestrating an OpenStack DevOps Cloud for R&D to Achieve ... · Trac Puppet RabbitMQ ActiveMQ Hive、 HBase CFEngine Subversion Nagios OpenStackCloud Platform CloudStack ge nkins

OpenStack integration

24

Page 25: Orchestrating an OpenStack DevOps Cloud for R&D to Achieve ... · Trac Puppet RabbitMQ ActiveMQ Hive、 HBase CFEngine Subversion Nagios OpenStackCloud Platform CloudStack ge nkins

OpenStack integration

25

Page 26: Orchestrating an OpenStack DevOps Cloud for R&D to Achieve ... · Trac Puppet RabbitMQ ActiveMQ Hive、 HBase CFEngine Subversion Nagios OpenStackCloud Platform CloudStack ge nkins

OpenStack integration

26

Page 27: Orchestrating an OpenStack DevOps Cloud for R&D to Achieve ... · Trac Puppet RabbitMQ ActiveMQ Hive、 HBase CFEngine Subversion Nagios OpenStackCloud Platform CloudStack ge nkins

OpenStack integration

27

Page 28: Orchestrating an OpenStack DevOps Cloud for R&D to Achieve ... · Trac Puppet RabbitMQ ActiveMQ Hive、 HBase CFEngine Subversion Nagios OpenStackCloud Platform CloudStack ge nkins

Solution walk-through

Page 29: Orchestrating an OpenStack DevOps Cloud for R&D to Achieve ... · Trac Puppet RabbitMQ ActiveMQ Hive、 HBase CFEngine Subversion Nagios OpenStackCloud Platform CloudStack ge nkins

Development Scenario

29

Reviewer Mike HUDOS

Developer Joe

Eclipse Modify code

launch preflight

Subversion Check out sources

overlay deltas

Redmine Mark issue as

“build & unit test”

Jenkins Launch build + test w/ preflight source

Redmine Mark issue as “code review”

Review Board Create review

request

Redmine Mark issue as

“resolved”

Review Board Review modified

code

Build + test

success?

Review success?

Eclipse Build + test failed; notify developer

Eclipse Code rejected;

notify developer

Eclipse Success

auto-commit code

Time

Savings

Page 30: Orchestrating an OpenStack DevOps Cloud for R&D to Achieve ... · Trac Puppet RabbitMQ ActiveMQ Hive、 HBase CFEngine Subversion Nagios OpenStackCloud Platform CloudStack ge nkins

Redmine: select a bug to fix

30

Page 31: Orchestrating an OpenStack DevOps Cloud for R&D to Achieve ... · Trac Puppet RabbitMQ ActiveMQ Hive、 HBase CFEngine Subversion Nagios OpenStackCloud Platform CloudStack ge nkins

Eclipse: modify code & launch a preflight

31

Page 32: Orchestrating an OpenStack DevOps Cloud for R&D to Achieve ... · Trac Puppet RabbitMQ ActiveMQ Hive、 HBase CFEngine Subversion Nagios OpenStackCloud Platform CloudStack ge nkins

Commander: SVN preflight & Jenkins launch

32

Page 33: Orchestrating an OpenStack DevOps Cloud for R&D to Achieve ... · Trac Puppet RabbitMQ ActiveMQ Hive、 HBase CFEngine Subversion Nagios OpenStackCloud Platform CloudStack ge nkins

Redmine: auto-updated issue status

33

Page 34: Orchestrating an OpenStack DevOps Cloud for R&D to Achieve ... · Trac Puppet RabbitMQ ActiveMQ Hive、 HBase CFEngine Subversion Nagios OpenStackCloud Platform CloudStack ge nkins

Jenkins: auto-launched build

34

Page 35: Orchestrating an OpenStack DevOps Cloud for R&D to Achieve ... · Trac Puppet RabbitMQ ActiveMQ Hive、 HBase CFEngine Subversion Nagios OpenStackCloud Platform CloudStack ge nkins

Commander: build succeeds; wait for review

35

Page 36: Orchestrating an OpenStack DevOps Cloud for R&D to Achieve ... · Trac Puppet RabbitMQ ActiveMQ Hive、 HBase CFEngine Subversion Nagios OpenStackCloud Platform CloudStack ge nkins

Review Board: auto-submitted review request

36

Page 37: Orchestrating an OpenStack DevOps Cloud for R&D to Achieve ... · Trac Puppet RabbitMQ ActiveMQ Hive、 HBase CFEngine Subversion Nagios OpenStackCloud Platform CloudStack ge nkins

Review Board: accept the changes

37

Page 38: Orchestrating an OpenStack DevOps Cloud for R&D to Achieve ... · Trac Puppet RabbitMQ ActiveMQ Hive、 HBase CFEngine Subversion Nagios OpenStackCloud Platform CloudStack ge nkins

Commander: the workflow succeeds

38

Page 39: Orchestrating an OpenStack DevOps Cloud for R&D to Achieve ... · Trac Puppet RabbitMQ ActiveMQ Hive、 HBase CFEngine Subversion Nagios OpenStackCloud Platform CloudStack ge nkins

Eclipse: auto-commit the changes

39

Page 40: Orchestrating an OpenStack DevOps Cloud for R&D to Achieve ... · Trac Puppet RabbitMQ ActiveMQ Hive、 HBase CFEngine Subversion Nagios OpenStackCloud Platform CloudStack ge nkins

Test Scenario

40

HUDOS

Test Engineer Jill

Redmine Mark issue as

“verifying”

OpenStack Provision specified virtual machines

Testing success?

OpenStack Teardown virtual

machines

Redmine Mark issue as

“closed”

Commander Launch

automated tests

Notification Tests failed; VMs ready to inspect

Notification Tests passed; issue

closed

Commander Pick issue to verify

and tests cases

Time

Savings

Page 41: Orchestrating an OpenStack DevOps Cloud for R&D to Achieve ... · Trac Puppet RabbitMQ ActiveMQ Hive、 HBase CFEngine Subversion Nagios OpenStackCloud Platform CloudStack ge nkins

OpenStack: no dynamically deployed VMs

41

Page 42: Orchestrating an OpenStack DevOps Cloud for R&D to Achieve ... · Trac Puppet RabbitMQ ActiveMQ Hive、 HBase CFEngine Subversion Nagios OpenStackCloud Platform CloudStack ge nkins

Commander: launch test workflow

42

Page 43: Orchestrating an OpenStack DevOps Cloud for R&D to Achieve ... · Trac Puppet RabbitMQ ActiveMQ Hive、 HBase CFEngine Subversion Nagios OpenStackCloud Platform CloudStack ge nkins

Commander: provision VMs

43

Page 44: Orchestrating an OpenStack DevOps Cloud for R&D to Achieve ... · Trac Puppet RabbitMQ ActiveMQ Hive、 HBase CFEngine Subversion Nagios OpenStackCloud Platform CloudStack ge nkins

OpenStack: VMs are dynamically deployed

44

Page 45: Orchestrating an OpenStack DevOps Cloud for R&D to Achieve ... · Trac Puppet RabbitMQ ActiveMQ Hive、 HBase CFEngine Subversion Nagios OpenStackCloud Platform CloudStack ge nkins

Commander: successful tests; auto-teardown

45

Page 46: Orchestrating an OpenStack DevOps Cloud for R&D to Achieve ... · Trac Puppet RabbitMQ ActiveMQ Hive、 HBase CFEngine Subversion Nagios OpenStackCloud Platform CloudStack ge nkins

Summary

Page 47: Orchestrating an OpenStack DevOps Cloud for R&D to Achieve ... · Trac Puppet RabbitMQ ActiveMQ Hive、 HBase CFEngine Subversion Nagios OpenStackCloud Platform CloudStack ge nkins

武汉

深圳

ECTC

北京

ECTC

印度

ECTC

成都

ECTC

西安

ECTC

武汉

ECTC

上海

ECTC

苏州

ECTC

杭州

ECTC

What a DevOps Cloud brings to us

R&D Cloud Data Center facility to

provide the capability of acceleration

More than 2000 releases per year

More than 50000 compile & builds per day

More than 1million test cases run per day

More than 30million LoC, product is complicated

More than 480K code review/analysis per year

More than 170k system integration testing per year

Design Develop Product Validation Solution Validation

Architect Evaluation Code Analysis

Compile & Build

Hardware Emulation

Full Functional Testing Solution Testing

Hours-> Minutes

Days-> Hours

Weeks-> Days Hours-> Minutes Days-> Hours Months->Weeks

Full Regression Testing(System)

Days-> Hours

Regression Testing(software)

Days-> Minutes

Page 48: Orchestrating an OpenStack DevOps Cloud for R&D to Achieve ... · Trac Puppet RabbitMQ ActiveMQ Hive、 HBase CFEngine Subversion Nagios OpenStackCloud Platform CloudStack ge nkins

Did we address the stated concerns?

• Large scale R&D environment with complicated tools requires

multi-thousands of CPU cores available on demand.

• Environment/tools provisioning is very time-consuming; lab asset

utilization is low.

• R&D data grows rapidly; requires the flexibility of dynamically

expanding PB storage capability.

• Integration between development and operation; DevOps enabled

continuous delivery required.

Achievements:

• Reduced cost of delivering software

• Increased resource utilization and productivity

• Shorter time to market with higher quality

48

Page 49: Orchestrating an OpenStack DevOps Cloud for R&D to Achieve ... · Trac Puppet RabbitMQ ActiveMQ Hive、 HBase CFEngine Subversion Nagios OpenStackCloud Platform CloudStack ge nkins

What’s next?

49

武汉 上海 南京

北京

西安

成都

深圳

Hangzhou: 400 + Server

Size: 1600 + core, memory 10TB,

Storage 500TB

Shenzhen HQ: 2000+ Server

Size: 10k+ core, memory 50TB,

1-2PB storage

杭州

Beijing: 200 + server

Size: 800 core, memory 5TB,

Storage 200TB

R&D DATA CENTER

3000 + server, 15k + core, 10K +

virtual machine memory 100TB,

storage 2PB, reduce costs 2M US$

Page 50: Orchestrating an OpenStack DevOps Cloud for R&D to Achieve ... · Trac Puppet RabbitMQ ActiveMQ Hive、 HBase CFEngine Subversion Nagios OpenStackCloud Platform CloudStack ge nkins

Thank you!


Recommended