SlideShare a Scribd company logo
1 of 40
Download to read offline
Infrastructure-as-Code and
CI Infrastructure at OpenStack
A look at one of the largest CI systems and
system administration
Andreas Jaeger
aj@suse.com
2016-06-23
OpenStack
Open source software for building private and public clouds
Project History
● Provide components for
Infrastructure-as-a-Service
● Started by Rackspace and NASA in July 2010
● Today: > 200 companies involved in
ecosystem
● Releases every 6 months:
– So far: Austin, Bexar, Cactus, Diablo,
Essex, Folsom, Grizzly, Havana, Icehouse,
Juno, Kilo, Liberty, Mitaka
– Next ones: Newton, Ocata
Lines of code
Reviews
Commits
Contributors
Organizations
> 5,900,000
> 204,000
> 31,000
2336
293
Contributors
● Unaffiliated individuals
● Commercial entities
● Nonprofit organizations
● National and local
governments
● Number, quality, and
area of contributions
can change daily
Source:
http://stackalytics.com/?
metric=loc&release=mitaka
“The most insane CI infrastructure
I've ever been part of”
– Alex Gaynor on IRC #openstack-infra
OpenStack Projects include:
● Compute (nova)
● Object Storage (swift)
● Image Service (glance)
● Identity (keystone)
● Dashboard (horizon)
● Networking (neutron)
● Block Storage (cinder)
● Telemetry (ceilometer)
● Orchestration (heat)
● Database Service (trove)
● ...
● python-novaclient
● python-swiftclient
● python-glanceclient
● python-keystoneclient
● python-neutronclient
● python-cinderclient
● python-heatclient
● python-ceilometerclient
● python-openstackclient
● Python-troveclient
● …
Servers: Client libraries:
Programs/Horizontal Efforts
● Documentation
● Infrastructure
● Oslo
– Common libraries
● Quality Assurance
– Integration Testing
– Upgrade Testing
● Release
Management
● Internationalization/
Translation
● Vulnerabilty
Management
Release Management
● Time Based Releases
● Six Month Cadence
● Design summits each cycle
● Continuously Open Trunk
● Develop directly on master
● Intra-Cycle Milestone Releases
● Post-Release Stable Branches
CI Challenges
● Lots of individual projects (> 1100 git
repos)
● Projects must work together
● Changes should never break the master
● Code should be syntactically clean
● Completely automated testing
Consistent CI infrastructure
● All official OpenStack projects
● Unofficial projects
● Documentation
● Systems Administration – incl. CI
Git Workflow
Peer Review
● Anybody can review and leave comments and
+1/-1
● Core reviewers can leave also +2/-2
● Approval by core reviewer after at least two +2s
● Automatic review by tools
● Testing on supported scenarios:
– Different hypervisors
– Different storage backends
– Different databases
– Different OSes
Gating?
● To ensure code quality
● To protect developer – they always start from working
code
● To protect tree from bad code
● Same process for everybody:
– Transparent
– Automated
● Testing of patch against current state of all other
projects
Gating: Sequential Merge
● Assume three changes A, B, C for testing
● Zuul will test:
– Test A: Merge A; test
– Test B: Merge A, B; test
– Test C: Merge A, B, C; test
● If B fails:
– Retest C: Merge A, C; test
● “Depends-On” across repositories
● After merge: merge-check of open reviews
Jobs
● Jobs are started on new fresh VM
● Run in clouds by Rackspace, OSIC, OVH,
Bluebox, Internap
● Currently over 700 VMs available
CI Infrastructure
● Launchpad and Storyboard
● Git
● Gerrit
● Zuul
● Gearman
● Nodepool
CI Workflow
CI Workflow (Since 17th
June)
Zuul-Launcher
Jobs
http://status.openstack.org/zuul
Statistics
System Administration
Services run by Infra Team
● CI systems
● Cacti
● Elasticsearch, Logstash and Kibana
● IRC Bots
● Etherpad
● Git
● Paste
● Planet
● Puppetboard
● Mailing Lists
● Storyboard
● Various smaller web services
● Wiki
“We consider every command typed by a
rooter to be a bug. We think this because:
– we think system administration tasks should
be performed by robots
– we think inputs to the robots should go
through code review”
https://review.openstack.org/#/c/310948/3/specs/finglonger.rst
Paradigms
● Infrastructure-as-code
● Collaboration
● Peer review
● Automate everything
Everything Public
● Services available without restrictions
● Anybody can review
● Anybody can contribute
● Discussion on IRC with public archives
Peer review
● Multiple eyes on changes prior to merging
● Good infrastructure for developing new
solutions (particularly for a distributed
team)
● No special process to go through for
commit access
● Trains us to be collaborative by default
Checks for CI
●
flake8 (pep 8 and pyflakes)
●
bashate
●
puppet parser validate
● puppet-lint
●
beaker-rspec
●
XML
●
Alphabetized project files
●
Parsing of files
●
…
Automated deployment
● Change gets checked in
– ...Either puppet master gets updated and
applies change
– ...Or vcsrepo module in puppet pulls in latest
version of project
JJB
● Tool for configuring Jenkins jobs using YAML files
● Using templated jobs, to apply same jobs to tons of different projects:
    ­ job­template
    name: 'gate­{name}­docs'
      builders:
        ­ shell: 'git checkout {branch_name}'
● Grouping of jobs:
    ­ job­group:
        name: '{name}­tests'
        jobs:
        ­ '{name}­unit­tests'
        ­ '{name}­perf­tests'
Nodepool
● Deploy and manage a pool of images on the cloud
● Works with any OpenStack provider
● Once per day a new image is generated with cached
content
● Spins instances based on desired image on demand
● Can use disk-image-builder to build images
● Communicates with Zuul using gearman-servers for
getting realtime demand
System administration
● Using puppet and ansible
– Everything in git
● For debugging and exceptional tasks:
– Infra-root team has ssh access everywhere,
uses ansible for routine tasks
– ssh access is granted for individuals for
specific service
Configuration Management
● All servers installed using base image and
puppet.
● Setting up a new server:
– Set up new git repository
– Set up server locally, get it fully puppetized
● All changes to git repository use gerrit and review
– Set up dev server in cloud using puppet only
– Set up production server using puppet only
Major Manual Task
● Major updates are done collaboratively.
Examples: Gerrit update, OS update of
server
● Tested where possible on dev system
● All instructions prepared on etherpad,
reviewed by team
Limitations
● Sometimes you just need to log into a
server
● More difficult for complicated migrations,
upgrades
● Passwords need to be privately managed
(hiera)
Reference
More Information
● OpenStack in general:
http://www.openstack.org
● OpenStack infrastructure:
http://ci.openstack.org/
● OpenStack documentation:
http://docs.openstack.org
OpenStack and (open)SUSE
● openSUSE wiki:
https://en.opensuse.org/Portal:OpenStack
● Cloud packages:
https://build.opensuse.org/project/show?project=Cl
oud%3AOpenStack
● Install Guide for openSUSE and SLES at
http://docs.openstack.org
Mitaka version at
http://docs.openstack.org/mitaka/install-guide-obs/
● SUSE OpenStack Cloud product:
https://www.suse.com/products/suse-openstack-cloud
Credits
● Some content copied from
http://docs.openstack.org/infra/publications
Infrastructure-as-Code and CI Infrastructure at OpenStack

More Related Content

What's hot

DevOps with OpenShift - Fabien Dupont - ManageIQ Design Summit 2016
DevOps with OpenShift - Fabien Dupont - ManageIQ Design Summit 2016DevOps with OpenShift - Fabien Dupont - ManageIQ Design Summit 2016
DevOps with OpenShift - Fabien Dupont - ManageIQ Design Summit 2016ManageIQ
 
DCSF19 Deploying Istio as an Ingress Controller
DCSF19 Deploying Istio as an Ingress Controller DCSF19 Deploying Istio as an Ingress Controller
DCSF19 Deploying Istio as an Ingress Controller Docker, Inc.
 
OpenShift Meetup 8th july 2019 at ConSol - OpenShift v4
OpenShift Meetup 8th july 2019 at ConSol - OpenShift v4OpenShift Meetup 8th july 2019 at ConSol - OpenShift v4
OpenShift Meetup 8th july 2019 at ConSol - OpenShift v4Robert Bohne
 
Maksym Pugach - Elixir Release and Deploy Utilities
Maksym Pugach - Elixir Release and Deploy UtilitiesMaksym Pugach - Elixir Release and Deploy Utilities
Maksym Pugach - Elixir Release and Deploy UtilitiesElixir Club
 
OpenShift 5 Drop5 demo
OpenShift 5 Drop5 demoOpenShift 5 Drop5 demo
OpenShift 5 Drop5 demoGlenn West
 
OpenShift In a Nutshell - Episode 01 - Introduction
OpenShift In a Nutshell - Episode 01 - IntroductionOpenShift In a Nutshell - Episode 01 - Introduction
OpenShift In a Nutshell - Episode 01 - IntroductionBehnam Loghmani
 
DevFestMN 2017 - Learning Docker and Kubernetes with Openshift
DevFestMN 2017 - Learning Docker and Kubernetes with OpenshiftDevFestMN 2017 - Learning Docker and Kubernetes with Openshift
DevFestMN 2017 - Learning Docker and Kubernetes with OpenshiftKeith Resar
 
"Look Ma, no hands! Zero Touch Provisioning for OpenShift" DevConf.US 2021
"Look Ma, no hands! Zero Touch Provisioning for OpenShift" DevConf.US 2021"Look Ma, no hands! Zero Touch Provisioning for OpenShift" DevConf.US 2021
"Look Ma, no hands! Zero Touch Provisioning for OpenShift" DevConf.US 2021Freddy Rolland
 
OpenShift As A DevOps Platform
OpenShift As A DevOps PlatformOpenShift As A DevOps Platform
OpenShift As A DevOps PlatformLalatendu Mohanty
 
CI/CD Pipeline to Deploy and Maintain an OpenStack IaaS Cloud
CI/CD Pipeline to Deploy and Maintain an OpenStack IaaS CloudCI/CD Pipeline to Deploy and Maintain an OpenStack IaaS Cloud
CI/CD Pipeline to Deploy and Maintain an OpenStack IaaS CloudSimon McCartney
 
Streamlining Agile Linux Development with Docker and RHEL Atomic
Streamlining Agile Linux Development with Docker and RHEL AtomicStreamlining Agile Linux Development with Docker and RHEL Atomic
Streamlining Agile Linux Development with Docker and RHEL AtomicMichael Solberg
 
Java EE with NetBeans on OpenShift
Java EE with NetBeans on OpenShiftJava EE with NetBeans on OpenShift
Java EE with NetBeans on OpenShiftMarkus Eisele
 
Kangaroot open shift best practices - straight from the battlefield
Kangaroot open shift best practices - straight from the battlefieldKangaroot open shift best practices - straight from the battlefield
Kangaroot open shift best practices - straight from the battlefieldKangaroot
 
Fluo CICD OpenStack Summit
Fluo CICD OpenStack SummitFluo CICD OpenStack Summit
Fluo CICD OpenStack SummitMiguel Zuniga
 
A CI/CD Pipeline to Deploy and Maintain OpenStack - cfgmgmtcamp2015
A CI/CD Pipeline to Deploy and Maintain OpenStack - cfgmgmtcamp2015A CI/CD Pipeline to Deploy and Maintain OpenStack - cfgmgmtcamp2015
A CI/CD Pipeline to Deploy and Maintain OpenStack - cfgmgmtcamp2015Simon McCartney
 
Migrating Java JBoss EAP Applications to Kubernetes With S2I
Migrating Java JBoss EAP Applications to Kubernetes With S2IMigrating Java JBoss EAP Applications to Kubernetes With S2I
Migrating Java JBoss EAP Applications to Kubernetes With S2IKonveyor Community
 
Openshift/Kubernetes integration with Apache YARN
Openshift/Kubernetes integration with Apache YARNOpenshift/Kubernetes integration with Apache YARN
Openshift/Kubernetes integration with Apache YARNverbal1714
 
OpenShift 4, the smarter Kubernetes platform
OpenShift 4, the smarter Kubernetes platformOpenShift 4, the smarter Kubernetes platform
OpenShift 4, the smarter Kubernetes platformKangaroot
 
OpenShift meetup Bangalore
OpenShift meetup BangaloreOpenShift meetup Bangalore
OpenShift meetup BangaloreSuraj Deshmukh
 

What's hot (20)

DevOps with OpenShift - Fabien Dupont - ManageIQ Design Summit 2016
DevOps with OpenShift - Fabien Dupont - ManageIQ Design Summit 2016DevOps with OpenShift - Fabien Dupont - ManageIQ Design Summit 2016
DevOps with OpenShift - Fabien Dupont - ManageIQ Design Summit 2016
 
DCSF19 Deploying Istio as an Ingress Controller
DCSF19 Deploying Istio as an Ingress Controller DCSF19 Deploying Istio as an Ingress Controller
DCSF19 Deploying Istio as an Ingress Controller
 
OpenShift Meetup 8th july 2019 at ConSol - OpenShift v4
OpenShift Meetup 8th july 2019 at ConSol - OpenShift v4OpenShift Meetup 8th july 2019 at ConSol - OpenShift v4
OpenShift Meetup 8th july 2019 at ConSol - OpenShift v4
 
Maksym Pugach - Elixir Release and Deploy Utilities
Maksym Pugach - Elixir Release and Deploy UtilitiesMaksym Pugach - Elixir Release and Deploy Utilities
Maksym Pugach - Elixir Release and Deploy Utilities
 
OpenShift 5 Drop5 demo
OpenShift 5 Drop5 demoOpenShift 5 Drop5 demo
OpenShift 5 Drop5 demo
 
OpenShift In a Nutshell - Episode 01 - Introduction
OpenShift In a Nutshell - Episode 01 - IntroductionOpenShift In a Nutshell - Episode 01 - Introduction
OpenShift In a Nutshell - Episode 01 - Introduction
 
DevFestMN 2017 - Learning Docker and Kubernetes with Openshift
DevFestMN 2017 - Learning Docker and Kubernetes with OpenshiftDevFestMN 2017 - Learning Docker and Kubernetes with Openshift
DevFestMN 2017 - Learning Docker and Kubernetes with Openshift
 
"Look Ma, no hands! Zero Touch Provisioning for OpenShift" DevConf.US 2021
"Look Ma, no hands! Zero Touch Provisioning for OpenShift" DevConf.US 2021"Look Ma, no hands! Zero Touch Provisioning for OpenShift" DevConf.US 2021
"Look Ma, no hands! Zero Touch Provisioning for OpenShift" DevConf.US 2021
 
OpenShift As A DevOps Platform
OpenShift As A DevOps PlatformOpenShift As A DevOps Platform
OpenShift As A DevOps Platform
 
CI/CD Pipeline to Deploy and Maintain an OpenStack IaaS Cloud
CI/CD Pipeline to Deploy and Maintain an OpenStack IaaS CloudCI/CD Pipeline to Deploy and Maintain an OpenStack IaaS Cloud
CI/CD Pipeline to Deploy and Maintain an OpenStack IaaS Cloud
 
Streamlining Agile Linux Development with Docker and RHEL Atomic
Streamlining Agile Linux Development with Docker and RHEL AtomicStreamlining Agile Linux Development with Docker and RHEL Atomic
Streamlining Agile Linux Development with Docker and RHEL Atomic
 
Java EE with NetBeans on OpenShift
Java EE with NetBeans on OpenShiftJava EE with NetBeans on OpenShift
Java EE with NetBeans on OpenShift
 
Kangaroot open shift best practices - straight from the battlefield
Kangaroot open shift best practices - straight from the battlefieldKangaroot open shift best practices - straight from the battlefield
Kangaroot open shift best practices - straight from the battlefield
 
Fluo CICD OpenStack Summit
Fluo CICD OpenStack SummitFluo CICD OpenStack Summit
Fluo CICD OpenStack Summit
 
A CI/CD Pipeline to Deploy and Maintain OpenStack - cfgmgmtcamp2015
A CI/CD Pipeline to Deploy and Maintain OpenStack - cfgmgmtcamp2015A CI/CD Pipeline to Deploy and Maintain OpenStack - cfgmgmtcamp2015
A CI/CD Pipeline to Deploy and Maintain OpenStack - cfgmgmtcamp2015
 
Migrating Java JBoss EAP Applications to Kubernetes With S2I
Migrating Java JBoss EAP Applications to Kubernetes With S2IMigrating Java JBoss EAP Applications to Kubernetes With S2I
Migrating Java JBoss EAP Applications to Kubernetes With S2I
 
JavaCro'14 - Continuous delivery of Java EE applications with Jenkins and Doc...
JavaCro'14 - Continuous delivery of Java EE applications with Jenkins and Doc...JavaCro'14 - Continuous delivery of Java EE applications with Jenkins and Doc...
JavaCro'14 - Continuous delivery of Java EE applications with Jenkins and Doc...
 
Openshift/Kubernetes integration with Apache YARN
Openshift/Kubernetes integration with Apache YARNOpenshift/Kubernetes integration with Apache YARN
Openshift/Kubernetes integration with Apache YARN
 
OpenShift 4, the smarter Kubernetes platform
OpenShift 4, the smarter Kubernetes platformOpenShift 4, the smarter Kubernetes platform
OpenShift 4, the smarter Kubernetes platform
 
OpenShift meetup Bangalore
OpenShift meetup BangaloreOpenShift meetup Bangalore
OpenShift meetup Bangalore
 

Viewers also liked

OpenStack: Changing the Face of Service Delivery
OpenStack: Changing the Face of Service DeliveryOpenStack: Changing the Face of Service Delivery
OpenStack: Changing the Face of Service DeliveryLew Tucker
 
Openstack Third-Party CI and the review of a few Openstack Infrastructure pro...
Openstack Third-Party CI and the review of a few Openstack Infrastructure pro...Openstack Third-Party CI and the review of a few Openstack Infrastructure pro...
Openstack Third-Party CI and the review of a few Openstack Infrastructure pro...Evgeny Antyshev
 
Utilizzo del Software OpenStack per la realizzazione di piattaforme "Cloud" -...
Utilizzo del Software OpenStack per la realizzazione di piattaforme "Cloud" -...Utilizzo del Software OpenStack per la realizzazione di piattaforme "Cloud" -...
Utilizzo del Software OpenStack per la realizzazione di piattaforme "Cloud" -...Enrico Franceschini
 
Panoramica sul progetto OpenStack
Panoramica sul progetto OpenStackPanoramica sul progetto OpenStack
Panoramica sul progetto OpenStackPar-Tec S.p.A.
 
Deep Dive: Infrastructure as Code
Deep Dive: Infrastructure as CodeDeep Dive: Infrastructure as Code
Deep Dive: Infrastructure as CodeAmazon Web Services
 
Anatomy of a Modern Node.js Application Architecture
Anatomy of a Modern Node.js Application Architecture Anatomy of a Modern Node.js Application Architecture
Anatomy of a Modern Node.js Application Architecture AppDynamics
 
Jenkins and Chef: Infrastructure CI and Automated Deployment
Jenkins and Chef: Infrastructure CI and Automated DeploymentJenkins and Chef: Infrastructure CI and Automated Deployment
Jenkins and Chef: Infrastructure CI and Automated DeploymentDan Stine
 

Viewers also liked (7)

OpenStack: Changing the Face of Service Delivery
OpenStack: Changing the Face of Service DeliveryOpenStack: Changing the Face of Service Delivery
OpenStack: Changing the Face of Service Delivery
 
Openstack Third-Party CI and the review of a few Openstack Infrastructure pro...
Openstack Third-Party CI and the review of a few Openstack Infrastructure pro...Openstack Third-Party CI and the review of a few Openstack Infrastructure pro...
Openstack Third-Party CI and the review of a few Openstack Infrastructure pro...
 
Utilizzo del Software OpenStack per la realizzazione di piattaforme "Cloud" -...
Utilizzo del Software OpenStack per la realizzazione di piattaforme "Cloud" -...Utilizzo del Software OpenStack per la realizzazione di piattaforme "Cloud" -...
Utilizzo del Software OpenStack per la realizzazione di piattaforme "Cloud" -...
 
Panoramica sul progetto OpenStack
Panoramica sul progetto OpenStackPanoramica sul progetto OpenStack
Panoramica sul progetto OpenStack
 
Deep Dive: Infrastructure as Code
Deep Dive: Infrastructure as CodeDeep Dive: Infrastructure as Code
Deep Dive: Infrastructure as Code
 
Anatomy of a Modern Node.js Application Architecture
Anatomy of a Modern Node.js Application Architecture Anatomy of a Modern Node.js Application Architecture
Anatomy of a Modern Node.js Application Architecture
 
Jenkins and Chef: Infrastructure CI and Automated Deployment
Jenkins and Chef: Infrastructure CI and Automated DeploymentJenkins and Chef: Infrastructure CI and Automated Deployment
Jenkins and Chef: Infrastructure CI and Automated Deployment
 

Similar to Infrastructure-as-Code and CI Infrastructure at OpenStack

Testing kubernetes and_open_shift_at_scale_20170209
Testing kubernetes and_open_shift_at_scale_20170209Testing kubernetes and_open_shift_at_scale_20170209
Testing kubernetes and_open_shift_at_scale_20170209mffiedler
 
Netflix Open Source: Building a Distributed and Automated Open Source Program
Netflix Open Source:  Building a Distributed and Automated Open Source ProgramNetflix Open Source:  Building a Distributed and Automated Open Source Program
Netflix Open Source: Building a Distributed and Automated Open Source Programaspyker
 
Building a Distributed & Automated Open Source Program at Netflix
Building a Distributed & Automated Open Source Program at NetflixBuilding a Distributed & Automated Open Source Program at Netflix
Building a Distributed & Automated Open Source Program at NetflixAll Things Open
 
Sanger, upcoming Openstack for Bio-informaticians
Sanger, upcoming Openstack for Bio-informaticiansSanger, upcoming Openstack for Bio-informaticians
Sanger, upcoming Openstack for Bio-informaticiansPeter Clapham
 
Workday's Next Generation Private Cloud
Workday's Next Generation Private CloudWorkday's Next Generation Private Cloud
Workday's Next Generation Private CloudSilvano Buback
 
Triangle Devops Meetup 10/2015
Triangle Devops Meetup 10/2015Triangle Devops Meetup 10/2015
Triangle Devops Meetup 10/2015aspyker
 
Introduction to kubernetes
Introduction to kubernetesIntroduction to kubernetes
Introduction to kubernetesRishabh Indoria
 
NetflixOSS Meetup season 3 episode 1
NetflixOSS Meetup season 3 episode 1NetflixOSS Meetup season 3 episode 1
NetflixOSS Meetup season 3 episode 1Ruslan Meshenberg
 
Delivering a bleeding edge community led open stack distribution- rdo
Delivering a bleeding edge community led open stack distribution- rdoDelivering a bleeding edge community led open stack distribution- rdo
Delivering a bleeding edge community led open stack distribution- rdoChandan Kumar
 
Infrastructure as code
Infrastructure as codeInfrastructure as code
Infrastructure as codeAnders Bruvik
 
Cinder Update, OpenInfra Meetup Q3 China, 2020-09-26
Cinder Update, OpenInfra Meetup Q3 China, 2020-09-26Cinder Update, OpenInfra Meetup Q3 China, 2020-09-26
Cinder Update, OpenInfra Meetup Q3 China, 2020-09-26Brian Rosmaita
 
How Openstack is Built
How Openstack is BuiltHow Openstack is Built
How Openstack is BuiltAnton Weiss
 
VASCAN - Docker and Security
VASCAN - Docker and SecurityVASCAN - Docker and Security
VASCAN - Docker and SecurityMichael Irwin
 
Ansiblefest 2018 Network automation journey at roblox
Ansiblefest 2018 Network automation journey at robloxAnsiblefest 2018 Network automation journey at roblox
Ansiblefest 2018 Network automation journey at robloxDamien Garros
 
Red Hat presentatie: Open stack Latest Pure Tech
Red Hat presentatie: Open stack Latest Pure TechRed Hat presentatie: Open stack Latest Pure Tech
Red Hat presentatie: Open stack Latest Pure TechProxyServices
 
Expedia 3x3 presentation
Expedia 3x3 presentationExpedia 3x3 presentation
Expedia 3x3 presentationDrew Hannay
 
Como creamos QuestDB Cloud, un SaaS basado en Kubernetes alrededor de QuestDB...
Como creamos QuestDB Cloud, un SaaS basado en Kubernetes alrededor de QuestDB...Como creamos QuestDB Cloud, un SaaS basado en Kubernetes alrededor de QuestDB...
Como creamos QuestDB Cloud, un SaaS basado en Kubernetes alrededor de QuestDB...javier ramirez
 
How OpenStack is Built - Anton Weiss - OpenStack Day Israel 2016
How OpenStack is Built - Anton Weiss - OpenStack Day Israel 2016How OpenStack is Built - Anton Weiss - OpenStack Day Israel 2016
How OpenStack is Built - Anton Weiss - OpenStack Day Israel 2016Cloud Native Day Tel Aviv
 
Red Hat Java Update and Quarkus Introduction
Red Hat Java Update and Quarkus IntroductionRed Hat Java Update and Quarkus Introduction
Red Hat Java Update and Quarkus IntroductionJohn Archer
 

Similar to Infrastructure-as-Code and CI Infrastructure at OpenStack (20)

Testing kubernetes and_open_shift_at_scale_20170209
Testing kubernetes and_open_shift_at_scale_20170209Testing kubernetes and_open_shift_at_scale_20170209
Testing kubernetes and_open_shift_at_scale_20170209
 
Netflix Open Source: Building a Distributed and Automated Open Source Program
Netflix Open Source:  Building a Distributed and Automated Open Source ProgramNetflix Open Source:  Building a Distributed and Automated Open Source Program
Netflix Open Source: Building a Distributed and Automated Open Source Program
 
Building a Distributed & Automated Open Source Program at Netflix
Building a Distributed & Automated Open Source Program at NetflixBuilding a Distributed & Automated Open Source Program at Netflix
Building a Distributed & Automated Open Source Program at Netflix
 
Sanger, upcoming Openstack for Bio-informaticians
Sanger, upcoming Openstack for Bio-informaticiansSanger, upcoming Openstack for Bio-informaticians
Sanger, upcoming Openstack for Bio-informaticians
 
Flexible compute
Flexible computeFlexible compute
Flexible compute
 
Workday's Next Generation Private Cloud
Workday's Next Generation Private CloudWorkday's Next Generation Private Cloud
Workday's Next Generation Private Cloud
 
Triangle Devops Meetup 10/2015
Triangle Devops Meetup 10/2015Triangle Devops Meetup 10/2015
Triangle Devops Meetup 10/2015
 
Introduction to kubernetes
Introduction to kubernetesIntroduction to kubernetes
Introduction to kubernetes
 
NetflixOSS Meetup season 3 episode 1
NetflixOSS Meetup season 3 episode 1NetflixOSS Meetup season 3 episode 1
NetflixOSS Meetup season 3 episode 1
 
Delivering a bleeding edge community led open stack distribution- rdo
Delivering a bleeding edge community led open stack distribution- rdoDelivering a bleeding edge community led open stack distribution- rdo
Delivering a bleeding edge community led open stack distribution- rdo
 
Infrastructure as code
Infrastructure as codeInfrastructure as code
Infrastructure as code
 
Cinder Update, OpenInfra Meetup Q3 China, 2020-09-26
Cinder Update, OpenInfra Meetup Q3 China, 2020-09-26Cinder Update, OpenInfra Meetup Q3 China, 2020-09-26
Cinder Update, OpenInfra Meetup Q3 China, 2020-09-26
 
How Openstack is Built
How Openstack is BuiltHow Openstack is Built
How Openstack is Built
 
VASCAN - Docker and Security
VASCAN - Docker and SecurityVASCAN - Docker and Security
VASCAN - Docker and Security
 
Ansiblefest 2018 Network automation journey at roblox
Ansiblefest 2018 Network automation journey at robloxAnsiblefest 2018 Network automation journey at roblox
Ansiblefest 2018 Network automation journey at roblox
 
Red Hat presentatie: Open stack Latest Pure Tech
Red Hat presentatie: Open stack Latest Pure TechRed Hat presentatie: Open stack Latest Pure Tech
Red Hat presentatie: Open stack Latest Pure Tech
 
Expedia 3x3 presentation
Expedia 3x3 presentationExpedia 3x3 presentation
Expedia 3x3 presentation
 
Como creamos QuestDB Cloud, un SaaS basado en Kubernetes alrededor de QuestDB...
Como creamos QuestDB Cloud, un SaaS basado en Kubernetes alrededor de QuestDB...Como creamos QuestDB Cloud, un SaaS basado en Kubernetes alrededor de QuestDB...
Como creamos QuestDB Cloud, un SaaS basado en Kubernetes alrededor de QuestDB...
 
How OpenStack is Built - Anton Weiss - OpenStack Day Israel 2016
How OpenStack is Built - Anton Weiss - OpenStack Day Israel 2016How OpenStack is Built - Anton Weiss - OpenStack Day Israel 2016
How OpenStack is Built - Anton Weiss - OpenStack Day Israel 2016
 
Red Hat Java Update and Quarkus Introduction
Red Hat Java Update and Quarkus IntroductionRed Hat Java Update and Quarkus Introduction
Red Hat Java Update and Quarkus Introduction
 

Recently uploaded

How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerThousandEyes
 
Active Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfActive Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfCionsystems
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
Test Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendTest Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendArshad QA
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about usDynamic Netsoft
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsAndolasoft Inc
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...OnePlan Solutions
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AIABDERRAOUF MEHENNI
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️anilsa9823
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxComplianceQuest1
 

Recently uploaded (20)

How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
Active Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfActive Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdf
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
Test Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendTest Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and Backend
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about us
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
 
Exploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the ProcessExploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the Process
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 

Infrastructure-as-Code and CI Infrastructure at OpenStack

  • 1. Infrastructure-as-Code and CI Infrastructure at OpenStack A look at one of the largest CI systems and system administration Andreas Jaeger aj@suse.com 2016-06-23
  • 2. OpenStack Open source software for building private and public clouds
  • 3. Project History ● Provide components for Infrastructure-as-a-Service ● Started by Rackspace and NASA in July 2010 ● Today: > 200 companies involved in ecosystem ● Releases every 6 months: – So far: Austin, Bexar, Cactus, Diablo, Essex, Folsom, Grizzly, Havana, Icehouse, Juno, Kilo, Liberty, Mitaka – Next ones: Newton, Ocata
  • 4. Lines of code Reviews Commits Contributors Organizations > 5,900,000 > 204,000 > 31,000 2336 293
  • 5. Contributors ● Unaffiliated individuals ● Commercial entities ● Nonprofit organizations ● National and local governments ● Number, quality, and area of contributions can change daily Source: http://stackalytics.com/? metric=loc&release=mitaka
  • 6. “The most insane CI infrastructure I've ever been part of” – Alex Gaynor on IRC #openstack-infra
  • 7. OpenStack Projects include: ● Compute (nova) ● Object Storage (swift) ● Image Service (glance) ● Identity (keystone) ● Dashboard (horizon) ● Networking (neutron) ● Block Storage (cinder) ● Telemetry (ceilometer) ● Orchestration (heat) ● Database Service (trove) ● ... ● python-novaclient ● python-swiftclient ● python-glanceclient ● python-keystoneclient ● python-neutronclient ● python-cinderclient ● python-heatclient ● python-ceilometerclient ● python-openstackclient ● Python-troveclient ● … Servers: Client libraries:
  • 8. Programs/Horizontal Efforts ● Documentation ● Infrastructure ● Oslo – Common libraries ● Quality Assurance – Integration Testing – Upgrade Testing ● Release Management ● Internationalization/ Translation ● Vulnerabilty Management
  • 9. Release Management ● Time Based Releases ● Six Month Cadence ● Design summits each cycle ● Continuously Open Trunk ● Develop directly on master ● Intra-Cycle Milestone Releases ● Post-Release Stable Branches
  • 10. CI Challenges ● Lots of individual projects (> 1100 git repos) ● Projects must work together ● Changes should never break the master ● Code should be syntactically clean ● Completely automated testing
  • 11. Consistent CI infrastructure ● All official OpenStack projects ● Unofficial projects ● Documentation ● Systems Administration – incl. CI
  • 13. Peer Review ● Anybody can review and leave comments and +1/-1 ● Core reviewers can leave also +2/-2 ● Approval by core reviewer after at least two +2s ● Automatic review by tools ● Testing on supported scenarios: – Different hypervisors – Different storage backends – Different databases – Different OSes
  • 14. Gating? ● To ensure code quality ● To protect developer – they always start from working code ● To protect tree from bad code ● Same process for everybody: – Transparent – Automated ● Testing of patch against current state of all other projects
  • 15. Gating: Sequential Merge ● Assume three changes A, B, C for testing ● Zuul will test: – Test A: Merge A; test – Test B: Merge A, B; test – Test C: Merge A, B, C; test ● If B fails: – Retest C: Merge A, C; test ● “Depends-On” across repositories ● After merge: merge-check of open reviews
  • 16. Jobs ● Jobs are started on new fresh VM ● Run in clouds by Rackspace, OSIC, OVH, Bluebox, Internap ● Currently over 700 VMs available
  • 17. CI Infrastructure ● Launchpad and Storyboard ● Git ● Gerrit ● Zuul ● Gearman ● Nodepool
  • 19. CI Workflow (Since 17th June) Zuul-Launcher
  • 23. Services run by Infra Team ● CI systems ● Cacti ● Elasticsearch, Logstash and Kibana ● IRC Bots ● Etherpad ● Git ● Paste ● Planet ● Puppetboard ● Mailing Lists ● Storyboard ● Various smaller web services ● Wiki
  • 24. “We consider every command typed by a rooter to be a bug. We think this because: – we think system administration tasks should be performed by robots – we think inputs to the robots should go through code review” https://review.openstack.org/#/c/310948/3/specs/finglonger.rst
  • 25. Paradigms ● Infrastructure-as-code ● Collaboration ● Peer review ● Automate everything
  • 26. Everything Public ● Services available without restrictions ● Anybody can review ● Anybody can contribute ● Discussion on IRC with public archives
  • 27. Peer review ● Multiple eyes on changes prior to merging ● Good infrastructure for developing new solutions (particularly for a distributed team) ● No special process to go through for commit access ● Trains us to be collaborative by default
  • 28. Checks for CI ● flake8 (pep 8 and pyflakes) ● bashate ● puppet parser validate ● puppet-lint ● beaker-rspec ● XML ● Alphabetized project files ● Parsing of files ● …
  • 29. Automated deployment ● Change gets checked in – ...Either puppet master gets updated and applies change – ...Or vcsrepo module in puppet pulls in latest version of project
  • 30. JJB ● Tool for configuring Jenkins jobs using YAML files ● Using templated jobs, to apply same jobs to tons of different projects:     ­ job­template     name: 'gate­{name}­docs'       builders:         ­ shell: 'git checkout {branch_name}' ● Grouping of jobs:     ­ job­group:         name: '{name}­tests'         jobs:         ­ '{name}­unit­tests'         ­ '{name}­perf­tests'
  • 31. Nodepool ● Deploy and manage a pool of images on the cloud ● Works with any OpenStack provider ● Once per day a new image is generated with cached content ● Spins instances based on desired image on demand ● Can use disk-image-builder to build images ● Communicates with Zuul using gearman-servers for getting realtime demand
  • 32. System administration ● Using puppet and ansible – Everything in git ● For debugging and exceptional tasks: – Infra-root team has ssh access everywhere, uses ansible for routine tasks – ssh access is granted for individuals for specific service
  • 33. Configuration Management ● All servers installed using base image and puppet. ● Setting up a new server: – Set up new git repository – Set up server locally, get it fully puppetized ● All changes to git repository use gerrit and review – Set up dev server in cloud using puppet only – Set up production server using puppet only
  • 34. Major Manual Task ● Major updates are done collaboratively. Examples: Gerrit update, OS update of server ● Tested where possible on dev system ● All instructions prepared on etherpad, reviewed by team
  • 35. Limitations ● Sometimes you just need to log into a server ● More difficult for complicated migrations, upgrades ● Passwords need to be privately managed (hiera)
  • 37. More Information ● OpenStack in general: http://www.openstack.org ● OpenStack infrastructure: http://ci.openstack.org/ ● OpenStack documentation: http://docs.openstack.org
  • 38. OpenStack and (open)SUSE ● openSUSE wiki: https://en.opensuse.org/Portal:OpenStack ● Cloud packages: https://build.opensuse.org/project/show?project=Cl oud%3AOpenStack ● Install Guide for openSUSE and SLES at http://docs.openstack.org Mitaka version at http://docs.openstack.org/mitaka/install-guide-obs/ ● SUSE OpenStack Cloud product: https://www.suse.com/products/suse-openstack-cloud
  • 39. Credits ● Some content copied from http://docs.openstack.org/infra/publications