大型网站如何制作大型网站的技术架构是这样建成的?( 二 )


4.存储层架构提供数据、文件的持久化存储访问与管理服务 。
分布式文件网站在线业务需要存储的文件大部分都是图片、网页、视频等比较小的文件,但是这些文件的数量非常庞大,而且通常都在持续增加,需要伸缩性设计比较好的分布式文件系统 。
关系数据库大部分网站的主要业务是基于关系数据库开发的,但是关系数据库对集群伸缩性的支持表较差 。通过在应用程序的数据访问层增加数据库访问的路由功能,根据业务配置将数据库访问路由到不同的物理数据库上,可实现关系数据库的分布式访问 。
NoSQL数据库目前各种NoSQL数据库层出不穷,在内存管理、数据模型、集群分布式管理等方面各有优势,不过从社区活动性角度看,HBase无疑是目前最好的 。
数据同步在支持全球范围内数据共享的分布式数据库技术成熟之前,拥有多个数据中心的网站必须在多个数据中心之间进行数据同步,以保证每个数据中心都拥有完整的数据 。在实践中,为了减轻数据库压力,将数据库的事物日志(或者NoSQL的写操作Log)同步到其他数据中心,根据Log进行数据重演,实现数据同步 。
5.后台架构网站应用中,除了要处理用户的实时访问请求外,还有一些后台非实时数据分析要处理 。
搜索引擎即使是网站内部的搜索引擎,也需要进行数据增量更新及全量更新、构建索引等 。这些操作通过后台系统定时执行 。
数据仓库根据离线数据,提供数据分析与数据挖掘服务 。
推荐系统社交网站及购物网站通过挖掘人与人之间的关系,人和商品之间的关系,发展潜在的人际关系和购物兴趣,为用户提供个性化推荐服务 。
6.数据采集与监控监控网站访问情况与系统运行情况,为网站运营决策和运维管理提供支持保障 。
浏览器数据采集通过在网站页面中嵌入JS脚本采集用户浏览器环境与操作记录,分析用户行为 。
服务器业务数据采集服务器业务数据包括两种,一种是采集在服务器端记录的用户请求操作日志;一种是采集应用程序运行期业务数据,比如待处理消息数目等 。
服务器性能数据采集采集服务器性能数据,如系统负载、内存使用率、网卡流量等 。
系统监控将前述采集的数据以图表的方式展示,以便运营和运维人员监控网站运行状况,做到这一步仅仅是系统监视 。更先进的做法是根据采集的数据进行自动化运维,自动处理系统异常状况,是吸纳自动化控制 。
系统报警如果采集来的数据超过预设的正常情况的阀值,比如系统负载过高,就通过邮件、短信、语音电话等方式发出警报信号,等待工程师干预 。
7. 安全架构保护网站免遭攻击及敏感信息泄露 。
Web攻击以HTTP请求的方式发起的攻击,危害最大的就是XSS和SQL注入攻击 。但是只要措施得当,这两种攻击都是比较容易防范的 。
数据保护敏感信息加密传输与存储,保护网站和用户资产 。
8. 数据中心机房架构大型网站需要的服务器规模数以十万计,机房物理架构也需要关注 。
机房架构对于一个拥有十万台服务器的大型网站,每台服务器耗电(包括服务器本身耗电及空调耗电)每年大约需要人民币2000元,那么网站每年机房电费就需要两亿人民币 。数据中心能耗问题日趋严重,Google、Facebook选择数据中心地理位置的时候趋向选择散热良好,供电充裕的地方 。
机柜架构包括机柜大小,网线布局、指示灯规格、不间断电源、电压规格(是48V直流电还是220V民用交流电)等一系列问题 。
服务器架构大型网站由于服务器采购规模庞大,大都采用定制服务器的方式代替购买服务器整机 。根据网站应用需求,定制硬盘、内存、甚至CPU,同时去除不必要的外设接口(显示器输出接口,鼠标、键盘输入接口),并使空间结构利于散热 。

推荐阅读