During the OpenStack Tokyo Summit we provided an overview on how Workday started the production deployment with a very robust and efficient CI/CD process that it explained here.
3. Outline
Operations Challenges
Architecture Overview
CI – Pipeline
CI – Environments
– Desktop
– Virtual Machines (OOO)
– Bare-Metal
Summary
Q & A
4. Ops Challenges:
Automation
Idempotent
Scalable
Secure
– SSL on End Points
– SSL on RabbitMQ
– SSL on MySQL
– IPTables
Stable
Production Readiness
– Logging
– Monitoring
Bonded physical interfaces per server
Multi-tenant
One network per tenant with contrail policy groups enforcement
CI - CD
7. How it started: Prototype #1
Controller Compute Tempest
Build once and reuse
SDN
NOTE: https://github.com/openstack/openstack-chef-repo
Rally
8. Drivers for Containers
Lightweight – many containers on a single VM
Re-usable – Build once and deploy
Shareable –share common components (Chef
server, Tempest etc.)
16. OoO - CI Workflow
Jenkins Openstack
Controller
Git repo
Chef
Launch
Chef Server
Fetch Chef artifacts
Create OS controller
SDN, Compute
Tempest
Controller
SDN
Compute
Tempest
Run Chef Clients
Run Tempest
17. Road to production
Dev
• Build and test
Virtual
• Create Gerrit review
• VM CI passes
Bare Metal
• Promote cookbooks
to production
18. Key Take Away
It took a number of iterations
Docker on Vagrant proved to be a very powerful
Chef development environment
– Rapid development and prototyping
– Containers are very lightweight
– You can share container images across teams
Increased development agility by building CI on
Openstack
Predictable deployment outcome
19. How it all started..
Build Openstack cloud with community cookbooks and packages
Started with openstack-chef, a community project
Realized its limitations
Consistent and repeatable environment for developers, operations
Share common components
Test framework
Continuous integration framework
NOTE: https://github.com/openstack/openstack-chef-repo
Editor's Notes
- Build Openstack cloud with community cookbooks and packages
- Started with openstack-chef, a community project
- Realized its limitations
Without a Chef we could not test some features (Chef search)
How do you test that it’s functional (Tempest)
Consistent and repeatable environment for developers, operations
How can we create a CI? (Jenkins)
How do you share Chef server, Tempest, Jenkins
Terms used in the presentation:
CI/CD
OOO
Have this as a reference slide.