OpenStack Enabling DevOps Shannon McFarland CCIE #5245 Distinguished Engineer @eyepv6 DEVNET-1104
Agenda Introduction DevOps OpenStack Virtualization CI/CD Pipeline Orchestration Conclusion
What is DevOps? Practice that emphasizes the collaboration between developers, QA and Technical Operations As much an organizational process as it is technical Focused on automating the build, test and deployment of software Aims to release better tested software more frequently Blurs the line between traditional developers and IT Operations Dev / SW Eng DevOps Technology Operations QA DEVNET-1104 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public 4
OpenStack Open Source platform for cloud computing that controls large pools of compute, storage and networking DEVNET-1104 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public 5
OpenStack Provides APIs to all features and functionality Compute (Nova) Storage Cinder (block), Swift (Object), Glance (images) Networking (Neutron) Includes complex concepts firewalls, VPN, etc. Supports many flavors of networking VLAN, VXLAN, provider networks, etc. Floating IP to map private IP space to public Encourages DevOps model but doesn t require it DEVNET-1104 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public 6
Why Virtualization? Traditional approach: Group of developers start coding on their laptops Transition to a HW that has been allocated at project start and may or may not match requirements Long lead time to get new/different hardware Hardware upgrade and updates are cumbersome and slow Low utilization on dedicated hardware (5-15% is common) Virtualization allows allocation of physical hardware to multiple projects DEVNET-1104 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public 7
Virtualization using OpenStack IT Team Deploys an OpenStack cloud Focuses on deploying standard hardware and enforcing policy Development Team Get authorized to use cloud Starts new VMs as necessary (typically start by using GUI, quickly migrate to using APIs) Focuses on delivering enhanced functionality, not filling out paperwork DEVNET-1104 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public 8
Virtualization using OpenStack Once IT cloud is in place: Encourages experimentation via less commitment to hardware Offloads both teams developers don t spend time configuring hardware, IT focuses on overall utilization of standardized hardware Next step is automation Encouraging development to automate makes it easier to enforce policy as it decreases their work & increases consistency Automation progresses into continuous deployment > on commit, software is deployed and tested resulting in instantaneous feedback DEVNET-1104 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public 9
Continuous Integration/Deployment Revision Control System Code Review Tool (Gerrit/Git pull request) Code Repo (GitHub) RCS: Subversion, Mercurial, CVS, Bazaar, Perforce, ClearCase, etc.. Code Review: Gerrit, Git pull request, Phabricator, Barkeep, Gitlab, etc.. Code Repo: GitHub, BitBucket, BitKeeper, Gitorious, etc.. Artifact Creation Artifact Rep Mgr (rpmbuild/jenkins/etc) Deployment Jobs Integration Server Continuous Deployment Test Jobs (Tempest/Rally/etc) *See notes for logo credits Integration Server: Jenkins/Hudson, Zuul, CloudBees, Go, Maven, etc.. Test Jobs: Tempest, Rally, puppet-rspec, tox, etc.. Artifacts: rpmbuild, Jenkins, Artifactory, Apache Archiva, etc.. DEVNET-1104 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public 10
CI/CD Pipeline to Increase Velocity Every commit triggers a build (automated, nothing manual) Every build is automatically tested Responsible people are notified when things fail Everyone sees what s happening DEVNET-1104 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public 11
CI/CD Principles The process must be repeatable and reliable Automate everything (DevOps!) If something is painful or difficult or large, do it more often and break it down into smaller jobs Everything is in source control Done means released Build quality in (reviews and automated testing) Everyone has responsibility for the release process DEVNET-1104 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public 12
CI/CD on OpenStack OpenStack can provide the basis for a CI/CD system Cleanly supports dynamic allocation and build of system Good cloud application on commit, new infra is spun up that is a scaled version of the target environment, software is deployed and automatically tested; results reported back to standard dashboard Target scale can be anything from small to very large, with high degree of confidence in final deployment There s still a problem: how do you orchestrate the bring up of multiple VMs with complex networking? DEVNET-1104 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public 13
Automating Deployment of Applications (Heat) Challenge: How do I orchestrate the deployment of a complex application? Solution: OpenStack Heat Template based description of applications Can deploy multiple composite cloud applications Templates describe servers (VMs), floating IPs, security groups, storage, users, etc. Templates also describe relationships between resources (volume X is connected to server Y) Easy to read (text files), easy to audit for compliance DEVNET-1104 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public 14
Heat Template JSON/YAML Parameters Resources heat_template_version: 2015-10-15 parameters: image: type: string description: Name of image to use for servers default: ecb42067-f5f5-4a9c-888f-0559fdf6c11b flavor: type: string description: Flavor to use for servers default: Demo private_net_name: type: string description: Name of private network to be created default: test_net private_net_cidr: type: string description: Private network address (CIDR notation) default: 10.10.30.0/24... resources: private_net: type: OS::Neutron::Net properties: name: { get_param: private_net_name } private_subnet: type: OS::Neutron::Subnet properties: network: { get_resource: private_net } cidr: { get_param: private_net_cidr } DEVNET-1104 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public 15
Conclusion OpenStack provides a solid platform for hosting applications OpenStack provides APIs to access the infrastructure, encouraging DevOps practices CI/CD on OpenStack is a natural fit (and encourages good practices) OpenStack Heat can be used to describe and deploy entire applications especially powerful when tied to other automation tools such as Ansible DEVNET-1104 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public 16
Q & A
Complete Your Online Session Evaluation Give us your feedback to be entered into a Daily Survey Drawing. A daily winner will receive a $750 Amazon gift card. Complete your session surveys through the Cisco Live mobile app or from the Session Catalog on CiscoLive.com/us. Don t forget: Cisco Live sessions will be available for viewing on-demand after the event at CiscoLive.com/Online DEVNET-1104 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public 18
Continue Your Education Demos in the Cisco campus Walk-in Self-Paced Labs Lunch & Learn Meet the Engineer 1:1 meetings Related sessions DEVNET-1104 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public 19
Please join us for the Service Provider Innovation Talk featuring: Yvette Kanouff Senior Vice President and General Manager, SP Business Joe Cozzolino Senior Vice President, Cisco Services Thursday, July 14 th, 2016 11:30 am - 12:30pm, In the Oceanside A room What to expect from this innovation talk Insights on market trends and forecasts Preview of key technologies and capabilities Innovative demonstrations of the latest and greatest products Better understanding of how Cisco can help you succeed Register to attend the session live now or watch the broadcast on cisco.com
Thank you