购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

1.1 了解Linux环境扩展的挑战

在深入研究SOE的定义之前,让我们探讨一下在没有标准的情况下扩展Linux环境的挑战。这将有助于我们理解定义本身,以及如何为给定场景定义正确的标准。

1.1.1 非标准环境的挑战

重要的是要考虑到,拥有技术资产(无论是Linux还是其他)的企业所经历的许多挑战并不是这样开始的。事实上,在增长的早期阶段,许多系统和过程是完全可持续的,在下一节中,我们将把这一环境增长的早期阶段视为理解大规模增长带来的挑战的先兆。

1.非标准环境的早期发展

在数量多得惊人的公司中,Linux环境在没有任何形式的标准化的情况下开始出现。通常,它们会随着时间的推移有机地成长。部署一开始规模很小,可能只涉及少数核心功能,随着时间的推移和需求的增长,环境也会随之增长。熟练的系统管理员通常会根据每台服务器手动进行更改,部署新的服务,并根据业务需求的规定增加服务器资产。

对于大多数公司来说,这种有机增长是阻力最小的途径,项目期限通常很紧,此外预算和资源都很稀缺。因此,当有一个行之有效的Linux资源可用时,可以使用它完成几乎所有需要的任务,从简单的维护任务到调试复杂的应用程序栈。它节省了在架构上花费的大量时间和金钱,并且很好地利用了现有员工的技能,因为可以让他们来解决眼前的问题并进行部署,而不是在架构设计上花费时间。因此,这是有意义的,作者在几家公司甚至是知名的跨国公司都经历过这种情况。

2.非标准环境的影响

让我们从技术角度更深入地了解这一点。Linux有很多种风格,有许多应用程序(在高层次上)执行相同的功能,有许多方法可以解决给定的问题。例如,如果你想编写完成某个任务的脚本,你是用shell脚本、Perl、Python还是Ruby编写的?对于某些任务,所有这些都可以达到预期的最终结果。不同的人有不同的处理问题的首选方法和不同的首选技术解决方案,人们经常发现,构建Linux环境所使用的技术是当时最新的,或者是负责它的人最喜欢的。这本身并没有什么问题,一开始,它不会引起任何问题。

如果说有机增长带来了一个根本问题,那就是规模。在环境规模相对较小的情况下,手动进行更改并始终使用最新和最先进的技术是非常好的,而且经常会带来有趣的挑战,因此可以让技术人员保持积极性和成就感。对于那些从事技术工作的人来说,保持技术水平是至关重要的,因此能够在日常工作中使用最新的技术往往是一个激励因素。

3.扩展非标准环境

当服务器数量达到数百台时,整个有机过程就会崩溃,更不用说数千台(甚至更多)。管理环境曾经是一个有趣的挑战,现在变得费力、乏味,甚至变为沉重的负担。新团队成员的学习曲线十分陡峭。新员工可能会发现自己身处一个完全不同的环境,有许多不同的技术需要学习,可能还要经过长时间的培训才能真正上手工作。长期服务的团队成员可能最终成为知识孤岛,如果他们离开,带来的损失可能会导致出现业务连续性问题。随着非标准环境以一种不受控制的方式增长,问题和中断变得越来越多,而故障排除则成为一项漫长的工作,在试图达成99.99%的服务正常运行时间协议时,这并不理想,因为每一秒的停机时间都很严重!因此,在下一节中,我们将研究如何用SOE解决这些挑战。

1.1.2 解决挑战

面对这一挑战,我们认识到了标准化的需求。建立一个合适的SOE要做到以下几点:

·实现规模经济

·提高日常运营的效率

·让所有相关人员都能轻松快速地跟上企业变化的速度

·轻松地适应企业不断增长的需求

毕竟,如果一个环境的定义简洁,那么参与其中的每个人都会更容易理解和合作。这反过来意味着任务完成得更快、更容易。简而言之,标准化可以节省成本并提高可靠性。

必须强调的是,这是一个概念,而不是绝对的。建立这样一个环境没有对错之分,尽管有最佳实践存在。在本章中,我们将进一步探讨这个概念,并帮助你确定与SOE相关的核心最佳实践,以便你在定义自己的SOE时做出明智的决策。

让我们更详细地探讨这个问题。无论是基于Linux、Windows、FreeBSD还是任何其他技术,每个企业对其IT环境都有一定的需求。有时,这些标准被很好地理解和记录,而有时,它们只是暗示,也就是说,每个人都假设环境符合这些标准,但没有官方定义。这些需求通常包括以下几个方面:

·安全性

·可靠性

·可扩展性

·持久性

·可支持性

·易用性

当然,这些都是高层次的需求,而且常常是相互交叉的。

1.安全性

环境中的安全性是由几个因素共同建立的。让我们看看以下问题,以了解其中涉及的因素:

·配置是否安全?

·我们允许使用弱口令了吗?

·是否允许超级用户root远程登录?

·我们是否记录和审核了所有连接?

现在,在一个非标准的环境中,如何确保这些需求在所有Linux服务器上都实施了呢?要做到这一点,就意味着它们都是以同样的方式构建的,它们都应用了相同的安全参数,而且从来没有人重新访问这个环境来改变任何东西。简而言之,这需要相当频繁的审计来确保合规性。

但是,如果环境已经标准化,并且所有服务器都是从一个公共源代码或使用一个公共自动化工具构建的(我们将在本书后面部分演示),那么你就可以信心十足地说你的Linux资产是安全的。

当然,基于标准的环境不是绝对安全的,如果在此环境的构建过程中存在导致某个漏洞的问题,自动化意味着此漏洞将被复制到整个环境中!了解环境的安全要求并谨慎地实施这些要求是很重要的,要持续地维护和审计环境,以确保它保持安全级别。

安全性还可以通过修补程序来实现,这些修补程序可确保你运行的任何软件都不存在允许攻击者危害你的服务器的漏洞。一些Linux发行版的使用寿命比其他发行版长。例如,Red Hat Enterprise Linux(以及CentOS等衍生产品)和Ubuntu LTS发行版都有很长的、可预测的生命周期,可以很好地作为Linux资产的候选产品。

因此,它们应该成为你的标准的一部分。相比之下,如果使用Fedora这样的前沿(bleeding edge)Linux发行版,可能是因为它当时有最新的软件包,那么你可以确定其生命周期将很短,并且更新将在不远的将来停止,因此你可能会遇到潜在的未修补漏洞,并且需要升级到Fedora的较新发行版本。

即使升级到较新版本的Fedora,有时软件包也会变得孤立(orphaned),也就是说,它们不会包含在较新的版本中。这可能是因为它们被另一个软件包取代了。不管是什么原因,将一个发行版升级到另一个发行版可能会造成错误的安全感,除非研究透彻,否则应该避免升级。所以,标准化有助于确保良好的安全实践。

2.可靠性

许多企业期望他们的IT操作99.99%的时间都能正常运行。实现这一点的部分途径是健壮的软件、相关错误修复的应用程序和定义良好的故障排除过程。这可确保在最坏的停机情况下,停机时间尽可能少。

正如我们在关于安全性的讨论中所说的,标准化在这里同样有帮助,一个好的底层操作系统选择可以确保你能够持续访问错误修复和更新,并且如果你知道你的业务需要供应商备份以确保业务连续性,那么,选择一个有支持合同的Linux操作系统(例如,Red Hat或Canonical提供的)是有意义的。

同样,当所有服务器都按照一个定义良好且易于理解的标准构建时,对它们进行更改便会产生可预测的结果,因为每个人都知道它们在使用什么。如果所有服务器的构建略有不同,那么善意的更改或更新可能会产生意外的后果,并导致代价高昂的停机时间。

再次强调,使用标准化,即使出现最坏的情况,每个相关人员都应该知道如何处理问题,因为他们知道所有服务器都是基于特定的基本映像构建的,并且具有特定的配置。这些知识和信心减少了故障排除时间,并最终缩短了停机时间。

3.可扩展性

所有企业都希望自己的业务增长,而且大多数情况下,这意味着IT环境需要扩展以应对不断增长的需求。在以非标准方式构建服务器的环境中,扩展环境变得更具挑战性。

例如,如果水平扩展(将更多相同的服务器添加到现有服务中),则新服务器都应具有与现有服务器相同的配置。在没有标准的情况下,第一步是确定初始服务器集是如何构建的,然后克隆这个初始服务器集并进行必要的更改以生成更多单独的服务器。

这个过程有些麻烦,然而,在标准化的环境中,调查步骤是完全不必要的,横向扩展成为一个可预测的、可重复的、照常进行(business-as-usual)的任务。它还确保了更高的可靠性,因为在缺少非标准配置项的情况下,新服务器不会产生意外的结果。人类是不可思议的,聪明的人既能够把人送上月球,也同样能够忽略配置文件中的一行。标准化的思想是为了降低这种风险,因此可以使用经过深思熟虑的操作系统模板快速高效地扩展环境,我们将在本章继续讨论这个模板的概念。

4.持久性

在部署服务时,有时需要特定的软件版本。让我们以在PHP上运行的Web应用程序为例。现在,假设由于历史原因,特定企业已经在CentOS 6(或RHEL 6)上实现了标准化。这个操作系统只配备了PHP 5.3,这意味着如果你突然使用一个只支持PHP 7.0及更高版本的应用程序,则需要弄清楚如何托管它。

一个显而易见的解决方案是推出Fedora虚拟机映像。毕竟,它与CentOS和RHEL共享类似的技术,并且包含了许多更新的库。我对这种解决方案有几方面的切身体会!不过,让我们从全局考虑。

RHEL(以及基于此的CentOS)的使用寿命约为10年,具体取决于你购买的时间点。在企业中,这是一个很有价值的建议——这意味着可以保证你构建的任何服务器从构建之日起最多10年(甚至更长)都有修补程序和支持。这与我们之前关于安全性、可靠性和下一节中的可支持性的观点有紧密的联系。

但是,在Fedora上构建的任何服务器的使用寿命都在12~18个月(取决于Fedora的发布周期)——在企业环境中,必须在12~18个月之后重新部署服务器是一个不必要的难题。

这并不是说在Fedora或任何其他快速演变的Linux平台上都没有部署的理由,只是,在一个安全性和可靠性至关重要的企业中,你不太可能想要一个生命周期短的Linux平台,因为短期收益(较新的库支持)将在12~18个月内被缺少更新和需要重建/升级平台所带来的痛苦所替代。

当然,这在很大程度上取决于你对基础设施的处理方式,有些企业对其服务器采用类似容器的处理方式,并在每次新的软件发布或应用程序部署时重新部署服务器。如果你的基础设施和构建标准是由代码(如Ansible)定义的,那么完全可以在对你的日常操作影响相当小的情况下完成这项工作,而且不太可能有任何一台服务器的操作系统版本保持过长的时间,导致过时或不受支持。

归根结底,选择权在你,你必须确定哪条路线能为你带来最大的商业利益,而不会使你的运营面临风险。标准化的一部分是对技术做出合理的决策,并在可行的情况下采用这些决策,你的标准可能包括频繁的重新构建,以便可以使用Fedora之类的快速演进的操作系统。同样,你也可能会认为标准是服务器将有很长的使用寿命,并且升级到位,在这种情况下,最好选择一个版本相对稳定的操作系统,比如Ubuntu LTS版本或RHEL/CentOS。

在下一节中,我们将更详细地了解SOE如何受益于可支持性。

5.可支持性

如前所述,标准化环境带来了两个好处。首先,一个精心选择的平台意味着很长的供应商支持生命周期。这也意味着供应商(对于RHEL这样的产品)或社区(对于CentOS)的长期支持。一些操作系统(如Ubuntu服务器)可以直接从Canonical获得社区支持或付费合同。

然而,可支持性不仅仅意味着来自供应商或整个Linux社区的支持。记住,在企业中,在任何外部人员介入之前,你的员工才是你的一线支持。现在,想象一下拥有一支一流的Linux团队,并向他们展示由Debian、SuSe、CentOS、Fedora、Ubuntu和Manjaro组成的服务器。它们之间既有相似之处,也有巨大的差异。在它们之间有4种不同的软件包管理器用于安装和管理软件包,这只是一个示例。

虽然完全可以支持,但它确实给你的员工带来了更大的挑战,这意味着,任何加入公司的人都需要具备全面且丰富的Linux经验,或者需要全面的入职流程。

在一个标准化的环境中,你可能会使用不止一个操作系统,但是,如果你可以使用CentOS 7和Ubuntu Server 18.04 LTS来满足所有需求(并且知道,由于你的选择,你将在未来几年内受到保护),则可以立即减少Linux团队的工作量,使他们能够花更多的时间创造性地解决问题(例如,使用Ansible自动化解决方案),花更少的时间来找出操作系统之间的细微差别。正如我们讨论过的,在出现问题时,由于更熟悉每个操作系统,因此可以耗费更短的时间进行调试,从而缩短停机时间。

这使我们很好地进入了易用性这个主题。

6.易用性

最后一个类别与前面最后两个类别有很大的重叠,也就是说,你的环境越标准化,给定的一组员工就越容易掌握它。这会自动提升我们目前讨论的所有好处,包括缩短停机时间、更容易招聘合适的员工等。

在阐述了SOE帮助解决的挑战之后,我们将在下一节继续分析这种环境,以便从技术角度理解它。 +mmf576F9NPbbg6V0I3CYYDWm1d+XRjSCfu6f3xCt7mwdJBuGDi4C6aMjKftNWJo

点击中间区域
呼出菜单
上一章
目录
下一章
×