SlideShare a Scribd company logo
1 of 17
Future of Apache CloudStack: modular,
distributed, and hackable
Darren Shepherd
Citrix

CCCEU 2013
About Me
●

Apache CloudStack Committer

●

Previously - Cloud Architect @ GoDaddy.com
–

Built three generations of clouds
●
●

●

2nd – Custom “CloudStack Compatible”

●

–

1st – CloudStack 2.x, custom storage framework
3rd – 100% from scratch

Been developing IaaS orchestration systems full time for the last 4
years

Currently – Do something @ Citrix
–

Focus on open source

–

I care about architecture and design
What's This About
●

My opinions

●

What I think we should focus on architecturally

●

What I'm trying to accomplish
General Comments
●

Do more with less
–

Identify patterns in code and create frameworks
●

–
●

For example, make Abstract base classes

Copy and paste is bad

Need to leverage more open source frameworks
–

jOOQ, Spring TX, Netflix Archaius/Servo, Jackson, Apache jclouds,
Flyway/Liquibase, Apache Commons

●

Past/Current – ACS adds cloudiness to legacy technologies

●

Current/Future – ACS orchestrates cloudy technologies

●

Always provide a way for Apache CloudStack to do nothing and
delegate to something else
Modular – Why?
●

Enforce design and architectural boundaries

●

Better pluggability

●

Quality/Testing

●

Lays the foundation for distributed architecture
Modular – What's been done
●

4.3 - Spring Modularization
–

META-INF/cloudstack/mycomponent/module.properties

–

META-INF/cloudstack/mycomponent/*context.xml

–

Over 50 Modules
Stats
●

~400k lines of Java (not 1.2m)
–
–

32% - engine, framework, services, usage, util

–
●

42% - agent, api, core, server
26% - plugins

We still have big blobs of code
–

74% “Core Code”

“Core Code” is not really core. Includes VR, CP,
SSVM, XenServer, others
What needs to be done
●

Package plug-ins in separate RPM/DEBs

●

Break out more code from /server/src

●

Break apart *ManagerImpl classes
–

●

Implement too many interfaces that belong in
different architectural layers

Modularize VR and VPC code
Distributed Architecture
●

Maybe you don't care
–

Many don't – Monolithic deployment is simple and
scalable enough for most use case

●

Support multiple deployment models

●

Scalability
–

●

Scale tiers according to load characteristics

Reliability
–

Put certain components closer to resources
Monolithic
Single JVM

Redundant JVM
Fully Distributed
●

System Services
–
–

●

Event Bus
Lock Manager

Servers
–

API

–

Back end Jobs

–

Host Manager
How
●

Event Bus
–

Hazelcast or Redis

–

Do not use “reliable messaging”
●

●

Lock Manager
–

●

Works more like UDP multicast

Hazelcast or ZooKeeper

Same binary on all servers
–

“Profiles” used to determine which Spring modules are
activated on start
Hackability
●

Should be relatively simple to add one off
functionality
–

●

●

Every cloud deployment is slightly different

Need to stay relevant with upcoming
technologies
Want people to integrate first with ACS because
–

It works

–

It's easy
Totally scientific observation
●

Two types of sys admins
–

Those who hate Java for no good reason

–

Those who hate Java for a good reason

Those that
will tolerate developing
in Java

Those who
love systems
(admins/engineers)
Dynamic languages can be good

Those that
Those who
will tolerate developing
love systems
in a dynamic
(admins/engineers)
language
Hackability
●

Move systems related code to python

●

No Java on the hypervisor!

●

Need a new ServerResource architecture that
delegates to agents in any language
–

Work for Hyper-V is a step in the right direction

●

Decouple VR from HypervisorResource

●

Community help needed
–

Good work, GCE API and hopefully new AWS API
Questions?

More Related Content

What's hot

State of the Container Ecosystem
State of the Container EcosystemState of the Container Ecosystem
State of the Container EcosystemVinay Rao
 
Interoperable OpenStack guest provisioning with Cloudbase-Init
Interoperable OpenStack guest provisioning with Cloudbase-InitInteroperable OpenStack guest provisioning with Cloudbase-Init
Interoperable OpenStack guest provisioning with Cloudbase-InitAlessandro Pilotti
 
Mihai Tataran - Dev/Test Continuous Delivery Automation cu Microsoft Azure
Mihai Tataran - Dev/Test Continuous Delivery Automation cu Microsoft AzureMihai Tataran - Dev/Test Continuous Delivery Automation cu Microsoft Azure
Mihai Tataran - Dev/Test Continuous Delivery Automation cu Microsoft AzureAvaelgo
 
Java PaaS Apache Stratos
Java PaaS   Apache StratosJava PaaS   Apache Stratos
Java PaaS Apache StratosChris Haddad
 
Wso2 con 2014-us-talk-deep dive into apache stratos & private paas
Wso2 con 2014-us-talk-deep dive into apache stratos & private paasWso2 con 2014-us-talk-deep dive into apache stratos & private paas
Wso2 con 2014-us-talk-deep dive into apache stratos & private paasLakmal Warusawithana
 
Sven Vogel: Running CloudStack and OpenShift with NetApp on KVM
Sven Vogel: Running CloudStack and OpenShift with NetApp on KVMSven Vogel: Running CloudStack and OpenShift with NetApp on KVM
Sven Vogel: Running CloudStack and OpenShift with NetApp on KVMShapeBlue
 
Cornel Popescu - Protectia datelor in cloud: de ce si cum se face
Cornel Popescu - Protectia datelor in cloud: de ce si cum se faceCornel Popescu - Protectia datelor in cloud: de ce si cum se face
Cornel Popescu - Protectia datelor in cloud: de ce si cum se faceAvaelgo
 
Introducing Vert.x 2.0 - Taking polyglot application development to the next ...
Introducing Vert.x 2.0 - Taking polyglot application development to the next ...Introducing Vert.x 2.0 - Taking polyglot application development to the next ...
Introducing Vert.x 2.0 - Taking polyglot application development to the next ...jaxLondonConference
 
The OpenNebula Approach to Bring Open-Source to the Enterprise
The OpenNebula Approach to Bring Open-Source to the EnterpriseThe OpenNebula Approach to Bring Open-Source to the Enterprise
The OpenNebula Approach to Bring Open-Source to the EnterpriseOpenNebula Project
 
Tudor Damian - Microsoft Azure ca si solutie pentru backup sau disaster recovery
Tudor Damian - Microsoft Azure ca si solutie pentru backup sau disaster recoveryTudor Damian - Microsoft Azure ca si solutie pentru backup sau disaster recovery
Tudor Damian - Microsoft Azure ca si solutie pentru backup sau disaster recoveryAvaelgo
 
Mihai Tataran - Definirea unei strategii pentru migrarea solutiilor si a orga...
Mihai Tataran - Definirea unei strategii pentru migrarea solutiilor si a orga...Mihai Tataran - Definirea unei strategii pentru migrarea solutiilor si a orga...
Mihai Tataran - Definirea unei strategii pentru migrarea solutiilor si a orga...Avaelgo
 
OpenNebulaconf2017US: OpenNebula hybrid clouds with Amazon and Azure by Ruben...
OpenNebulaconf2017US: OpenNebula hybrid clouds with Amazon and Azure by Ruben...OpenNebulaconf2017US: OpenNebula hybrid clouds with Amazon and Azure by Ruben...
OpenNebulaconf2017US: OpenNebula hybrid clouds with Amazon and Azure by Ruben...OpenNebula Project
 
OpenNebulaConf2017US: Welcome and project update by Ignacio M. Llorente and R...
OpenNebulaConf2017US: Welcome and project update by Ignacio M. Llorente and R...OpenNebulaConf2017US: Welcome and project update by Ignacio M. Llorente and R...
OpenNebulaConf2017US: Welcome and project update by Ignacio M. Llorente and R...OpenNebula Project
 
Building a dev ops paas with puppet, docker, openstack and apache stratos
Building a dev ops paas with puppet, docker, openstack and apache stratosBuilding a dev ops paas with puppet, docker, openstack and apache stratos
Building a dev ops paas with puppet, docker, openstack and apache stratosLakmal Warusawithana
 
Build your own private Cloud environment
Build your own private Cloud environmentBuild your own private Cloud environment
Build your own private Cloud environmentNico Meisenzahl
 
Microservices Architecture and Containers.
Microservices Architecture and Containers.Microservices Architecture and Containers.
Microservices Architecture and Containers.imjacobclark
 
OpenNebula 5.4 Enhancements vCenter Integration
OpenNebula 5.4 Enhancements vCenter IntegrationOpenNebula 5.4 Enhancements vCenter Integration
OpenNebula 5.4 Enhancements vCenter IntegrationOpenNebula Project
 
Apache CloudStack Google Summer of Code
Apache CloudStack Google Summer of CodeApache CloudStack Google Summer of Code
Apache CloudStack Google Summer of CodeSebastien Goasguen
 
PaaS on top of CloudStack
PaaS on top of CloudStackPaaS on top of CloudStack
PaaS on top of CloudStackbuildacloud
 

What's hot (20)

State of the Container Ecosystem
State of the Container EcosystemState of the Container Ecosystem
State of the Container Ecosystem
 
Interoperable OpenStack guest provisioning with Cloudbase-Init
Interoperable OpenStack guest provisioning with Cloudbase-InitInteroperable OpenStack guest provisioning with Cloudbase-Init
Interoperable OpenStack guest provisioning with Cloudbase-Init
 
Mihai Tataran - Dev/Test Continuous Delivery Automation cu Microsoft Azure
Mihai Tataran - Dev/Test Continuous Delivery Automation cu Microsoft AzureMihai Tataran - Dev/Test Continuous Delivery Automation cu Microsoft Azure
Mihai Tataran - Dev/Test Continuous Delivery Automation cu Microsoft Azure
 
Java PaaS Apache Stratos
Java PaaS   Apache StratosJava PaaS   Apache Stratos
Java PaaS Apache Stratos
 
Wso2 con 2014-us-talk-deep dive into apache stratos & private paas
Wso2 con 2014-us-talk-deep dive into apache stratos & private paasWso2 con 2014-us-talk-deep dive into apache stratos & private paas
Wso2 con 2014-us-talk-deep dive into apache stratos & private paas
 
Sven Vogel: Running CloudStack and OpenShift with NetApp on KVM
Sven Vogel: Running CloudStack and OpenShift with NetApp on KVMSven Vogel: Running CloudStack and OpenShift with NetApp on KVM
Sven Vogel: Running CloudStack and OpenShift with NetApp on KVM
 
Cornel Popescu - Protectia datelor in cloud: de ce si cum se face
Cornel Popescu - Protectia datelor in cloud: de ce si cum se faceCornel Popescu - Protectia datelor in cloud: de ce si cum se face
Cornel Popescu - Protectia datelor in cloud: de ce si cum se face
 
Introducing Vert.x 2.0 - Taking polyglot application development to the next ...
Introducing Vert.x 2.0 - Taking polyglot application development to the next ...Introducing Vert.x 2.0 - Taking polyglot application development to the next ...
Introducing Vert.x 2.0 - Taking polyglot application development to the next ...
 
The OpenNebula Approach to Bring Open-Source to the Enterprise
The OpenNebula Approach to Bring Open-Source to the EnterpriseThe OpenNebula Approach to Bring Open-Source to the Enterprise
The OpenNebula Approach to Bring Open-Source to the Enterprise
 
Tudor Damian - Microsoft Azure ca si solutie pentru backup sau disaster recovery
Tudor Damian - Microsoft Azure ca si solutie pentru backup sau disaster recoveryTudor Damian - Microsoft Azure ca si solutie pentru backup sau disaster recovery
Tudor Damian - Microsoft Azure ca si solutie pentru backup sau disaster recovery
 
Mihai Tataran - Definirea unei strategii pentru migrarea solutiilor si a orga...
Mihai Tataran - Definirea unei strategii pentru migrarea solutiilor si a orga...Mihai Tataran - Definirea unei strategii pentru migrarea solutiilor si a orga...
Mihai Tataran - Definirea unei strategii pentru migrarea solutiilor si a orga...
 
OpenNebulaconf2017US: OpenNebula hybrid clouds with Amazon and Azure by Ruben...
OpenNebulaconf2017US: OpenNebula hybrid clouds with Amazon and Azure by Ruben...OpenNebulaconf2017US: OpenNebula hybrid clouds with Amazon and Azure by Ruben...
OpenNebulaconf2017US: OpenNebula hybrid clouds with Amazon and Azure by Ruben...
 
OpenNebulaConf2017US: Welcome and project update by Ignacio M. Llorente and R...
OpenNebulaConf2017US: Welcome and project update by Ignacio M. Llorente and R...OpenNebulaConf2017US: Welcome and project update by Ignacio M. Llorente and R...
OpenNebulaConf2017US: Welcome and project update by Ignacio M. Llorente and R...
 
Building a dev ops paas with puppet, docker, openstack and apache stratos
Building a dev ops paas with puppet, docker, openstack and apache stratosBuilding a dev ops paas with puppet, docker, openstack and apache stratos
Building a dev ops paas with puppet, docker, openstack and apache stratos
 
vBACD - Deploying Infrastructure-as-a-Service with CloudStack - 2/28
vBACD - Deploying Infrastructure-as-a-Service with CloudStack - 2/28vBACD - Deploying Infrastructure-as-a-Service with CloudStack - 2/28
vBACD - Deploying Infrastructure-as-a-Service with CloudStack - 2/28
 
Build your own private Cloud environment
Build your own private Cloud environmentBuild your own private Cloud environment
Build your own private Cloud environment
 
Microservices Architecture and Containers.
Microservices Architecture and Containers.Microservices Architecture and Containers.
Microservices Architecture and Containers.
 
OpenNebula 5.4 Enhancements vCenter Integration
OpenNebula 5.4 Enhancements vCenter IntegrationOpenNebula 5.4 Enhancements vCenter Integration
OpenNebula 5.4 Enhancements vCenter Integration
 
Apache CloudStack Google Summer of Code
Apache CloudStack Google Summer of CodeApache CloudStack Google Summer of Code
Apache CloudStack Google Summer of Code
 
PaaS on top of CloudStack
PaaS on top of CloudStackPaaS on top of CloudStack
PaaS on top of CloudStack
 

Similar to Future of Apache CloudStack: modular, distributed, and hackable

[HKOSCON][20180616][Containerized High Availability Virtual Hosting Deploymen...
[HKOSCON][20180616][Containerized High Availability Virtual Hosting Deploymen...[HKOSCON][20180616][Containerized High Availability Virtual Hosting Deploymen...
[HKOSCON][20180616][Containerized High Availability Virtual Hosting Deploymen...Wong Hoi Sing Edison
 
[BarCamp2018][20180915][Tips for Virtual Hosting on Kubernetes]
[BarCamp2018][20180915][Tips for Virtual Hosting on Kubernetes][BarCamp2018][20180915][Tips for Virtual Hosting on Kubernetes]
[BarCamp2018][20180915][Tips for Virtual Hosting on Kubernetes]Wong Hoi Sing Edison
 
[Srijan Wednesday Webinars] How to Build a Cloud Native Platform for Enterpri...
[Srijan Wednesday Webinars] How to Build a Cloud Native Platform for Enterpri...[Srijan Wednesday Webinars] How to Build a Cloud Native Platform for Enterpri...
[Srijan Wednesday Webinars] How to Build a Cloud Native Platform for Enterpri...Srijan Technologies
 
Openstack - Enterprise cloud management platform
Openstack - Enterprise cloud management platformOpenstack - Enterprise cloud management platform
Openstack - Enterprise cloud management platformNagaraj Shenoy
 
Apache Mesos Overview and Integration
Apache Mesos Overview and IntegrationApache Mesos Overview and Integration
Apache Mesos Overview and IntegrationAlex Baretto
 
Getting Started with Apache CloudStack
Getting Started with Apache CloudStackGetting Started with Apache CloudStack
Getting Started with Apache CloudStackJoe Brockmeier
 
Instant developer onboarding with self contained repositories
Instant developer onboarding with self contained repositoriesInstant developer onboarding with self contained repositories
Instant developer onboarding with self contained repositoriesYshay Yaacobi
 
Cloudstack vs Openstack
Cloudstack vs OpenstackCloudstack vs Openstack
Cloudstack vs OpenstackHuzefa Husain
 
Cluster-as-code. The Many Ways towards Kubernetes
Cluster-as-code. The Many Ways towards KubernetesCluster-as-code. The Many Ways towards Kubernetes
Cluster-as-code. The Many Ways towards KubernetesQAware GmbH
 
Microservices with Node and Docker
Microservices with Node and DockerMicroservices with Node and Docker
Microservices with Node and DockerTony Pujals
 
Cluster-as-code. The Many Ways towards Kubernetes
Cluster-as-code. The Many Ways towards KubernetesCluster-as-code. The Many Ways towards Kubernetes
Cluster-as-code. The Many Ways towards KubernetesQAware GmbH
 
Disposable infrastructure
Disposable infrastructureDisposable infrastructure
Disposable infrastructureMike Fowler
 
Halifax DevOps - Meet-up - July.19 2017
Halifax DevOps - Meet-up - July.19 2017Halifax DevOps - Meet-up - July.19 2017
Halifax DevOps - Meet-up - July.19 2017Kyle Bassett
 
Sebastien goasguen cloud stack and docker
Sebastien goasguen   cloud stack and dockerSebastien goasguen   cloud stack and docker
Sebastien goasguen cloud stack and dockerShapeBlue
 
Clocker - How to Train your Docker Cloud
Clocker - How to Train your Docker CloudClocker - How to Train your Docker Cloud
Clocker - How to Train your Docker CloudAndrew Kennedy
 
Modern Elastic Datacenter Architecture
Modern Elastic Datacenter ArchitectureModern Elastic Datacenter Architecture
Modern Elastic Datacenter ArchitectureWeston Bassler
 
[WSO2Con Asia 2018] Architecting for Container-native Environments
[WSO2Con Asia 2018] Architecting for Container-native Environments[WSO2Con Asia 2018] Architecting for Container-native Environments
[WSO2Con Asia 2018] Architecting for Container-native EnvironmentsWSO2
 
Introduction to Apache Mesos and DC/OS
Introduction to Apache Mesos and DC/OSIntroduction to Apache Mesos and DC/OS
Introduction to Apache Mesos and DC/OSSteve Wong
 

Similar to Future of Apache CloudStack: modular, distributed, and hackable (20)

[HKOSCON][20180616][Containerized High Availability Virtual Hosting Deploymen...
[HKOSCON][20180616][Containerized High Availability Virtual Hosting Deploymen...[HKOSCON][20180616][Containerized High Availability Virtual Hosting Deploymen...
[HKOSCON][20180616][Containerized High Availability Virtual Hosting Deploymen...
 
[BarCamp2018][20180915][Tips for Virtual Hosting on Kubernetes]
[BarCamp2018][20180915][Tips for Virtual Hosting on Kubernetes][BarCamp2018][20180915][Tips for Virtual Hosting on Kubernetes]
[BarCamp2018][20180915][Tips for Virtual Hosting on Kubernetes]
 
[Srijan Wednesday Webinars] How to Build a Cloud Native Platform for Enterpri...
[Srijan Wednesday Webinars] How to Build a Cloud Native Platform for Enterpri...[Srijan Wednesday Webinars] How to Build a Cloud Native Platform for Enterpri...
[Srijan Wednesday Webinars] How to Build a Cloud Native Platform for Enterpri...
 
Openstack - Enterprise cloud management platform
Openstack - Enterprise cloud management platformOpenstack - Enterprise cloud management platform
Openstack - Enterprise cloud management platform
 
Apache Mesos Overview and Integration
Apache Mesos Overview and IntegrationApache Mesos Overview and Integration
Apache Mesos Overview and Integration
 
Getting Started with Apache CloudStack
Getting Started with Apache CloudStackGetting Started with Apache CloudStack
Getting Started with Apache CloudStack
 
Instant developer onboarding with self contained repositories
Instant developer onboarding with self contained repositoriesInstant developer onboarding with self contained repositories
Instant developer onboarding with self contained repositories
 
Cloudstack vs Openstack
Cloudstack vs OpenstackCloudstack vs Openstack
Cloudstack vs Openstack
 
Cluster-as-code. The Many Ways towards Kubernetes
Cluster-as-code. The Many Ways towards KubernetesCluster-as-code. The Many Ways towards Kubernetes
Cluster-as-code. The Many Ways towards Kubernetes
 
Microservices with Node and Docker
Microservices with Node and DockerMicroservices with Node and Docker
Microservices with Node and Docker
 
Cluster-as-code. The Many Ways towards Kubernetes
Cluster-as-code. The Many Ways towards KubernetesCluster-as-code. The Many Ways towards Kubernetes
Cluster-as-code. The Many Ways towards Kubernetes
 
Cloud Orchestration is Broken
Cloud Orchestration is BrokenCloud Orchestration is Broken
Cloud Orchestration is Broken
 
Disposable infrastructure
Disposable infrastructureDisposable infrastructure
Disposable infrastructure
 
Halifax DevOps - Meet-up - July.19 2017
Halifax DevOps - Meet-up - July.19 2017Halifax DevOps - Meet-up - July.19 2017
Halifax DevOps - Meet-up - July.19 2017
 
Short-Training asp.net vNext
Short-Training asp.net vNextShort-Training asp.net vNext
Short-Training asp.net vNext
 
Sebastien goasguen cloud stack and docker
Sebastien goasguen   cloud stack and dockerSebastien goasguen   cloud stack and docker
Sebastien goasguen cloud stack and docker
 
Clocker - How to Train your Docker Cloud
Clocker - How to Train your Docker CloudClocker - How to Train your Docker Cloud
Clocker - How to Train your Docker Cloud
 
Modern Elastic Datacenter Architecture
Modern Elastic Datacenter ArchitectureModern Elastic Datacenter Architecture
Modern Elastic Datacenter Architecture
 
[WSO2Con Asia 2018] Architecting for Container-native Environments
[WSO2Con Asia 2018] Architecting for Container-native Environments[WSO2Con Asia 2018] Architecting for Container-native Environments
[WSO2Con Asia 2018] Architecting for Container-native Environments
 
Introduction to Apache Mesos and DC/OS
Introduction to Apache Mesos and DC/OSIntroduction to Apache Mesos and DC/OS
Introduction to Apache Mesos and DC/OS
 

Recently uploaded

TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
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
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
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
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 

Recently uploaded (20)

TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
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
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
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
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 

Future of Apache CloudStack: modular, distributed, and hackable

  • 1. Future of Apache CloudStack: modular, distributed, and hackable Darren Shepherd Citrix CCCEU 2013
  • 2. About Me ● Apache CloudStack Committer ● Previously - Cloud Architect @ GoDaddy.com – Built three generations of clouds ● ● ● 2nd – Custom “CloudStack Compatible” ● – 1st – CloudStack 2.x, custom storage framework 3rd – 100% from scratch Been developing IaaS orchestration systems full time for the last 4 years Currently – Do something @ Citrix – Focus on open source – I care about architecture and design
  • 3. What's This About ● My opinions ● What I think we should focus on architecturally ● What I'm trying to accomplish
  • 4. General Comments ● Do more with less – Identify patterns in code and create frameworks ● – ● For example, make Abstract base classes Copy and paste is bad Need to leverage more open source frameworks – jOOQ, Spring TX, Netflix Archaius/Servo, Jackson, Apache jclouds, Flyway/Liquibase, Apache Commons ● Past/Current – ACS adds cloudiness to legacy technologies ● Current/Future – ACS orchestrates cloudy technologies ● Always provide a way for Apache CloudStack to do nothing and delegate to something else
  • 5. Modular – Why? ● Enforce design and architectural boundaries ● Better pluggability ● Quality/Testing ● Lays the foundation for distributed architecture
  • 6. Modular – What's been done ● 4.3 - Spring Modularization – META-INF/cloudstack/mycomponent/module.properties – META-INF/cloudstack/mycomponent/*context.xml – Over 50 Modules
  • 7. Stats ● ~400k lines of Java (not 1.2m) – – 32% - engine, framework, services, usage, util – ● 42% - agent, api, core, server 26% - plugins We still have big blobs of code – 74% “Core Code” “Core Code” is not really core. Includes VR, CP, SSVM, XenServer, others
  • 8. What needs to be done ● Package plug-ins in separate RPM/DEBs ● Break out more code from /server/src ● Break apart *ManagerImpl classes – ● Implement too many interfaces that belong in different architectural layers Modularize VR and VPC code
  • 9. Distributed Architecture ● Maybe you don't care – Many don't – Monolithic deployment is simple and scalable enough for most use case ● Support multiple deployment models ● Scalability – ● Scale tiers according to load characteristics Reliability – Put certain components closer to resources
  • 11. Fully Distributed ● System Services – – ● Event Bus Lock Manager Servers – API – Back end Jobs – Host Manager
  • 12. How ● Event Bus – Hazelcast or Redis – Do not use “reliable messaging” ● ● Lock Manager – ● Works more like UDP multicast Hazelcast or ZooKeeper Same binary on all servers – “Profiles” used to determine which Spring modules are activated on start
  • 13. Hackability ● Should be relatively simple to add one off functionality – ● ● Every cloud deployment is slightly different Need to stay relevant with upcoming technologies Want people to integrate first with ACS because – It works – It's easy
  • 14. Totally scientific observation ● Two types of sys admins – Those who hate Java for no good reason – Those who hate Java for a good reason Those that will tolerate developing in Java Those who love systems (admins/engineers)
  • 15. Dynamic languages can be good Those that Those who will tolerate developing love systems in a dynamic (admins/engineers) language
  • 16. Hackability ● Move systems related code to python ● No Java on the hypervisor! ● Need a new ServerResource architecture that delegates to agents in any language – Work for Hyper-V is a step in the right direction ● Decouple VR from HypervisorResource ● Community help needed – Good work, GCE API and hopefully new AWS API