BT

Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ

Topics

Choose your language

InfoQ Homepage Articles Q&A with Steve Thair on Evolution and Challenges for DevOps on Windows

Q&A with Steve Thair on Evolution and Challenges for DevOps on Windows

Key Takeaways

  • The Windows server platform has evolved to support DevOps with the increasing modularity of server roles, GUI-less versions with Server Core and the rise of Powershell & DSC
  • Everyone needs to adopt solid software engineering practices in cross-functional teams, for both applications and infrastructure development - but specialized operations skills are still needed as well
  • NuGet (standardised package management) and Powershell DSC ("infrastructure as code") were two breakthrough technologies that eased DevOps practices adoption in the Windows world
  • Another breakthrough will be when containers allow packaging of "legacy apps" so they can be ported easily to more modern versions of the Windows OS or into the cloud
  • Microsoft operations people have fought inside organisations focussed on outsourcing and the "lowest possible cost" IT. This resulted in a lot of passivity and change fatigue in the Windows community

InfoQ spoke with Steve Thair, co-founder of DevOpsGuys, about the evolution, current state and challenges of DevOps on Windows.

InfoQ: Could you briefly introduce yourself, and your background on Windows operations?

Steve Thair: My name is Steve Thair and I am the CTO and co-Founder of DevOpsGuys, a UK-owned consultancy founded in 2013 focussing on helping organisations create business agility via the adoption of cloud and DevOps practices. I’ve been in the IT industry since 1990, and I started with client/server platforms in 1994, mostly focussing on Windows-based technologies. I have worked in pretty much every type of organisation, from public sector, to large global financial services organisations through to running web operations for an online job board.

InfoQ: How do you see the evolution of Windows operations since the rise of the DevOps movement?

Thair: Jeffrey Snover gave a great presentation at WinOps 2016 on the “DevOpsification of Windows Server” which talks about how the server platform itself has evolved to support DevOps i.e. the increasing modularity of server roles, GUI-less versions with Server Core and the rise of Powershell & Powershell DSC to improve administration.

Because of the new capabilities of the platform, and the changing expectations from the multi-disciplinary DevOps teams, the “sysadmin” role has had to evolve to learn more “developer” skills, like source control, test-driven development, infrastructure as code, etc.

Note I put “developer” in quotes because we need to dispel two myths: (1) these skills are not just “developer” skills anymore, everyone will need to adopt solid, foundational software engineering practices going forward but (2) this doesn’t mean everyone is becoming a “developer” in the traditional sense of being an application developer. Specialist operations skills will continue to be valuable and the role of “DevOps Engineer” or “infrastructure developer” or whatever label you give it is still going to be a core role in every team.

InfoQ: What do you consider to be the main breakthroughs in terms of tools and/or capabilities to support DevOps practices in the Windows world in the last years?

Thair: NuGet and Powershell DSC, without a doubt. NuGet to create a standardised package management framework (a concept Linux has had for years) and Powershell DSC as a foundational technology for “infrastructure as code” configuration management, that has in turn accelerated the adoption of other open source configuration management tools like Ansible, Puppet and Chef in the Windows world.

Probably worth an honourable mention here for Visual Studio Team Services (VSTS) which is unrecognisable in terms of its capabilities compared to only a few years ago, and is innovating at a furious pace.

InfoQ: Do you feel there's still an important gap in what you can do and how fast you can do it, compared to Linux-based (mostly) open sourced tooling?

Thair: Not really, for two reasons. Firstly, most of the leading open source tools now support Windows with a fairly robust feature set. The recent announcement from Hashicorp & Microsoft around Terraform support for Azure is a great example here. Secondly, as discussed earlier, the VSTS solution is getting better and better so for organisations that are still wedded to a “Microsoft-only” toolchain there is a credible alternative there now.

InfoQ: Microsoft has been actively hiring high profile engineers coming from the Linux world. What do you think that means for the evolution of Microsoft's products?

Thair: I think we’re definitely seeing more and more open-source work at Microsoft (they are now the largest contributor on GitHub, for example) so I’m pretty sure that’s not a coincidence. I think you’re also seeing more modularity and interoperability as well. For example in VSTS if you don’t want to use MS Build agents you can easily use Jenkins or TeamCity in your build pipelines and that support is right there, built into the product.

I think we’re also starting to see more adoption of the “Unix Tools Philosophy”, which was “to have small programs to accomplish a particular task instead of trying to develop large monolithic programs to do a large number of tasks. To accomplish more complex tasks, tools would simply be connected together, using pipes”. Powershell has great support for piping commands together, for example.

InfoQ: Not only Microsoft has broken out of the "Windows only" mindset, but also other Linux tool vendors (for example Puppet or Chef) have embraced Windows in order to support heterogeneous enterprise needs. Do you think we're moving towards a modus operandi where "every tool works in every environment", or is this just happening in specific niches?

Thair: Actually, I think it’s the opposite – I think the days of huge enterprise software suites that “do everything” across every OS platform is coming to an end, and there is an increasing willingness to select best-of-breed tools that do one job, and do it well, and then use API’s to integrate everything together. Almost every (serious) admin tool comes with a REST API these days, most of them integrate with AD for authentication, and have some sort of externalised logging capability so they can hook into your existing event management platform. It’s never been easier to hook things together. That said, Gartner has identified a growing niche of “DevOps Toolchain Orchestration” tools that make it even easier to stitch together your toolchain of choice.

InfoQ: And, of course, there's the whole containers movement. How do you see the evolution of containers on Windows?

Thair: Well, the “Docker for Windows” session is one of the most popular workshops at WinOps this year so I guess that partly answers the question!

I think the issue with containers, and Docker in particular, is that you need to separate the hype from the reality, and the concept from the implementation.

Tackling those in reverse order, the concept of application portability via containerisation (or some mechanism where you package up the runtime dependencies with the application code) is inevitable. William Gibson talked about this in the cyber-punk novel “Neuromancer” back in 1984 with the idea of autonomous agents that could go out into “cyberspace” to search for data, take actions, etc – this vision is only possible with some type of containerised runtime platform.

With regards to the hype about containers & Docker I think we just need to keep in mind that, at its core, containerisation is just another packaging technology, albeit one that’s packaging up the application and layers of the runtime environment with some metadata into one portable unit. Yes, there is a whole lot of technology around that to provide the isolation, the networking, the security, etc ad nauseum but the value proposition is that you can specify your runtime environment at compile time with the rest of your code. The rest is just added complexity.

And in the current state of its evolution I’d argue that it is that complexity which is a double edged sword from the operations perspective – for everything that Docker simplifies it adds another layer of complexity somewhere else in the stack.

Specifically for Windows I think the possibilities are huge on both desktop, server & cloud, particularly if they can really crack a neat way to package “legacy apps” so they can be ported easily to more modern versions of the Windows OS or into the cloud. That would be a huge step forward for organisations wanting to modernise their server estate or to accelerate their cloud adoption.

InfoQ: Do you feel there's a particular mindset associated to people working on Microsoft operations?

Thair: I think it’s more a case of a particular mindset associated with the very large, regulated, enterprise organisations that many Windows systems admins work inside, rather than the people themselves.

I think if you looked at many of the DevOps early adopters they were fast growing, cloud-native startups that predominately had a Linux & open-source ethos.

When DevOps started to become more mainstream and move into the enterprise you started to see the term “DevOps Transformation” become more common, because trying to adopt these patterns & practices in very large, global, siloed organisations with monolithic codebases that have accreted over 20+ years and a huge range of underlying platform technologies, needs a transformational approach. Add in the complexities of Governance, Risk & Compliance (GRC) and change becomes even harder.

So what you have to keep in mind is that these Microsoft-focussed Operations people have been living in this environment for many, many years, often valiantly fighting the good fight to try and do a good job inside organisations totally focussed on outsourcing and the “lowest possible cost” IT. I think this has resulted in a lot of passivity and change fatigue in the Windows community, which is one of the reasons we started the WinOps conference and meetup to try and reach out to this community and get them excited about DevOps and new ways of managing IT.

InfoQ: Wouldn't it be more inclusive to discuss Windows differences alongside people from other systems under the DevOps umbrella?

Thair: We started the WinOps “DevOps on Windows” conference to meet a specific need in the Community. At the time (2015) very few DevOps events were covering Microsoft technologies, and if they did it would be at most one presentation or open space in an entire conference. In terms of the ROI on taking the time off work to attend the event a lot of people were finding it hard to justify, and harder to get their companies to pay for it. Things have gotten a little better now, particularly because the support for Windows technologies has gotten a lot better among the major DevOps tool vendors in the last 2 years and they are keen to target the enterprise clients who use Windows. Still, even at the most recent DevOpsDays 2017 London there wasn’t really a lot of Windows-related sessions.

Microsoft has been increasingly supportive of WinOps, hence we have some great Microsoft speakers this year including Jeffrey Snover, Sam Guckenheimer and Steve Murawski.

That said, we still encourage WinOps members to attend the other DevOps meetups, DevOpsDays, DevOps Enterprise Summit, etc if they can justify it, because the wider your DevOps perspective is the more effective you’ll be.

InfoQ: Which talks/topics are you looking forward the most in this year's edition of WinOps?

Thair: All of them? I’m probably looking forward to the case study track most of all, where we have ASOS, Facebook, Callcredit, Hotelplan and Coolblue talking about their DevOps on Windows transformations, as well as the stories from Ticketmaster and Microsoft in other tracks. Plus this year we have a dedicated database DevOps track that was specifically requested by the community as people are finding their database DevOps adoption is lagging behind other parts of their platform. You can see the full WinOps 2017 agenda here.

About the Interviewee

Steve Thair co-founded DevOpsGuys with James Smith in 2013 after a 20+ year career in IT infrastructure and operations. DevOpsGuys’ mission is to help organisations simplify the management of their online applications by leveraging DevOps practices to improve the delivery, performance and time-to-market of the entire software development pipeline.

Rate this Article

Adoption
Style

BT