SlideShare a Scribd company logo
Building your own
Desktop Cloud Environment

Gautham Pai, Founder
jnaapti
The problems we face as developers
Our development environments accumulate lots of
applications and libraries over a period of months.

We fear that we may screw up our development
environment and that means unproductive man-hours.

We are usually in the habit of installing everything in
one machine.

We forget that a multi-machine deployment is different
from a single machine deployment.

                      http://jnaapti.com/
Solution?




How about Desktop Virtualization?




            http://jnaapti.com/
Why Desktop Virtualization?
Bringing our development environment as close to the
production environment as possible.

Replicable deployment - verify everything before
deploying to staging or production.

Containerising functionality.

"Don't panic" environment for experimentation

Ease of provisioning for new employees.


                     http://jnaapti.com/
Virtualization or Cloud?
What I am talking about is closer to virtualization than
cloud computing.

For example, we are not dealing with transparent
scaling, spike load handling etc.




                     http://jnaapti.com/
Why QEMU-KVM and not Virtualbox?
KVM is part of the Linux Kernel

Virtualbox is from Oracle

KVM provides better performance




                    http://jnaapti.com/
What we want to try out
Create a development environment with functionalities
partitioned over separate VMs.

Ensure that setting up this environment is not more
than a few hours job.

Ensure that bringing up the environment does not take
more than a few minutes if not seconds.

Ensure that the environment can run in a laptop with
standard configuration.

                        http://jnaapti.com/
System Requirements
 A laptop/desktop with

    a processor that supports virtulization technology
    to use KVM

    a Debian Linux environment

    atleast 2GB of free RAM

    atleast 10G of free disk space

This will help us run as many as 5 VM images in parallel

                      http://jnaapti.com/
Demo




http://jnaapti.com/
The Approach
In this demo, I will take you through the steps to
create a multi-VM development environment

In addition to our dev environment (dev-server), we
will have a separate code-server, a web-server and a
db-server setup.

We then run it end-to-end – write some code, check it
in, pull it into the web server, deploy the code and
then test the new version of the app.

                     http://jnaapti.com/
First, a look at a few terminologies
QEMU is a generic and open source machine emulator
and virtualizer.

KVM (for Kernel-based Virtual Machine) is a full
virtualization solution for Linux on x86 hardware.

The Virtual Machine Manager application (virt-
manager for short package name) is a desktop user
interface for managing virtual machines.



                     http://jnaapti.com/
Demo




http://jnaapti.com/
The Approach
We first create a base VM and install the OS in it, using
the standard Ubuntu 10.04.2 Server ISO image

We then install a SSH server and setup passwordless
SSH access

We then clone this system to as many systems as we
need and setup various servers
(code/caching/web/etc) on them



                     http://jnaapti.com/
Installing Pre-requisites
$ sudo apt-get install virt-manager qemu-kvm




                    http://jnaapti.com/
Starting Virt Manager
$ sudo virt-manager




                  http://jnaapti.com/
Networking Requirements
Every VM should have its own IP address.

Every VM should be accessible from every other VM
and that includes host.

Every VM must be able to connect to the Internet.

Solution? Bridged Networking.




                     http://jnaapti.com/
Setting up the Bridge Network




          http://jnaapti.com/
Name your Virtual Network




        http://jnaapti.com/
Choose an IPv4 Address Space




          http://jnaapti.com/
Select DHCP Range




     http://jnaapti.com/
Setup NAT forwarding




      http://jnaapti.com/
Review and finish the wizard




          http://jnaapti.com/
Create the Base VM




     http://jnaapti.com/
Choose the Distribution to Install




            http://jnaapti.com/
Set RAM and CPUs




    http://jnaapti.com/
Set the Disk Space




     http://jnaapti.com/
Finalize the VM Creation




        http://jnaapti.com/
Install the OS in the Base VM




          http://jnaapti.com/
Select Hostname




    http://jnaapti.com/
Select Disk




 http://jnaapti.com/
Confirm Disk Format




     http://jnaapti.com/
Installation Progress




      http://jnaapti.com/
Installation Progress




      http://jnaapti.com/
Create User




 http://jnaapti.com/
Set Username




  http://jnaapti.com/
Configure APT




  http://jnaapti.com/
Set Automatic Upgrades




       http://jnaapti.com/
Install Additional Software




         http://jnaapti.com/
Install Pre-defined Collections




           http://jnaapti.com/
Installation Progress




      http://jnaapti.com/
Install GRUB




  http://jnaapti.com/
Install GRUB




  http://jnaapti.com/
Installation Complete




      http://jnaapti.com/
Installation Complete




      http://jnaapti.com/
Verifying the Base VM Installation
Login to the Base VM

Install the latest updates

Make sure you can connect to the host from guest and
vice-versa

Setup password-less SSH access

(Update interface identifier)



                     http://jnaapti.com/
Cloning the Base VM
Add the DNS server that we use for guest IP allocation
to resolv.conf, so that you can address VMs using their
hostnames

Use virt-clone to clone the base VM

Start the new VM

Change the hostname of the new VM

Reboot the new VM


                     http://jnaapti.com/
Starting and Stopping the VMs
$ #Start the domains
$ virsh start webserver && virsh start dbserver &&
virsh start codeserver
$ #Destroy the domains
$ virsh destroy webserver && virsh destroy
dbserver && virsh destroy codeserver




                       http://jnaapti.com/
Where to go from here?
Setting up package mirrors

Snapshot creation on the fly

You can mimic things like S3, EBS etc




                     http://jnaapti.com/
Resources
More detailed notes here

Code is over at Github

KVM

Virtual Machine Manager

KVM Networking

QEMU Networking

QEMU Images

                    http://jnaapti.com/
Courtesy
 Server image from OpenClipArt

 CD image from pr0gr4mm3r.com



Thanks to Pradeep Kumar, Ananth M, Kiran S, Ananda M,
Madhukar Pai and Shrinivas S Kulkarni for reviewing the
        slides and providing valuable feedback




                      http://jnaapti.com/
The Jnaapti development environment is based
                on this setup




                 http://jnaapti.com/
This talk was first delivered in the “PHP Cloud” event
                 organized by HasGeek




                      http://jnaapti.com/
Thank you!
Email: gautham@jnaapti.com




        http://jnaapti.com/
Happy Hacking




  http://jnaapti.com/

More Related Content

What's hot (20)

PDF
Puppet and Vagrant in development
Adam Culp
 
PPTX
Docker workshop
Evans Ye
 
PDF
Automated Amazon EC2 Cloud deployments with openQRM
openQRM Enterprise GmbH
 
ODT
openQRM how-to: Setup UEC and openQRM cloud
openQRM Enterprise GmbH
 
PDF
Vagrant for real
Michele Orselli
 
PDF
Vagrant for real (codemotion rome 2016)
Michele Orselli
 
PDF
Automated everything - Setting up an openQRM Cloud
openQRM Enterprise GmbH
 
PPTX
How To Set a Vagrant Development System
Paul Bearne
 
PPTX
Vagrant crash course
Marcus Deglos
 
PDF
Create your very own Development Environment with Vagrant and Packer
frastel
 
PPTX
A Docker-based Development Environment Even I Can Understand
Jeremy Gimbel
 
ODP
Building (localized) Vagrant boxes with Packer
Cristovao G. Verstraeten
 
ODP
Forget MAMP and WAMP, Use Virtual Box to Have a Real Ubuntu Server
aaroncouch
 
PDF
Virtual Infrastructure
Bryan McLellan
 
PPTX
6 Years of Docker: The Good, the Bad and Python Packaging at PyCon.DE&PyData ...
Sebastian Neubauer
 
PDF
Dave Gilbert - KVM and QEMU
Danny Abukalam
 
PDF
KVM tools and enterprise usage
vincentvdk
 
PDF
Build a private cloud – prototype and test with open nebula
A B M Moniruzzaman
 
PDF
Vagrant for real codemotion (moar tips! ;-))
Michele Orselli
 
PPTX
Virtual Machine LAMP on Windows
mikehie
 
Puppet and Vagrant in development
Adam Culp
 
Docker workshop
Evans Ye
 
Automated Amazon EC2 Cloud deployments with openQRM
openQRM Enterprise GmbH
 
openQRM how-to: Setup UEC and openQRM cloud
openQRM Enterprise GmbH
 
Vagrant for real
Michele Orselli
 
Vagrant for real (codemotion rome 2016)
Michele Orselli
 
Automated everything - Setting up an openQRM Cloud
openQRM Enterprise GmbH
 
How To Set a Vagrant Development System
Paul Bearne
 
Vagrant crash course
Marcus Deglos
 
Create your very own Development Environment with Vagrant and Packer
frastel
 
A Docker-based Development Environment Even I Can Understand
Jeremy Gimbel
 
Building (localized) Vagrant boxes with Packer
Cristovao G. Verstraeten
 
Forget MAMP and WAMP, Use Virtual Box to Have a Real Ubuntu Server
aaroncouch
 
Virtual Infrastructure
Bryan McLellan
 
6 Years of Docker: The Good, the Bad and Python Packaging at PyCon.DE&PyData ...
Sebastian Neubauer
 
Dave Gilbert - KVM and QEMU
Danny Abukalam
 
KVM tools and enterprise usage
vincentvdk
 
Build a private cloud – prototype and test with open nebula
A B M Moniruzzaman
 
Vagrant for real codemotion (moar tips! ;-))
Michele Orselli
 
Virtual Machine LAMP on Windows
mikehie
 

Similar to Building your own Desktop Cloud Environment (20)

PPT
Tech X Virtualization Tips
Youssef EL HADJ
 
PPTX
Virtualization technology "comparison vmware 9 vs virtualbox 4.2"
Lagendary Sheeva
 
PDF
Ws80 using VMware
Umesh Gupta
 
PPTX
Vagrant
ProfessionalVMware
 
PPTX
Vagrant Up in 5 Easy Steps
Trevor Roberts Jr.
 
PPTX
Virtualization using VMWare Workstation
Hitesh Gupta
 
PDF
Ws90 using
kevalmahendra
 
PPT
10215 A 03
Juanchi_43
 
PPT
Sdwest2008 V101 F Dpowerpoint Final
Stephen Rose
 
PPTX
Practical Introduction To Linux
Zeeshan Rizvi
 
PDF
DevOps Camp 2017 NYC Local Development using Vagrant by Anthony Alvarez
Anthony Alvarez
 
PDF
Comando kvm terminal
Carlos Eduardo
 
PDF
Vagrant - Version control your dev environment
bocribbz
 
PPT
Managing VMware with PowerShell - VMworld 2008
Carter Shanklin
 
PDF
Rohit yadav cloud stack internals
ShapeBlue
 
PPTX
Node js introduction
Joseph de Castelnau
 
PPTX
Virtualization for Developers
John Coggeshall
 
ODP
VM201 - IdoSphere
Carl Tyler
 
PPTX
Virtualization for Developers
John Coggeshall
 
PPTX
Storage and hyper v - the choices you can make and the things you need to kno...
Louis Göhl
 
Tech X Virtualization Tips
Youssef EL HADJ
 
Virtualization technology "comparison vmware 9 vs virtualbox 4.2"
Lagendary Sheeva
 
Ws80 using VMware
Umesh Gupta
 
Vagrant Up in 5 Easy Steps
Trevor Roberts Jr.
 
Virtualization using VMWare Workstation
Hitesh Gupta
 
Ws90 using
kevalmahendra
 
10215 A 03
Juanchi_43
 
Sdwest2008 V101 F Dpowerpoint Final
Stephen Rose
 
Practical Introduction To Linux
Zeeshan Rizvi
 
DevOps Camp 2017 NYC Local Development using Vagrant by Anthony Alvarez
Anthony Alvarez
 
Comando kvm terminal
Carlos Eduardo
 
Vagrant - Version control your dev environment
bocribbz
 
Managing VMware with PowerShell - VMworld 2008
Carter Shanklin
 
Rohit yadav cloud stack internals
ShapeBlue
 
Node js introduction
Joseph de Castelnau
 
Virtualization for Developers
John Coggeshall
 
VM201 - IdoSphere
Carl Tyler
 
Virtualization for Developers
John Coggeshall
 
Storage and hyper v - the choices you can make and the things you need to kno...
Louis Göhl
 
Ad

More from Jnaapti (7)

PDF
Jnaapti - Who we are and What we do
Jnaapti
 
PDF
The Virtual Coach Platform - powered by jnaapti
Jnaapti
 
PDF
Jnaapti Training Process
Jnaapti
 
PDF
The Jnaapti Virtual Coach Platform
Jnaapti
 
PDF
I AM STARTING UP - HOW DO I START CODING?
Jnaapti
 
PDF
jnaapti's Pitch at Startup Saturday - Apr 12th 2014
Jnaapti
 
PDF
Dealing with web scale data
Jnaapti
 
Jnaapti - Who we are and What we do
Jnaapti
 
The Virtual Coach Platform - powered by jnaapti
Jnaapti
 
Jnaapti Training Process
Jnaapti
 
The Jnaapti Virtual Coach Platform
Jnaapti
 
I AM STARTING UP - HOW DO I START CODING?
Jnaapti
 
jnaapti's Pitch at Startup Saturday - Apr 12th 2014
Jnaapti
 
Dealing with web scale data
Jnaapti
 
Ad

Recently uploaded (20)

PPTX
AI in Daily Life: How Artificial Intelligence Helps Us Every Day
vanshrpatil7
 
PDF
Brief History of Internet - Early Days of Internet
sutharharshit158
 
PPTX
What-is-the-World-Wide-Web -- Introduction
tonifi9488
 
PPTX
Applied-Statistics-Mastering-Data-Driven-Decisions.pptx
parmaryashparmaryash
 
PDF
Economic Impact of Data Centres to the Malaysian Economy
flintglobalapac
 
PDF
Generative AI vs Predictive AI-The Ultimate Comparison Guide
Lily Clark
 
PDF
AI Unleashed - Shaping the Future -Starting Today - AIOUG Yatra 2025 - For Co...
Sandesh Rao
 
PDF
How Open Source Changed My Career by abdelrahman ismail
a0m0rajab1
 
PDF
GDG Cloud Munich - Intro - Luiz Carneiro - #BuildWithAI - July - Abdel.pdf
Luiz Carneiro
 
PDF
TrustArc Webinar - Navigating Data Privacy in LATAM: Laws, Trends, and Compli...
TrustArc
 
PDF
Presentation about Hardware and Software in Computer
snehamodhawadiya
 
PDF
The Future of Artificial Intelligence (AI)
Mukul
 
PPTX
Agile Chennai 18-19 July 2025 Ideathon | AI Powered Microfinance Literacy Gui...
AgileNetwork
 
PPTX
Agentic AI in Healthcare Driving the Next Wave of Digital Transformation
danielle hunter
 
PPTX
Agile Chennai 18-19 July 2025 | Emerging patterns in Agentic AI by Bharani Su...
AgileNetwork
 
PDF
Research-Fundamentals-and-Topic-Development.pdf
ayesha butalia
 
PDF
Data_Analytics_vs_Data_Science_vs_BI_by_CA_Suvidha_Chaplot.pdf
CA Suvidha Chaplot
 
PPTX
Introduction to Flutter by Ayush Desai.pptx
ayushdesai204
 
PDF
Per Axbom: The spectacular lies of maps
Nexer Digital
 
PDF
How ETL Control Logic Keeps Your Pipelines Safe and Reliable.pdf
Stryv Solutions Pvt. Ltd.
 
AI in Daily Life: How Artificial Intelligence Helps Us Every Day
vanshrpatil7
 
Brief History of Internet - Early Days of Internet
sutharharshit158
 
What-is-the-World-Wide-Web -- Introduction
tonifi9488
 
Applied-Statistics-Mastering-Data-Driven-Decisions.pptx
parmaryashparmaryash
 
Economic Impact of Data Centres to the Malaysian Economy
flintglobalapac
 
Generative AI vs Predictive AI-The Ultimate Comparison Guide
Lily Clark
 
AI Unleashed - Shaping the Future -Starting Today - AIOUG Yatra 2025 - For Co...
Sandesh Rao
 
How Open Source Changed My Career by abdelrahman ismail
a0m0rajab1
 
GDG Cloud Munich - Intro - Luiz Carneiro - #BuildWithAI - July - Abdel.pdf
Luiz Carneiro
 
TrustArc Webinar - Navigating Data Privacy in LATAM: Laws, Trends, and Compli...
TrustArc
 
Presentation about Hardware and Software in Computer
snehamodhawadiya
 
The Future of Artificial Intelligence (AI)
Mukul
 
Agile Chennai 18-19 July 2025 Ideathon | AI Powered Microfinance Literacy Gui...
AgileNetwork
 
Agentic AI in Healthcare Driving the Next Wave of Digital Transformation
danielle hunter
 
Agile Chennai 18-19 July 2025 | Emerging patterns in Agentic AI by Bharani Su...
AgileNetwork
 
Research-Fundamentals-and-Topic-Development.pdf
ayesha butalia
 
Data_Analytics_vs_Data_Science_vs_BI_by_CA_Suvidha_Chaplot.pdf
CA Suvidha Chaplot
 
Introduction to Flutter by Ayush Desai.pptx
ayushdesai204
 
Per Axbom: The spectacular lies of maps
Nexer Digital
 
How ETL Control Logic Keeps Your Pipelines Safe and Reliable.pdf
Stryv Solutions Pvt. Ltd.
 

Building your own Desktop Cloud Environment

  • 1. Building your own Desktop Cloud Environment Gautham Pai, Founder jnaapti
  • 2. The problems we face as developers Our development environments accumulate lots of applications and libraries over a period of months. We fear that we may screw up our development environment and that means unproductive man-hours. We are usually in the habit of installing everything in one machine. We forget that a multi-machine deployment is different from a single machine deployment. http://jnaapti.com/
  • 3. Solution? How about Desktop Virtualization? http://jnaapti.com/
  • 4. Why Desktop Virtualization? Bringing our development environment as close to the production environment as possible. Replicable deployment - verify everything before deploying to staging or production. Containerising functionality. "Don't panic" environment for experimentation Ease of provisioning for new employees. http://jnaapti.com/
  • 5. Virtualization or Cloud? What I am talking about is closer to virtualization than cloud computing. For example, we are not dealing with transparent scaling, spike load handling etc. http://jnaapti.com/
  • 6. Why QEMU-KVM and not Virtualbox? KVM is part of the Linux Kernel Virtualbox is from Oracle KVM provides better performance http://jnaapti.com/
  • 7. What we want to try out Create a development environment with functionalities partitioned over separate VMs. Ensure that setting up this environment is not more than a few hours job. Ensure that bringing up the environment does not take more than a few minutes if not seconds. Ensure that the environment can run in a laptop with standard configuration. http://jnaapti.com/
  • 8. System Requirements A laptop/desktop with a processor that supports virtulization technology to use KVM a Debian Linux environment atleast 2GB of free RAM atleast 10G of free disk space This will help us run as many as 5 VM images in parallel http://jnaapti.com/
  • 10. The Approach In this demo, I will take you through the steps to create a multi-VM development environment In addition to our dev environment (dev-server), we will have a separate code-server, a web-server and a db-server setup. We then run it end-to-end – write some code, check it in, pull it into the web server, deploy the code and then test the new version of the app. http://jnaapti.com/
  • 11. First, a look at a few terminologies QEMU is a generic and open source machine emulator and virtualizer. KVM (for Kernel-based Virtual Machine) is a full virtualization solution for Linux on x86 hardware. The Virtual Machine Manager application (virt- manager for short package name) is a desktop user interface for managing virtual machines. http://jnaapti.com/
  • 13. The Approach We first create a base VM and install the OS in it, using the standard Ubuntu 10.04.2 Server ISO image We then install a SSH server and setup passwordless SSH access We then clone this system to as many systems as we need and setup various servers (code/caching/web/etc) on them http://jnaapti.com/
  • 14. Installing Pre-requisites $ sudo apt-get install virt-manager qemu-kvm http://jnaapti.com/
  • 15. Starting Virt Manager $ sudo virt-manager http://jnaapti.com/
  • 16. Networking Requirements Every VM should have its own IP address. Every VM should be accessible from every other VM and that includes host. Every VM must be able to connect to the Internet. Solution? Bridged Networking. http://jnaapti.com/
  • 17. Setting up the Bridge Network http://jnaapti.com/
  • 18. Name your Virtual Network http://jnaapti.com/
  • 19. Choose an IPv4 Address Space http://jnaapti.com/
  • 20. Select DHCP Range http://jnaapti.com/
  • 21. Setup NAT forwarding http://jnaapti.com/
  • 22. Review and finish the wizard http://jnaapti.com/
  • 23. Create the Base VM http://jnaapti.com/
  • 24. Choose the Distribution to Install http://jnaapti.com/
  • 25. Set RAM and CPUs http://jnaapti.com/
  • 26. Set the Disk Space http://jnaapti.com/
  • 27. Finalize the VM Creation http://jnaapti.com/
  • 28. Install the OS in the Base VM http://jnaapti.com/
  • 29. Select Hostname http://jnaapti.com/
  • 31. Confirm Disk Format http://jnaapti.com/
  • 32. Installation Progress http://jnaapti.com/
  • 33. Installation Progress http://jnaapti.com/
  • 35. Set Username http://jnaapti.com/
  • 36. Configure APT http://jnaapti.com/
  • 37. Set Automatic Upgrades http://jnaapti.com/
  • 38. Install Additional Software http://jnaapti.com/
  • 39. Install Pre-defined Collections http://jnaapti.com/
  • 40. Installation Progress http://jnaapti.com/
  • 41. Install GRUB http://jnaapti.com/
  • 42. Install GRUB http://jnaapti.com/
  • 43. Installation Complete http://jnaapti.com/
  • 44. Installation Complete http://jnaapti.com/
  • 45. Verifying the Base VM Installation Login to the Base VM Install the latest updates Make sure you can connect to the host from guest and vice-versa Setup password-less SSH access (Update interface identifier) http://jnaapti.com/
  • 46. Cloning the Base VM Add the DNS server that we use for guest IP allocation to resolv.conf, so that you can address VMs using their hostnames Use virt-clone to clone the base VM Start the new VM Change the hostname of the new VM Reboot the new VM http://jnaapti.com/
  • 47. Starting and Stopping the VMs $ #Start the domains $ virsh start webserver && virsh start dbserver && virsh start codeserver $ #Destroy the domains $ virsh destroy webserver && virsh destroy dbserver && virsh destroy codeserver http://jnaapti.com/
  • 48. Where to go from here? Setting up package mirrors Snapshot creation on the fly You can mimic things like S3, EBS etc http://jnaapti.com/
  • 49. Resources More detailed notes here Code is over at Github KVM Virtual Machine Manager KVM Networking QEMU Networking QEMU Images http://jnaapti.com/
  • 50. Courtesy Server image from OpenClipArt CD image from pr0gr4mm3r.com Thanks to Pradeep Kumar, Ananth M, Kiran S, Ananda M, Madhukar Pai and Shrinivas S Kulkarni for reviewing the slides and providing valuable feedback http://jnaapti.com/
  • 51. The Jnaapti development environment is based on this setup http://jnaapti.com/
  • 52. This talk was first delivered in the “PHP Cloud” event organized by HasGeek http://jnaapti.com/
  • 53. Thank you! Email: [email protected] http://jnaapti.com/
  • 54. Happy Hacking http://jnaapti.com/