Hi,

Over the Thanksgiving weekend I spend a lot of time looking at Salt and Ansible. I used the Chef and old Salt support as a starting point and got to things somewhat working, but not in a way that satisfied me. I got back to the concept of Location that caused my problems in the past and I knew I'll have to look more into. Yesterday I had a short chat with Cipi@ and he threw a very interesting idea that got me thinking all day. There are 2 proposals coming out of it, this being the first.

Brooklyn is not really a CM tool, although sometimes it's perceive as such because of its advertised features (I do get the "oh, but I could do this with <my cm tool of choice> already" answer many a time). Brooklyn could (and should) use such a CM tool under the hood. Brooklyn is more concerned with the "what" (via blueprints) not the "how". As such, unless I am mistaken, there is no concept of Package Manager, or Location where deployment is governed by a Package Manager. (The closest we got is BashCommands.installPackage(...) flavors and helpers like BashCommands.if<Cond>Else0/1.

I believe a better model would be to have something like ChefLocation, SaltLocation, AnsibleLocation, etc. layered on top of another MachineProvisioningLocation (which could be elastic or not). Note that multiple such ConfigurationManagementLocations (of the same or different kind) could coexist layered on top of MachineProvisioningLocation (such as a public cloud or byon). One or more machines at such a location would be designated as "master", managing the other Locations at that location.

The architectural rationale (imo) for such a model is that CM tools actually manage machines (Locations) and not services directly.

Related to this I think a PackageManager (and maybe a PackageManagedLocation) may be necessary. The same box could use yum (Centos et al) and npm, or pip, or gems to manage packages and they could all coexist on the same box. This starts to move on the CM tools turf, but I feel it's needed.

Thoughts?
Hadrian

Reply via email to