25
2013117日星期四 Shuo Yang Principal Architect of Cloud Computing, US R&D Center Compass A Streamlined OpenStack Deployment System

Compass A Streamlined OpenStack Deployment System · 2019. 2. 26. · Streamlining the Deployment of a System . 7 Real Demo ... Mapping Fundamental Concepts during Software Deployment

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Compass A Streamlined OpenStack Deployment System · 2019. 2. 26. · Streamlining the Deployment of a System . 7 Real Demo ... Mapping Fundamental Concepts during Software Deployment

2013年11月7日星期四

Shuo Yang Principal Architect of Cloud Computing, US R&D Center

Compass – A Streamlined OpenStack Deployment System

Page 2: Compass A Streamlined OpenStack Deployment System · 2019. 2. 26. · Streamlining the Deployment of a System . 7 Real Demo ... Mapping Fundamental Concepts during Software Deployment

1

Outline of This Talk

DRY, Truly Open Deployment

Scope of Problem for Compass

Compass Explained

1

2

3

Page 3: Compass A Streamlined OpenStack Deployment System · 2019. 2. 26. · Streamlining the Deployment of a System . 7 Real Demo ... Mapping Fundamental Concepts during Software Deployment

2

A General System to Deploy Distributed Systems, Extensibility as a Primary Design Goal

Not Limited to OpenStack, but Streamlined Our OpenStack Deployment Like a Charm

100% Python, 5000 Line of Python Code

Successfully Deployed Several Dogfood Clusters

Compass Wiki Page: https://wiki.openstack.org/wiki/Compass

Compass at a Glimpse

Think Big, Start Small

To Be Open Sourced – Apache 2.0 Soon

Page 4: Compass A Streamlined OpenStack Deployment System · 2019. 2. 26. · Streamlining the Deployment of a System . 7 Real Demo ... Mapping Fundamental Concepts during Software Deployment

3

Open Cloud OS (OpenStack) Open Deployment (Compass)

OpenStack

OpenStack Control Channel

Cinder Quantum Nova

NIC CPU Disk CPU Server

(2285/1285)

Disk Storage (N8000/N900)

Switch Switch (5020)

LILO/GRUB/LiveCD for OpenStack

HW/SW Configuration Deployment Channel

Auto Deploy

Data Center as a Computer

CPU CPU

Disk Disk

Switch

Live CD /

GRUB

NIC

/dev eth0, lo /proc

Linux

Page 5: Compass A Streamlined OpenStack Deployment System · 2019. 2. 26. · Streamlining the Deployment of a System . 7 Real Demo ... Mapping Fundamental Concepts during Software Deployment

4

No.1 as Storage Revenue Growth

No. 2 as `x86 Server Revenue Growth

Needless to Say, Networking Gears..

Global Excellent Telecom Cloud Solution Provider of year 2012

Why We Are Doing This?

Full HW Portfolio in Data Center

OpenStack Makes the Above a Full Cloud Solution

Page 6: Compass A Streamlined OpenStack Deployment System · 2019. 2. 26. · Streamlining the Deployment of a System . 7 Real Demo ... Mapping Fundamental Concepts during Software Deployment

5

Pioneer effort, a Ruby web app, Chef based

configuration management

A great web apps, Puppet based

configuration management

OpenStack Deployment System Overview

Crowbar

Fuel

Attractive concept to OpenStack folks:

deploy OpenStack from OpenStack

A great tool for simple OpenStack setup:

developers use it

TripleO (“under the cloud” mode)

DevStack

Page 7: Compass A Streamlined OpenStack Deployment System · 2019. 2. 26. · Streamlining the Deployment of a System . 7 Real Demo ... Mapping Fundamental Concepts during Software Deployment

6

Zero Touch Installation

Rack and Stack

Blueprint

Robot

Compass

AI

Streamlining the Deployment of a System

Page 8: Compass A Streamlined OpenStack Deployment System · 2019. 2. 26. · Streamlining the Deployment of a System . 7 Real Demo ... Mapping Fundamental Concepts during Software Deployment

7

Real Demo

Video Clips Recording Our First Deployment

Page 9: Compass A Streamlined OpenStack Deployment System · 2019. 2. 26. · Streamlining the Deployment of a System . 7 Real Demo ... Mapping Fundamental Concepts during Software Deployment

8

Outline of This Talk

DRY, Truly Open Deployment

Scope of Problem for Compass

Compass Explained

1

2

3

Page 10: Compass A Streamlined OpenStack Deployment System · 2019. 2. 26. · Streamlining the Deployment of a System . 7 Real Demo ... Mapping Fundamental Concepts during Software Deployment

9

Switch 1

Server 1

Host OS

Switch 2 Switch k

Server 2

Host OS

Server n

Host OS

IPMI

SNMP

Cobbler / Razor / …

Chef / Puppet / …

A Life of Deployment – How to Streamline All Controls

Plus a lot of scripts: Boilerplate Target system

description

Page 11: Compass A Streamlined OpenStack Deployment System · 2019. 2. 26. · Streamlining the Deployment of a System . 7 Real Demo ... Mapping Fundamental Concepts during Software Deployment

10

A Restful API service instead of a web app

Functional modules with plug-in architecture (e.g., 200 Loc to support HP Switch)

Carefully designed boundary to mature tools like Cobbler, Chef and etc.

Work WITH the above tools, not to replace any of them.

Compass Philosophies – Programmability and Extensibility

Programmability – To Be a Programmable Framework

Extensibility – NOT To Be A Conglomerate

Page 12: Compass A Streamlined OpenStack Deployment System · 2019. 2. 26. · Streamlining the Deployment of a System . 7 Real Demo ... Mapping Fundamental Concepts during Software Deployment

11

Huawei UI

DB

Cobbler plugin Razor plugin Chef plugin Ansible plugin

Package Deployment Hardware Discover

Huawei Plugin microkernel

OS Provisioning

Message bus (RabbitMQ)

Restful API Server

3rd Party ISV UI Rest Client

Compass -- Open Source

Compass Internals

Page 13: Compass A Streamlined OpenStack Deployment System · 2019. 2. 26. · Streamlining the Deployment of a System . 7 Real Demo ... Mapping Fundamental Concepts during Software Deployment

12

Machine – physical compute resource

Switch – management network for machines

Cluster – pool of machines managed together

Host – machine in a cluster

Adapter – plug-in module to discover/deploy/configure hosts

Compass – A Programmable Framework

Mapping Fundamental Concepts during Software Deployment into Restful Resources

Page 14: Compass A Streamlined OpenStack Deployment System · 2019. 2. 26. · Streamlining the Deployment of a System . 7 Real Demo ... Mapping Fundamental Concepts during Software Deployment

13 13

GET /machines Lists all discovered machines

GET /machines/id Lists a machine’s hardware details and status

POST /machines/id/action Modify the hardware configuration for a machine

switch=ID address=string cluster=ID status=string

Resource Example: Machines

Query parameters for filtering

marker=markerID limit=int changes-size=dateTime details=ID,switch,address,cluster,devices,status,modified

Actions

modify(hwConfig)

Page 15: Compass A Streamlined OpenStack Deployment System · 2019. 2. 26. · Streamlining the Deployment of a System . 7 Real Demo ... Mapping Fundamental Concepts during Software Deployment

14

Time

(1) Find all available machines: /machines?switch=0e8756dc

(2) Select machines for my system to be deployed on to: {1, 2, 3, 4}

(3) Select an adapter, which describes the result system: /?adapter=OpenStack (4) Find components for result systems {“controller”, “compute”}

(5) Tell Compass a plan {1 -> “controller”; [2,3,4] -> “compute”} (or specify ‘?auto=true’)

(6) Poll the deployment progress

A Life of OpenStack Deployment -- as Restful Calls

Page 16: Compass A Streamlined OpenStack Deployment System · 2019. 2. 26. · Streamlining the Deployment of a System . 7 Real Demo ... Mapping Fundamental Concepts during Software Deployment

15

Currently we use Chef as deployment management Engine

Puppet or Ansible devopers, we want to work with you

Networking gear based bare metal discovery (topolology awareness)

Currently we are working on RAID Controller for Huawei

OCP community, what’s your thought

NOT to Be Conglomerate – Plug-in Architecture

Plug-in architecture for configuration management system

Plug-in architecture for Hardware vendors IPMI / SNMP

Page 17: Compass A Streamlined OpenStack Deployment System · 2019. 2. 26. · Streamlining the Deployment of a System . 7 Real Demo ... Mapping Fundamental Concepts during Software Deployment

16

Chef-Server

Compass

Cobbler-server

Policy Databag (e.g., exclusive; default) OpenStack Cookbook

snippets kickstart files

NOT to Be Conglomerate – Roles in the System

App writer

Lib writer

Restful Reqs

Page 18: Compass A Streamlined OpenStack Deployment System · 2019. 2. 26. · Streamlining the Deployment of a System . 7 Real Demo ... Mapping Fundamental Concepts during Software Deployment

17

Outline of This Talk

DRY, Truly Open Deployment

Scope of Problem for Compass

Compass Explained

1

2

3

Page 19: Compass A Streamlined OpenStack Deployment System · 2019. 2. 26. · Streamlining the Deployment of a System . 7 Real Demo ... Mapping Fundamental Concepts during Software Deployment

18

Distributed System

Hardware

HP

OS

Ubuntu

CentOS

Windows Server?

OpenStack Hadoop Ceph?

OCP?

ESXi ?

Huawei

Extensible in Use Cases

Page 20: Compass A Streamlined OpenStack Deployment System · 2019. 2. 26. · Streamlining the Deployment of a System . 7 Real Demo ... Mapping Fundamental Concepts during Software Deployment

19

OS Provisioning Tools

Cobbler

Razor

Chef Puppet Ansible Salt Configuration Management Tools

Extensible in Tool Chain

Page 21: Compass A Streamlined OpenStack Deployment System · 2019. 2. 26. · Streamlining the Deployment of a System . 7 Real Demo ... Mapping Fundamental Concepts during Software Deployment

20

To Summarize

General Purpose Deployment System (Ultimate Goal)

Deploys OpenStack Cloud Infrastructure Smoothly (Dogfoods Done)

Restful API: Allow Third-party UI Integration

Contact us: [email protected]

Santa Clara R&D Center, US

Open Sourced under Apache 2.0

Open to Collaboration

Page 22: Compass A Streamlined OpenStack Deployment System · 2019. 2. 26. · Streamlining the Deployment of a System . 7 Real Demo ... Mapping Fundamental Concepts during Software Deployment

Copyright©2013 Huawei Technologies Co., Ltd. All Rights Reserved.

The information in this document may contain predictive statements including, without limitation, statements regarding the future financial and operating results, future product

portfolio, new technology, etc. There are a number of factors that could cause actual results and developments to differ materially from those expressed or implied in the predictive

statements. Therefore, such information is provided for reference purpose only and constitutes neither an offer nor an acceptance. Huawei may change the information at any time

without notice.

Page 23: Compass A Streamlined OpenStack Deployment System · 2019. 2. 26. · Streamlining the Deployment of a System . 7 Real Demo ... Mapping Fundamental Concepts during Software Deployment

22

Compass – Web Enabled Deployment

Compass

Server Farm

Administrators

Internet

Administrators

Intranet

Simple Web actions

zzz…

(40mins)

From baremetal to OpenStack DC

Page 24: Compass A Streamlined OpenStack Deployment System · 2019. 2. 26. · Streamlining the Deployment of a System . 7 Real Demo ... Mapping Fundamental Concepts during Software Deployment

23

Flask for Web Server Layer

Celery for Task Management

Relational DB as Transaction Records

Compass Internal: Current Implementation

RabbitMQ as Message Broker

Chef as Package Management Executor

Cobbler as Host System Management

Page 25: Compass A Streamlined OpenStack Deployment System · 2019. 2. 26. · Streamlining the Deployment of a System . 7 Real Demo ... Mapping Fundamental Concepts during Software Deployment

24

Authentication

JSON or XML request/response data formats

Paginated collections

Follow OpenStack API conventions

Compass API Design Convention

Allow multi-tenancy as an option (tenantID not required)

Use POST to create a new resource and return its ID

Use PUT to replace, PATCH/POST for a partial update

Changes-since query parameter

Version in URI or header

Common representation for faults