3. 1. What are Virtual Appliances and Models?
2. Virtual Appliances are a Tar Pit of Despond
3. Why Models will Rock your World
4. Tools and Techniques for the Win
AGENDA
4. 1. What are Virtual Appliances and Models?
2. Virtual Appliances are a Tar Pit of Despond
3. Why Models will Rock your World
4. Tools and Techniques for the Win
DEFINITIONS
What are Virtual Appliances and Models?
5. A Virtual Appliance
is a
pre-configured
bootable
disk image for an
application or stack
7. Creating Virtual Appliances
SysAdmin Saves a Which
configures complete can be
a server copy of booted as
by hand, the drive a virtual
to a file, machine.
8. This is much easier to
test and support than
a software installer.
9. A Model
is a set of structured
procedures for
automating
application or stack
management
10. Base O/S
+
Deployment Script
+
Scripts for backup and restore, version
upgrades, scaling, adding and
removing services, porting, etc.
11. 1. What are Virtual Appliances and Models?
2. Virtual Appliances are a Tar Pit of Despond
3. Why Models will Rock your World
4. Tools and Techniques for the Win
THE PROBLEM
Virtual Appliances are a Tar Pit of Despond
12. I got a girlfriend with
bows in her hair
And nothing is
better than that
Is it?
Talking Heads
13. Let’s Talk About
Combinatorics!
O/S versions
X
Stack configurations
X
Application versions
X
Virtualization environments
X
Optional features
17. 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.
21. 1. What are Virtual Appliances and Models?
2. Virtual Appliances are a Tar Pit of Despond
3. Why Models will Rock your World
4. Tools and Techniques for the Win
THE SOLUTION
Why Models will Rock your World
22. Models
Adopt two basic techniques from
software development
Abstraction
&
Modularization
23. Abstraction
if ($database == MYSQL)
Modularization 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.
24. This solves the two biggest problems
with virtual appliances
Combinatoric Proliferation
Because the combinations are
represented by parameters
Generational Loss
Because scripts are self-documenting
25. Model scripts are also
Small & Dynamic
Which addresses all the other
problems with virtual appliances.
If you have the right tools.
26. 1. What are Virtual Appliances and Models?
2. Virtual Appliances are a Tar Pit of Despond
3. Why Models will Rock your World
4. Tools and Techniques for the Win
THE TOOLS
Tools and Techniques for the Win
27. Virtual Appliance
Generators
This approach only addresses the
documentation problem.
31. There is one relative
disadvantage of
model-driven
deployment.
Any ideas?
32. 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.