With dsc headed for it’s third major rewrite in nearly as many years, is it something that you think will turn into a fully fleshed out and complete product? Or will it just end up as an interesting footnote that never found its place? Or something different altogether?
I hope you’ll ask a question, too! Visit here for info.
I’ll argue the “major rewrite” that was v4 to v5; it wasn’t that major.
But, I have the same worry, at this point. I’m waiting to see how the cross-platform DSC shapes up, but I think Microsoft has made some baseline architecture decisions that hamper DSC. I think the LCM is too “smart” and has had to much invested in it, versus a smarter, centralized “server” component instead. I think they’ve added complexity – using “DependsOn” instead of a top-to-bottom execution – for no reason (the intent with DependsOn was to support “eventual” multi-threading, which we’ve yet to see and which will be problematic on its own if we do). I think the “punt” on a Pull Server – only providing a “sample” with the product but never denoting it as such or providing source code, and pushing people to Azure for the “real” solution – was a terrible misstep.
Worse, it’s like literally nobody else in Microsoft has bought into it in any significant way. SQL Server should have a much richer set of resources. SCCM should be using DSC under the hood for its Configuration Auditing feature. But the entire rest of Microsoft has basically ignored DSC. It’s like the company doesn’t even want to be in the “configuration management” game, and are just ceding the space to Puppet/Chef/Ansible/Salt/Etc. I think the company will regret that one day, but I think it’s where we are right now.
I think Snover had the right idea and basically the right architecture. DSC was the fourth and final item in the “Monad Manifesto,” so he’d been thinking about this since the mid-2000s at least. The current rewrite (which is indeed a rewrite) is a good move: they’re moving away from using CIM to “run” the LCM, rewriting the whole thing in C++ instead of .NET, etc. All good. So I’m holding out some hope; this’ll also get us the DSC code in open source, which we’ve never had before, and I think a lot of its annoying bits can be fixed or mitigated a lot more easily that way.
But it’s the stark lack of tooling, with approximately zero third parties jumping in to provide solutions, that’s a little scary.
So I don’t know. The jury is out to lunch, but they’re very much in session, and we’ll have to see what happens next before I feel more confident making a prediction. Microsoft could still pull it off, if they try hard enough. I think.