This document provides an overview of Nova, OpenStack's compute service. It discusses Nova's architecture, code structure, API concepts, upgrade process, and how different groups work together as part of the upstream community. The new upgrade process aims to minimize downtime by expanding the database schema, restarting services individually, and signaling services to reload configuration. Collaboration across various groups with different perspectives is important to OpenStack's open development model.
5. 5
to provide massively scalable ,
on demand, self ser vice
access to compute resources
OpenStack Nova’s Mission
http://docs.openstack.org/developer/nova/project_scope.html
8. 8
Cells
v1 v2
• Cells is optional
• Not all features supported
• Sync instance between DBs
• Default is one v2 cell
• New API database
• Tools to migrate from cells v1
API
Compute
Cell 1
Compute
Cell 2
Compute
Cell 3
10. 10
API Users
The Absent The Active Multi-Cloud Ops & Dev
• Cloud upgrades
• But old script
works
• Uses newest APIs
• Check availability
• Multiple clouds
• Different versions
• Single script
• Who is using
what?
• How to evolve
API?
https://dague.net/2015/06/05/the-nova-api-in-kilo-and-beyond-2/
11. 11
API Evolution
v2.0 v2.1
• First API
• Base + Extensions
• Now Deprecated
• No Extensions
• Evolve using “Micro-versions”
• Better Validation
http://developer.openstack.org/api-ref-compute-v2.1.html
http://developer.openstack.org/api-guide/compute/server_concepts.html#moving-servers
12. 12
API Concepts
• Servers, Flavors, Key Pair, Server Groups
• Image, Volume, Network Port
• Hosts, Aggregates
• More Info:
– http://developer.openstack.org/api-ref-compute-v2.1.html
– http://developer.openstack.org/api-guide/compute/server_concepts.html#moving-servers
22. 22
You neve r re ally unde r stand a pe r son
until you consider things from his
point of view … until you climb into
his skin and walk around in it.
To Kill a Mocking Bird
By Harper Lee
26. 26
Upgrade Needs
• Scope:
– To the next release
– Continuous Deployment
• Control plane vs Data plane
• Existing Configuration works
• Warn before removing features
http://governance.openstack.org/reference/tags/#project-assertions-tags
31. 31
Nova Architecture
API Nodes
Behind LB
Compute Compute Compute Compute Compute
Database
Message
Queue
Conductor(s)
Other Control
Nodes
Isolate from DB using
oslo.versionedobjects Versioned RPC Signature
Schema and Data Migrations
Graceful Shutdown
RPC Signature
32. 32
New Upgrade Process
API Nodes
Behind LB
Compute Compute Compute Compute Compute
Database
Message
Queue
Conductor(s)
Other Control
Nodes
1
2a
3
4
2b
Rackspace public cloud powered by OpenStack Nova
Started working on OpenStack at Citrix in 2010
Joined nova-core in June 2013, Nova PTL for Liberty and Mitaka
Image from unsplash.com
Lets take a look at our users, and what they want.
Reference:
https://dague.net/2015/06/05/the-nova-api-in-kilo-and-beyond-2/
https://upload.wikimedia.org/wikipedia/commons/9/98/Elephas_maximus_%28Bandipur%29.jpg
Three blind people meet an elephant.
Infrequent contributor says: Why does everyone hate my idea?
OpenStack users groups of people who all trust each other to scale out what they do.
We need to take care these groups do not exclude. To do that, lets take a look at how these groups form.
View of perfection
Current state is quite different, Note: bits they don’t want, and missing bit
Internal view of rest of the world and what they want is not complete
After discussion upstream you see a different picture
http://docs.openstack.org/project-team-guide/introduction.html#the-four-opens
Open Source not open core
Open design summits
Open development – reviews, roadmaps
Open community – vibrant dev and user community
We aim to be very Open, how do we keep that.
Build empathy by discussing the problem.
https://upload.wikimedia.org/wikipedia/commons/e/e5/Rubiks_cube_scrambled.jpg
https://commons.wikimedia.org/wiki/File:Sonyhdrfx1.jpg
https://commons.wikimedia.org/wiki/File:Powerpoint_icon.jpg
https://commons.wikimedia.org/wiki/File:The_Friends_Stage_cropped.jpg
https://upload.wikimedia.org/wikipedia/commons/e/e5/Rubiks_cube_scrambled.jpg
1) Summit talks are recorded, the Design Summit is not.
Look out for ttx¹s Design Summit 101, like this one:
https://libertydesignsummit.sched.org/event/e480edc1483038153cf2dcd9968668
6
a
The technical debate and planning happens in the Design Summit sessions,
not the conference.
PowerPoint is banned in the Design Summit, its about debate not updates.
Mon: ops, Tues: cross project, Wed-Thurs: fishbowls/work sessions, Friday:
meetup
2) Agree the problem, then discuss solutions
Don¹t ask ³how to get my code merged².
Instead ask ³how can I solve this problem I have²
For more details see:
https://www.openstack.org/summit/tokyo-2015/videos/presentation/working-wi
t
h-upstream-openstack-deadlines-and-internal-deadlines
3) Find a friend, so its easier to speak up
Speaking up at a Design Summit is crazy scary. This is normal. Don¹t
panic!
Sit with a friend. If you both have the same question, it feels easier to
ask it.
Find someone you know on the front row of the debate, and ask them to loop
you in.
Look out for suggested pre-reading, makes it easy to understand the
context.
Anyone can write on the etherpad, ideally add your name.
4) First time running a design summit session?
See Step 2.
Also ask some folks who do it regularly for advice.
5) Enjoy matching IRC handles to faces. Its fun.
https://upload.wikimedia.org/wikipedia/commons/7/78/Airforce_forklift.jpg
https://images.unsplash.com/photo-1429497419816-9ca5cfb4571a?q=80&fm=jpg&s=4bf1164d23eea4f04aeefe1732149cf3
This talk will focus on the control plane
Data plane / VM downtime
Control plane / API downtime
=
Lost income and Support Calls
http://www.danplanet.com/blog/2015/06/26/upgrading-nova-to-kilo-with-minimal-downtime/
Aim: zero downtime.
Note: no rollback
Flow:
API (-> DB) -> Conductor (-> Scheduler) -> Compute (talks to other services)
Why:
Scale small and large: API requests vs Compute nodes
Note Upgrade features.
(1) Expand DB, checks all data migrations are complete, removes any cruft from previous releases
(2) Pin RPC, upgrade all the control plane together, but conductor first
(3) Talk about graceful compute shutdown, and its limitations
(4) Un pin RPC by rechecking