当前位置: 首页 > news >正文

Steve Thair谈DevOps on Windows的演变与面临的挑战

\

本文要点

\\
  • 借助服务器角色的日益模块化、没有GUI的Server Core版本以及Powershell DSC的出现,几经演变,Windows服务器平台已经支持DevOps;\\t
  • 每个人都需要采用跨职能团队统一的软件工程方法,不管是应用程序开发,还是基础设施开发——但也需要专业的运维技能;\\t
  • NuGet(标准化包管理)和Powershell DSC是两项突破性技术,简化了DevOps实践在Windows领域的推广应用;\\t
  • 当容器允许打包“遗留应用”,让它们很容易移植到更现代的Windows OS版本或云上,另一项突破将会出现;\\t
  • 微软系统的运维人员一直工作在以外包和“尽可能降低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\u0026amp;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\u0026amp;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谈到了这一点,该书的思想是自由主体可以进入“网络空间”搜集数据,采取行动,等等——只有借助某种类型的容器化运行时平台,这种构想才有可能。

\\

至于有关容器\u0026amp;Docker的宣传,我认为,我们只需要记住,本质上讲,容器化只是另外一种打包技术,虽然它将应用程序和运行时环境层及一些元数据打包成一个可移植的单元。是的,围绕这一点,有一大堆技术提供隔离、网络、安全等老生常谈的特性,但是,其价值主张是,你可以在编译时使用剩余的代码指定运行时环境。只是,这剩余的代码增加了复杂度。

\\

就容器发展的现状而言,我认为,那种复杂度从运维角度来说是把双刃剑——对于它简化的一切东西,Docker都在栈中其他某个地方增加了一层复杂性。

\\

具体到Windows,我认为,不管是在桌面上,还是在服务器端\u0026amp;云上,容器都有巨大的潜力,尤其是如果它真得找到一种打包“遗留应用”的简单方法,让它们轻松地移植到更现代的Windows OS版本或云上。对于希望实现服务器资产现代化或者加速云应用的组织而言,这会是一个巨大的进步。

\
\\

InfoQ:您认为从事微软系统运维的人会有一种特殊的思维模式吗?

\\
\

Thair:我觉得这种特殊的思维模式更多的是和那些受管制的大型企业组织有关,而不是人本身,这些组织内部有许多Windows系统管理工作。

\\

我认为,如果你看一下DevOps的早期采用者就会发现,那些发展迅速的云原生创业公司秉承的主要是Linux\u0026amp;开源精神。

\\

当DevOps变得更加主流进入企业,术语“DevOps转型”变得越来越常见,因为在全球性的大型筒仓组织里有20多年积累起来的单体代码库和种类繁多的底层平台技术,增加了治理及风险控制(GRC)的复杂度和变更的难度,所以要采用这些模式\u0026amp;实践需要一种转型方法。

\\

所以,我们必须谨记,专注于微软系统运维的人已经在这样的环境里工作了许多许多年,在一个把重心全部放在外包和“尽可能减少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大会的全部议程。

\
\\

关于受访者

\\

928338e2e4875c449f354c5ac53096ef.jpg2013年,Steve Thair 和James Smith 一起创立了DevOpsGuys,此前他已经有20多年的IT基础设施及运维经验。 DevOpsGuys的使命是利用DevOps实践从整体上改善软件开发的交付、性能,缩短上市时间,帮助组织简化在线应用程序的管理。

\\

查看英文原文:Q\u0026amp;A with Steve Thair on Evolution and Challenges for DevOps on Windows

相关文章:

  • [MFC] MFC 获取指定窗口截图(大小可调)
  • 年末裁员事件背后的启示录(2)
  • 谈谈基于Kerberos的Windows Network Authentication
  • 真人拳皇项目第三次Scrum总结——史经浩
  • pietty
  • 人性
  • 并非都完美,笔记本8大致命缺陷曝光
  • SDO_Geometry说明
  • GDI对象导致内存泄露
  • CCNA 笔记整理之IP路由(持续更新)
  • 一个帖子掌握android所有控件、ProgressBar 、Android 动画效果、SQLite、四大组件、Android多媒体(转...
  • Android系统模拟器绘制实现概述
  • 保留网页中空链接样式的几种写法(转)
  • DockOne微信分享(一零七):SRE工程实践——基于时间序列存储数据的报警
  • Blend中行为与Command
  • “寒冬”下的金三银四跳槽季来了,帮你客观分析一下局面
  • 【知识碎片】第三方登录弹窗效果
  • 2018以太坊智能合约编程语言solidity的最佳IDEs
  • Joomla 2.x, 3.x useful code cheatsheet
  • OpenStack安装流程(juno版)- 添加网络服务(neutron)- controller节点
  • php面试题 汇集2
  • Selenium实战教程系列(二)---元素定位
  • SOFAMosn配置模型
  • springboot_database项目介绍
  • Tornado学习笔记(1)
  • vue-cli3搭建项目
  • 测试开发系类之接口自动化测试
  • 从setTimeout-setInterval看JS线程
  • 配置 PM2 实现代码自动发布
  • 三栏布局总结
  • ​ 全球云科技基础设施:亚马逊云科技的海外服务器网络如何演进
  • #HarmonyOS:Web组件的使用
  • #我与Java虚拟机的故事#连载06:收获颇多的经典之作
  • (1)(1.19) TeraRanger One/EVO测距仪
  • (DFS + 剪枝)【洛谷P1731】 [NOI1999] 生日蛋糕
  • (M)unity2D敌人的创建、人物属性设置,遇敌掉血
  • (zt)最盛行的警世狂言(爆笑)
  • (附表设计)不是我吹!超级全面的权限系统设计方案面世了
  • (附源码)计算机毕业设计SSM保险客户管理系统
  • (紀錄)[ASP.NET MVC][jQuery]-2 純手工打造屬於自己的 jQuery GridView (含完整程式碼下載)...
  • (算法)N皇后问题
  • (一)eclipse Dynamic web project 工程目录以及文件路径问题
  • (转)用.Net的File控件上传文件的解决方案
  • .a文件和.so文件
  • .NET CORE使用Redis分布式锁续命(续期)问题
  • .NET Core中的去虚
  • .Net 高效开发之不可错过的实用工具
  • .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换
  • .NET开源的一个小而快并且功能强大的 Windows 动态桌面软件 - DreamScene2
  • .secret勒索病毒数据恢复|金蝶、用友、管家婆、OA、速达、ERP等软件数据库恢复
  • [.NET]桃源网络硬盘 v7.4
  • [ABP实战开源项目]---ABP实时服务-通知系统.发布模式
  • [Android]Android开发入门之HelloWorld
  • [BUUCTF 2018]Online Tool(特详解)
  • [C++] sqlite3_get_table 的使用