SlideShare a Scribd company logo
Building an external CPI for CloudStack
Building of an external CPI for
CloudStack
Guillaume Berche & Pierre Oblin
Introduction
• Who we are
• Disclaimer
• Goal of this talk
• Why did we build a [new] CPI for CloudStack
?
@gberche
gberche-orange
guillaume.berche
[at] orange.com
poblin-orange
pierre.oblin
[at] orange.com
Outline
• Bosh & CPI intro
• CloudStack CPI design tradeoffs
• Status, future work, learnings
Bosh and
CPI overview
Bosh intro
Bosh CPI overview
• external CPI
• cpi drives Iaas & agent
• agent role
• registry
• nats
• => director to cpi api
CPI API V1 overview
Bosh CPI overview
Bosh agent configuration overview
1. load startup settings provided in stemcell
i.e. bootstrap settings sources among: meta-data server, config
drive, cdrom
2. load bootstrap settings:
i.e; iaas-specific initial networking & registry lookup URL
3. initial registry config loading
network configs
disks
4. dynamic configs through NATs messages
network reconfig,
disk resize…
VM instanciation illustrated
CloudStack
CPI design
choices
Context and constraints
• Provide flexibility for innovation and optimization
while remaining opensource
• Chicken and egg: CPI and stemcell
• Bosh is in active development, incomplete cpi doc
• Lack of public ci infrastructure supporting cpi
community contributions
corp proxies block us running concourse
lack public cloudstack instance
Design tradeoffs
• Where to start: stemcell or CPI?
• Programming language: ruby, go, java?
• CloudStack api client
• Child process invocation model
• per invocation process or daemon mode?
• stdin/stdout or REST facade ?
• Stemcell to cloudstack vm templates
• location constraints for bosh-init/director ?
• from volume or HTTP?
• a light stemcell to kick things off
• CS dynamic metadata URL
• bosh agent evolution ?
• stemcell iptables workaround ?
Status,
future work,
learnings
Status
• Supported: ~ CF-feature-ready
– in advanced zone networking: static/dynamic
Ips
– vm & disk life cycle
– configureable disk offering (for eph, root,
persistent disks)
– light stemcell & stemcell upload
• Limitations
– single persistent disk support (preventing
persistent disk resizing)
– single nic support
– no yet floating ip/vip
– no yet disk snapshots
Future short-term work
• Stemcell: Xen (+KVM), Ubuntu+Centos
• another infrastructure in bosh/stemcell_builder ?
• patch one of the official stemcell ?
• Private CI (concourse): BATS + CPI lifecycle
tests +…
• Local storage for persistent disks
• snapshot
• live migration
• vm placement to existing local storage
• Happy collaborate and committed to
support the community: contributions
welcome!
– Extract Java CPI framework ?
– Public CI: any public CloudStack instance
?
– CF incubator process ?
Challenges met & potential bosh
improvements
• documentation: (PR docs-bosh/63)
– reference implementations
– unit tests / integration tests
– bdd/living doc
– design docs
– API developper docs.
• CPI daemon support in bosh-init (Issue
CS_CPI/1)
• bosh-agent cloud-stack style volume
support
• Iaas-specific registry impl (Issue CS_CPI/1)
– => use NATS for disk mount support ?
• bosh-init optim for CPI development
• (external blobstore) (Issue bosh-init/17)
Thanks,
Questions ?
@gberche
gberche-orange
guillaume.berche
[at] orange.com
poblin-orange
pierre.oblin
[at] orange.com
https://github.com/cloudfoundry-community
/bosh-cloudstack-cpi-release

More Related Content

PPTX
Taking Cloud to Extremes: Scaled-down, Highly Available, and Mission-critical...
KEY
20120317 CloudFoundry #pyfes
PPTX
Cloud Foundry Deployment Tools: BOSH vs Juju Charms
PPTX
Containers and CloudStack
PDF
Web後端技術的演變
PDF
基於 K8S 開發的 FaaS 專案 - riff
PPTX
使用 Prometheus 監控 Kubernetes Cluster
PDF
Setup Hybrid Clusters Using Kubernetes Federation
Taking Cloud to Extremes: Scaled-down, Highly Available, and Mission-critical...
20120317 CloudFoundry #pyfes
Cloud Foundry Deployment Tools: BOSH vs Juju Charms
Containers and CloudStack
Web後端技術的演變
基於 K8S 開發的 FaaS 專案 - riff
使用 Prometheus 監控 Kubernetes Cluster
Setup Hybrid Clusters Using Kubernetes Federation

What's hot (20)

PDF
利用K8S實現高可靠應用
PDF
XCP-ng - Olivier Lambert
PDF
StarlingX - A Platform for the Distributed Edge | Ildiko Vancsa
PDF
[2017년 5월 정기세미나] IBM에서 바라보는 OpenStack 이야기
PPTX
Intro to Project Calico: a pure layer 3 approach to scale-out networking
PPTX
DEVNET-1183 OpenShift + Kubernetes + Docker
PDF
DockerCon EU 2015: Deploying and Managing Containers for Developers
ODP
Using Red Hat JBoss Fuse on OpenShift
PDF
Sharding Containers: Make Go Apps Computer-Friendly Again by Andrey Sibiryov
PDF
Production Ready Containers from IBM and Docker
PPTX
實際架構實踐演化與解決方案
PPTX
Introduction to the Container Network Interface (CNI)
PDF
Wido den hollander cloud stack and ceph
PDF
PaaS on top of CloudStack
PDF
Cloud Foundry Diego: Modular and Extensible Substructure for Microservices
PDF
The Truth Behind Serverless
PPTX
Building a Microsoft cloud with open technologies
PPTX
Take an Analytics-driven Approach to Container Performance with Splunk for Co...
PPTX
Building Cloud Native Applications Using Spring Boot and Spring Cloud
PDF
[OpenStack Day in Korea] Keynote#2 - Bringing OpenStack to the Enterprise Dat...
利用K8S實現高可靠應用
XCP-ng - Olivier Lambert
StarlingX - A Platform for the Distributed Edge | Ildiko Vancsa
[2017년 5월 정기세미나] IBM에서 바라보는 OpenStack 이야기
Intro to Project Calico: a pure layer 3 approach to scale-out networking
DEVNET-1183 OpenShift + Kubernetes + Docker
DockerCon EU 2015: Deploying and Managing Containers for Developers
Using Red Hat JBoss Fuse on OpenShift
Sharding Containers: Make Go Apps Computer-Friendly Again by Andrey Sibiryov
Production Ready Containers from IBM and Docker
實際架構實踐演化與解決方案
Introduction to the Container Network Interface (CNI)
Wido den hollander cloud stack and ceph
PaaS on top of CloudStack
Cloud Foundry Diego: Modular and Extensible Substructure for Microservices
The Truth Behind Serverless
Building a Microsoft cloud with open technologies
Take an Analytics-driven Approach to Container Performance with Splunk for Co...
Building Cloud Native Applications Using Spring Boot and Spring Cloud
[OpenStack Day in Korea] Keynote#2 - Bringing OpenStack to the Enterprise Dat...
Ad

Similar to Building an external CPI for CloudStack (20)

PDF
As a Service: Cloud Foundry on OpenStack - Lessons Learnt
PDF
Autoscaling OpenStack Natively with Heat, Ceilometer and LBaaS
PPTX
Optimizing Cloud Foundry and OpenStack for large scale deployments
PDF
Introduction to Stacki - World's fastest Linux server provisioning Tool
PDF
Webinar - DreamObjects/Ceph Case Study
PPTX
Kubernetes Storage Webinar.pptx
PDF
Provisioning Servers Made Easy
PDF
Ironic 140622212631-phpapp02
PDF
Ironic
PDF
Ironic 140622212631-phpapp02
PDF
hbaseconasia2017: Building online HBase cluster of Zhihu based on Kubernetes
PDF
Building a PaaS Platform like Bluemix on OpenStack
PDF
VMworld 2013: Deploying vSphere with OpenStack: What It Means to Your Cloud E...
PPTX
Altoros Cloud Foundry Training: hands-on workshop for DevOps, Architects and ...
PDF
Latest (storage IO) patterns for cloud-native applications
PPTX
Considerations for Operating an OpenStack Cloud
PPTX
Kubernetes at NU.nl (Kubernetes meetup 2019-09-05)
PDF
The Fabric of the Future
PPTX
Kubernetes 1.16 and rancher 2.3 enhancements
PPTX
Serverless technologies with Kubernetes
As a Service: Cloud Foundry on OpenStack - Lessons Learnt
Autoscaling OpenStack Natively with Heat, Ceilometer and LBaaS
Optimizing Cloud Foundry and OpenStack for large scale deployments
Introduction to Stacki - World's fastest Linux server provisioning Tool
Webinar - DreamObjects/Ceph Case Study
Kubernetes Storage Webinar.pptx
Provisioning Servers Made Easy
Ironic 140622212631-phpapp02
Ironic
Ironic 140622212631-phpapp02
hbaseconasia2017: Building online HBase cluster of Zhihu based on Kubernetes
Building a PaaS Platform like Bluemix on OpenStack
VMworld 2013: Deploying vSphere with OpenStack: What It Means to Your Cloud E...
Altoros Cloud Foundry Training: hands-on workshop for DevOps, Architects and ...
Latest (storage IO) patterns for cloud-native applications
Considerations for Operating an OpenStack Cloud
Kubernetes at NU.nl (Kubernetes meetup 2019-09-05)
The Fabric of the Future
Kubernetes 1.16 and rancher 2.3 enhancements
Serverless technologies with Kubernetes
Ad

Recently uploaded (20)

PDF
Digital Strategies for Manufacturing Companies
PPT
Introduction Database Management System for Course Database
PDF
AI in Product Development-omnex systems
PDF
How Creative Agencies Leverage Project Management Software.pdf
PPTX
Transform Your Business with a Software ERP System
PPTX
Operating system designcfffgfgggggggvggggggggg
PPTX
CHAPTER 12 - CYBER SECURITY AND FUTURE SKILLS (1) (1).pptx
PPTX
Odoo POS Development Services by CandidRoot Solutions
PDF
Odoo Companies in India – Driving Business Transformation.pdf
PDF
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
PDF
Adobe Illustrator 28.6 Crack My Vision of Vector Design
PDF
Wondershare Filmora 15 Crack With Activation Key [2025
PPTX
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
PPTX
ai tools demonstartion for schools and inter college
PPTX
Online Work Permit System for Fast Permit Processing
PPTX
VVF-Customer-Presentation2025-Ver1.9.pptx
PPTX
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
PPTX
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
PDF
How to Choose the Right IT Partner for Your Business in Malaysia
PDF
How to Migrate SBCGlobal Email to Yahoo Easily
Digital Strategies for Manufacturing Companies
Introduction Database Management System for Course Database
AI in Product Development-omnex systems
How Creative Agencies Leverage Project Management Software.pdf
Transform Your Business with a Software ERP System
Operating system designcfffgfgggggggvggggggggg
CHAPTER 12 - CYBER SECURITY AND FUTURE SKILLS (1) (1).pptx
Odoo POS Development Services by CandidRoot Solutions
Odoo Companies in India – Driving Business Transformation.pdf
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
Adobe Illustrator 28.6 Crack My Vision of Vector Design
Wondershare Filmora 15 Crack With Activation Key [2025
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
ai tools demonstartion for schools and inter college
Online Work Permit System for Fast Permit Processing
VVF-Customer-Presentation2025-Ver1.9.pptx
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
How to Choose the Right IT Partner for Your Business in Malaysia
How to Migrate SBCGlobal Email to Yahoo Easily

Building an external CPI for CloudStack

  • 2. Building of an external CPI for CloudStack Guillaume Berche & Pierre Oblin
  • 3. Introduction • Who we are • Disclaimer • Goal of this talk • Why did we build a [new] CPI for CloudStack ? @gberche gberche-orange guillaume.berche [at] orange.com poblin-orange pierre.oblin [at] orange.com
  • 4. Outline • Bosh & CPI intro • CloudStack CPI design tradeoffs • Status, future work, learnings
  • 7. Bosh CPI overview • external CPI • cpi drives Iaas & agent • agent role • registry • nats • => director to cpi api
  • 8. CPI API V1 overview
  • 10. Bosh agent configuration overview 1. load startup settings provided in stemcell i.e. bootstrap settings sources among: meta-data server, config drive, cdrom 2. load bootstrap settings: i.e; iaas-specific initial networking & registry lookup URL 3. initial registry config loading network configs disks 4. dynamic configs through NATs messages network reconfig, disk resize…
  • 13. Context and constraints • Provide flexibility for innovation and optimization while remaining opensource • Chicken and egg: CPI and stemcell • Bosh is in active development, incomplete cpi doc • Lack of public ci infrastructure supporting cpi community contributions corp proxies block us running concourse lack public cloudstack instance
  • 14. Design tradeoffs • Where to start: stemcell or CPI? • Programming language: ruby, go, java? • CloudStack api client • Child process invocation model • per invocation process or daemon mode? • stdin/stdout or REST facade ? • Stemcell to cloudstack vm templates • location constraints for bosh-init/director ? • from volume or HTTP? • a light stemcell to kick things off • CS dynamic metadata URL • bosh agent evolution ? • stemcell iptables workaround ?
  • 16. Status • Supported: ~ CF-feature-ready – in advanced zone networking: static/dynamic Ips – vm & disk life cycle – configureable disk offering (for eph, root, persistent disks) – light stemcell & stemcell upload • Limitations – single persistent disk support (preventing persistent disk resizing) – single nic support – no yet floating ip/vip – no yet disk snapshots
  • 17. Future short-term work • Stemcell: Xen (+KVM), Ubuntu+Centos • another infrastructure in bosh/stemcell_builder ? • patch one of the official stemcell ? • Private CI (concourse): BATS + CPI lifecycle tests +… • Local storage for persistent disks • snapshot • live migration • vm placement to existing local storage • Happy collaborate and committed to support the community: contributions welcome! – Extract Java CPI framework ? – Public CI: any public CloudStack instance ? – CF incubator process ?
  • 18. Challenges met & potential bosh improvements • documentation: (PR docs-bosh/63) – reference implementations – unit tests / integration tests – bdd/living doc – design docs – API developper docs. • CPI daemon support in bosh-init (Issue CS_CPI/1) • bosh-agent cloud-stack style volume support • Iaas-specific registry impl (Issue CS_CPI/1) – => use NATS for disk mount support ? • bosh-init optim for CPI development • (external blobstore) (Issue bosh-init/17)
  • 19. Thanks, Questions ? @gberche gberche-orange guillaume.berche [at] orange.com poblin-orange pierre.oblin [at] orange.com https://github.com/cloudfoundry-community /bosh-cloudstack-cpi-release

Editor's Notes

  • #4: We’re working at Orange, one of the leading telco operator in Europe and Africa: 240M subscribers, 29 markets. Orange is a federated group composed of various subsidiaries. A short disclaimer, we’re not speaking for all of orange entities. Pierre Oblin and myself are working in an Orange Group corp focussing on Paas and particularly cloudfoundry. Today, we’re presenting a return on experience developping a CPI for cloudStack, that we built for one of our major Orange France division running CloudStack Xen for some of its internal workload. Why ? We need a production-grade CS CPI for this Orange France division. No official CPI for cloudstack Community work by NTT and ZJU-SEL university not maintained anymore, and not used by their authors So we built one and we’re committed to support it on production activities.
  • #7: A bosh agent within vms which turns tasks on behalf of bosh director. Bosh intro stemcell release, deployment manifest bootstraping process bosh-init external cpi bosh-director cpi http://bosh.io/docs/build-cpi.html https://www.gliffy.com/go/html5/9236073?app=1b5094b0-6042-11e2-bcfd-0800200c9a66
  • #8: With more details, the CPI actually drives the Iaas and the bosh-agent. The bosh-agent is a versatile process which configures the operating system to leverage Iaas-provisionned resources (network interfaces, disks), and perform other bosh tasks (jobs compilation, jobs instanciation…) The CPI asks the Iaas to instanciate vm templates, vms, volumes and possibly other constructs (floating Ips, security groups, connect LB…) The bosh agent is initially driven by the CPI through the bosh-registry, and then by bosh through NATS-based messaging. The registry provides bosh-side meta data to the bosh agent. The CPI can be made external to the bosh director ruby process, enabling plug-in implementations such as the one we’re presenting today for cloudstack, implemented in different languages than bosh, ours is in Java https://www.gliffy.com/go/html5/9205487?toke=&app=1b5094b0-6042-11e2-bcfd-0800200c9a66&dev=false
  • #9: Now that we’ve seen on overview of the CPI interaction, let’s zoom on the CPI API, that is, the contract between bosh director and the CPI CPI API V1 is an RPC style API. It uses serialized JSON on standard input as request, and json on standard output as response, with stderr providing additional responses.
  • #11: The bosh agent follows multiple stages: step 1 Tells where to get bootstrap settings step 2: Get access to the registry step 3: Load config from registry step 4: Dynamically reload config
  • #14: Flexibility - orange cloudstack networking design (adv zone) - leverage cloudstack local storage capability Bosh active development: bosh-init external cpi light stemcell Lack of public infrastructure enabling community contributions - concourse not available to us: no proxy support for corporate proxies - lack of public cloudstack instance for public ci
  • #15: ruby, go, java ? - existing ruby and go frameworks - existing cloudstack_cpi code base internal Java skills, makes Java and springboot a productive platform for us (spring boot actuator and prod ready features) not much low level system iteraction or native libs making java an obstacle. - good cloudstack library: jclouds => a java CPI framework potentially reusable stemcell: mock mode: duplicate existing cloudstack template
  • #18: Review our code Test it, submit issues, contribute. Benefits from official CPI V2 API future migration take into account cloudstack API cf-release stubs avoid duplicated ci