Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
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,378 views

Published on

true

  • Be the first to comment

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

×