Model-Driven DeploymentThe Best Practice Successor to Virtual Appliances
Dave JilkCEO, Standing Cloud, Inc.
May 24, 2012
AGENDA
1. What are Virtual Appliances and Models?2. Virtual Appliances are a Tar Pit of Despond3. Why Models will Rock your World4. Tools and Techniques for the Win
DEFINITIONSWhat are Virtual Appliances and Models?
1. What are Virtual Appliances and Models?2. Virtual Appliances are a Tar Pit of Despond3. Why Models will Rock your World4. Tools and Techniques for the Win
A Virtual Appliance is a
pre-configured bootable
disk image for an application or
stack
a.k.a.
Golden ImageSoftware Appliance
TemplateSnapshot
Amazon Machine Image (AMI)VMWare ESX Image
SysAdmin
configures
a serverby hand,
Saves a complete copy of the
drive to a file,
Which can be booted
as a virtual
machine.
Creating Virtual Appliances
This is much easier to test and
support than a software installer.
A Modelis a set of structured
procedures for automating
application or stack
management
Base O/S+
Deployment Script
+Scripts for backup and restore,
version upgrades, scaling, adding and removing services, porting, etc.
THE PROBLEMVirtual Appliances are a Tar Pit of Despond
1. What are Virtual Appliances and Models?2. Virtual Appliances are a Tar Pit of Despond3. Why Models will Rock your World4. Tools and Techniques for the Win
I got a girlfriend with bows in her hair
And nothing is better than that
Is it? Talking Heads
Let’s Talk About Combinatorics!
O/S versionsX
Stack configurationsX
Application versionsX
Virtualization environmentsX
Optional features
Makes a configurati
onchange,
And burns a
new golden image.
SysAdminboots
the golden image
as a VM,
Virtual Appliance Updates
Repeat
Like scanning a photo. Then scanning the scan. And so
on.
After a while, it’s
incomprehensible.
It’s OK, though.
Your SysAdmins document all their work.
But wait, that’s not all!A separate approach is required for
lifecycle management of the deployment.
Multi-server deployments require either manual control or an integration script.
Credentials must be baked into the virtual appliance, creating a security hole.
Creation of the virtual appliance is a bottleneck for system testing.
This worked in an era of static, snapshot stages
But in an agile, dynamic, devops world …
anachronisticunmanageable
bottleneck.
… virtual appliances are an
THE SOLUTIONWhy Models will Rock your World
1. What are Virtual Appliances and Models?2. Virtual Appliances are a Tar Pit of Despond3. Why Models will Rock your World4. Tools and Techniques for the Win
Models
Adopt two basic techniques from software development
Abstraction&
Modularization
if ($database == MYSQL)install_mysql($op_system)connect_php_to_mysql()
else if ($database == ORACLE)install_oracle($op_system)connect_php_to_oracle()
end
This is pseudo-code. The engineers don’t let me write real code any more. I’m not bitter.
Abstraction
Modularization
This solves the two biggest problems with virtual
appliances
Combinatoric Proliferation
Because the combinations are represented by parameters
Generational LossBecause scripts are self-
documenting
Model scripts are also
Small & DynamicWhich addresses all the other
problems with virtual appliances.
If you have the right tools.
THE TOOLSTools and Techniques for the Win
1. What are Virtual Appliances and Models?2. Virtual Appliances are a Tar Pit of Despond3. Why Models will Rock your World4. Tools and Techniques for the Win
Virtual Appliance Generators
This approach only addresses the documentation problem.
Configuration Management
Model Repositories
?
There is one relative
disadvantage of model-driven deployment.
Any ideas?
Provisioning Latency
This could be solved with a “burn image” API function
embedded into the IaaS orchestration layer.
It is still a manual operation on most public clouds.