More than this
I had many interesting discussions in the last few days. However some of them gave me the impression that i should explain one thing. I want to use one example for it: A customer asked me while having some coffee at the Tech Days: “Zones? Isn’t that just jails like in FreeBSD?”. It’s that old question, i get since the introduction of Zones. Just to make it clear: It’s not a text in regard of FreeBSD. It’s a text about the tendency of people just to pick a single feature and to say “Isn’t that feature like …”. But it isn’t that easy. I don’t want to discuss about that question, if a feature is really like another. However i want to introduce a different tought into this:”A feature is not only a feature when you have an overarching architecture and an overarching idea where the architecture is heading to.It’s an enabler. And a feature is often just the next question”. A feature is just the next question? Yes, that right. Because every feature you introduce is just the starting point for the next feature. When we introduced Zones years ago, we had a lot open questions not much later: How do you patch those zones? Especially when you have dozens of them? How to delegate administration? How do you install zones in a fast manner? How to implement bootenvironments, for the OS as well as the Zones? How do you reduce hard-to-find problems of an architecture that shares a kernel, but has several copied userlands? Questions, that have perhaps no technical background, but resulting in technical changes because of operational requirements. Perhaps, at the beginning Jails and Zones may have been similar concepts. But when you look today into the construct, Zones is a lot more. Zones is a large interdepending web of features inside of zones and outsides of zones to enable customers to work with them as efficient as possible. However: Some of the challenges are just solvable when you have an overarching architecture and the power to decide on the architecture. And this is what i want to say with “a feature is not only a feature”. Sometimes it’s an enabler for a different feature. For example you have to be capable to say “ZFS is the only filesystem for booting and keeping zone roots” then you have a foundation you can use to implement other features. You can take all the mechanisms of ZFS for example for granted to base other features on it. An example from the automobile sector? Ever asked why the automatic parking for a VW Golf is that cheap? Well, it just reuses an electro motor that it’s there for power steering. You just need some software and a computer to give directly orders to this already existing power steering motor? When you allow all engineering teams to use it’s own power steering implementing automatic parking in all vehicles is much more difficult. Or in Solaris: Fast zone cloning? You need snapshots for it. So go to the ZFS people. Exclusive IP-Stack for a zone? You need a revamped IP stack for it. Ask the Crossbow people. Many things are severely depending on each other? Boot environments like in Solaris 11? Just feasible with a filesystem capable to do snapshots. IPS was invented to a part to have a packaging format that is much more aware of a concept like zones than just post/pre install scripts where zones was just an afterthought. Bandwidth Management? The Crossbow people again. Resource Management for your zones? You could use the foundation already laid out by the people with the Solaris Resource Manager years ago. And there i’m at the point where i’m saying it doesn’t suffice to have a feature, for example like Jails. At the introduction of a feature, a new journey just begins to solve all implication of a new feature. And you have to go all the way to make it really good.