2.2 网站集群架构组成
2.2.1 生活中的集群架构模型及描述
先以一个生活中的示例来浅显地理解一下集群架构是什么样子的,是如何组成的。
图2-1所示是我们去酒店吃饭的简单流程图,看似只是一次去吃饭的简单事件,但是通过具体步骤的推进,我们会发现一次吃饭的过程其实就类似于访问网站的过程。
具体描述说明
(1)酒店顾客(网站用户)
酒店提供餐饮服务,最重要的一点就是要有顾客,对于企业网站集群来讲就是访问网站的客户。
(2)酒店安保(网站防火墙)
酒店打开门做生意,会有消费者进来用餐消费,可能也会有不是来消费的不法分子,恶意破坏酒店运营,为了防止扰乱饭店运营秩序的人员进入,会有安保人员进行监管防范,这里的安保人员很像企业网站集群里的各种安全措施,如防火墙等。
(3)酒店迎宾(负载均衡器)
影响酒店用餐秩序的人员被阻挡在门外,正常用餐的顾客会被保安准许放行通过,放行通过的顾客会根据指引遇见饭店的迎宾人员,由迎宾人员带领到相应的餐桌,继而由相应的服务人员提供服务,这个酒店的迎宾人员,很像网站集群里的负载均衡器。
图2-1 企业集群架构抽象示意图
(4)酒店服务员(Web服务器)
顾客在经过迎宾人员的指引后,由接管的服务人员为顾客提供点餐服务,确认顾客所选择的菜品后,会通过内场人员使用对讲机告知后厨人员进行制作,这里的酒店服务员很类似网站集群里的Web服务器,接受用户的访问请求,然后根据需要决定是否访问后端的数据库和存储服务。
(5)酒店后厨人员(后端数据库及存储)
后厨人员还会根据职责细化工作任务,有负责备菜的厨师,有负责炒菜的厨师,还有负责管理的厨师等,这个后厨人员就相当于网站集群后端的各种服务器,如MySQL数据库服务,NFS存储服务,Redis缓存服务等。
(6)酒店管理人员(管理、备份、监控等服务器)
一个酒店可以正常运转,除了要拥有上述的相应环节以外,还需要酒店管理人员管理规划相应员工的工作与职能,以及监管酒店的稳定运营,从而使酒店的经营能够更加高效与稳定,网站集群里的服务器也会出故障、被攻击、出数据问题,因此,需要有备份服务器(Rsync)保护数据安全,监控服务器(Zabbix)监控集群状况。
至此,通过熟悉酒店用餐的全部环节,我们已经将一个酒店的运营架构绘制出来,其实真实的互联网企业集群架构就可以依照酒店架构进行部署。
2.2.2 企业网站集群架构说明
通过在酒店用餐的过程我们已经初步了解了集群架构,但是作为一名真正的运维人员,对架构的理解还是要回到集群架构本身,以更为深刻地熟知架构的组成。通过图2-2所示的从前端访问到后端响应让我们再真正熟悉一下集群架构组成和不同的组成部分所完成的功能。
图2-2 企业集群架构真实示意图
根据图1-2所示的企业中的集群架构模型图,可以将这个模型划分成以下几个环节进行分析。
1.网站用户环节
网站提供访问服务,最重要的一点就是要有用户访问,可能访问的方式有很多种,可以通过浏览器、通过客户端进行访问等,但网站运作的根本还是能够吸引用户进行访问。访问网站的用户就类似于酒店运营环节中的顾客。
2.网站安全环节
网站安全环节也是非常重要的,一个网站如果经常会受到攻击者的破坏,根本无法满足稳定运行的根本需求。互联网企业中普遍的安全解决方案就是架设硬件或软件防火墙设备以提高网络安全性,阻止攻击者的进入。网站架构中的防火墙类似于酒店运营环节中的安保人员。
3.网站通信环节
网站集群架构中会有多台服务器负责不同的服务功能,而多台服务器之间需要进行协同交流,在一个企业内部可以采用交换网络架构,提供服务器设备间的通信需求,并且根据通信范围进行划分,分为外网交换网络架构、内网交换网络架构。外网交换网络架构中的服务器设备,利用外网网卡的公网IP地址进行网络通信;内网交换网络架构中的服务器设备,利用内网网卡的私有IP地址进行网络通信。企业网站中的网络架构类似酒店运营环节中的人员交流需求。
4.网站反向代理负载均衡环节
企业集群架构中会有多个网站服务器,构建成Web服务器集群,共同完成同一项工作任务,这么多台主机到底应该由谁来完成任务就成了问题。反向代理负载均衡服务器就起到了一个管理调度的作用,将接收的用户访问网站请求交由指定的Web服务器进行处理。企业网站中的反向代理负载均衡环节类似酒店运营环节中的迎宾人员。
5.网站Web服务环节
企业网站Web服务器是网站架构中的重要环节,主要用于处理用户访问网站的请求,并将处理结果返回给用户,使用户可以通过浏览器看到相应的页面展示信息。对于Web服务而言,一般只能处理用户的静态访问请求,一些动态访问请求还需要交由后端服务器进行处理。企业网站中的Web服务环节类似酒店运营环节中的服务员。
6.网站数据库存储环节
网站数据库类似于数据信息仓库,系统会将一些网站注册登录的用户数据信息汇总存储在数据库服务器中,当用户再次访问网站提出登录请求时,系统会查询数据库信息,根据获取到的数据库信息判断用户是否注册过。通过Web服务与数据库服务的结合,可以对用户的动态请求进行处理。网站数据库存储环节类似酒店运营环节的厨师。
7.网站数据存储环节
网站数据库中主要存储的是字符或文字信息,而对于网站上的大量图片、附件、视频等数据资源会存储在共享存储服务器中。当用户请求图片或附件数据资源时,Web服务会将请求交由存储服务进行处理,并将处理响应后的数据资源返回给用户。Web服务与数据存储服务结合,可以对用户的静态请求进行处理。网站数据存储环节类似酒店运营环节的厨师。
8.网站缓存环节
运维技术领域,常见的存储方式主要为硬盘存储数据和内存存储数据,两种存储方式相比较而言,内存存储数据的效率更高一些,不管是对读取还是写入而言。当网站接收到大量用户请求时,将一些经常需要读取的热点数据存储在内存中,会大大提升用户访问效率,从而提升用户体验,缓存存储服务器就提供了这样的需求,利用内存作为存储介质,进行热点数据资源的存储。网站缓存存储环节类似酒店运营环节的厨师。
9.网站数据备份环节
网站集群架构中,最有价值的资源就是数据,特别是现在的互联网网站运营模式,均采用的是交互模式,更多的网站数据资源都是由用户所提供,一旦数据发生丢失,对于网站的运营将会是毁灭性的打击,所以对网站数据的备份操作尤为重要,企业架构中的备份服务器就可以有效避免数据丢失情况的出现。网站数据备份环节类似酒店运营环节的厨师。
10.网站批量管理环节
随着互联网架构的不断发展,企业集群架构规模也会变得越来越大,服务器数量从几台逐渐演变为几十台甚至几百台,运维人员采用原始的一台一台登录管理,已经不能满足日常的工作的需求,取而代之的是批量管理的方式,以满足运维管理需求,所以大规模的集群架构中,需要有一台批量管理服务器,对架构中的所有服务器进行统一配置。网站批量管理环节类似酒店运营管理环节中的经理。
11.网站监控管理环节
对于网站集群架构中,服务器的稳定持续运行是运维人员的重要职责所在,所有硬件设备都属于易耗品,随着运行时长的增加会出现各种故障,造成网站服务的异常,一旦出现问题及早发现,才能避免问题持续蔓延,合理的监控管理服务就可以有效提示运维人员架构中的异常,及早进行异常修复,从而有效避免网站架构出现全面瘫痪的可能性。网站监控管理环节类似酒店中所安装的监视摄像头。
酒店管理架构与网站集群的形象对比说明如表2-1所示。
表2-1 酒店管理架构与网站集群的形象对比说明