| 摘要:
由系统管理员管理的结构化计算机环境和只有一台或几台孤立计算机组成的计算机环境的主要区别是什么呢――服务!论文代写这种只有几台孤立计算机的典型环境是家庭和那些很小的非技术性的办公室,而典型的结构化计算机环境则是由技术人员操作大量的计算机,通过共享方便的通信、优化的资源等服务来互相联结在一起。当一台家用电脑通过互联网或通过ISP连接到因特网上,他就是使用了ISP或其他人提供的服务才进入网络的。
由系统管理员管理的结构化计算机环境和只有一台或几台孤立计算机组成的计算机环境的主要区别是什么呢――服务!这种只有几台孤立计算机的典型环境是家庭和那些很小的非技术性的办公室,而典型的结构化计算机环境则是由技术人员操作大量的计算机,通过共享方便的通信、优化的资源等服务来互相联结在一起。代写计算机论文当一台家用电脑通过互联网或通过ISP连接到因特网上,他就是使用了ISP或其他人提供的服务才进入网络的。办公室环境也能提供同样甚至更多的服务。
典型的办公室环境包含很多服务,主要有DNS、电子邮件、认证服务、联网以及打印等等。这些服务非常重要,一旦没有了这些服务会对你产生很大的影响。其它典型的服务还包括各种远程接入方法、网络证书服务、软件仓库、备份服务、连接因特网、DHCP、文件服务等等。如此多的服务确实令人厌倦,但这也证明了系统管理员团队所创造并维护的服务是如此之多。你给用户的每一个技术支持都包含了系统管理员团队提供的服务在里面。
提供一个服务绝不仅仅是简单的把硬件和软件累加在一起,它包括了服务的可靠性、服务的标准化、以及对服务的监控、维护、技术支持等。只有在这几个方面都符合要求的服务才是真正的服务。
系统管理员的主要职责之一就是为用户提供他们所需要的服务,这是一项持续性的工作。随着技术的进步和用户工作的开展,用户的要求也会越来越高,结果系统管理员就必须花费大量的时间来设计并创建新的服务,创建的新服务的质量决定了以后系统管理员们对它们提供技术支持时所花费时间和精力的多少,同时也决定了用户的满意程度。
一、 服务的基本问题
创建一个稳定、可靠的服务是一个系统管理员的重要工作。在进行这项工作时系统管理员必须考虑许多基本要素,其中最重要的就是在设计和开发的各个阶段都要考虑到用户的需求。要和用户进行交流,去发现用户对服务的要求和预期,然后把其它的要求如管理要求等列一个清单,这样的清单只能让系统管理员团队的人看到。在这样一个过程中"是什么"比"怎么样"更重要,否则在具体执行时很容易就会陷入泥潭而失去目标。
服务应该建立在服务器级的机器上而且机器应该放在合适的环境中,作为服务器的机器应当具备适当的可靠性和性能。服务和服务所依赖的机器应该受到监控,一旦发生故障就发出警报或产生故障记录清单。
大多数服务都依赖其它服务,通过进一步理解服务是如何进行的,会使你洞悉这个服务所依赖的其它的服务。例如,几乎所有的服务都依靠域名服务(DNS)。要给一个服务配置机器名或域名,要靠DNS;要想在日志文件中包含所使用服务或服务访问过的主机名,要用到DNS;如果你进入一台主机通过它的服务联系别的机器,也要用到DNS。同样,几乎所有的服务都依靠网络,其实网络也是一种服务。DNS是依靠网络的,所以所有依赖DNS的服务也依靠网络。有一些服务是依靠email的(而email是依赖DNS和网络的),还有别的服务依靠访问其它计算机上的共享文件,也有许多服务也依靠身份认证和授权服务来对人们进行区分,特别是在那些基于认证机制而又具有不同级别服务权限的环境中。某些服务如DNS的故障,会引起所有依赖DNS的其它服务的一连串的失败。所以在构建一个服务时,了解它所依赖的其它服务是非常重要的。
作为服务一部分的机器和软件应当依赖那些建立在相同或更高标准上的主机和软件,一个服务的可靠性和它所依赖的服务链中最薄弱环节的可靠性是相当的。一个服务不应该无故的去依赖那些不是服务一部分的主机。
为了可靠性和安全性,对服务器的访问权限应当进行限制,只有系统管理员才能具有访问权限。使用机器的人和机器上运行的程序越多,发生内存溢出或突然出现其它故障、服务中断的机会就越大。用户使用计算机时总喜欢多装点东西,这样他们就能方便的存取自己需要的数据和使用其它的服务。但是服务器应该是尽可能的简单,简单化可以让机器更加可靠,发生问题时更容易调试。服务器在满足服务运转正常的前提下应当安装最少的东西,只有系统管理员们具有安装权限,而且系统管理员们登录服务器时应该也只是为了维护。从安全的角度来看,服务器比普通的台式机更敏感。入侵者一旦获得了服务器的管理员权限,他所能做的破坏比获得台式机管理员权限所能做的破坏大的多!越少的人具有管理员权限,服务器运行的东西就越少,入侵者获得权限的机会就越小,入侵者被发现的机会就越大。
系统管理员在构建一个服务时必须要作几个决策,比如从哪个厂家买设备、对于一个复杂的服务用一台还是多台服务器、构建服务时要留多大的冗余度。一个服务应该尽可能的简单,尽可能小的依赖性,这样才能提高可靠性和易维护性。
另一个使服务易于维护的方法是使用标准硬件、标准软件、标准配置以及把文件放在标准位置,对服务进行集中管理。例如,在一个公司中,用一个或两个大的主要的打印服务器比零星分布的几百个小服务器使服务更容易得到支持。最后,也是非常重要的是在执行一些新服务时,服务所在的机器在用户端配置时最好使用基于服务的名字,而不是用真实的主机名,这样服务才会不依赖于机器。如果你的操作系统不支持这个功能,那就去告诉你的操作系统销售商这对你很重要,同时要考虑是否使用别的具有这个功能的操作系统。
一旦服务建好并完成了测试,就要逐渐转到用户的角度来进行进一步的测试和调试。
1. 用户的要求 4. "简单"的价值
在建立一个新服务时,简单是首先要考虑的因素。在能满足所有要求的解决方案中,最简单的才是最可靠、最容易维护、最容易扩展以及最易于和其它系统集成到一起的。过度复杂将导致混乱、错误、使用困难以及明显的运行速度下降,而且使安装和维护的成本增加。
当系统规模增长的时候,还会变得更复杂,这是生活常识。所以,开始尽可能的简单可以避免系统过早出现"太复杂"的情况。想一想,如果有两个销售人员都打算推销他们的系统,其中一个系统有20个功能,另外一个有40个功能,我们就可以认为功能多的软件可能会有更多的错误,它的销售商就更难以有时间维护他的系统代码。
有时,用户或系统管理员们的一两个要求就会使系统的复杂度增加很多。如果在设计阶段遇到这样的要求,就值得去寻找为什么会有这种要求,并估价其重要性,然后向用户或系统管理员们解释,这样的要求能够满足,但要以降低可靠性、支持水平和可维护性为代价。根据这些,再让他们重新决定是坚持这样的要求,还是放弃。
三、其它需要考虑的问题
建立一个服务除了要求可靠、可监测、易维护支持,以及要符合所有的我们基本要求和用户的要求外,还要考虑到一些特别的事情。如果可能的话,应该让每个服务使用专门的机器,这么作可以让服务更容易得到支持和维护,也能减少忘记一些服务器机器上的小的服务的机会。在一些大公司,使用专门的机器是一条基本原则,而在小公司,由于成本问题,一般达不到这个要求。
还有一个观念就是在建立服务时要以让服务完全冗余为目标。有些重要的服务不管在多大的公司都要求完全冗余。由于公司的规模还会增长,所有你要以让所有的服务都完全冗余为目标。
1. 使用专门的机器
理想的情况,服务应该建立在专门的机器上。大网站应该有能力根据服务的要求来调整到这个结构,而小网站却很难做到。每个服务都有专门的机器会使服务更可靠,当发生可靠性问题是也容易调试,发生故障的范围更小,以及容易升级和进行容量计划。
从小公司成长起来的大网站一般有一个集中管理的机器作为所有重要服务的核心,这台机器提供名字服务、认证服务、打印服务、邮件服务等等。最后,由于负荷的增长,机器不得不分开,把服务扩展到别的服务器上去。常常是在这之前,系统管理员们已经得到了资金,可以买更多的管理用的机器,但是觉得太麻烦,因为有这么多的服务依赖这机器,把它们都分开太难了。当把服务从一台机器上分开时,IP地址的依赖最难处理了,有些服务如名字服务的IP地址都在用户那里都已经记得很牢固了,还有一些IP地址被安全系统如路由器、防火墙等使用。
把一个中心主机分解到许多不同的主机上是非常困难的,建立起来的时间越长,上面的服务越多,就越难分解。使用基于服务的名字会有所帮助,但是必须整个公司都使用标准化的、统一的、始终如一的名字。
2. 充分的冗余
充分的冗余是指有一个或一系列复制好的服务器,能在发生故障的时候接管主要的故障设备。冗余系统应该可以作为备份服务器连续的运行,当主服务器发生故障时能自动连上线,或者只要少量的人工干预,就能接管提供服务的故障系统。
你选择的这类冗余是依赖于服务的。有些服务如网页服务器和计算区域,可以让自己很好的在克隆好的机器上运行。别的服务比如大数据库就不行,它们要求连接更牢固的崩溃恢复系统。你正在使用的用来提供服务的软件或许会告诉你,冗余是以一种有效的、被动的、从服务器的形式存在的,只有在主服务器发生故障并发出请求时,冗余系统才会响应。不管什么情况,冗余机制必须要确保数据同步并保持数据的完整。
如果冗余服务器连续的和主服务器同步运行,那么冗余服务器就可以用来分担正在正常运行的负荷并能提高性能。如果你使用这种方法,一定要注意不要让负荷超出性能不能接受的临界点,以防止某个服务器出现故障。在到达临界点之前要为现存系统增加更多的并行服务器。
共2页: 上一页 1 [2] 下一页 |