openstack enabling devopsd2zmdbbm9feqrf.cloudfront.net/2016/usa/pdf/devnet-1104.pdf · openstack...
TRANSCRIPT
• Introduction
• DevOps
• OpenStack
• Virtualization
• CI/CD Pipeline
• Orchestration
• Conclusion
Agenda
© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public
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
DevOps
Dev /
SW Eng QA
Technology
Operations
DEVNET-1104 4
© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public
OpenStack
• Open Source platform for cloud computing that controls large pools of compute, storage and networking
DEVNET-1104 5
© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public
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 6
© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public
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 7
© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public
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 8
© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public
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 9
© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public
Revision Control System
Code Review Tool
Code Repo
Test JobsIntegration
Server
• RCS: Subversion, Mercurial, CVS, Bazaar, Perforce, ClearCase, etc..
• Code Review: Gerrit, Gitpull request, Phabricator, Barkeep, Gitlab, etc..
• Code Repo: GitHub, BitBucket, BitKeeper, Gitorious, etc..
• Integration Server: Jenkins/Hudson, Zuul, CloudBees, Go, Maven, etc..
• Test Jobs: Tempest, Rally, puppet-rspec, tox, etc..
• Artifacts: rpmbuild, Jenkins, Artifactory, Apache Archiva, etc..
(Gerrit/Git pull request)
*See notes for logo credits
(Tempest/Rally/etc)
Continuous Integration/Deployment
(GitHub)
Artifact Creation
Artifact Rep Mgr
Deployment
Jobs
(rpmbuild/Jenkins/etc)
Continuous
Deployment
DEVNET-1104 10
© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public
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 11
© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public
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 12
© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public
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 13
© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public
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 14
© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public
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 }
Heat Template
• JSON/YAML
• Parameters
• Resources
DEVNET-1104 15
© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public
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 16
© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public
Complete Your Online Session Evaluation
Don’t forget: Cisco Live sessions will be available for viewing on-demand after the event at CiscoLive.com/Online
• 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.
DEVNET-1104 18
© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public
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 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 14th, 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