OpenNebulaConf2019 - How We Use GOCA to Manage our OpenNebula Cloud - Jean-Philippe Fourès - Iguane Solutions
opennebula
288 views
21 slides
Oct 27, 2019
Slide 1 of 21
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
About This Presentation
At Iguane Solutions, a lot of our "DevOps" tools are developed in Golang, and we have a good amount of experience in contributing to the Goca. I'll review just what contributions we make, as well as how we use Goca with different tools, on a daily basis, to manage and monitor our Open...
At Iguane Solutions, a lot of our "DevOps" tools are developed in Golang, and we have a good amount of experience in contributing to the Goca. I'll review just what contributions we make, as well as how we use Goca with different tools, on a daily basis, to manage and monitor our OpenNebula cloud.
I will delve into the concept of Infrastructure as Code - deployment of VM instances on cloud, as well as, also address the metrics collection of deployed VMs. Finally, I will present how we can abstract VM management with automation tools thanks to GOCA.
6
6
Iguane Solutions
●For 7 years, IG1 cloud has been using VMware but:
○Licence are expensive
○Troubleshooting VSAN is a nightmare (and it is a black box)
○VMware has lots of features => complexity
Why Goca instead of Ruby or
Python API ?
Golang
Wrapper on top of XML RPC
API
Written in Golang
Go + OCA = GOCA
Add helpers to ease XML RPC
instructions
Python API not maintained
Not Ruby friendly:
Sorry Guys
Golang: growing language in
area of backend development
https://talks.golang.org/2014/gocon-tokyo.slide#16
Controller eases objects manipulation
and parsing.
An application only needs to “play”
with the controller to perform queries
to OpenNebula
Model, here is the client which
performs HTTP requests to
OpenNebula.
It builds XML requests (session, XML
formatting) and HTTP layer.
# application code to get
# info for VM 42
cli = goca.NewClient(...)
c =
goca.NewController(cli)
Terraform provider uses schema
packages linked to goca files and
permissions.go to manage object
permissions
quota.go to manage group quotas
lock.go to manage lock on images
“goca”:
Each terraform resources
matches with an
OpenNebula object
18
18
Iguane Solutions
Sismograf:
●Metrology agent, developed
internally, deployed on each
monitored host or VM
●Metrics are then collected by our
Metrology tool: Sismology
●Several plugins available to
monitor system and common
application metrics:
Sismograf plugin for OpenNebula
has been developed to get usage
metrics of our OpenNebula
clusters
It is used in the Sismograf
plugin dedicated to
OpenNebula.
It gets all metrics of our
cloud.
It mainly use Info API calls.
schema:
Sismograf OpenNebula plugin uses
schema packages linked to goca to get
metrics on the various objects
it also uses quota.go and snapshot.go
because we also have metrics on quotas
and size of a snapshot.