Linux 和 Microsoft Windows 在企业应用中的比较
长期以来,Linux 一直处于企业计算的边缘。无论是对开源技术的怀疑、偏爱付费支持而不是社区支持,还是永无止境的发行版分支,许多企业都对 Linux 敬而远之。近年来,商业 Linux 供应商一直在努力改进他们的发行版,希望在企业领域建立桥头堡。这些成熟的发行版已经使过去的许多批评变得毫无意义,再加上虚拟化等新兴技术带来的新机遇,Linux 有望重新确立自己作为企业级操作系统的地位。然而,如果这些供应商要取得成功,他们必须挑战企业领域的巨头:微软。
在本文中,我将讨论企业中几个非常适合采用或扩展 Linux 的领域。在每种情况下,我都会考察微软在该领域的现有产品,然后重点介绍一个基于 Linux 的真正竞争者。这样做,我并非打算进行跑分并得出毫不意外的有偏见的结论(毕竟这是 Linux Journal)。我只是想开启对话,以展示 Linux 固有的商业价值,并壮大整个社区。
在继续之前,有几点需要说明。为了本文的目的,我模糊了服务器和桌面平台之间的界限,以使讨论保持在战略层面。我考察的主题可能会涉及一个或两个平台的各个方面。我还将本文中使用的发行版限制为那些提供付费支持的发行版,因为它们往往以企业市场为目标。除了 BIND 和 DHCP 之外,我避免了任何技术/软件包,例如 LAMP、Samba、Sendmail 或任何我认为已经被比较得太多次的标志性 Linux 应用程序。我想带来一些新的东西。最后,本文不涉及应用程序服务或应用程序兼容性这个棘手的问题。我们都知道,绝大多数商业应用程序都是为 Microsoft 平台开发的。Wine 和/或 Mono 不是答案。开发软件来模拟另一家供应商的代码总是会让 Linux 用户落后于他们的 Microsoft 同行。然而,Web 应用程序的快速增长、虚拟化(应用程序和桌面)的进步以及云计算的到来可能会在不久的将来改变这种动态,因为应用程序将与桌面分离。
自 Vista 以来,用户帐户控制 (UAC) 一直是 Microsoft 操作系统的重要组成部分。UAC 通过要求服务和程序通过安全确认提示以正确的权限运行来保护操作系统。它的目的是限制以不必要的管理权限运行的程序数量,这是为 Microsoft 平台开发的应用程序长期以来一直受到批评的弱点。尽管 UAC 因在消除这一弱点方面取得的进展而受到赞扬,但许多管理员发现,长期使用会导致一些用户只是点击提升提示上的“是”,而不是评估安全风险。这会导致不必要的程序被提升权限,可能对系统造成损害。UAC 可以通过使用安全配置向导进行补充,该向导使用类似表单的调查来确定您的最低必要配置,从而锁定不必要的端口和服务。
安全一直是 Linux 血统的重要组成部分。诸如 sudo 和 chroot 之类的实用程序,它们限制了某些程序和操作的上下文,长期以来一直是 Linux 安全工具箱的一部分。在基于 Debian 的发行版的情况下,除非使用 sudo,否则禁止 root 访问。此外,大多数发行版现在都使用 AppArmor 或 SELinux 作为主机级别的额外安全层。尽管 SELinux 和 AppArmor 采用不同的方法来保护系统,但每种方法都利用基于最小权限的方法,通过使用配置文件来最大限度地减少威胁面。尽管 SELinux(图 1)具有由国家安全局开发并且极其安全的特点,但它可能难以管理。相比之下,许多管理员认为 AppArmor 同样有效且更易于配置。Novell 在 SUSE Enterprise Linux 中包含了一个用于 AppArmor 的漂亮的 GUI 工具,其中包括一个用于分析应用程序配置文件的向导,这非常节省时间(图 2)。
Server 2008 和 Windows 7 中包含的 Windows 防火墙比以前的版本有了很大的改进。它可以根据数据包、IP 地址和源/目标程序进行过滤,并且其管理 GUI 易于使用。但是,它缺少 Linux 防火墙中发现的一些高级功能。相比之下,自 ipchains 和现在的 iptables 以来,Linux 一直与开源防火墙开发紧密结合。尽管许多管理员仍然喜欢 iptables 的基于文本的管理方式,但也有许多易于使用的基于 GUI 的界面,例如 SUSE 中通过 YaST(Yet another Setup Tool,图 3)找到的界面。不幸的是,这些工具通常限制了对高级功能的访问,例如端口重定向、IP 转换和服务质量,这些功能可以从命令行访问。公平地说,Server 2008 中可以通过添加其他模块 (RRAS) 或产品 (ISA) 来获得其中一些功能,但这会增加另一层管理和成本,而 Linux 却开箱即用。一些管理员可能认为,除了在边界处,防火墙在企业安全中并不是一个重要因素。其他人则认为,防火墙现在比以往任何时候都更重要,因为云计算和移动计算等技术正在消除传统边界的界限。只有时间才能证明一切。
过去十年很容易被贴上“补丁十年”的标签。由于不断变化的安全形势,每天都会发现新的漏洞。不要误解我的意思。安全研究人员为行业提供了宝贵的服务,但有时当我必须每天大规模推送补丁时,我会怀念过去我可以每隔一段时间只推送一个 Service Pack 的日子。打补丁不仅仅是 Microsoft 的现象。Linux 中也存在漏洞。大多数值得称道的现代操作系统都包含本地更新机制来解决缺陷和漏洞。在 Windows 中,个人系统使用自动更新,而管理大量系统则使用 Windows 软件更新服务 (WSUS)。Microsoft 在这两个程序上都做得很好,应该为他们在过去五年中的成熟而鼓掌。顾名思义,自动更新通过控制面板界面自动执行主机系统的补丁操作。WSUS 添加了报告功能和集中补丁分发的能力,尽管批准、拒绝和/或取代补丁的过程可能很笨拙。
Linux 更新机制因发行版而异,但与其 Microsoft 同行共享类似的功能。基于 Debian 的系统有 apt,基于 Red Hat 的系统有 Yellowdog Updater Modified (YUM),SUSE 有 YaST(它为 ZYpp 软件包管理引擎提供图形前端)。每个工具都易于自动化,并且包含在更新之前解决依赖关系问题的能力。它们还共享部署本地存储库以减少带宽消耗的能力,就像 WSUS 一样,但要实现 WSUS 更漂亮的仪表板和报告功能,则需要基于订阅的服务,例如 Red Hat Network(图 4)或 Canonical 的 Landscape(图 5)。
DNS 和 DHCP 是生产网络角色,许多 Linux 服务器由此进入企业。尽管这些服务可能看起来很枯燥,但它们构成了现代企业的支柱。在 Microsoft 方面,我们有 Server 2008 中包含的专有版本的 DNS 和 DHCP。两者都使用服务器管理器实用程序进行配置,然后通过各自的 mmc 控制台进行管理。Microsoft 已将其版本的 DNS 和 DHCP 与 Active Directory (AD) 及其众多专有网络服务深度集成。尽管从表面上看这似乎不是问题,但单个配置错误可能会影响 Microsoft 基础设施的多个部分(AD、Exchange 等)。在 Linux 方面,我们有 Berkeley Internet Name Domain (BIND),这是基于标准的市场领导者。BIND 是一款可靠的主力,具有足够的灵活性来支持 Active Directory,并将 DNS 管理与其他基础设施部分分开。您可以通过命令行或 GUI 工具(如 Red Hat BIND 配置工具(图 6))管理 BIND。
与 DNS 一起,DHCP 是一项关键但被忽视的网络服务。它也是 Linux 进入新环境的绝佳跳板。它影响很小,几乎可以集成到任何现有网络中,几乎不会中断。DHCP 在大多数发行版中都可用,并且像 YaST 中找到的工具使管理变得轻而易举(图 7)。DNS 和 DHCP 通常可以组合在单个服务器上,就像在许多 Microsoft 环境中发现的那样,但占用空间更小。
Active Directory 是 Microsoft 网络的中心。它是一个强大的工具,在提供可靠的目录服务方面享有盛誉。很有可能,除非您已经是 *nix 商店,否则您现在可能正在使用它。AD 长期以来一直占据主导地位,以至于许多人忘记了它的根源。从最严格的意义上讲,AD 是一个基于 LDAP 的服务器,它使用 Kerberos 进行身份验证,使用 DNS 进行名称解析。它之所以占据主导地位,原因有二:其旗舰邮件产品 (Exchange) 需要它,并且每个出厂的 Microsoft 桌面和服务器操作系统都内置了 AD 客户端。目录服务在 AD 之前就已存在,并且还有其他替代方案(甚至是非 Linux 的替代方案)提供类似的服务。
更好的替代方案之一是 Novell 的 eDirectory(图 8)。eDirectory 的根源在于 Novell Directory Services (NDS),这是 1990 年代在企业领域占据主导地位的非常流行的目录服务。尽管 Novell 在过去十年中失去了相当大的市场份额给 AD,但它一直在不断改进其目录产品。eDirectory 具有可扩展性,支持多主复制,并且与操作系统无关,这意味着它可以轻松部署到几乎任何环境(包括 Windows)。对于 Linux 系统,eDirectory 可以运行在 SUSE 或 Red Hat Enterprise 服务器上。可以使用 ConsoleOne(图 8)或更新、更性感的 iManager Web 管理包(图 9 和图 10)来管理 eDirectory,后者使用基于角色的权限分配。这与 AD 类似;但是,iManager 中目录权限的粒度级别要高得多。作为旁注,Novell 目前与 Microsoft 保持着长期合作关系,双方将互相支持对方的产品。当在以 Microsoft 为中心的企业中争取更大的 Linux 份额时,这可能是一个优势。
虚拟化可能是目前行业中最热门的话题。似乎“虚拟”是目前每个网络研讨会的流行语。我不会花时间解释虚拟化的价值,只是服务器整合和桌面/应用程序虚拟化似乎是这么多人对此感兴趣的最大原因。Microsoft 通过发布 Hyper-V 大举进军虚拟化领域。与 Microsoft 早期产品 Virtual Server 不同,Hyper-V 采用完全虚拟化的 Hypervisor,无需在“胖主机”之上运行虚拟服务器。Hypervisor 允许来宾直接访问底层硬件,并且由于开销非常小,因此性能大大提高。Hyper-V 在 Server 2008 R2 的发布中获得了很多改进。它现在具有更多企业级管理和高可用性功能,最值得注意的是,支持实时迁移。它可以使用 Hyper-V 管理器控制台进行管理,这是一个企业级工具,用于创建和管理 Hyper-V 主机和来宾。
也有基于 Linux 的虚拟化选项。长期以来,Xen 一直是 Linux 虚拟化运动的宠儿。在 Citrix 收购 Xen 之后,许多供应商已开始转向使用基于内核的虚拟机 (KVM) 模块作为其主要虚拟化平台。KVM 是一个 Hypervisor 模块,可以在 2.6.20 或更高版本的内核中运行,但它确实需要兼容的启用 vm 的处理器。Red Hat 以前是 Xen 的坚定支持者,但在被收购后,已将赌注押在了 KVM 上。事实上,Red Hat 正在发布其基于 KVM 的 Red Hat Enterprise Virtualization (RHEV) 产品,作为 Hyper-V、VMware 和 Xen 的直接竞争对手。RHEV 由一个最小化的 RHEL KVM 启用安装组成,经过调整以作为虚拟化的主机系统。与市场上大多数虚拟化产品不同,RHEV 正在推出有竞争力的基于订阅的定价模式,该模式将 Hypervisor 和管理器软件都包含在同一许可证中(通常单独出售)。它还标榜高级虚拟化功能,例如实时迁移和自动服务器故障转移。我真的很想为本文试驾 RHEV,但我无法获得该产品的试用版。无论如何,KVM 在大多数发行版中几乎完美运行。为了演示目的,我在 Ubuntu 上部署了 KVM,Ubuntu 提供了一个专门为虚拟设备配置的 Just enough OS (JeOS,发音为“juice”) 映像。KVM 主机可以使用基于 GUI 的 virt-manager 软件包(图 11)或其他命令行工具进行管理。
云计算几乎与虚拟化一样热门,考虑到它是虚拟化运动的一个分支,这很有趣。云计算指的是使用资源池(例如服务器、存储、带宽)或“云”来为客户提供个性化服务器或服务的策略。云服务通常与基于 Web 的应用程序服务有关,但越来越多的应用程序出现在“云中”。这些较新的应用程序包括企业电子邮件托管、文件存储、用户协作和移动应用程序。对于希望获得数据中心优势(集群、高可用性/灾难恢复)而又不想承担维护成本的小型客户而言,云是一种经济高效的方案。亚马逊一直是该领域的先驱,其 Elastic Compute Cloud (EC2) 服务允许您购买自己的云服务器或在亚马逊云中运行的应用程序。Microsoft 已进入市场,并为这项新兴技术投入了大量资源和精力。自 2009 年以来,它的公共云 Azure 已上线。Microsoft 的私有云将通过 System Center 进行管理,计划于 2010 年上半年发布。
如果您现在想部署私有 Linux 云,可以使用 Ubuntu 来实现。这个过程非常简单。下载 Ubuntu 服务器并启动服务器安装过程。启动后,您将从主安装屏幕上看到一个选项,将服务器安装为 Ubuntu 企业云 (UEC) 服务器,作为集群控制器或节点。您将需要每个服务器一个才能开始使用。启动并运行后,您可以从管理站点(图 12)下载映像,或开始创建您自己的与您的云需求相匹配的映像。您正在部署的云实际上是开源云软件 Eucalyptus 的重新品牌版本。管理是通过命令行或基于 GUI 的工具(如 hybridfox(图 13))完成的,hybridfox 是一个 Firefox 插件,其运行方式类似于亚马逊的 Elasticfox 管理实用程序的修改版本。
企业中的许多其他领域都适合 Linux 渗透。这里介绍的领域代表了 Linux 在绝大多数企业中被采用的一些最佳机会。我鼓励您下载并测试这些选项,看看它们对您的业务有多大的好处。Linux 的未来发展,乃至它的生存,都取决于它在商业计算市场中占据一席之地的能力,而实现这一目标的唯一方法是不断用可行、经济高效的替代方案挑战现状。希望我在这里为您提供了一些这样的替代方案。
资源
Red Hat 网络: https://rhn.redhat.com
Canonical Landscape: www.canonical.com/projects/landscape
BIND: www.isc.org/software/bind
Novell eDirectory: www.novell.com/products/edirectory
RHEV: www.redhat.com/virtualization/rhev/server
KVM: www.linux-kvm.org
Ubuntu 企业云(私有): www.ubuntu.com/cloud/private
Hybridfox: code.google.com/p/hybridfox
Jeramiah Bowling 担任系统管理员和网络工程师超过十年。他在马里兰州亨特谷的一家地区会计和审计事务所工作,并持有包括 CISSP 在内的多项行业认证。欢迎您通过 jb50c@yahoo.com 发表评论。