本文要点
- 借助服务器角色的日益模块化、没有 GUI 的 Server Core 版本以及 Powershell DSC 的出现,几经演变,Windows 服务器平台已经支持 DevOps;
- 每个人都需要采用跨职能团队统一的软件工程方法,不管是应用程序开发,还是基础设施开发——但也需要专业的运维技能;
- NuGet(标准化包管理)和 Powershell DSC 是两项突破性技术,简化了 DevOps 实践在 Windows 领域的推广应用;
- 当容器允许打包“遗留应用”,让它们很容易移植到更现代的 Windows OS 版本或云上,另一项突破将会出现;
- 微软系统的运维人员一直工作在以外包和“尽可能降低 IT 成本”为重心的组织里。这导致 Windows 社区滋生了严重的消极情绪和变革疲劳。
InfoQ 采访了 DevOpsGuys 的联合创始人 Steve Thair,了解 DevOps on Windows 的演变、现状和面临的挑战。
InfoQ:您能简单介绍下自己以及您的 Windows 运维背景吗?
Steve Thair:我叫 Steve Thair,是 DevOpsGuys 的 CTO 兼联合创始人。DevOpsGuys 是英国的一家咨询公司,成立于 2013 年,主要是帮助组织采用云和 DevOps 实践,实现业务敏捷性。从 1990 年至今,我一直从事 IT 行业,1994 年,我开始做客户端 / 服务器平台,主要侧重于基于 Windows 的技术。我在各种类型的组织工作过,从公共部门到全球性的大型金融服务组织,再到在线招聘网站的运维。
InfoQ:从 DevOps 运动出现至今,Windows 运维发生了怎样地演变?
Thair:在 WinOps 2016 大会上,Jeffrey Snover 做过一场题为“ Windows 服务器 DevOps 化”的精彩演讲。他介绍了服务器平台如何演变并实现 DevOps 支持,从而改善管理,例如,服务器角色的日益模块化、没有 GUI 的 Server Core 版本以及 Powershell & Powershell DSC 的出现。
由于平台提供了新功能,而跨学科的 DevOps 团队的预期不断变化,所以“系统管理员”角色不得不进化发展,学习更多“开发者”技能,如源代码控制、测试驱动开发、基础设施即代码等。
注意,我把“开发者”加了引号,因为我们需要澄清两个观点:(1)这些技能不再只是“开发者”的技能,将来,每个人都需要采用同样的软件工程基本实践,但(2)这并不是说每个人都要成为传统意义上的应用程序“开发者”。专业的运维技能仍然有价值,“DevOps 工程师”,或者“基础设施开发者”,不管标签是什么,在任何团队中,这个角色仍然是核心。
InfoQ:过去这些年里,在 Windows 领域,就支持 DevOps 的工具和 / 或功能而言,您认为主要的突破是什么?
Thair:毫无疑问是 NuGet 和 Powershell DSC。NuGet 是一个标准化的包管理框架(一个在 Linux 领域存在多年的概念),Powershell DSC 是配置管理“基础设施即代码”的基本技术,它还加速了其他开源配置管理工具在 Windows 领域的应用,如 Ansible、Puppet 和 Chef。
这里,或许 Visual Studio Team Services(VSTS)特别值得一提,仅仅和几年前相比,其功能也已不可同日而语,并且它还在以最快地速度创新发展。
InfoQ:您认为,在能做什么和多快能做到方面,比(大多数)基于 Linux 的开源工具还有很大的差距吗?
Thair:不见得,有两个原因。首先,大多数一流的开源工具现在都支持 Windows,并提供了一系列相当健壮的功能。Hashicorp&Microsoft 最近宣布 Terraform 支持 Azure 就是一个很好的例子。其次,正如之前讨论的,VSTS 解决方案变得越来越好,对于那些执着于“仅限微软”工具链的组织而言,他们有了一个可信赖的替代方案。
InfoQ:微软一直在积极招募 Linux 领域的知名工程师。您认为,那对微软产品的演变有什么意义?
Thair:我们看到,微软在开源领域所做的工作越来越多(例如,他们现在是 GitHub 上最大的贡献者),我认为这不是巧合。我想,你也看到了更多的模块化和互操作。例如,在VSTS 中,如果你不想使用 MS Build 代理,那么你可以在构建通道中使用 Jenkins 或 TeamCity ,这很容易,因为产品内置了这种支持。
我想,我们也开始看到,“ Unix 工具理念”的应用越来越多,就是“让小段程序完成特定的工作,而不是开发大型的单体程序完成大量的任务。要完成更复杂的任务,只需要使用管道将这些工具串联在一起”。例如,Powershell 就可以很好地支持命令管道化。
InfoQ:不只是微软放弃了"仅限 Windows"的理念,为了满足企业异构的需求,其他 Linux 工具提供商(如 Puppet 或 Chef)也提供 Windows 支持。您觉得我们是在向着“每个工具都可以在所有环境中工作”的工作方式迈进吗?还是说这只发生在特定的小众市场?
Thair:实际上,我认为正相反——我觉得,那些“什么都可以做”、什么 OS 平台上都可以运行的企业级软件套件将成为历史,人们越来越愿意选择可以很好地完成一项工作的单项优势工具,然后使用 API 将它们整合到一起。现如今,几乎每一种(重要的)管理工具都提供了 REST API,它们大多数都集成了 AD 用于身份验证,而且还会暴露某种日志功能,那样它们就可以接入已有的事件管理平台。将各种东西钩连在一起从来没有这么简单过。尽管如此,Gartner 发现了一个正在成长的“DevOps 工具链编排”工具小众市场,此类工具可以进一步简化工具链的整合。
InfoQ:当然,还有整个的容器运动。您如何看待 Windows 上容器的演变?
Thair:嗯,在今年的 WinOps 大会上,“Docker for Windows”环节是最受欢迎的研讨会之一,我想这可以部分地回答这个问题!
我认为,容器的问题,尤其是 Docker,是你需要将宣传与现实分开,概念与实现分开。
把顺序颠倒过来,通过容器化实现应用程序可移植性的概念(或者某种可以将应用程序代码和运行时依赖打包在一起的机制)就极令人信服了。在 1984 年发表的庞克小说《神经漫游者》中,William Gibson 谈到了这一点,该书的思想是自由主体可以进入“网络空间”搜集数据,采取行动,等等——只有借助某种类型的容器化运行时平台,这种构想才有可能。
至于有关容器 &Docker 的宣传,我认为,我们只需要记住,本质上讲,容器化只是另外一种打包技术,虽然它将应用程序和运行时环境层及一些元数据打包成一个可移植的单元。是的,围绕这一点,有一大堆技术提供隔离、网络、安全等老生常谈的特性,但是,其价值主张是,你可以在编译时使用剩余的代码指定运行时环境。只是,这剩余的代码增加了复杂度。
就容器发展的现状而言,我认为,那种复杂度从运维角度来说是把双刃剑——对于它简化的一切东西,Docker 都在栈中其他某个地方增加了一层复杂性。
具体到 Windows,我认为,不管是在桌面上,还是在服务器端 & 云上,容器都有巨大的潜力,尤其是如果它真得找到一种打包“遗留应用”的简单方法,让它们轻松地移植到更现代的 Windows OS 版本或云上。对于希望实现服务器资产现代化或者加速云应用的组织而言,这会是一个巨大的进步。
InfoQ:您认为从事微软系统运维的人会有一种特殊的思维模式吗?
Thair:我觉得这种特殊的思维模式更多的是和那些受管制的大型企业组织有关,而不是人本身,这些组织内部有许多 Windows 系统管理工作。
我认为,如果你看一下 DevOps 的早期采用者就会发现,那些发展迅速的云原生创业公司秉承的主要是 Linux& 开源精神。
当 DevOps 变得更加主流进入企业,术语“DevOps 转型”变得越来越常见,因为在全球性的大型筒仓组织里有 20 多年积累起来的单体代码库和种类繁多的底层平台技术,增加了治理及风险控制(GRC)的复杂度和变更的难度,所以要采用这些模式 & 实践需要一种转型方法。
所以,我们必须谨记,专注于微软系统运维的人已经在这样的环境里工作了许多许多年,在一个把重心全部放在外包和“尽可能减少 IT 成本”的组织里,为了完成好工作英勇奋战,自强不息。我认为,这导致 Windows 社区滋生了严重的消极情绪和变革疲劳,这就是我们创办 WinOps 大会及聚会的其中一个原因,我们设法深入社区,激发他们对于 DevOps 和新的 IT 管理方法的热情。
InfoQ:与来自 DevOps 体系下其他操作系统的人讨论 Windows 的不同岂不是显得更包容?
Thair:我们创办 WinOps “DevOps on Windows”大会是为了满足社区的一个特殊需求。那时(2015 年),很少有 DevOps 活动会提及微软技术,即使提到了,在整场大会中顶多也就一次演讲或是在开放空间里。至于拿出工作时间参加活动的回报,许多人都发现难以证明,就更难让他们的公司支付费用。现在情况好一些了,因为在过去两年中,主要的 DevOps 工具提供商提供了更好的 Windows 技术支持,他们希望吸引使用 Windows 的企业客户。然而,即使是在最近举办的 DevOpsDays 2017 伦敦大会上,和 Windows 有关的环节也不是很多。
微软对 WinOps 的支持力度越来越大,因此,今年的大会上有几位来自微软的优秀演讲者,包括 Jeffrey Snover、Sam Guckenheimer 和 Steve Murawski。
也就是说,只要符合条件,我们还会鼓励 WinOps 会员参加其他的 DevOps 聚会、DevOpsDays、DevOps 企业峰会等,因为你的 DevOps 视野越宽阔,就越有效率。
InfoQ:对于今年的 WinOps 大会,您最期待的演讲 / 主题是什么?
Thair:所有的吗?我最期待的也许是案例研究专场,ASOS、Facebook、Callcredit、Hotelplan 和 Coolblue 将介绍他们在 Windows 转型中的 DevOps 实践,在其他专场中,Ticketmaster 和微软也会带来案例介绍。此外,今年会有一个专门的数据库 DevOps 专场,这是应社区请求而专门设置的,因为人们发现,数据库 DevOps 应用落后于平台的其他部分。这里有 WinOps 2017 大会的全部议程。
关于受访者
2013 年, Steve Thair 和 James Smith 一起创立了 DevOpsGuys,此前他已经有 20 多年的 IT 基础设施及运维经验。 DevOpsGuys 的使命是利用 DevOps 实践从整体上改善软件开发的交付、性能,缩短上市时间,帮助组织简化在线应用程序的管理。
查看英文原文: Q&A with Steve Thair on Evolution and Challenges for DevOps on Windows
评论