Extending for Fun and ProfitTim Smith – Co-founder, Gridcentric
A bit about me   Co-founder & President of Gridcentric   10+ years hacking    embedded/RTOS, storage, networks,    and v...
This talk            Your innovation
Gridcentric VMS   Delayed “fork()” for virtual machines:       Take snapshot of running (fully configured) VM (bless)   ...
Extending Nova   Nova is a framework, providing:       A standardized API       Messaging / RPC       Database-backed ...
Nova API extensions   Main module: nova.api.openstack.extensions   Can:     Add new resources     Add new properties t...
GC API extension   Add new server actions:       gc_bless – create state snapshot of running        instance     gc_lau...
Creating a new service   Custom services can:     Make RPCs to other Nova components     Receive RPCs from Api server  ...
The nova-gc service   Accepts RPCs from GC API extension     For   bless, launch, discard, etc   Uses Nova ORM to CRUD ...
Extending the nova client   New actions can be surfaced to the nova CLI    client     Need to be explicitly added via cl...
Extending the dashboard   Horizon is a Django application   New views/panes/etc can be added as    “Django installed app...
Extending the dashboard
Technical challenges   Some parts of nova not 100% “extension ready”     E.g. some built-in schedulers don’t route messa...
Business challenges   Openstack is evolving extremely quickly     Users/developers/vendors/operators are not always     ...
Further reading   Rackspace Extensions API intro:    http://docs.rackspace.com/openstack-extensions/apix-intro   Rackspa...
Thank you!Email: tsmith@gridcentric.comLink me in: https://www.linkedin.com/in/tsmithgcSlides: http://slidesha.re/XfgUZ7
Upcoming SlideShare
Loading in …5
×

Extending OpenStack for Fun and Profit.pptx

2,065 views
1,904 views

Published on

true

0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,065
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
54
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

Extending OpenStack for Fun and Profit.pptx

  1. 1. Extending for Fun and ProfitTim Smith – Co-founder, Gridcentric
  2. 2. A bit about me Co-founder & President of Gridcentric 10+ years hacking embedded/RTOS, storage, networks, and virtualization Last 3+ years directing engineering at Gridcentric
  3. 3. This talk Your innovation
  4. 4. Gridcentric VMS Delayed “fork()” for virtual machines:  Take snapshot of running (fully configured) VM (bless)  Spin up replica instances quickly and efficiently (launch)  Re-use common memory pages between replicas
  5. 5. Extending Nova Nova is a framework, providing:  A standardized API  Messaging / RPC  Database-backed ORM Nova can be extended by writing new:  API extensions  Custom “services”  Nova CLI extensions  Dashboard extensions
  6. 6. Nova API extensions Main module: nova.api.openstack.extensions Can:  Add new resources  Add new properties to existing resources  Add new actions to existing resources Cannot:  Replace / hook around existing actions
  7. 7. GC API extension Add new server actions:  gc_bless – create state snapshot of running instance  gc_launch – launch new VM from state snapshot  gc_discard – discard state snapshot Add new resource:  gcservers – list VMS-capable compute hosts
  8. 8. Creating a new service Custom services can:  Make RPCs to other Nova components  Receive RPCs from Api server  Access/modify the Nova data store
  9. 9. The nova-gc service Accepts RPCs from GC API extension  For bless, launch, discard, etc Uses Nova ORM to CRUD server objects Interfaces to Gridcentric proprietary code to do heavy lifting
  10. 10. Extending the nova client New actions can be surfaced to the nova CLI client  Need to be explicitly added via client extensions  Extensions can be PIP-installable, etc GC client extension  Adds bless, launch, discard, etc to nova CLI client
  11. 11. Extending the dashboard Horizon is a Django application New views/panes/etc can be added as “Django installed applications” Horizon and extensions use the nova client programmatically to access nova services.  Ergo,you also need to write a client extension and install it where Horizon is running
  12. 12. Extending the dashboard
  13. 13. Technical challenges Some parts of nova not 100% “extension ready”  E.g. some built-in schedulers don’t route messages to custom services  IP tables rules need to be created through compute service, but no interface exists for that Service framework makes assumptions w.r.t. execution Different distributions do things differently  E.g. paths, nova user, libvirt / qemu user
  14. 14. Business challenges Openstack is evolving extremely quickly  Users/developers/vendors/operators are not always synced up on the same release.  The answer to a lot of issues is “wait for the next release”. The Openstack market is still early  Operators haven’t quite nailed down their requirements/differentiation/solution set  Lots of fragmentation = lots of confusion
  15. 15. Further reading Rackspace Extensions API intro: http://docs.rackspace.com/openstack-extensions/apix-intro Rackspace Extensions (good examples!): http://docs.rackspace.com/openstack-extensions/ Gridcentric VMS extension: https://github.com/gridcentric/openstack Service architecture intro: http://docs.openstack.org/developer/nova/service.architecture.html Extending Horizon (dashboard): http://docs.openstack.org/developer/horizon/topics/tutorial.html Standard OpenStack API and extensions: http://api.openstack.org/
  16. 16. Thank you!Email: tsmith@gridcentric.comLink me in: https://www.linkedin.com/in/tsmithgcSlides: http://slidesha.re/XfgUZ7

×