No "Easy" Button for Configuration Management

A discussion in one of my Slack channels caught my eye today around someone’s reflections in a github repo regarding DSC. The posted comment that introduced the link was titled “DSC from a newbie perspective”, and I thought “Oh? I’m a newbie too, I wonder if we’re thinking the same things.”

A little history is probably needed on my “newbie” status with DSC. I went to the Tech Mentor conference in March, where I spent most of my time in sessions learning DSC. I was hooked, but knew I needed much more in-depth training to make it something that would be useful to me in the real world. So I set a goal of learning DSC in depth about 4 months, so that I could attend DevOps Camp in August, and be able to converse intelligently about DSC, Configuration Management, and DevOps in general. And with some help from friend and mentor Jason Helmick along with blood, sweat, tears, and 10-15 extra hours a week spent on just DSC, I made it to DevOps Camp and managed to follow along and join in the discussions.

I’ve got about 6 months of DSC experience under my belt at this point, but I still consider myself a “newbie” in the grand scheme, so I fell hook, line, and sinker to go check out the comments here:

https://github.com/18F/azure-sandbox/blob/master/dsc/README-dsc.md

I’m not an expert in Chef, so I won’t comment on the comparisons between the two. But while two weeks may be long enough to do a quick comparison between a product you know something about (in his case, Chef) and a product you are vetting against it (DSC), it isn’t nearly enough time to come to a conclusion like “DSC is too immature to even consider as a stopgap”.

Reading on, the reasons for liking/hating DSC seem to be the reasons for hating/liking Chef. Not wanting others to need to deal with learning Ruby was mentioned as a plus for DSC.  But it also seems like the poster wanted or expected DSC to be easy so that folks didn’t have to learn Chef, and was disappointed that it wasn’t.

There’s no “easy” button - if there really were an easy button for automation and configuration management, we’d have all the resources ever wanted neatly packaged and consumable, but the building of the platform and the tooling surrounding the platform takes time, people, and effort. So build and submit a High Quality Resource Module, or fork and fix some of the “awful error tracking”.  Some of these comments and feedback are really quite legit – but the points that need to be made and worked on are lost under the lamenting that DSC doesn’t have an Easy button.

About the Author

Missy Januszko

Melissa (Missy) Januszko is a 20-year veteran Enterprise Architect and automation expert who specializes in private cloud hosting infrastructure and Active Directory. I am co-author of "The DSC Book" with Don Jones. I'm also a Crossfit fanatic. Follow me on Twitter! @majst32 .

5 Comments

  1. When anything in IT becomes "easy" the it moves from the realm of "Information Technology" to "Administrative Assistant" When compared to not having configuration management, any configuration management makes life easy. But you have to put in the work upfront.

    I have found that most people looking for the easy solution are the ones that don't have a strong passion for their craft. So when Jeffery Snover talks about how PowerShell made IT fun again, they think he's crazy.

  2. Being humble is one thing but calling considering yourself a newbie is doing harm to the real newbies. Like me. If you think you're a newbie with all that training, practice, and guidance from someone like Jason Helmick, I should just stop now. I don't stand a chance.

    • Point well taken. I do have a tendency to look at "how far I feel I still have to go" and not "how far I've come". It wasn't too long ago that I was in your shoes and although it's not easy, it can be done, and there's always more to learn after that. Don't give up, and remember that there is an awesome Powershell community out there willing to help.

  3. DSC is platform, it's not a tool. Chef on the other hand is both. You still can user DSC within Chef since it provides 2 resources working with DSC (dsc_resource and dsc_script). If you use dsc_resource then you never need to touch Ruby at all, you write all your scripts as dsc_resources and just use those within chef. I hope Microsoft would come up with some sort of configuration management tool built around DSC but they did not so far for some reason. Chef provides excellent tutorials on it's website to learn tool. I would say if you dedicate about 2 days to learn Chef you will understand how much advantage do you get if you went Chef+DSC vs pure DSC installation.