CloudStack EU user group - Trillian

43
The Cloud Specialists THE HITCH-HIKERS GUIDE TO CI/CD ShapeBlue.com @ShapeBlue Paul Angus, VP Technology @CloudyAngus

Transcript of CloudStack EU user group - Trillian

Page 1: CloudStack EU user group - Trillian

The Cloud Specialists

THE HITCH-HIKERS GUIDE TO CI/CD

ShapeBlue.com • @ShapeBlue

Paul Angus, VP Technology • @CloudyAngus

Page 2: CloudStack EU user group - Trillian

The Cloud Specialists ShapeBlue.com @ShapeBlue

“ShapeBlue are expert builders of public & private clouds. They are the leading

independent global CloudStack services company”

A b o u t S h a p e B l u e

Page 3: CloudStack EU user group - Trillian

C l i c k t o e d i t

The Cloud Specialists ShapeBlue.com @ShapeBlue

Paul Angus – VP Technology• Global authority on CloudStack & cloud infrastructure design.

• 10+ years C-Level experience.

• Apache CloudStack project committer

• Specialising in deployment of CloudStackand surrounding infrastructure

• USP, Georgian Ministry of Justice, Orange, TomTom, PaddyPower, Ascenty, BSkyB

A b o u t M e

Page 4: CloudStack EU user group - Trillian

C l i c k t o e d i t

The Cloud Specialists ShapeBlue.com @ShapeBlue

S h a p e B l u e c u s t o m e r s

Page 5: CloudStack EU user group - Trillian

C l i c k t o e d i t

The Cloud Specialists ShapeBlue.com @ShapeBlue

S h a p e B l u e c u s t o m e r s

Page 6: CloudStack EU user group - Trillian

C l i c k t o e d i t

The Cloud Specialists ShapeBlue.com @ShapeBlue

S h a p e B l u e c u s t o m e r s

Page 7: CloudStack EU user group - Trillian

The Cloud Specialists ShapeBlue.com @ShapeBlue

Tr i l l i a n

Why?

Page 8: CloudStack EU user group - Trillian

C l i c k t o e d i t

The Cloud Specialists ShapeBlue.com @ShapeBlue

W h y

“Building CloudStack environments using CloudStackand Ansible? Aren’t you just having fun?”

CEO

Page 9: CloudStack EU user group - Trillian

C l i c k t o e d i t

The Cloud Specialists ShapeBlue.com @ShapeBlue

W h y

“Building CloudStack environments using CloudStack?Are you just having fun?”

Talented Cloud Architect

“If we can automate the building of environments including the networking, and generate any topology we want quickly, we can achieve the tasks that I’ve highlighted in these slides that I have with me, just in case you asked.”

Page 10: CloudStack EU user group - Trillian

C l i c k t o e d i t

The Cloud Specialists ShapeBlue.com @ShapeBlue

W h y

building of environments including the networking, and generate any topology we want quickly, we can achieve the tasks that I’ve highlighted in these slides that I have with me, just in case you asked.”

CEO“That would be excellent.Go ahead.Oh, and here’s a pay rise”

Page 11: CloudStack EU user group - Trillian

C l i c k t o e d i t

The Cloud Specialists ShapeBlue.com @ShapeBlue

We need to test:• New features• Hotfixes/patches• Full Versions• Physical integrations• New hypervisors• Upgrades

• Against a broad range of deployment architectures• Against a broad range of hypervisor types and

versions

W h y

Page 12: CloudStack EU user group - Trillian

C l i c k t o e d i t

The Cloud Specialists ShapeBlue.com @ShapeBlue

Many, many, MANY permutations of a CloudStack deployment….• Basic / Advanced• Local / shared / mixed storage• More than 8 common hypervisor types/versions• 4 or 5 Management server OS possiblilities

• That’s 144 combinations only looking the basics.

• Previous attempts at test automation haven’t been able to get coverage or capacity.

W h y

Page 13: CloudStack EU user group - Trillian

C l i c k t o e d i t

The Cloud Specialists ShapeBlue.com @ShapeBlue

Discovery projects:• New Features

• CloudStack integrations (ie Ceph)

• CloudStack ecosystem components (ie ELK stack)

W h y

Page 14: CloudStack EU user group - Trillian

C l i c k t o e d i t

The Cloud Specialists ShapeBlue.com @ShapeBlue

Lab v1.0

• Templates to build nested hypervisor hosts

• Cloudmonkey scripts to configure zone

• Manual creation of storage mounts

Simple but pretty effective

H u m b l e B e g i n n i n g s

Page 15: CloudStack EU user group - Trillian

C l i c k t o e d i t

The Cloud Specialists ShapeBlue.com @ShapeBlue

Lab v1.0

• A lot of small edits scripts to fit use cases.

• Human error still a big factor

• Can’t ‘set and forget’

• A lot of individual knowledge required

• Loose definition of ‘testing’.

H u m b l e B e g i n n i n g s

Page 16: CloudStack EU user group - Trillian

The Cloud Specialists ShapeBlue.com @ShapeBlue

Trillian Tenets

Page 17: CloudStack EU user group - Trillian

C l i c k t o e d i t

The Cloud Specialists ShapeBlue.com @ShapeBlue

Fully automated deployment of CloudStack environments from any CloudStack package repo

Tr i l l i a n Te n e n t s

Page 18: CloudStack EU user group - Trillian

C l i c k t o e d i t

The Cloud Specialists ShapeBlue.com @ShapeBlue

• Ability to support multiple concurrent environments• No hardcoding to a specific (our) lab/environment• As few separate components as possible• Separation of ‘code’ and ‘configuration’• Scripted command-line use fully supported• Ability to support as many hypervisors as possible• As flexible as possible• Best ‘performance’ possible• Best utilization of hardware resources possible

Tr i l l i a n Te n a n t s

Page 19: CloudStack EU user group - Trillian

The Cloud Specialists ShapeBlue.com @ShapeBlue

Meet The Family

Page 20: CloudStack EU user group - Trillian

C l i c k t o e d i t

The Cloud Specialists ShapeBlue.com @ShapeBlue

T h e C I F a m i l y

Trillian

MarvinWinston

JenkinsBlueOrangutan

Page 21: CloudStack EU user group - Trillian

C l i c k t o e d i t

The Cloud Specialists ShapeBlue.com @ShapeBlue

TrillianAnsible based environment builder

• Multi-tenant (and multiple concurrent environments)• CloudStack builds the Virtual Infrastructure• Hypervisor hosts are CloudStack templates• Supports multiple and mixed hypervisors• Supports Advanced and Basic networks• Open source

T h e C I F a m i l y

Page 22: CloudStack EU user group - Trillian

C l i c k t o e d i t

The Cloud Specialists ShapeBlue.com @ShapeBlue

TrillianInstalls & Configures:

• CloudStack• MySQL• XenServer (configures)• vCenter (configures)• ESXi (configures)• KVM• Marvin hosts and Marvin test suites

T h e C I F a m i l y

Page 23: CloudStack EU user group - Trillian

C l i c k t o e d i t

The Cloud Specialists ShapeBlue.com @ShapeBlue

MarvinPython based test framework based on ‘nose’ test platform. Configuration files define environment to be tested.

• Integral part of the CloudStack codebase• Recently given its own install package• Smoke and Component tests• 53 smoke test suites• 154 component test suites• Additional tests for plugins such as Nuage and SolidFire

T h e C I F a m i l y

Page 24: CloudStack EU user group - Trillian

C l i c k t o e d i t

The Cloud Specialists ShapeBlue.com @ShapeBlue

JenkinsCI Platform

• Runs build jobs to produce RPMs from source code• Presents an integration point to wrap up the creation of

environments using Trillian and the running of tests using Marvin.

• Gives a UI to Trillian.

Click icon to add picture

T h e C I F a m i l y

Page 25: CloudStack EU user group - Trillian

C l i c k t o e d i t

The Cloud Specialists ShapeBlue.com @ShapeBlue

Blue OrangutanBuild-bot

• Automation endpoint to send build jobs to Jenkins for CentOS 6/7 and Debian packages from CloudStack source

• Provides an integrated way to create packages from pull requests in Github.

• Can kick-off Jenkins jobs to build and test environments based on packages which it builds.

Click icon to add picture

T h e C I F a m i l y

Page 26: CloudStack EU user group - Trillian

C l i c k t o e d i t

The Cloud Specialists ShapeBlue.com @ShapeBlue

WinstonTest Orchestrator (Future project)

• Receives ‘offers’ of test type/capacity from remote test labs• Takes request from Blue Orangutan to test packages and

distributes tests to suitable remote labs.Offers might include:• Use of local storage• Use of basic vs advanced networks• Use of particular hypervisors/versions

T h e C I F a m i l y

Page 27: CloudStack EU user group - Trillian

The Cloud Specialists ShapeBlue.com @ShapeBlue

How its used

Page 28: CloudStack EU user group - Trillian

C l i c k t o e d i t

The Cloud Specialists ShapeBlue.com @ShapeBlue

Developers doDark Magic

Developer creates pull request on

GitHubInitial code review

Blue Orangutan calls Jenkins to build packages

based on PR

Blue Orangutan calls Jenkins to run

a test matrix

Jenkins calls Trillian to build

environments

Trillian builds environments (inc

Marvin host)

Jenkins calls respective Marvin hosts to run tests

Jenkins attaches results to pull

request on GitHub

The crowd goes WILD.

P r o c e s s u s e d i n A p a c h e C l o u d S t a c k P r o j e c t

Page 29: CloudStack EU user group - Trillian

C l i c k t o e d i t

The Cloud Specialists ShapeBlue.com @ShapeBlue

• Test Pull Requests to add XenServer 7 support• XenServer won’t run on ESXi 5.5

• Create XenServer 7 VMs on stand-alone ESXi 6.0 host and ‘point’ Trillian at them.

• vSphere 6.5 – Create vCenter and ESXi templates and run tests.

X e n S e r v e r 7 & v S p h e r e 6 . 5

Page 30: CloudStack EU user group - Trillian

C l i c k t o e d i t

The Cloud Specialists ShapeBlue.com @ShapeBlue

• Build base CloudStack environment quickly

• Leverage CloudStack to create other infrastructure components just as quickly.ie• HostBill server• Cloudian manager server and storage nodes• Leverage CloudStack networking to give external access

to environments – Static NAT, port forwarding or VPN.

C l o u d i a n & H o s t B i l l

Page 31: CloudStack EU user group - Trillian

C l i c k t o e d i t

The Cloud Specialists ShapeBlue.com @ShapeBlue

• Build required configuration with required components• Specific versions of CloudStack• Specific hypervisor types• Specific hypervisor versions

• Manual creation of additional components still allowed• ie second zone with different hypervisor type or version

S o l i d F i r e P l u g i n

Page 32: CloudStack EU user group - Trillian

C l i c k t o e d i t

The Cloud Specialists ShapeBlue.com @ShapeBlue

We can do all of these things

AT THE SAME TIME

C o u p D e G r â c e

Page 33: CloudStack EU user group - Trillian

The Cloud Specialists ShapeBlue.com @ShapeBlue

Trillian

Page 34: CloudStack EU user group - Trillian

C l i c k t o e d i t

The Cloud Specialists ShapeBlue.com @ShapeBlue

https://github.com/shapeblue/Trillian

Tr i l l i a n

• Single zone• Use pre-set or custom Repos• Local or shared storage• ESXi, KVM (C6,C7,U14.04),

XenServer hosts• Customisable number of primary

and secondary storage pools• Multiple Management servers• Selectable Management server

OS (C6.x, C7, U14.04)

• Multiple hypervisors• dvSwitch (public/guest traffic)• Configurable Java versions• Option to use pre-built hosts• Multiple MySQL configurations

Page 35: CloudStack EU user group - Trillian

C l i c k t o e d i t

The Cloud Specialists ShapeBlue.com @ShapeBlue

A n s i b l e i n T r i l l i a n

• All driven from Ansible

• A global group_vars file stores all local configuration data such as:

• Passwords• All defaults ie basic vs

advanced or network naming

• EVERYTHING can be customised at runtime.

(except that)(and that)

Page 36: CloudStack EU user group - Trillian

C l i c k t o e d i t

The Cloud Specialists ShapeBlue.com @ShapeBlue

ansible-playbook generate-cloudconfig.yml -i localhost --extra-vars "env_name='localstoragetest‘env_version=cs49mgmt=1db=0hvtype=x xs_ver=xs65sp1hv=2env_accounts=allpri=2sec=1build_marvin=yesmgmt_os=6use_local_storage=true

use_shared_storage_systemvms=trueuse_shared_storage=false"

ansible-playbook deployvms.yml -i ./hosts_localstoragetest

Click icon to add picture

A n s i b l e i n T r i l l i a n

Page 37: CloudStack EU user group - Trillian

C l i c k t o e d i t

The Cloud Specialists ShapeBlue.com @ShapeBlue

Tr i l l i a n i n J e n k i n s

• Different Jenkins’ jobs with specific‘assumptions’.

• Pull Requests receive URL from Blue Orangutan and automatically Run test suites, then clean up.

• Reference_Trillian is a reference implementation of Jenkins and has more corner-case options exposed.

Page 38: CloudStack EU user group - Trillian

C l i c k t o e d i t

The Cloud Specialists ShapeBlue.com @ShapeBlue

Tr i l l i a n i n J e n k i n s

• Allows user to force a version of Java

• Allows use of ‘pre-built’ hypervisors and hypervisors which cannot themselves be virtualised.

Page 39: CloudStack EU user group - Trillian

C l i c k t o e d i t

The Cloud Specialists ShapeBlue.com @ShapeBlue

Tr i l l i a n i n J e n k i n s

• If environment requires the hypervisor to use local storage, then CloudStack adds a data volume to hypervisor and configures hypervisor to use it for local storage. This keeps template size down

• Mixed local and shared storage is supported

Page 40: CloudStack EU user group - Trillian

C l i c k t o e d i t

The Cloud Specialists ShapeBlue.com @ShapeBlue

Click icon to add pictureInternal ShapeBlue summary page UI plugin.

Page 41: CloudStack EU user group - Trillian

C l i c k t o e d i t

The Cloud Specialists ShapeBlue.com @ShapeBlue

Tr i l l i a n & J e n k i n s i n C l o u d S t a c k

• UI gives overall status/health of ‘Lab’ and environments

• UI links to a job’s Jenkins output as well as UI of built environment and SSH session onto specific VMs

Page 42: CloudStack EU user group - Trillian

C l i c k t o e d i t

The Cloud Specialists ShapeBlue.com @ShapeBlue

I n S u m m a r y

Page 43: CloudStack EU user group - Trillian

The Cloud Specialists

THE HITCH-HIKERS GUIDE TO CI/CD

ShapeBlue.com • @ShapeBlue

Paul Angus, VP Technology • @CloudyAngus