SlideShare a Scribd company logo
1 of 21
Download to read offline
Iguane Solutions | Public
Iguane Solutions ©2019
Iguane Solutions
Iguane Solutions ©2019 - all rights reserved
2
Our contribution to “Goca”
Jean-Philippe Fourès
Iguane Solutions
Agenda
3
Iguane Solutions ©2019 - all rights reserved
● Iguane Solutions small introduction
● Goca contribution
○ Goca introduction
○ Details of our contribution
○ Roadmap
● Example of applications using Goca
1. Company Introduction
4
Iguane Solutions
Iguane Solutions ©2019 - all rights reserved
Iguane Solutions
5
•Network & CDN
•>200 racks in 3 DCs
•OpenNebula clusters
• Infrastructure Expert (Network, Hardware, Storage)
• “DevOps” culture: everything is automated
• Our tools are Open Source based:
CI/CD, Infra as code, metrology, Cloud
• 1 OpenNebula cluster (2 very soon ☺) in Paris:
○ 10 KVM nodes (580 vCPU, 3.6 TB RAM)
○ Storpool for performance Storage
• Cloud Hybridation specialist:
Public / Private or Physical / Virtual
•Network & CDN
•>5 racks
•Network & CDN
•>10 racks
•Network & CDN
•>5 racks
•Network & CDN
•>10 racks
1.1 Who are we ?
Founded in 2000, HQ in Paris, France
Iguane Solutions ©2019 - all rights reserved
66
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
1.2 Iguane and One
Iguane Solutions ©2019 - all rights reserved
}
● In 2018, development of a new cloud service
○ Simpler than VMware
○ API friendly
○ Easy to deploy, to extend, to manage, to maintain and to hack
around
○ Able to manage: VMware clusters and Public clouds
=> End of 2018: deployment of our first cluster based on OpenNebula
In parallel to the deployment: Contribution to Goca and development tools using it
7
Iguane Solutions
2. Goca
Iguane Solutions ©2019 - all rights reserved
88
Iguane Solutions
2.1 Introduction to Goca
Iguane Solutions ©2019 - all rights reserved
OCA (OpenNebula Cloud API)
(ruby, java, python, golang)
99
Iguane Solutions
2.1 Introduction to Goca
Iguane Solutions ©2019 - all rights reserved
What is Goca ? 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
1010
Iguane Solutions
2.2 Our contribution
Iguane Solutions ©2019 - all rights reserved
Rewrite XML mapping to parse and build
entities data
● Change the XML handling package and add
structures to map XML content
● Add dynamic management of template parts
Rework Architecture: adding a controller layer
● Better split of concerns, client and controller
● Modify the API to access the resources in a
controller centric way
Rework of the XML-RPC client
● Give the control of the client to the user:
○ Client externalization,
○ Possible to extend it
● Leverage the use of the initial XML-RPC:
○ Manage only XML-RPC in XML-RPC package
○ Manage HTTP in the client directly
Rewrite the error management
● Enable fine-grained management of errors with
types and codes
● Better error handling:
Don’t kill everyone on a package error
1111
Iguane Solutions
2.3 Goca Organization
Iguane Solutions ©2019 - all rights reserved
Goca subpackages
OpenNebula cluster
“errors”:
Error management package
“schema”:
Package containing all XML
structures defined in
different packages. Each
package matches an
OpenNebula object
“goca”:
It contains a file per
object family api call.
client.go manages
HTTP connection
controller.go
manages resources
1212
Iguane Solutions
2.4 Goca workflow
Iguane Solutions ©2019 - all rights reserved
How it works ?
OpenNebula
/RPC2
client
Model
VM
Controller
group
...
ask client to call
one.vm.info
with value ‘42’
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)
vm = c.VM(42).Info() HTTP request to
OpenNebula XML
RPC endpoint
Goca
1313
Iguane Solutions
2.5 Roadmap Ideas
Iguane Solutions ©2019 - all rights reserved
Improve Tests - CI/CD
● Add more test cases to improve reliability and code
coverage on missing entities
● Rewrite existing tests according to Go coding style, and
consistently across entities
● Add a complete CI to test some scenarios with HTTP
request to a miniOne in a container
Increase the coverage of the XML-RPC API
● Highlights non-covered methods (missing tests case)
● Highlights unimplemented methods (dead code)
● Detect breaking changes, implement fallback methods
● Bug fixes
Increase the user friendliness of the code
● Make the code more readable, improve code comments
● Try to minimize boilerplate code on developer side.
For instance: type conversions
● Minimize the user need to read the documentation.
For instance: remove variable parameters handling
New functionalities
● Allow to filter entities on various criterias as template
elements for instance
● Contribute to the development of OpenNebula new
functionalities
Suggestions are welcomed
3. Applications
Iguane Solutions
14
Iguane Solutions ©2019 - all rights reserved
1515
Iguane Solutions
3.1 Terraform Provider
Iguane Solutions ©2019 - all rights reserved
Important note:
Runtastic and Blackberry developed an OpenNebula provider using XML RPC calls directly before
goca merge into One repository.
● Software developed by Hashicorp:
Commonly used to deploy
Infrastructure on Public clouds thanks
to a large ecosystem of providers:
AWS, GCP, Azure, …
● Written in Golang, it offers APIs to
write custom providers easily
Thanks to the Goca, we initiated the
development of the OpenNebula Provider.
Tested with
● Terraform version: 0.12+
● OpenNebula 5.8
+
Official OpenNebula Add-on since June 2019!
1616
Iguane Solutions
3.1 Terraform Provider
Iguane Solutions ©2019 - all rights reserved
Group Image Virtual
Network
Security
Group
VDC VM
Template
VM
For more details, issues, roadmap, contribution are welcomed:
https://github.com/OpenNebula/terraform-provider-opennebula
October 2018 June 2019 September 2019
Major steps history
Internal beta release
Added as
OpenNebula Add-on
Submission to
Terraform
Contribution to Goca
Validation of first resources
Resources currently supported:
Official in Terraform
Hopefully:
December 2019
1717
Iguane Solutions
3.1 Terraform Provider
Iguane Solutions ©2019 - all rights reserved
Goca used subpackages
OpenNebula cluster
schema:
Terraform provider uses schema
packages linked to goca files and
permissions.go to manage object
permissions
quota.goto manage group quotas
lock.goto manage lock on images
“goca”:
Each terraform resources
matches with an
OpenNebula object
1818
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
3.2 Sismograf Plugin
Iguane Solutions ©2019 - all rights reserved
OpenNebula Metrics into Iguane Solutions Metrology
OpenNebula Fronts
Sismograf agents to
collect OpenNebula
metrics
VMs
on OpenNebula
Sismograf agents to
collect VM metrics
Iguane Sismology:
Metrology system
1919
Iguane Solutions
3.2 Sismograf Plugin
Iguane Solutions ©2019 - all rights reserved
Goca used subpackages
OpenNebula cluster
“goca”:
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.goand snapshot.go
because we also have metrics on quotas
and size of a snapshot.
Questions ?
Iguane Solutions
20
Iguane Solutions ©2019 - all rights reserved
Iguane Solutions ©2019

More Related Content

What's hot

ITCamp 2018 - Mete Atamel Ian Talarico - Google Home meets .NET containers on...
ITCamp 2018 - Mete Atamel Ian Talarico - Google Home meets .NET containers on...ITCamp 2018 - Mete Atamel Ian Talarico - Google Home meets .NET containers on...
ITCamp 2018 - Mete Atamel Ian Talarico - Google Home meets .NET containers on...ITCamp
 
Security: The Value of SBOMs
Security: The Value of SBOMsSecurity: The Value of SBOMs
Security: The Value of SBOMsWeaveworks
 
How we can do Multi-Tenancy on Kubernetes
How we can do Multi-Tenancy on KubernetesHow we can do Multi-Tenancy on Kubernetes
How we can do Multi-Tenancy on KubernetesOpsta
 
Continuous Delivery on Kubernetes Using Spinnaker
Continuous Delivery on Kubernetes Using SpinnakerContinuous Delivery on Kubernetes Using Spinnaker
Continuous Delivery on Kubernetes Using SpinnakerWSO2
 
Accelerate your Journey to Pervasive Automation 05.03.2018
Accelerate your Journey to Pervasive Automation 05.03.2018Accelerate your Journey to Pervasive Automation 05.03.2018
Accelerate your Journey to Pervasive Automation 05.03.2018Puppet
 
Hybrid and Multi-Cloud Strategies for Kubernetes with GitOps
Hybrid and Multi-Cloud Strategies for Kubernetes with GitOpsHybrid and Multi-Cloud Strategies for Kubernetes with GitOps
Hybrid and Multi-Cloud Strategies for Kubernetes with GitOpsSonja Schweigert
 
Dockerize it all
Dockerize it allDockerize it all
Dockerize it allPuneet Behl
 
Microservices development at scale
Microservices development at scaleMicroservices development at scale
Microservices development at scaleVishal Banthia
 
Hardening Your CI/CD Pipelines with GitOps and Continuous Security
Hardening Your CI/CD Pipelines with GitOps and Continuous SecurityHardening Your CI/CD Pipelines with GitOps and Continuous Security
Hardening Your CI/CD Pipelines with GitOps and Continuous SecurityWeaveworks
 
Flexible, hybrid API-led software architectures with Kong
Flexible, hybrid API-led software architectures with KongFlexible, hybrid API-led software architectures with Kong
Flexible, hybrid API-led software architectures with KongSven Bernhardt
 
Migrating from PDE to Bndtools in Practice - Amit Kumar Mondal (Deutsche Tele...
Migrating from PDE to Bndtools in Practice - Amit Kumar Mondal (Deutsche Tele...Migrating from PDE to Bndtools in Practice - Amit Kumar Mondal (Deutsche Tele...
Migrating from PDE to Bndtools in Practice - Amit Kumar Mondal (Deutsche Tele...mfrancis
 
Code Hosting: The Key to Autonomous, Self-Service Development
Code Hosting: The Key to Autonomous, Self-Service DevelopmentCode Hosting: The Key to Autonomous, Self-Service Development
Code Hosting: The Key to Autonomous, Self-Service DevelopmentRachel Maxwell
 
GitOps for Helm Users by Scott Rigby
GitOps for Helm Users by Scott RigbyGitOps for Helm Users by Scott Rigby
GitOps for Helm Users by Scott RigbyWeaveworks
 
Get started with gitops and flux
Get started with gitops and fluxGet started with gitops and flux
Get started with gitops and fluxLibbySchulze1
 
Cloud Native Transformation (Alexis Richardson) - Continuous Lifecycle 2018 ...
 Cloud Native Transformation (Alexis Richardson) - Continuous Lifecycle 2018 ... Cloud Native Transformation (Alexis Richardson) - Continuous Lifecycle 2018 ...
Cloud Native Transformation (Alexis Richardson) - Continuous Lifecycle 2018 ...Weaveworks
 
Observe and command your fleets across any kubernetes with weave git ops
Observe and command your fleets across any kubernetes with weave git opsObserve and command your fleets across any kubernetes with weave git ops
Observe and command your fleets across any kubernetes with weave git opsWeaveworks
 
Securing microservices continuous delivery using grafeas and kritis
Securing microservices continuous delivery using grafeas and kritisSecuring microservices continuous delivery using grafeas and kritis
Securing microservices continuous delivery using grafeas and kritisVishal Banthia
 

What's hot (20)

ITCamp 2018 - Mete Atamel Ian Talarico - Google Home meets .NET containers on...
ITCamp 2018 - Mete Atamel Ian Talarico - Google Home meets .NET containers on...ITCamp 2018 - Mete Atamel Ian Talarico - Google Home meets .NET containers on...
ITCamp 2018 - Mete Atamel Ian Talarico - Google Home meets .NET containers on...
 
{py}gradle
{py}gradle{py}gradle
{py}gradle
 
Security: The Value of SBOMs
Security: The Value of SBOMsSecurity: The Value of SBOMs
Security: The Value of SBOMs
 
Gitops Hands On
Gitops Hands OnGitops Hands On
Gitops Hands On
 
How we can do Multi-Tenancy on Kubernetes
How we can do Multi-Tenancy on KubernetesHow we can do Multi-Tenancy on Kubernetes
How we can do Multi-Tenancy on Kubernetes
 
Continuous Delivery on Kubernetes Using Spinnaker
Continuous Delivery on Kubernetes Using SpinnakerContinuous Delivery on Kubernetes Using Spinnaker
Continuous Delivery on Kubernetes Using Spinnaker
 
Accelerate your Journey to Pervasive Automation 05.03.2018
Accelerate your Journey to Pervasive Automation 05.03.2018Accelerate your Journey to Pervasive Automation 05.03.2018
Accelerate your Journey to Pervasive Automation 05.03.2018
 
Hybrid and Multi-Cloud Strategies for Kubernetes with GitOps
Hybrid and Multi-Cloud Strategies for Kubernetes with GitOpsHybrid and Multi-Cloud Strategies for Kubernetes with GitOps
Hybrid and Multi-Cloud Strategies for Kubernetes with GitOps
 
Dockerize it all
Dockerize it allDockerize it all
Dockerize it all
 
Microservices development at scale
Microservices development at scaleMicroservices development at scale
Microservices development at scale
 
Hardening Your CI/CD Pipelines with GitOps and Continuous Security
Hardening Your CI/CD Pipelines with GitOps and Continuous SecurityHardening Your CI/CD Pipelines with GitOps and Continuous Security
Hardening Your CI/CD Pipelines with GitOps and Continuous Security
 
Flexible, hybrid API-led software architectures with Kong
Flexible, hybrid API-led software architectures with KongFlexible, hybrid API-led software architectures with Kong
Flexible, hybrid API-led software architectures with Kong
 
Migrating from PDE to Bndtools in Practice - Amit Kumar Mondal (Deutsche Tele...
Migrating from PDE to Bndtools in Practice - Amit Kumar Mondal (Deutsche Tele...Migrating from PDE to Bndtools in Practice - Amit Kumar Mondal (Deutsche Tele...
Migrating from PDE to Bndtools in Practice - Amit Kumar Mondal (Deutsche Tele...
 
gopaddle-meetup
gopaddle-meetupgopaddle-meetup
gopaddle-meetup
 
Code Hosting: The Key to Autonomous, Self-Service Development
Code Hosting: The Key to Autonomous, Self-Service DevelopmentCode Hosting: The Key to Autonomous, Self-Service Development
Code Hosting: The Key to Autonomous, Self-Service Development
 
GitOps for Helm Users by Scott Rigby
GitOps for Helm Users by Scott RigbyGitOps for Helm Users by Scott Rigby
GitOps for Helm Users by Scott Rigby
 
Get started with gitops and flux
Get started with gitops and fluxGet started with gitops and flux
Get started with gitops and flux
 
Cloud Native Transformation (Alexis Richardson) - Continuous Lifecycle 2018 ...
 Cloud Native Transformation (Alexis Richardson) - Continuous Lifecycle 2018 ... Cloud Native Transformation (Alexis Richardson) - Continuous Lifecycle 2018 ...
Cloud Native Transformation (Alexis Richardson) - Continuous Lifecycle 2018 ...
 
Observe and command your fleets across any kubernetes with weave git ops
Observe and command your fleets across any kubernetes with weave git opsObserve and command your fleets across any kubernetes with weave git ops
Observe and command your fleets across any kubernetes with weave git ops
 
Securing microservices continuous delivery using grafeas and kritis
Securing microservices continuous delivery using grafeas and kritisSecuring microservices continuous delivery using grafeas and kritis
Securing microservices continuous delivery using grafeas and kritis
 

Similar to Using GOCA to Manage OpenNebula - Iguane Solutions

GCP - Continuous Integration and Delivery into Kubernetes with GitHub, Travis...
GCP - Continuous Integration and Delivery into Kubernetes with GitHub, Travis...GCP - Continuous Integration and Delivery into Kubernetes with GitHub, Travis...
GCP - Continuous Integration and Delivery into Kubernetes with GitHub, Travis...Oleg Shalygin
 
OpenNebulaConf2019 - Welcome and Project Update - Ignacio M. Llorente, Rubén ...
OpenNebulaConf2019 - Welcome and Project Update - Ignacio M. Llorente, Rubén ...OpenNebulaConf2019 - Welcome and Project Update - Ignacio M. Llorente, Rubén ...
OpenNebulaConf2019 - Welcome and Project Update - Ignacio M. Llorente, Rubén ...OpenNebula Project
 
Google Cloud Platform Solutions for DevOps Engineers
Google Cloud Platform Solutions  for DevOps EngineersGoogle Cloud Platform Solutions  for DevOps Engineers
Google Cloud Platform Solutions for DevOps EngineersMárton Kodok
 
Kubernetes is hard! Lessons learned taking our apps to Kubernetes - Eldad Ass...
Kubernetes is hard! Lessons learned taking our apps to Kubernetes - Eldad Ass...Kubernetes is hard! Lessons learned taking our apps to Kubernetes - Eldad Ass...
Kubernetes is hard! Lessons learned taking our apps to Kubernetes - Eldad Ass...Cloud Native Day Tel Aviv
 
Netflix Open Source: Building a Distributed and Automated Open Source Program
Netflix Open Source:  Building a Distributed and Automated Open Source ProgramNetflix Open Source:  Building a Distributed and Automated Open Source Program
Netflix Open Source: Building a Distributed and Automated Open Source Programaspyker
 
Building a Distributed & Automated Open Source Program at Netflix
Building a Distributed & Automated Open Source Program at NetflixBuilding a Distributed & Automated Open Source Program at Netflix
Building a Distributed & Automated Open Source Program at NetflixAll Things Open
 
Google Tech Talk with Dr. Eric Brewer in Korea Apr.27.2015
Google Tech Talk with Dr. Eric Brewer in Korea Apr.27.2015Google Tech Talk with Dr. Eric Brewer in Korea Apr.27.2015
Google Tech Talk with Dr. Eric Brewer in Korea Apr.27.2015Chris Jang
 
Accessing Google Cloud APIs
Accessing Google Cloud APIsAccessing Google Cloud APIs
Accessing Google Cloud APIswesley chun
 
State of Big Data on ARM64 / AArch64 - Apache Bigtop
State of Big Data on ARM64 / AArch64 - Apache BigtopState of Big Data on ARM64 / AArch64 - Apache Bigtop
State of Big Data on ARM64 / AArch64 - Apache BigtopGanesh Raju
 
Scale a Swagger based Web API (Guillaume Laforge)
Scale a Swagger based Web API (Guillaume Laforge)Scale a Swagger based Web API (Guillaume Laforge)
Scale a Swagger based Web API (Guillaume Laforge)Nordic APIs
 
Continuous Lifecycle London 2018 Event Keynote
Continuous Lifecycle London 2018 Event KeynoteContinuous Lifecycle London 2018 Event Keynote
Continuous Lifecycle London 2018 Event KeynoteWeaveworks
 
Session 4 GCCP.pptx
Session 4 GCCP.pptxSession 4 GCCP.pptx
Session 4 GCCP.pptxDSCIITPatna
 
Webinar: Capabilities, Confidence and Community – What Flux GA Means for You
Webinar: Capabilities, Confidence and Community – What Flux GA Means for YouWebinar: Capabilities, Confidence and Community – What Flux GA Means for You
Webinar: Capabilities, Confidence and Community – What Flux GA Means for YouWeaveworks
 
GCP Meetup #3 - Approaches to Cloud Native Architectures
GCP Meetup #3 - Approaches to Cloud Native ArchitecturesGCP Meetup #3 - Approaches to Cloud Native Architectures
GCP Meetup #3 - Approaches to Cloud Native Architecturesnine
 
Exploring Google APIs with Python
Exploring Google APIs with PythonExploring Google APIs with Python
Exploring Google APIs with Pythonwesley chun
 
Secure Infrastructure Provisioning with Terraform Cloud, Vault + GitLab CI
Secure Infrastructure Provisioning with Terraform Cloud, Vault + GitLab CISecure Infrastructure Provisioning with Terraform Cloud, Vault + GitLab CI
Secure Infrastructure Provisioning with Terraform Cloud, Vault + GitLab CIMitchell Pronschinske
 
Oracle Modern AppDev Approach to Cloud & Container Native App
Oracle Modern AppDev Approach to Cloud & Container Native AppOracle Modern AppDev Approach to Cloud & Container Native App
Oracle Modern AppDev Approach to Cloud & Container Native AppPaulo Alberto Simoes ∴
 
How google cloud platform can benefit devops?
How google cloud platform can benefit devops?How google cloud platform can benefit devops?
How google cloud platform can benefit devops?VishnuAnji
 

Similar to Using GOCA to Manage OpenNebula - Iguane Solutions (20)

GCP - Continuous Integration and Delivery into Kubernetes with GitHub, Travis...
GCP - Continuous Integration and Delivery into Kubernetes with GitHub, Travis...GCP - Continuous Integration and Delivery into Kubernetes with GitHub, Travis...
GCP - Continuous Integration and Delivery into Kubernetes with GitHub, Travis...
 
OpenNebulaConf2019 - Welcome and Project Update - Ignacio M. Llorente, Rubén ...
OpenNebulaConf2019 - Welcome and Project Update - Ignacio M. Llorente, Rubén ...OpenNebulaConf2019 - Welcome and Project Update - Ignacio M. Llorente, Rubén ...
OpenNebulaConf2019 - Welcome and Project Update - Ignacio M. Llorente, Rubén ...
 
Microservices at Mercari
Microservices at MercariMicroservices at Mercari
Microservices at Mercari
 
Google Cloud Platform Solutions for DevOps Engineers
Google Cloud Platform Solutions  for DevOps EngineersGoogle Cloud Platform Solutions  for DevOps Engineers
Google Cloud Platform Solutions for DevOps Engineers
 
Kubernetes is hard! Lessons learned taking our apps to Kubernetes - Eldad Ass...
Kubernetes is hard! Lessons learned taking our apps to Kubernetes - Eldad Ass...Kubernetes is hard! Lessons learned taking our apps to Kubernetes - Eldad Ass...
Kubernetes is hard! Lessons learned taking our apps to Kubernetes - Eldad Ass...
 
Netflix Open Source: Building a Distributed and Automated Open Source Program
Netflix Open Source:  Building a Distributed and Automated Open Source ProgramNetflix Open Source:  Building a Distributed and Automated Open Source Program
Netflix Open Source: Building a Distributed and Automated Open Source Program
 
Building a Distributed & Automated Open Source Program at Netflix
Building a Distributed & Automated Open Source Program at NetflixBuilding a Distributed & Automated Open Source Program at Netflix
Building a Distributed & Automated Open Source Program at Netflix
 
Google Tech Talk with Dr. Eric Brewer in Korea Apr.27.2015
Google Tech Talk with Dr. Eric Brewer in Korea Apr.27.2015Google Tech Talk with Dr. Eric Brewer in Korea Apr.27.2015
Google Tech Talk with Dr. Eric Brewer in Korea Apr.27.2015
 
Accessing Google Cloud APIs
Accessing Google Cloud APIsAccessing Google Cloud APIs
Accessing Google Cloud APIs
 
Grilo
GriloGrilo
Grilo
 
State of Big Data on ARM64 / AArch64 - Apache Bigtop
State of Big Data on ARM64 / AArch64 - Apache BigtopState of Big Data on ARM64 / AArch64 - Apache Bigtop
State of Big Data on ARM64 / AArch64 - Apache Bigtop
 
Scale a Swagger based Web API (Guillaume Laforge)
Scale a Swagger based Web API (Guillaume Laforge)Scale a Swagger based Web API (Guillaume Laforge)
Scale a Swagger based Web API (Guillaume Laforge)
 
Continuous Lifecycle London 2018 Event Keynote
Continuous Lifecycle London 2018 Event KeynoteContinuous Lifecycle London 2018 Event Keynote
Continuous Lifecycle London 2018 Event Keynote
 
Session 4 GCCP.pptx
Session 4 GCCP.pptxSession 4 GCCP.pptx
Session 4 GCCP.pptx
 
Webinar: Capabilities, Confidence and Community – What Flux GA Means for You
Webinar: Capabilities, Confidence and Community – What Flux GA Means for YouWebinar: Capabilities, Confidence and Community – What Flux GA Means for You
Webinar: Capabilities, Confidence and Community – What Flux GA Means for You
 
GCP Meetup #3 - Approaches to Cloud Native Architectures
GCP Meetup #3 - Approaches to Cloud Native ArchitecturesGCP Meetup #3 - Approaches to Cloud Native Architectures
GCP Meetup #3 - Approaches to Cloud Native Architectures
 
Exploring Google APIs with Python
Exploring Google APIs with PythonExploring Google APIs with Python
Exploring Google APIs with Python
 
Secure Infrastructure Provisioning with Terraform Cloud, Vault + GitLab CI
Secure Infrastructure Provisioning with Terraform Cloud, Vault + GitLab CISecure Infrastructure Provisioning with Terraform Cloud, Vault + GitLab CI
Secure Infrastructure Provisioning with Terraform Cloud, Vault + GitLab CI
 
Oracle Modern AppDev Approach to Cloud & Container Native App
Oracle Modern AppDev Approach to Cloud & Container Native AppOracle Modern AppDev Approach to Cloud & Container Native App
Oracle Modern AppDev Approach to Cloud & Container Native App
 
How google cloud platform can benefit devops?
How google cloud platform can benefit devops?How google cloud platform can benefit devops?
How google cloud platform can benefit devops?
 

Recently uploaded

08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?XfilesPro
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 

Recently uploaded (20)

08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 

Using GOCA to Manage OpenNebula - Iguane Solutions

  • 1. Iguane Solutions | Public Iguane Solutions ©2019
  • 2. Iguane Solutions Iguane Solutions ©2019 - all rights reserved 2 Our contribution to “Goca” Jean-Philippe Fourès
  • 3. Iguane Solutions Agenda 3 Iguane Solutions ©2019 - all rights reserved ● Iguane Solutions small introduction ● Goca contribution ○ Goca introduction ○ Details of our contribution ○ Roadmap ● Example of applications using Goca
  • 4. 1. Company Introduction 4 Iguane Solutions Iguane Solutions ©2019 - all rights reserved
  • 5. Iguane Solutions 5 •Network & CDN •>200 racks in 3 DCs •OpenNebula clusters • Infrastructure Expert (Network, Hardware, Storage) • “DevOps” culture: everything is automated • Our tools are Open Source based: CI/CD, Infra as code, metrology, Cloud • 1 OpenNebula cluster (2 very soon ☺) in Paris: ○ 10 KVM nodes (580 vCPU, 3.6 TB RAM) ○ Storpool for performance Storage • Cloud Hybridation specialist: Public / Private or Physical / Virtual •Network & CDN •>5 racks •Network & CDN •>10 racks •Network & CDN •>5 racks •Network & CDN •>10 racks 1.1 Who are we ? Founded in 2000, HQ in Paris, France Iguane Solutions ©2019 - all rights reserved
  • 6. 66 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 1.2 Iguane and One Iguane Solutions ©2019 - all rights reserved } ● In 2018, development of a new cloud service ○ Simpler than VMware ○ API friendly ○ Easy to deploy, to extend, to manage, to maintain and to hack around ○ Able to manage: VMware clusters and Public clouds => End of 2018: deployment of our first cluster based on OpenNebula In parallel to the deployment: Contribution to Goca and development tools using it
  • 7. 7 Iguane Solutions 2. Goca Iguane Solutions ©2019 - all rights reserved
  • 8. 88 Iguane Solutions 2.1 Introduction to Goca Iguane Solutions ©2019 - all rights reserved OCA (OpenNebula Cloud API) (ruby, java, python, golang)
  • 9. 99 Iguane Solutions 2.1 Introduction to Goca Iguane Solutions ©2019 - all rights reserved What is Goca ? 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
  • 10. 1010 Iguane Solutions 2.2 Our contribution Iguane Solutions ©2019 - all rights reserved Rewrite XML mapping to parse and build entities data ● Change the XML handling package and add structures to map XML content ● Add dynamic management of template parts Rework Architecture: adding a controller layer ● Better split of concerns, client and controller ● Modify the API to access the resources in a controller centric way Rework of the XML-RPC client ● Give the control of the client to the user: ○ Client externalization, ○ Possible to extend it ● Leverage the use of the initial XML-RPC: ○ Manage only XML-RPC in XML-RPC package ○ Manage HTTP in the client directly Rewrite the error management ● Enable fine-grained management of errors with types and codes ● Better error handling: Don’t kill everyone on a package error
  • 11. 1111 Iguane Solutions 2.3 Goca Organization Iguane Solutions ©2019 - all rights reserved Goca subpackages OpenNebula cluster “errors”: Error management package “schema”: Package containing all XML structures defined in different packages. Each package matches an OpenNebula object “goca”: It contains a file per object family api call. client.go manages HTTP connection controller.go manages resources
  • 12. 1212 Iguane Solutions 2.4 Goca workflow Iguane Solutions ©2019 - all rights reserved How it works ? OpenNebula /RPC2 client Model VM Controller group ... ask client to call one.vm.info with value ‘42’ 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) vm = c.VM(42).Info() HTTP request to OpenNebula XML RPC endpoint Goca
  • 13. 1313 Iguane Solutions 2.5 Roadmap Ideas Iguane Solutions ©2019 - all rights reserved Improve Tests - CI/CD ● Add more test cases to improve reliability and code coverage on missing entities ● Rewrite existing tests according to Go coding style, and consistently across entities ● Add a complete CI to test some scenarios with HTTP request to a miniOne in a container Increase the coverage of the XML-RPC API ● Highlights non-covered methods (missing tests case) ● Highlights unimplemented methods (dead code) ● Detect breaking changes, implement fallback methods ● Bug fixes Increase the user friendliness of the code ● Make the code more readable, improve code comments ● Try to minimize boilerplate code on developer side. For instance: type conversions ● Minimize the user need to read the documentation. For instance: remove variable parameters handling New functionalities ● Allow to filter entities on various criterias as template elements for instance ● Contribute to the development of OpenNebula new functionalities Suggestions are welcomed
  • 14. 3. Applications Iguane Solutions 14 Iguane Solutions ©2019 - all rights reserved
  • 15. 1515 Iguane Solutions 3.1 Terraform Provider Iguane Solutions ©2019 - all rights reserved Important note: Runtastic and Blackberry developed an OpenNebula provider using XML RPC calls directly before goca merge into One repository. ● Software developed by Hashicorp: Commonly used to deploy Infrastructure on Public clouds thanks to a large ecosystem of providers: AWS, GCP, Azure, … ● Written in Golang, it offers APIs to write custom providers easily Thanks to the Goca, we initiated the development of the OpenNebula Provider. Tested with ● Terraform version: 0.12+ ● OpenNebula 5.8 + Official OpenNebula Add-on since June 2019!
  • 16. 1616 Iguane Solutions 3.1 Terraform Provider Iguane Solutions ©2019 - all rights reserved Group Image Virtual Network Security Group VDC VM Template VM For more details, issues, roadmap, contribution are welcomed: https://github.com/OpenNebula/terraform-provider-opennebula October 2018 June 2019 September 2019 Major steps history Internal beta release Added as OpenNebula Add-on Submission to Terraform Contribution to Goca Validation of first resources Resources currently supported: Official in Terraform Hopefully: December 2019
  • 17. 1717 Iguane Solutions 3.1 Terraform Provider Iguane Solutions ©2019 - all rights reserved Goca used subpackages OpenNebula cluster schema: Terraform provider uses schema packages linked to goca files and permissions.go to manage object permissions quota.goto manage group quotas lock.goto manage lock on images “goca”: Each terraform resources matches with an OpenNebula object
  • 18. 1818 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 3.2 Sismograf Plugin Iguane Solutions ©2019 - all rights reserved OpenNebula Metrics into Iguane Solutions Metrology OpenNebula Fronts Sismograf agents to collect OpenNebula metrics VMs on OpenNebula Sismograf agents to collect VM metrics Iguane Sismology: Metrology system
  • 19. 1919 Iguane Solutions 3.2 Sismograf Plugin Iguane Solutions ©2019 - all rights reserved Goca used subpackages OpenNebula cluster “goca”: 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.goand snapshot.go because we also have metrics on quotas and size of a snapshot.
  • 20. Questions ? Iguane Solutions 20 Iguane Solutions ©2019 - all rights reserved