"Fleecing" is a core part of ManageIQ - it allows users to pre-populate dashboards with information about hypervisors, its guests, and applications running on those guests. It allows ManageIQ to do auto-discovery of running services so that admins can spend more time doing what they need to do.
For more on ManageIQ, see http://manageiq.org/
3. TTeerrmmss aanndd DDeeffiinniittiioonnss
Smart state analysis
noun (pl. smart state analyses)
A boring marketing term, referring to the process of extracting
guest information from a virtual machine – usually, without
requiring agentry, or for the VM to be running.
Verb (?smart state analyze? - ?perform Smart state analysis?)
The execution of said process.
ORIGIN early 21st cent.: some marketing guy.
See also: fleece
4. TTeerrmmss aanndd DDeeffiinniittiioonnss
fleece
noun
The woolly covering of a sheep or goat.
Verb
1 the removal of said woolly covering.
2 informal obtain a great deal of money or property from
(someone), typically through nefarious means.
DERIVATIVES
Very concise and simple: fleece, fleecing, fleeced, fleecer
6. aanndd,, ttoo ppaarraapphhrraassee JJuulliiuuss
CCeeaassaarr::
“I came,
I saw,
I fleeced”
Semper infigo lingua mortua est
“Veni,
vidi,
Velleris”
(Things said, are)
always more impressive in a dead language
7. TTeerrmmss aanndd DDeeffiinniittiioonnss
......sseerriioouussllyy
● Appliance
– The ManageIQ appliance. The virtual
machine through which the ManageIQ
application is deployed and executed.
● Provider
– The type, brand, or flavor of virtual
environment. Ex: RHEV, VMware,
OpenStack, etc.
8. HHiissttoorryy
First released in 2007
● Initially supported:
– Windows: NTFS, Fat32
– Linux: LVM2, EXT3
● Extended to support:
– Windows: LDM
– Linux: EXT4, XFS
9. DDeessiiggnn CCoonnssiiddeerraattiioonnss aanndd
RReeqquuiirreemmeennttss
Flexible virtual disk access
● Access provided through extensible mechanism.
● Optimize access method for given providers.
● Supports provider-specific API access
● Eliminates the need for file-level access.
● Enables remote fleecing.
● Affords greater flexibility in appliance placement.
– Proximity to storage need not be a factor.
10. DDeessiiggnn CCoonnssiiddeerraattiioonnss aanndd
RReeqquuiirreemmeennttss
Lightweight
● Each fleece is performed in a single Ruby thread.
● Consumes a minimum of appliance resources.
● Imposes minimum impact on other appliance processes.
● Enables parallel fleecing of multiple VMs on the same
appliance.
● Affords more flexibility in proxy deployment.
11. DDeessiiggnn CCoonnssiiddeerraattiioonnss aanndd
RReeqquuiirreemmeennttss
Minimal Dependancies
● Only requires Ruby and requisite provider libraries.
● Does not encumber appliance configuration with
additional dependancies.
● Enables the creation of self-contained proxy
executables.
● Facilitates the deployment of proxies to foreign
environments.
12. DDeessiiggnn CCoonnssiiddeerraattiioonnss aanndd
RReeqquuiirreemmeennttss
OS and Environment Agnostic
● Written almost entirely in pure Ruby.
● Will run in most environments that support Ruby.
● Can run in Windows and Linux environments.
● Facilitates the development of proxies for
deployment to foreign environments.
15. EExxtteerrnnaall IInntteerrffaacceess
Virtual Disk Format
VM
Metadata
Virtual disk
Images
Provider
Metadata
Access
Virtual Disk
Access
Methods
● VMware: VIM (SOAP)
●RHEV: RHEVM API (REST)
● Amazon: AWS (REST)
●OpenStack: Fog (REST)
16. EExxtteerrnnaall IInntteerrffaacceess
Virtual Disk Format
VM
Metadata
Virtual disk
Images
Provider
Metadata
Access
Virtual Disk
Access
Methods
● Direct file access.
● Access via proxy.
● Raw device access.
● Access via API
(VixDIskLib, AWS/EBS, Glance, etc.)
17. EExxtteerrnnaall IInntteerrffaacceess
Virtual Disk Format
VM
Metadata
Virtual disk
Images
Provider
Metadata
Access
Virtual Disk
Access
Methods
● RAW
●QCOW, QCOW2
●VMware: Sparse, COWD
●Microsoft: Fixed, Dynamic, Diff
● Etc.
Virtual Disk
Format
18. Virtual Disk Format
XML/Sync
MiqFS
EExxtteerrnnaall IInntteerrffaacceess
● Implements a subset of File/Dir functionality.
Disk
● Cannot be used by GEMs that expect File.
Partition
● Clients must be MiqFS specific.
LVM
● Forces re-implementation of existing code.
FS
MIQExtract
Virtual Disk
Access
Methods
OS
19. Virtual Disk Format
XML/Sync
MiqFS
EExxtteerrnnaall IInntteerrffaacceess
● Berkeley DB through: MiqBerkeleyDB
Disk
● Rpm Packages through: MiqRpmPackages
Partition
● Sqlite3 through: MiqSqlite3DB
LVM
● Conary Packages through: MiqConaryPackages
FS
MIQExtract
Virtual Disk
Access
Methods
OS
20. IInntteerrffaaccee LLaayyeerrss
ManageIQ & Provider
Specific ManageIQ Fleece Request
Provider
Metadata
Access
MIQExtract
VM
Metadata
Vdisk Contents
Virtual Disk
Access
Methods
MiqFS Data Drilling
Sync VMDB
Provider
Specific
Common
ManageIQ
Specific
21. CCllaasssseess bbyy LLaayyeerr
ManageIQ & Provider
Specific
Provider
Specific
Common
ManageIQ
Specific
ExtManagementSystem
Subclasses
VmOrTemplate
Subclasses
MiqVm
Subclasses
MiqVm VirtFS
MIQExtract
Provider
Libraries
22. MMiiqqFFSS →→ VViirrttFFSS
● General Pseudo FS support
● Integrates through File & Dir
● Provides mount and chroot
semantics
● No need for specialized clients –
will work with existing GEMs and
scripts
23. VViirrttFFSS –– AAddddiittiioonnaall BBeenneeffiittss
● Compliance scripts can access
VM image directly.
● No need to retrieve files and save
in DB.
● Native scripts should work in
ManageIQ context.
24. VViirrttFFSS:: BBeeyyoonndd FFlleeeecciinngg
● Database/Datastore backed FS
● Amazon S3 and Swift pseudo FS
● Sparse – overlay FS
● Cassette based FS – for testing
● Ruby files loaded from pseudo FS
● Self contained Ruby executables
25. GGEEMM RReellaattiioonnsshhiippss
MiqVm*
Types
MiqVm*
VirtFs
Provider
Libraries
Filesystem
Types
uses
uses
plugs into
based on
Ruby Scripts
export/mount
* renamed appropriately
**Smart state analysis
-Official term
-Long and cumbersome term
-Actual selection in menu
-Clumsy to use in docs and email
-What does this cumbersome term mean?
**noun (pl. smart state...
-Use as verb even more clumsy
**Verb (?smart state...
-If so hard to use, how did it originate?
**ORIGIN early 21st...
-Best we can tell...
**See also: fleece
**fleece
-Original internal/development term.
-Fell out of favor due to bad connotations.
-Let's see if we can determine why.
**noun...
-Nothing too bad there...
-What about as a verb...
**Verb 1...
-Nothing too bad there either.
-What else...
**Verb 2...
-Ah, that mist be it.
-Any def with “nefarious” can't be good from a marketing perspecitve.
**DERIVATIVES...
-But its usage is so concise and simple, it would be great if we could use this term again, even if only informally.
- the term “fleece” didn't always have this bad connotation.
- In fact, here's a quote from...
** Quote here...
-See, fleecing is good, skinning is bad
-Now that we're an opensource project, I'm happy to see that the term “fleece” seems to be back in favor.
-For those of you who have watched the ManageIQ podcasts, you've seen fleece used on the intro and exit screens.
**Quote 1 (English)
-Actually, the podcast uses “we” instead of “I”, but I've changed to so it would translate more cleanly into Latin.
**Quote 2 (Latin)
-Of course I only translated this into Latin because...
**Quote 3 (English)
-Or, more impressively...
**Quote 4 (Latin)