56
Real World CI with Red Hat Cloud Suite Sim Zacks - Principal Quality Engineer Oded Ramraz - Manager QE Ops TLV 29.6.2016

Real World CI with Red Hat Cloud Suite...For example, CI message bus is a Jenkins plugin New plugins could be added according to requirements. Jenkins - Workflow - Jenkins nodes (slaves)

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Real World CI with Red Hat Cloud Suite...For example, CI message bus is a Jenkins plugin New plugins could be added according to requirements. Jenkins - Workflow - Jenkins nodes (slaves)

Real World CI with Red Hat Cloud Suite

Sim Zacks - Principal Quality EngineerOded Ramraz - Manager QE Ops TLV29.6.2016

Page 2: Real World CI with Red Hat Cloud Suite...For example, CI message bus is a Jenkins plugin New plugins could be added according to requirements. Jenkins - Workflow - Jenkins nodes (slaves)

Who we are

Sim ZacksPrincipal Quality Engineer

Oded RamrazManager QE Ops

●DevOps Engineers - experts in software engineering and sys admin●QE Ops - we build customer-like environments for testing products●Central CI - we manage all the CI requirements for the testing env

Page 3: Real World CI with Red Hat Cloud Suite...For example, CI message bus is a Jenkins plugin New plugins could be added according to requirements. Jenkins - Workflow - Jenkins nodes (slaves)

Introduction - Central CI Environment

Page 4: Real World CI with Red Hat Cloud Suite...For example, CI message bus is a Jenkins plugin New plugins could be added according to requirements. Jenkins - Workflow - Jenkins nodes (slaves)

Enterprise solution for multiple teams

Page 5: Real World CI with Red Hat Cloud Suite...For example, CI message bus is a Jenkins plugin New plugins could be added according to requirements. Jenkins - Workflow - Jenkins nodes (slaves)

RHCS Components - Harmonious Conjunction

VM? Instance? Container?

Jenkins, Logstash, Sonar, GerritRobust, S

table, Flexible

Build your own CI Workflow!!

Page 6: Real World CI with Red Hat Cloud Suite...For example, CI message bus is a Jenkins plugin New plugins could be added according to requirements. Jenkins - Workflow - Jenkins nodes (slaves)

Agenda

●The What and How of CI●RHCS Components Role

○Added value of each component○Satellite Configuration Management○RHEV VM vs OpenStack Instance vs OpenShift

Container○ Integration with Jenkins, Gerrit, Logstash, …○High level management and reporting with

CloudForms●Summary

Page 7: Real World CI with Red Hat Cloud Suite...For example, CI message bus is a Jenkins plugin New plugins could be added according to requirements. Jenkins - Workflow - Jenkins nodes (slaves)

What is CI?

●Multi-user●Continuous● Integrated●Automated

Page 8: Real World CI with Red Hat Cloud Suite...For example, CI message bus is a Jenkins plugin New plugins could be added according to requirements. Jenkins - Workflow - Jenkins nodes (slaves)

Why do we need CI?

Prevent broken builds Early detection of bugs Continuous quality monitoring

Increase SWdevelopment process

Page 9: Real World CI with Red Hat Cloud Suite...For example, CI message bus is a Jenkins plugin New plugins could be added according to requirements. Jenkins - Workflow - Jenkins nodes (slaves)

CI Workflow

Page 10: Real World CI with Red Hat Cloud Suite...For example, CI message bus is a Jenkins plugin New plugins could be added according to requirements. Jenkins - Workflow - Jenkins nodes (slaves)

CI Infrastructure

Page 11: Real World CI with Red Hat Cloud Suite...For example, CI message bus is a Jenkins plugin New plugins could be added according to requirements. Jenkins - Workflow - Jenkins nodes (slaves)

CI Goals

●Continuous quality analysis●Automatic provisioning●Configuration management●Centralized reporting

Page 12: Real World CI with Red Hat Cloud Suite...For example, CI message bus is a Jenkins plugin New plugins could be added according to requirements. Jenkins - Workflow - Jenkins nodes (slaves)

Continuous Quality Analysis

Page 13: Real World CI with Red Hat Cloud Suite...For example, CI message bus is a Jenkins plugin New plugins could be added according to requirements. Jenkins - Workflow - Jenkins nodes (slaves)

Automatic Provisioning

●Reduces provision time and human errors●Reduces non test related errors●Allows investing more time on development

Page 14: Real World CI with Red Hat Cloud Suite...For example, CI message bus is a Jenkins plugin New plugins could be added according to requirements. Jenkins - Workflow - Jenkins nodes (slaves)

Centralized Logging

●Detection of anomalous activity●Simplify log analysis and correlation tasks●Display trends, graphs and data tables●Fast deployment●Jenkins integration●Containerized ●Scalable

ShipShift

Page 15: Real World CI with Red Hat Cloud Suite...For example, CI message bus is a Jenkins plugin New plugins could be added according to requirements. Jenkins - Workflow - Jenkins nodes (slaves)

Centralized Logging

Page 16: Real World CI with Red Hat Cloud Suite...For example, CI message bus is a Jenkins plugin New plugins could be added according to requirements. Jenkins - Workflow - Jenkins nodes (slaves)

How we do it - RHCS Components

Page 17: Real World CI with Red Hat Cloud Suite...For example, CI message bus is a Jenkins plugin New plugins could be added according to requirements. Jenkins - Workflow - Jenkins nodes (slaves)

RHEVM

● Centralized virtual infrastructure management (e.g hosts, VMs, networking, storage, templates)● Providing mechanism for VMs high availability● Delivering leading performance and scalability for virtual machines on a stable and secure platform ● Running crucial CI services such as Jenkins, ELK, CFME, etc

Page 18: Real World CI with Red Hat Cloud Suite...For example, CI message bus is a Jenkins plugin New plugins could be added according to requirements. Jenkins - Workflow - Jenkins nodes (slaves)

RHEVM - Permanent services (Jenkins, Satellite, Gerrit, ELKstack, SonarQube, …)

Page 19: Real World CI with Red Hat Cloud Suite...For example, CI message bus is a Jenkins plugin New plugins could be added according to requirements. Jenkins - Workflow - Jenkins nodes (slaves)

RHEVM - Static platform/properties

High availability

Live migration

Storage live migration

Live snapshots

Load balancing

Power saving

Hot plug disk and network

Storage on local disk, FC, iSCSI, NFS, Red HatStorage Server, IBM GPFS, Posix or Direct LUN

Self service portal with quotas

Page 20: Real World CI with Red Hat Cloud Suite...For example, CI message bus is a Jenkins plugin New plugins could be added according to requirements. Jenkins - Workflow - Jenkins nodes (slaves)

RHEVM - Reporting

Page 21: Real World CI with Red Hat Cloud Suite...For example, CI message bus is a Jenkins plugin New plugins could be added according to requirements. Jenkins - Workflow - Jenkins nodes (slaves)

Satellite

● New modern design, cutting-edge open source software● Designed for software life cycle (SLC) management● Bare metal, virtual machine (VM), and cloud deployment

Page 22: Real World CI with Red Hat Cloud Suite...For example, CI message bus is a Jenkins plugin New plugins could be added according to requirements. Jenkins - Workflow - Jenkins nodes (slaves)

Satellite 6Architecture

Page 23: Real World CI with Red Hat Cloud Suite...For example, CI message bus is a Jenkins plugin New plugins could be added according to requirements. Jenkins - Workflow - Jenkins nodes (slaves)

Satellite - Application Lifecycle Management

Page 24: Real World CI with Red Hat Cloud Suite...For example, CI message bus is a Jenkins plugin New plugins could be added according to requirements. Jenkins - Workflow - Jenkins nodes (slaves)

Satellite - Provisioning

Page 25: Real World CI with Red Hat Cloud Suite...For example, CI message bus is a Jenkins plugin New plugins could be added according to requirements. Jenkins - Workflow - Jenkins nodes (slaves)

Jenkins

● Pluginable● Supports various source control management tools● Supports various script languages and common tools● Allows triggered builds

Page 26: Real World CI with Red Hat Cloud Suite...For example, CI message bus is a Jenkins plugin New plugins could be added according to requirements. Jenkins - Workflow - Jenkins nodes (slaves)

Jenkins - Workflow - Triggers

Page 27: Real World CI with Red Hat Cloud Suite...For example, CI message bus is a Jenkins plugin New plugins could be added according to requirements. Jenkins - Workflow - Jenkins nodes (slaves)

Jenkins - Workflow - CI Message Bus

●Expands trigger capabilities

●Allows passing additional information for smart triggering

●Allows customizing Jenkins triggers

Page 28: Real World CI with Red Hat Cloud Suite...For example, CI message bus is a Jenkins plugin New plugins could be added according to requirements. Jenkins - Workflow - Jenkins nodes (slaves)

Jenkins - Workflow - Plugins

●Jenkins functionality extended via plugins●For example, CI message bus is a Jenkins plugin●New plugins could be added according to requirements

Page 29: Real World CI with Red Hat Cloud Suite...For example, CI message bus is a Jenkins plugin New plugins could be added according to requirements. Jenkins - Workflow - Jenkins nodes (slaves)

Jenkins - Workflow - Jenkins nodes (slaves)

●Jenkins nodes are used for Jenkins builds●VM, bare metal and containers could be used as Jenkins nodes●Jenkins nodes connected to Jenkins master●Accessible by Jenkins plugins and Jenkins master

Page 30: Real World CI with Red Hat Cloud Suite...For example, CI message bus is a Jenkins plugin New plugins could be added according to requirements. Jenkins - Workflow - Jenkins nodes (slaves)

Jenkins - Workflow - Tools

● Jenkins Job Builder:

○ Allows us to maintain Jenkins Jobs in YAML format

○ Fast deployment of jobs●Nodepool:

○ Key part of Openstack CI infra.

○ Allows Jenkins nodes lifecycle management●CI provisioner:

○ Test bed provision/teardown

○ Allows provision of complex topologies that contain baremetal, vm from various providers, containers

Page 31: Real World CI with Red Hat Cloud Suite...For example, CI message bus is a Jenkins plugin New plugins could be added according to requirements. Jenkins - Workflow - Jenkins nodes (slaves)

Cloud ImplementationOpenstack/OpenShift

Page 32: Real World CI with Red Hat Cloud Suite...For example, CI message bus is a Jenkins plugin New plugins could be added according to requirements. Jenkins - Workflow - Jenkins nodes (slaves)

OpenStack

Page 33: Real World CI with Red Hat Cloud Suite...For example, CI message bus is a Jenkins plugin New plugins could be added according to requirements. Jenkins - Workflow - Jenkins nodes (slaves)

OpenStack - Tenant per team

Page 34: Real World CI with Red Hat Cloud Suite...For example, CI message bus is a Jenkins plugin New plugins could be added according to requirements. Jenkins - Workflow - Jenkins nodes (slaves)

OpenStack - Zones

Page 35: Real World CI with Red Hat Cloud Suite...For example, CI message bus is a Jenkins plugin New plugins could be added according to requirements. Jenkins - Workflow - Jenkins nodes (slaves)

OpenStack - Jenkins slaves

Provisioned on Demand Nodepool Standby

Image Labels

Page 36: Real World CI with Red Hat Cloud Suite...For example, CI message bus is a Jenkins plugin New plugins could be added according to requirements. Jenkins - Workflow - Jenkins nodes (slaves)

OpenStack - Virtualized Test Resources

Page 37: Real World CI with Red Hat Cloud Suite...For example, CI message bus is a Jenkins plugin New plugins could be added according to requirements. Jenkins - Workflow - Jenkins nodes (slaves)

OpenStack - Image Management

Page 38: Real World CI with Red Hat Cloud Suite...For example, CI message bus is a Jenkins plugin New plugins could be added according to requirements. Jenkins - Workflow - Jenkins nodes (slaves)

OpenShift

Page 39: Real World CI with Red Hat Cloud Suite...For example, CI message bus is a Jenkins plugin New plugins could be added according to requirements. Jenkins - Workflow - Jenkins nodes (slaves)

OpenShift - Containers

Page 40: Real World CI with Red Hat Cloud Suite...For example, CI message bus is a Jenkins plugin New plugins could be added according to requirements. Jenkins - Workflow - Jenkins nodes (slaves)

OpenShift - Lightweight disposable tasks

Page 41: Real World CI with Red Hat Cloud Suite...For example, CI message bus is a Jenkins plugin New plugins could be added according to requirements. Jenkins - Workflow - Jenkins nodes (slaves)

OpenShift - Lightweight disposable tasks - Doc Gen

Page 42: Real World CI with Red Hat Cloud Suite...For example, CI message bus is a Jenkins plugin New plugins could be added according to requirements. Jenkins - Workflow - Jenkins nodes (slaves)

OpenShift - Lightweight disposable tasks - Unit Testing

Taken from CommitStrip (strip)

Page 43: Real World CI with Red Hat Cloud Suite...For example, CI message bus is a Jenkins plugin New plugins could be added according to requirements. Jenkins - Workflow - Jenkins nodes (slaves)

ShipShift / Logstash

Page 44: Real World CI with Red Hat Cloud Suite...For example, CI message bus is a Jenkins plugin New plugins could be added according to requirements. Jenkins - Workflow - Jenkins nodes (slaves)

Container Management

Page 45: Real World CI with Red Hat Cloud Suite...For example, CI message bus is a Jenkins plugin New plugins could be added according to requirements. Jenkins - Workflow - Jenkins nodes (slaves)

Cloud ManagementCloudForms

Page 46: Real World CI with Red Hat Cloud Suite...For example, CI message bus is a Jenkins plugin New plugins could be added according to requirements. Jenkins - Workflow - Jenkins nodes (slaves)

CloudForms - Unified Management

Page 47: Real World CI with Red Hat Cloud Suite...For example, CI message bus is a Jenkins plugin New plugins could be added according to requirements. Jenkins - Workflow - Jenkins nodes (slaves)

CloudForms - Reporting

Page 48: Real World CI with Red Hat Cloud Suite...For example, CI message bus is a Jenkins plugin New plugins could be added according to requirements. Jenkins - Workflow - Jenkins nodes (slaves)

CloudForms - Automation

Page 49: Real World CI with Red Hat Cloud Suite...For example, CI message bus is a Jenkins plugin New plugins could be added according to requirements. Jenkins - Workflow - Jenkins nodes (slaves)

Summary

Page 50: Real World CI with Red Hat Cloud Suite...For example, CI message bus is a Jenkins plugin New plugins could be added according to requirements. Jenkins - Workflow - Jenkins nodes (slaves)
Page 51: Real World CI with Red Hat Cloud Suite...For example, CI message bus is a Jenkins plugin New plugins could be added according to requirements. Jenkins - Workflow - Jenkins nodes (slaves)
Page 52: Real World CI with Red Hat Cloud Suite...For example, CI message bus is a Jenkins plugin New plugins could be added according to requirements. Jenkins - Workflow - Jenkins nodes (slaves)
Page 53: Real World CI with Red Hat Cloud Suite...For example, CI message bus is a Jenkins plugin New plugins could be added according to requirements. Jenkins - Workflow - Jenkins nodes (slaves)
Page 54: Real World CI with Red Hat Cloud Suite...For example, CI message bus is a Jenkins plugin New plugins could be added according to requirements. Jenkins - Workflow - Jenkins nodes (slaves)
Page 55: Real World CI with Red Hat Cloud Suite...For example, CI message bus is a Jenkins plugin New plugins could be added according to requirements. Jenkins - Workflow - Jenkins nodes (slaves)

Q & A

Page 56: Real World CI with Red Hat Cloud Suite...For example, CI message bus is a Jenkins plugin New plugins could be added according to requirements. Jenkins - Workflow - Jenkins nodes (slaves)