SlideShare a Scribd company logo
1 of 22
Download to read offline
Apache CloudStack
Tooling Ecosystem
Apache Cloudstack India User
Group
By Kiran Chavala
About Me
• QA Engineer – ShapeBlue
• Involved with CloudStack/Forks since 2013
by providing technical support to various
customers
• Open-source enthusiast
• Addicted to various Podcasts/Audiobooks
Reach me at:
Twitter : @kiranchavala
Email : kiran.chavala@shapeblue.com
Agenda
• Cloudstack Api and Command Line tool
• Configuration/Infrastructure Orchestration & Management tools
• Kubernetes Cluster Deployment Tool
• Observability/Monitoring/Visualization Tools
• Performance Benchmarking Tool
• Demo
• Questions
Features of Cloudstack Api
• Easy to build, integrate, and use applications built on top of the
CloudStack API.
• Extensive Functionality - Enables automation and integration
• Reliable and well-documented
Ref
https://cloudstack.apache.org/api/
Cloudstack API
Cloudmonkey Cli tool
Cloudmonkey is a popular and defacto command line interface (CLI) for
Apache CloudStack.
Features
•Usable as a command line tool and interactive shell
•Written in GO Language
•Management server profiles: select, customize and use different server
profiles using
•All commands are lowercase unlike API
•Api Discovery using sync feature, with build time api precaching for
failsafe sync
•Raw api execution support
•Auto-completion via double <tab>
•Reverse search using Ctrl+R
•Emacs compatible keybindings
•Pipeable output
•Unix shell execution
•Support to handle async jobs using user defined blocking or non-
blocking way
•Tabular or JSON output with filtering of table columns
•Colored output
•Unicode support
•Api parameter value completion
https://github.com/apache/cloudstack-cloudmonkey
[Cloudstack]
url = http://10.0.34.2:8080/client/api
username = admin
password = password
domain = /
apikey = LIN6rqXuaJwMPfGYFh13qDwYz5VNNz1J2J6qIOWcd3oLQOq0WtD4CwRundBL6rzXToa3lQOC_vKjI3nkHtiD8Q
secretkey = R6QPwRUz09TVXBjXNwZk7grTjcPtsFRphH6xhN1oPvnc12YUk296t4KHytg8zRLczDA0X5NsLVi4d8rfMMx3yg
Configuration/Infrastructure Orchestration &
Management tools
Benefits
• Reduced manual tasks and improved efficiency
• Reduced errors and increased consistency
• Improved scalability and agility
• Simplicity and flexibility
• Agentless architecture
• The tools are Idempotent(defining the state that a server should be in wrt it’s configuration )
• Community and support
• I need this configuration file to contain these lines
• I need these services to be installed and running
• I need this file to exist in this directory
• Centralization of configuration of a system
• Creation of reusable template configurations (i.e. web servers, database servers, DHCP servers,
Cloud-init User data Support
Cloud-init Feature and Use cases
• Automatic Configuration of OS during vm Boot
• Security/Compliance
• Cloud-agnostic
• Integration with automation tools
• Supports various configurations: Configure hostname,
users, packages, files, and more on first boot.
• Multiple data sources: Utilize different data sources
like cloud metadata services, user-data files, or cloud-
init config images.
• Wide OS support: Works with major Linux
distributions and FreeBSD.
Ref :
https://cloudinit.readthedocs.io/en/22.4/topics/datasources/cloudstack.html
https://www.shapeblue.com/cloudstack-managed-user-data/
How Cloud-init User-data can be passed
During Vm-deployment
Registered User Data
Support for Jinja based data format
Registered User Data can be linked
to template/ISO
Ansible
Ansible is a deployment and configuration management tool similar in intent to Chef and Puppet. It
allows (usually) DevOps teams to orchestrate the deployment and configuration of their environments
without having to re-write custom scripts to make changes.
Why Ansible
• Client/Server architecture not required
• Only SSH connectivity required (password or public/private keys)
• Modules can be in any language capable of returning JSON or key=value text pairs
• Has an API
When to use Ansible
• Deploying Hypervisor hosts
• Deploying Cloudstack- Management infrastructure
• Configuration changes to hosts and management VMs
• Patching of hosts and management VMs
• Deployment & configuration of guest VMs
Ref:
https://www.shapeblue.com/deploying-cloudstack-with-ansible/
https://docs.ansible.com/ansible/latest/scenario_guides/guide_cloudstack.html
https://docs.cloudstack.apache.org/projects/archived-cloudstack-getting-started/en/latest/ansible.html
• Create MySQL role
• Create CloudStack role
• Create DB deployment task
• Create Playbook
Deployment of Cloudstack Mangement Server
via Ansible
Terraform Provider for Cloudstack
Why Terraform
• Reliability – a preview of changes, mistakes can be rolled back
• Automation and repeatability – the pre-defined configuration can be generated on different environments, for example,
development and QA, making sure they are exactly the same
• Keeping a history of infrastructure changes
When to use Terraform
• Focus of Infrastructure As Code.
• Defining infrastructure in code for consistent, enabling version control, collaboration repeatable deployments.
• Integrating with CI/CD pipelines for automated infrastructure changes.
• Provisioning and managing infrastructure across cloud providers (AWS, Azure, GCP) and on-premises environments
(Cloudstack, VirtualBox).
Ref :
https://registry.terraform.io/providers/cloudstack/cloudstack/latest/docs
https://github.com/apache/cloudstack-terraform-provider
https://www.shapeblue.com/automating-infrastructure-with-cloudstack-and-terraform/
$terrform apply
Packer Provider for Cloudstack
Benefits of Packer
• Automated image creation: Packer automates the process of creating machine images, reducing the manual effort
involved in the image creation and provisioning process. This automation speeds up the deployment pipeline and
minimizes the risk of human error.
• Consistency: Packer ensures that the machine images are created in a consistent manner every time. This consistency is
crucial for maintaining a reliable and predictable infrastructure, as all instances created from the same image will have
identical configurations.
• Versioning and rollbacks: Packer allows you to version control your image configurations, making it easier to track
changes over time. If an issue arises with a new image, you can roll back to a previous version, improving resilience and
minimizing downtime
• Security: Packer enables the incorporation of security best practices into image creation, ensuring that the machine
images adhere to security policies and standards from the outset.
Ref:
https://developer.hashicorp.com/packer/integrations/hashicorp/cloudstack/latest/components/builder/cloudstack
https://github.com/hashicorp/packer-plugin-cloudstack/tree/main
Packer build custom-image.hcl
packer {
required_plugins {
cloudstack = {
version = ">= 1.0.0"
source = "github.com/hashicorp/cloudstack"
}
}
}
variable "cloudstack_api_url" {
description = "The api url of Cloudstack Account."
default = "http://10.0.34.2:8080/client/api"
}
When to use Packer
Multi-platform deployments: When you need to deploy your
application across multiple platforms or cloud providers (e.g.,
AWS, Azure, Clodustack ).Packer allows you to create
machine images for each platform from a single
configuration. This ensures consistency and reduces the
effort needed to manage different image formats.
Compliance and security requirements: Packer enables the
incorporation of security best practices into machine image
creation, ensuring that images adhere to security policies
and compliance standards from the beginning. This is critical
for maintaining a secure infrastructure.
Customization of base images: When you need to start with
a base image and customize it with specific configurations,
software, or settings, Packer allows you to define these
customizations in a declarative manner, making it easy to
reproduce the same configuration across different images.
Kubernetes Cluster Deployment Tool
Cluster API is a Kubernetes subproject focused on providing declarative APIs and tooling to simplify
provisioning, upgrading, and operating multiple Kubernetes clusters.
Benefits of using Cluster API
• Declarative Configuration/IaC concept: Cluster API allows users to define cluster
configurations in a declarative manner using Kubernetes manifests.
• Consistent Cluster Management: Organizations can establish a consistent approach to
managing Kubernetes clusters. This consistency simplifies operations, reduces the
likelihood of misconfigurations, and improves the overall manageability of clusters
• Multi-Cloud and Multi-Cluster Support: Cluster API is designed to be cloud-agnostic,
enabling users to manage clusters across different cloud providers or on-premises
environments. It provides a consistent way to manage clusters regardless of the
underlying infrastructure.
• GitOps Workflows: Cluster API facilitates GitOps workflows by allowing cluster
configurations to be versioned in a Git repository. This makes it easy to track changes,
roll back to previous configurations, and collaborate on cluster management using Git-
based workflows
• Cluster Versioning: CAPI supports cluster versioning, allowing for the management of
multiple versions of clusters concurrently. This is useful for organizations that need to
maintain different versions of clusters for various applications or teams
Ref:
https://github.com/kubernetes-sigs/cluster-api
https://cluster-api-cloudstack.sigs.k8s.io/getting-
started.html
Overview of Cluster API
Management Cluster Workload Clusters
Cluster
Definition
Observability/Monitoring/Visualization Tools
Need for Observability/Monitoring/Visualization Tools
• Real-time Monitoring of various metrics
• Performance Analytics
• Speed up troubleshooting
• Improve cross-team collaboration by providing Alerting and Notification
Prometheus is a open source monitoring solution that is responsible for collecting
and aggregating metrics
Grafana open source software enables you to query, visualize, alert on, and explore
your metrics, logs, and traces wherever they are stored.
List of metrics exported per Cloudstack zone by the Promethus exporter
Total hosts
Online hosts
Offline hosts
Per host:
- CPU speed Used
- CPU speed Total
- RAM Used
- RAM Total
- Total VMs running on host
- CPU cores Used
- CPU cores Total
CPU speed Allocated for zone
CPU cores Allocated for zone
RAM Allocated for zone
VMs (count in all states)
Volumes Ready
Volumes Destroyed
Volumes Total
Storage Pools (Primary/Secondary)
- Disk size allocated (only for primary storage)
- Disk size total
- Disk size used
Private IP allocated
Private IP total
Public IP addresses allocated
Public IP addresses total
Shared Network IPs total
Shared Network IPs allocated
VLAN Allocated
VLAN Total
CloudStack cpu cores limit (summation across domains)
CloudStack memory limit (summation across domains)
Configuring Prometheus
Performance Benchmarking Tools
Ref:
https://github.com/apache/cloudstack-csbench
Use case for CloudStack bench tool
CSBENCH is a tool designed to evaluate the performance and efficiency of Apache CloudStack.
• Testing and Benchmarking: Measuring system performance and identifying bottlenecks
• Capacity Planning: Forecasting future capacity requirements based on trends
• Loadbalancing: Efficiently distributing network or application traffic
./csbench –h
Demo
CloudStack Tooling Ecosystem – Kiran Chavala, ShapeBlue

More Related Content

Similar to CloudStack Tooling Ecosystem – Kiran Chavala, ShapeBlue

Similar to CloudStack Tooling Ecosystem – Kiran Chavala, ShapeBlue (20)

IBM InterConnect 2015 - IIB in the Cloud
IBM InterConnect 2015 - IIB in the CloudIBM InterConnect 2015 - IIB in the Cloud
IBM InterConnect 2015 - IIB in the Cloud
 
API Tips & Tricks - Policy Management and Elastic Deployment
API Tips & Tricks - Policy Management and Elastic DeploymentAPI Tips & Tricks - Policy Management and Elastic Deployment
API Tips & Tricks - Policy Management and Elastic Deployment
 
How to build the Cloud Native applications the way you want – not the way the...
How to build the Cloud Native applications the way you want – not the way the...How to build the Cloud Native applications the way you want – not the way the...
How to build the Cloud Native applications the way you want – not the way the...
 
Continuous Integration with Amazon ECS and Docker
Continuous Integration with Amazon ECS and DockerContinuous Integration with Amazon ECS and Docker
Continuous Integration with Amazon ECS and Docker
 
Compare Docker deployment options in the public cloud
Compare Docker deployment options in the public cloudCompare Docker deployment options in the public cloud
Compare Docker deployment options in the public cloud
 
CloudStackFinalProject
CloudStackFinalProjectCloudStackFinalProject
CloudStackFinalProject
 
Implementing FaaS on Kubernetes using Kubeless
Implementing FaaS on Kubernetes using KubelessImplementing FaaS on Kubernetes using Kubeless
Implementing FaaS on Kubernetes using Kubeless
 
DCHQ
DCHQDCHQ
DCHQ
 
Hitchhiker's guide to Cloud-Native Build Pipelines and Infrastructure as Code
Hitchhiker's guide to Cloud-Native Build Pipelines and Infrastructure as CodeHitchhiker's guide to Cloud-Native Build Pipelines and Infrastructure as Code
Hitchhiker's guide to Cloud-Native Build Pipelines and Infrastructure as Code
 
Highly available nodejs
Highly available nodejsHighly available nodejs
Highly available nodejs
 
Habitat talk at CodeMonsters Sofia, Bulgaria Nov 27 2018
Habitat talk at CodeMonsters Sofia, Bulgaria Nov 27 2018Habitat talk at CodeMonsters Sofia, Bulgaria Nov 27 2018
Habitat talk at CodeMonsters Sofia, Bulgaria Nov 27 2018
 
Cloud Foundry Summit 2015: Managing Hybrid Deployments Using Cloud Foundry on...
Cloud Foundry Summit 2015: Managing Hybrid Deployments Using Cloud Foundry on...Cloud Foundry Summit 2015: Managing Hybrid Deployments Using Cloud Foundry on...
Cloud Foundry Summit 2015: Managing Hybrid Deployments Using Cloud Foundry on...
 
From Containerized Application to Secure and Scaling With Kubernetes
From Containerized Application to Secure and Scaling With KubernetesFrom Containerized Application to Secure and Scaling With Kubernetes
From Containerized Application to Secure and Scaling With Kubernetes
 
Private Cloud with Open Stack, Docker
Private Cloud with Open Stack, DockerPrivate Cloud with Open Stack, Docker
Private Cloud with Open Stack, Docker
 
Un-clouding the cloud
Un-clouding the cloudUn-clouding the cloud
Un-clouding the cloud
 
WebSphere and Docker
WebSphere and DockerWebSphere and Docker
WebSphere and Docker
 
Cloudify 4.6 highlights webinar
Cloudify 4.6 highlights webinarCloudify 4.6 highlights webinar
Cloudify 4.6 highlights webinar
 
Containerising bootiful microservices javaeeconf
Containerising bootiful microservices javaeeconfContainerising bootiful microservices javaeeconf
Containerising bootiful microservices javaeeconf
 
GIDS 2019: Developing Apps with Containers, Functions and Cloud Services
GIDS 2019: Developing Apps with Containers, Functions and Cloud ServicesGIDS 2019: Developing Apps with Containers, Functions and Cloud Services
GIDS 2019: Developing Apps with Containers, Functions and Cloud Services
 
Cnam azure ze cloud resource manager
Cnam azure ze cloud  resource managerCnam azure ze cloud  resource manager
Cnam azure ze cloud resource manager
 

More from ShapeBlue

More from ShapeBlue (20)

CloudStack Authentication Methods – Harikrishna Patnala, ShapeBlue
CloudStack Authentication Methods – Harikrishna Patnala, ShapeBlueCloudStack Authentication Methods – Harikrishna Patnala, ShapeBlue
CloudStack Authentication Methods – Harikrishna Patnala, ShapeBlue
 
Elevating Cloud Infrastructure with Object Storage, DRS, VM Scheduling, and D...
Elevating Cloud Infrastructure with Object Storage, DRS, VM Scheduling, and D...Elevating Cloud Infrastructure with Object Storage, DRS, VM Scheduling, and D...
Elevating Cloud Infrastructure with Object Storage, DRS, VM Scheduling, and D...
 
VM Migration from VMware to CloudStack and KVM – Suresh Anaparti, ShapeBlue
VM Migration from VMware to CloudStack and KVM – Suresh Anaparti, ShapeBlueVM Migration from VMware to CloudStack and KVM – Suresh Anaparti, ShapeBlue
VM Migration from VMware to CloudStack and KVM – Suresh Anaparti, ShapeBlue
 
How We Grew Up with CloudStack and its Journey – Dilip Singh, DataHub
How We Grew Up with CloudStack and its Journey – Dilip Singh, DataHubHow We Grew Up with CloudStack and its Journey – Dilip Singh, DataHub
How We Grew Up with CloudStack and its Journey – Dilip Singh, DataHub
 
What’s New in CloudStack 4.19, Abhishek Kumar, Release Manager Apache CloudSt...
What’s New in CloudStack 4.19, Abhishek Kumar, Release Manager Apache CloudSt...What’s New in CloudStack 4.19, Abhishek Kumar, Release Manager Apache CloudSt...
What’s New in CloudStack 4.19, Abhishek Kumar, Release Manager Apache CloudSt...
 
CloudStack 101: The Best Way to Build Your Private Cloud – Rohit Yadav, VP Ap...
CloudStack 101: The Best Way to Build Your Private Cloud – Rohit Yadav, VP Ap...CloudStack 101: The Best Way to Build Your Private Cloud – Rohit Yadav, VP Ap...
CloudStack 101: The Best Way to Build Your Private Cloud – Rohit Yadav, VP Ap...
 
How We Use CloudStack to Provide Managed Hosting - Swen Brüseke - proIO
How We Use CloudStack to Provide Managed Hosting - Swen Brüseke - proIOHow We Use CloudStack to Provide Managed Hosting - Swen Brüseke - proIO
How We Use CloudStack to Provide Managed Hosting - Swen Brüseke - proIO
 
Enabling DPU Hardware Accelerators in XCP-ng Cloud Platform Environment - And...
Enabling DPU Hardware Accelerators in XCP-ng Cloud Platform Environment - And...Enabling DPU Hardware Accelerators in XCP-ng Cloud Platform Environment - And...
Enabling DPU Hardware Accelerators in XCP-ng Cloud Platform Environment - And...
 
Zero to Cloud Hero: Crafting a Private Cloud from Scratch with XCP-ng, Xen Or...
Zero to Cloud Hero: Crafting a Private Cloud from Scratch with XCP-ng, Xen Or...Zero to Cloud Hero: Crafting a Private Cloud from Scratch with XCP-ng, Xen Or...
Zero to Cloud Hero: Crafting a Private Cloud from Scratch with XCP-ng, Xen Or...
 
KVM Security Groups Under the Hood - Wido den Hollander - Your.Online
KVM Security Groups Under the Hood - Wido den Hollander - Your.OnlineKVM Security Groups Under the Hood - Wido den Hollander - Your.Online
KVM Security Groups Under the Hood - Wido den Hollander - Your.Online
 
How to Re-use Old Hardware with CloudStack. Saving Money and the Environment ...
How to Re-use Old Hardware with CloudStack. Saving Money and the Environment ...How to Re-use Old Hardware with CloudStack. Saving Money and the Environment ...
How to Re-use Old Hardware with CloudStack. Saving Money and the Environment ...
 
Use Existing Assets to Build a Powerful In-house Cloud Solution - Magali Perv...
Use Existing Assets to Build a Powerful In-house Cloud Solution - Magali Perv...Use Existing Assets to Build a Powerful In-house Cloud Solution - Magali Perv...
Use Existing Assets to Build a Powerful In-house Cloud Solution - Magali Perv...
 
Import Export Virtual Machine for KVM Hypervisor - Ayush Pandey - University ...
Import Export Virtual Machine for KVM Hypervisor - Ayush Pandey - University ...Import Export Virtual Machine for KVM Hypervisor - Ayush Pandey - University ...
Import Export Virtual Machine for KVM Hypervisor - Ayush Pandey - University ...
 
DRaaS using Snapshot copy and destination selection (DRaaS) - Alexandre Matti...
DRaaS using Snapshot copy and destination selection (DRaaS) - Alexandre Matti...DRaaS using Snapshot copy and destination selection (DRaaS) - Alexandre Matti...
DRaaS using Snapshot copy and destination selection (DRaaS) - Alexandre Matti...
 
Mitigating Common CloudStack Instance Deployment Failures - Jithin Raju - Sha...
Mitigating Common CloudStack Instance Deployment Failures - Jithin Raju - Sha...Mitigating Common CloudStack Instance Deployment Failures - Jithin Raju - Sha...
Mitigating Common CloudStack Instance Deployment Failures - Jithin Raju - Sha...
 
Elevating Privacy and Security in CloudStack - Boris Stoyanov - ShapeBlue
Elevating Privacy and Security in CloudStack - Boris Stoyanov - ShapeBlueElevating Privacy and Security in CloudStack - Boris Stoyanov - ShapeBlue
Elevating Privacy and Security in CloudStack - Boris Stoyanov - ShapeBlue
 
Transitioning from VMware vCloud to Apache CloudStack: A Path to Profitabilit...
Transitioning from VMware vCloud to Apache CloudStack: A Path to Profitabilit...Transitioning from VMware vCloud to Apache CloudStack: A Path to Profitabilit...
Transitioning from VMware vCloud to Apache CloudStack: A Path to Profitabilit...
 
Hypervisor Agnostic DRS in CloudStack - Brief overview & demo - Vishesh Jinda...
Hypervisor Agnostic DRS in CloudStack - Brief overview & demo - Vishesh Jinda...Hypervisor Agnostic DRS in CloudStack - Brief overview & demo - Vishesh Jinda...
Hypervisor Agnostic DRS in CloudStack - Brief overview & demo - Vishesh Jinda...
 
What’s New in CloudStack 4.19 - Abhishek Kumar - ShapeBlue
What’s New in CloudStack 4.19 - Abhishek Kumar - ShapeBlueWhat’s New in CloudStack 4.19 - Abhishek Kumar - ShapeBlue
What’s New in CloudStack 4.19 - Abhishek Kumar - ShapeBlue
 
Developments to CloudStack’s SDN ecosystem: Integration with VMWare NSX 4 - P...
Developments to CloudStack’s SDN ecosystem: Integration with VMWare NSX 4 - P...Developments to CloudStack’s SDN ecosystem: Integration with VMWare NSX 4 - P...
Developments to CloudStack’s SDN ecosystem: Integration with VMWare NSX 4 - P...
 

Recently uploaded

Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 

Recently uploaded (20)

The Zero-ETL Approach: Enhancing Data Agility and Insight
The Zero-ETL Approach: Enhancing Data Agility and InsightThe Zero-ETL Approach: Enhancing Data Agility and Insight
The Zero-ETL Approach: Enhancing Data Agility and Insight
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
Decarbonising Commercial Real Estate: The Role of Operational Performance
Decarbonising Commercial Real Estate: The Role of Operational PerformanceDecarbonising Commercial Real Estate: The Role of Operational Performance
Decarbonising Commercial Real Estate: The Role of Operational Performance
 
JohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptxJohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptx
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
 
Choreo: Empowering the Future of Enterprise Software Engineering
Choreo: Empowering the Future of Enterprise Software EngineeringChoreo: Empowering the Future of Enterprise Software Engineering
Choreo: Empowering the Future of Enterprise Software Engineering
 
Introduction to use of FHIR Documents in ABDM
Introduction to use of FHIR Documents in ABDMIntroduction to use of FHIR Documents in ABDM
Introduction to use of FHIR Documents in ABDM
 
UiPath manufacturing technology benefits and AI overview
UiPath manufacturing technology benefits and AI overviewUiPath manufacturing technology benefits and AI overview
UiPath manufacturing technology benefits and AI overview
 
Modernizing Legacy Systems Using Ballerina
Modernizing Legacy Systems Using BallerinaModernizing Legacy Systems Using Ballerina
Modernizing Legacy Systems Using Ballerina
 
Portal Kombat : extension du réseau de propagande russe
Portal Kombat : extension du réseau de propagande russePortal Kombat : extension du réseau de propagande russe
Portal Kombat : extension du réseau de propagande russe
 
Quantum Leap in Next-Generation Computing
Quantum Leap in Next-Generation ComputingQuantum Leap in Next-Generation Computing
Quantum Leap in Next-Generation Computing
 
Continuing Bonds Through AI: A Hermeneutic Reflection on Thanabots
Continuing Bonds Through AI: A Hermeneutic Reflection on ThanabotsContinuing Bonds Through AI: A Hermeneutic Reflection on Thanabots
Continuing Bonds Through AI: A Hermeneutic Reflection on Thanabots
 
ERP Contender Series: Acumatica vs. Sage Intacct
ERP Contender Series: Acumatica vs. Sage IntacctERP Contender Series: Acumatica vs. Sage Intacct
ERP Contender Series: Acumatica vs. Sage Intacct
 
Design and Development of a Provenance Capture Platform for Data Science
Design and Development of a Provenance Capture Platform for Data ScienceDesign and Development of a Provenance Capture Platform for Data Science
Design and Development of a Provenance Capture Platform for Data Science
 
2024 May Patch Tuesday
2024 May Patch Tuesday2024 May Patch Tuesday
2024 May Patch Tuesday
 
The Ultimate Prompt Engineering Guide for Generative AI: Get the Most Out of ...
The Ultimate Prompt Engineering Guide for Generative AI: Get the Most Out of ...The Ultimate Prompt Engineering Guide for Generative AI: Get the Most Out of ...
The Ultimate Prompt Engineering Guide for Generative AI: Get the Most Out of ...
 
Working together SRE & Platform Engineering
Working together SRE & Platform EngineeringWorking together SRE & Platform Engineering
Working together SRE & Platform Engineering
 
JavaScript Usage Statistics 2024 - The Ultimate Guide
JavaScript Usage Statistics 2024 - The Ultimate GuideJavaScript Usage Statistics 2024 - The Ultimate Guide
JavaScript Usage Statistics 2024 - The Ultimate Guide
 

CloudStack Tooling Ecosystem – Kiran Chavala, ShapeBlue

  • 1. Apache CloudStack Tooling Ecosystem Apache Cloudstack India User Group By Kiran Chavala
  • 2. About Me • QA Engineer – ShapeBlue • Involved with CloudStack/Forks since 2013 by providing technical support to various customers • Open-source enthusiast • Addicted to various Podcasts/Audiobooks Reach me at: Twitter : @kiranchavala Email : kiran.chavala@shapeblue.com
  • 3. Agenda • Cloudstack Api and Command Line tool • Configuration/Infrastructure Orchestration & Management tools • Kubernetes Cluster Deployment Tool • Observability/Monitoring/Visualization Tools • Performance Benchmarking Tool • Demo • Questions
  • 4. Features of Cloudstack Api • Easy to build, integrate, and use applications built on top of the CloudStack API. • Extensive Functionality - Enables automation and integration • Reliable and well-documented Ref https://cloudstack.apache.org/api/ Cloudstack API
  • 5. Cloudmonkey Cli tool Cloudmonkey is a popular and defacto command line interface (CLI) for Apache CloudStack. Features •Usable as a command line tool and interactive shell •Written in GO Language •Management server profiles: select, customize and use different server profiles using •All commands are lowercase unlike API •Api Discovery using sync feature, with build time api precaching for failsafe sync •Raw api execution support •Auto-completion via double <tab> •Reverse search using Ctrl+R •Emacs compatible keybindings •Pipeable output •Unix shell execution •Support to handle async jobs using user defined blocking or non- blocking way •Tabular or JSON output with filtering of table columns •Colored output •Unicode support •Api parameter value completion https://github.com/apache/cloudstack-cloudmonkey [Cloudstack] url = http://10.0.34.2:8080/client/api username = admin password = password domain = / apikey = LIN6rqXuaJwMPfGYFh13qDwYz5VNNz1J2J6qIOWcd3oLQOq0WtD4CwRundBL6rzXToa3lQOC_vKjI3nkHtiD8Q secretkey = R6QPwRUz09TVXBjXNwZk7grTjcPtsFRphH6xhN1oPvnc12YUk296t4KHytg8zRLczDA0X5NsLVi4d8rfMMx3yg
  • 6. Configuration/Infrastructure Orchestration & Management tools Benefits • Reduced manual tasks and improved efficiency • Reduced errors and increased consistency • Improved scalability and agility • Simplicity and flexibility • Agentless architecture • The tools are Idempotent(defining the state that a server should be in wrt it’s configuration ) • Community and support • I need this configuration file to contain these lines • I need these services to be installed and running • I need this file to exist in this directory • Centralization of configuration of a system • Creation of reusable template configurations (i.e. web servers, database servers, DHCP servers,
  • 7. Cloud-init User data Support Cloud-init Feature and Use cases • Automatic Configuration of OS during vm Boot • Security/Compliance • Cloud-agnostic • Integration with automation tools • Supports various configurations: Configure hostname, users, packages, files, and more on first boot. • Multiple data sources: Utilize different data sources like cloud metadata services, user-data files, or cloud- init config images. • Wide OS support: Works with major Linux distributions and FreeBSD. Ref : https://cloudinit.readthedocs.io/en/22.4/topics/datasources/cloudstack.html https://www.shapeblue.com/cloudstack-managed-user-data/
  • 8. How Cloud-init User-data can be passed During Vm-deployment Registered User Data Support for Jinja based data format Registered User Data can be linked to template/ISO
  • 9. Ansible Ansible is a deployment and configuration management tool similar in intent to Chef and Puppet. It allows (usually) DevOps teams to orchestrate the deployment and configuration of their environments without having to re-write custom scripts to make changes. Why Ansible • Client/Server architecture not required • Only SSH connectivity required (password or public/private keys) • Modules can be in any language capable of returning JSON or key=value text pairs • Has an API When to use Ansible • Deploying Hypervisor hosts • Deploying Cloudstack- Management infrastructure • Configuration changes to hosts and management VMs • Patching of hosts and management VMs • Deployment & configuration of guest VMs Ref: https://www.shapeblue.com/deploying-cloudstack-with-ansible/ https://docs.ansible.com/ansible/latest/scenario_guides/guide_cloudstack.html https://docs.cloudstack.apache.org/projects/archived-cloudstack-getting-started/en/latest/ansible.html
  • 10. • Create MySQL role • Create CloudStack role • Create DB deployment task • Create Playbook Deployment of Cloudstack Mangement Server via Ansible
  • 11. Terraform Provider for Cloudstack Why Terraform • Reliability – a preview of changes, mistakes can be rolled back • Automation and repeatability – the pre-defined configuration can be generated on different environments, for example, development and QA, making sure they are exactly the same • Keeping a history of infrastructure changes When to use Terraform • Focus of Infrastructure As Code. • Defining infrastructure in code for consistent, enabling version control, collaboration repeatable deployments. • Integrating with CI/CD pipelines for automated infrastructure changes. • Provisioning and managing infrastructure across cloud providers (AWS, Azure, GCP) and on-premises environments (Cloudstack, VirtualBox).
  • 13. Packer Provider for Cloudstack Benefits of Packer • Automated image creation: Packer automates the process of creating machine images, reducing the manual effort involved in the image creation and provisioning process. This automation speeds up the deployment pipeline and minimizes the risk of human error. • Consistency: Packer ensures that the machine images are created in a consistent manner every time. This consistency is crucial for maintaining a reliable and predictable infrastructure, as all instances created from the same image will have identical configurations. • Versioning and rollbacks: Packer allows you to version control your image configurations, making it easier to track changes over time. If an issue arises with a new image, you can roll back to a previous version, improving resilience and minimizing downtime • Security: Packer enables the incorporation of security best practices into image creation, ensuring that the machine images adhere to security policies and standards from the outset.
  • 14. Ref: https://developer.hashicorp.com/packer/integrations/hashicorp/cloudstack/latest/components/builder/cloudstack https://github.com/hashicorp/packer-plugin-cloudstack/tree/main Packer build custom-image.hcl packer { required_plugins { cloudstack = { version = ">= 1.0.0" source = "github.com/hashicorp/cloudstack" } } } variable "cloudstack_api_url" { description = "The api url of Cloudstack Account." default = "http://10.0.34.2:8080/client/api" } When to use Packer Multi-platform deployments: When you need to deploy your application across multiple platforms or cloud providers (e.g., AWS, Azure, Clodustack ).Packer allows you to create machine images for each platform from a single configuration. This ensures consistency and reduces the effort needed to manage different image formats. Compliance and security requirements: Packer enables the incorporation of security best practices into machine image creation, ensuring that images adhere to security policies and compliance standards from the beginning. This is critical for maintaining a secure infrastructure. Customization of base images: When you need to start with a base image and customize it with specific configurations, software, or settings, Packer allows you to define these customizations in a declarative manner, making it easy to reproduce the same configuration across different images.
  • 15. Kubernetes Cluster Deployment Tool Cluster API is a Kubernetes subproject focused on providing declarative APIs and tooling to simplify provisioning, upgrading, and operating multiple Kubernetes clusters. Benefits of using Cluster API • Declarative Configuration/IaC concept: Cluster API allows users to define cluster configurations in a declarative manner using Kubernetes manifests. • Consistent Cluster Management: Organizations can establish a consistent approach to managing Kubernetes clusters. This consistency simplifies operations, reduces the likelihood of misconfigurations, and improves the overall manageability of clusters • Multi-Cloud and Multi-Cluster Support: Cluster API is designed to be cloud-agnostic, enabling users to manage clusters across different cloud providers or on-premises environments. It provides a consistent way to manage clusters regardless of the underlying infrastructure. • GitOps Workflows: Cluster API facilitates GitOps workflows by allowing cluster configurations to be versioned in a Git repository. This makes it easy to track changes, roll back to previous configurations, and collaborate on cluster management using Git- based workflows • Cluster Versioning: CAPI supports cluster versioning, allowing for the management of multiple versions of clusters concurrently. This is useful for organizations that need to maintain different versions of clusters for various applications or teams Ref: https://github.com/kubernetes-sigs/cluster-api https://cluster-api-cloudstack.sigs.k8s.io/getting- started.html
  • 16. Overview of Cluster API Management Cluster Workload Clusters Cluster Definition
  • 17. Observability/Monitoring/Visualization Tools Need for Observability/Monitoring/Visualization Tools • Real-time Monitoring of various metrics • Performance Analytics • Speed up troubleshooting • Improve cross-team collaboration by providing Alerting and Notification Prometheus is a open source monitoring solution that is responsible for collecting and aggregating metrics Grafana open source software enables you to query, visualize, alert on, and explore your metrics, logs, and traces wherever they are stored.
  • 18. List of metrics exported per Cloudstack zone by the Promethus exporter Total hosts Online hosts Offline hosts Per host: - CPU speed Used - CPU speed Total - RAM Used - RAM Total - Total VMs running on host - CPU cores Used - CPU cores Total CPU speed Allocated for zone CPU cores Allocated for zone RAM Allocated for zone VMs (count in all states) Volumes Ready Volumes Destroyed Volumes Total Storage Pools (Primary/Secondary) - Disk size allocated (only for primary storage) - Disk size total - Disk size used Private IP allocated Private IP total Public IP addresses allocated Public IP addresses total Shared Network IPs total Shared Network IPs allocated VLAN Allocated VLAN Total CloudStack cpu cores limit (summation across domains) CloudStack memory limit (summation across domains)
  • 20. Performance Benchmarking Tools Ref: https://github.com/apache/cloudstack-csbench Use case for CloudStack bench tool CSBENCH is a tool designed to evaluate the performance and efficiency of Apache CloudStack. • Testing and Benchmarking: Measuring system performance and identifying bottlenecks • Capacity Planning: Forecasting future capacity requirements based on trends • Loadbalancing: Efficiently distributing network or application traffic ./csbench –h
  • 21. Demo