微软最近的发展使得大多数传统的Windows系统管理员好奇他们究竟能在历史版本的操作系统上进行多大程度上的异构操作,并且所需的IT人员也超出了原有的规模限制。Windows Docker正在袭来,在Azure云平台上运行的Linux虚拟机,即将到来的Nano Server没有用户图形界面且需要熟悉PowerShell,传统的客户端-服务器架构正在渐行渐远。
Linux和开源软件曾被认为是公司的克星,微软已经应用一些新的技术,帮助应用程序开发以及云计算能够更加吸引客户。对更高效率的追求已经促使微软在Windows Server 2016中加入了对容器的支持,预计将在2016年下半年实现。容器可提供更高的资源利用率以及更快的应用程序开发,然而这对于大多数Windows系统管理员意味着什么?容器的管理功能是否已经开发了相关必要的工具来支撑当前的工作量?
我们就Windows Docker容器对于应用虚拟化应用程序的IT管理员的意义的议题咨询了SearchWindowsServer的咨询委员会成员。
Brien Posey
容器代表着一种新的,更具效率的应用程序运行方式。因为在单一服务器上允许运行多个任务,虚拟服务器已变得更加主流,然而它们也有相当低效率的一面,因为每个虚拟机都使用自己专用的操作系统。容器通过允许OS组件来提升效率,在某些案例中,可以被多个容器化的应用程序组件共享使用。要进行这些共享无需在不同的容器独立边界间进行折衷。
起初,对于Windows管理员最大的挑战在于学习曲线(学习投入的时间与成效的关系曲线,译者注)。容器需要管理员从全新的角度去思考应用程序、操作系统以及虚拟机。如果不熟悉容器相关的技术,在进行转换时几乎会面临各种挑战。例如,管理员需要重新思考备份的办法,寻找并解决问题的方法甚至是工作负载的可扩展性。
一旦Windows商店通过了学习曲线最初的阶段,容器化所面临的最大挑战即是管理问题。即便已经存在为Windows容器准备的工具,在他们变得好用之前还需要一些时间。
一些人预测容器最终将彻底取代服务器虚拟化。我并不认为虚拟机管理程序会很快消失,但其所承担的角色可能会发生变化。相比于当前的虚拟机主机,虚拟机管理程序最终很可能被更多地运用于容器的主机。
Trevor Pott
容器对于普通Windows管理员很可能意义非凡,这要取决于微软如何为组件办法和设定许可证。
操作正确的话,容器可以成为Windows已安装应用提供新的安装方式。相对于操作系统中散乱的库和数据,应用程序所需的每一个单独的文件和注册表项,所有内容都会被限制在其自身的容器内部。安装应用程可以简单到将容器复制过来并注册就可以完成,卸载过程则是简单到反注册容器并删除其自身就可以。传统的应用程序安装往往造成其与OS之间产生千丝万缕的关系,因此容器这一特性非常重要。开发人员不遵守微软的操作规程,而微软的操作规程经常发生变化。容器化应用程序间的通信也是依靠传统网络而非操作系统的内部消息进行。这意味着其通信在应用程序层面的传递可能被防火墙拒绝、被调查,以确定是否存在安全性问题。
许多人认为使用PowerShell就足够了,但绝大多数Windows管理员为小公司工作更喜欢图形化的用户界面。除非出现比过去几年微软所使用的更好的用户界面,否则喜欢使用命令行和脚本的管理员们还是不会买账。
当前,对拥有自己的室内开发团队,开发室内应用程序的公司来说,容器是一种很方便的封装应用程序的方式。该方式对于需要大规模操作的运营团队也许很有帮助,但我尚未发现此类团队有使用微软.产品的先例,因为从经济意义上说不可行。
管理员们要重点关注的是容器并不是虚拟化的替代方案,不理解容器本质的人才会认为它是虚拟化的替代。容器是应用程序封装的方式,虚拟机管理程序则是操作系统封装的方式。他们之间是有很大差别的。
当我封装操作系统时,我会把整个环境都进行打包,包括所有的库、内核版本、配置、监控、网络配置等等。操作系统有很多灵活部件,调整它们中的一个就可能影响到应用程序的运作方式。
容器自身拥有一部分,并不是很多的网络元素。它们能将部分而非全部的与库关联的文件封装到应用程序中。它们不能封装操作系统的内核以及其他许多操作系统层面的环境变量。
如果你有10000个应用程序都需要相同配置的运行环境,就意味着你需要在相同的操作系统上运行10000个容器。然而,如果你的10000个应用程序需要运行在8种不同的环境之上,在8种不同的虚拟机上运行它们,并将你的应用程序在对应的操作系统上按类型划分到不同的容器中即可。
尽管微软做出了很多努力,但没有数据中心是完全相同的。即使不同的公司运行相同的版本的内置操作系统,其配置文件的内容也是多种多样,并且几乎所有的公司都运行着多种版本的操作系统。这说明数据中的不同环境是司空见惯并且是可预见到的。因此虚拟机管理程序并非随处可见。
然而容器允许更加容易地封装应用程序,因此站在运营团队的立场上说,理性的选择是将所有内容打包,至少是将在相关虚拟机的操作系统运行的应用程序部署到容器中。在容器中部署的应用程序可共享操作系统的配置参数。最终建成的数据中心也许未必是最具有效率的,但却是在理论上的完美效率和现实世界的易于管理中间实现平衡折衷。
本文转自d1net(转载)