大型网站架构设计原理(书的目录)

传统的动环监控系统体系架构包含三个组成部分:监控对象、现场监控单元、集中监控中心,体系结构如下图所示:

监控的从底层到上应该是:

说明:以下内容来自李智慧的《大型网站技术架构:核心原理与案例分析》这本书的目录,虽然是目录,但能从中学到的东西还是不少的。

图片 1传统动环监控系统架构

一 数据采集层

第1篇 概述

以上架构设计适合小规模的应用场景,难以解决大规模采集数据场景下的动环监控业务应用,本文提出一种集群大数据平台技术架构,以满足动环监控系统对大规模测点实时性采集和处理、大数据高效存储和查询、分布式容错处理等要求,同时为第三方SC、SC、大数据分析、其它应用提供共享服务。另外,还制定测点和设备编码规范、测点和设备命名规范、事件和转台字典规范以及服务接口标准化规范等。技术架构设计包括数据采集、分布式消息队列、在线实时处理、数据存储中心、共享服务、配置管理等部分。技术架构如下图所示:

二 数据处理层

1 大型网站架构演化

图片 2动环监控系统大数据架构设计

三 数据展示层

1.1 大型网站软件系统的特点

1、面向不同层次的数据采集。支持面向第三方集中监控中心和第三方现场监控单元数据采集;同时,支持面向动力系统和环境系统的现场监控单元数据直采(一体式或主从式FSU)。依据不同的规约协议定制开发采集程序,底层采集数据统一汇聚至分布式消息队列。定制ETL单元采集数据推送至分布式消息队列,由在线实时处理应用,基于配置管理预先定义的点表映射关系进行处理,转换成动环监控平台自定义编码;而现场监控单元,基于配置管理预先定义的点表映射关系,将底层动力和环境系统产生的测量数据,直接转换成动环监控平台自定义编码,无需在线实时处理应用进行点表映射处理。

 

1.2 大型网站架构演化发展历程

  • 1.2.1 初始阶段的网站架构
  • 1.2.2 应用服务和数据服务分离
  • 1.2.3 使用缓存改善网站性能
  • 1.2.4 使用应用服务器集群改善网站的并发处理能力
  • 1.2.5 数据库读写分离
  • 1.2.6 使用反向代理和CDN加速网站响应
  • 1.2.7 使用分布式文件系统和分布式数据库系统
  • 1.2.8 使用NoSQL和搜索引擎
  • 1.2.9 业务拆分
  • 1.2.10 分布式服务

2、集群式消息队列。在支持各个子系统本身业务应用要求的前提下,采集数据集中汇总到消息中间件缓冲,每一个采集服务器在消息队列中采用唯一标识的主题存储,消息中间件中的数据存储格式采用JSON格式;集中存储的优势在于:平台级应用方无须关注实现各个厂家不同的通讯方式和交互流程,在数据汇总的方式上基于互联网的公开标准进行了统一,数据格式可以不统一。传统做法是要求数据格式的统一,将复杂的数据格式处理转嫁给了数据采集方,增加了数据采集方的工作量,另外,所谓的统一格式,也不能得到广泛认可,消息队列的通讯方式是公认的技术。

监控需要和ITIL中定义的服务进行相当多的交互,例如监控会使用配置管理数据库CMDB来记录和读取数据,会将事件处理方式从知识库(存储IT知识)写入或者读出,会和流程及自动化管理平台(负责流程处理和生产等变更)进行联动处理事件或者服务请求。

1.3 大型网站架构演化的价值观

  • 1.3.1 大型网站架构技术的核心价值是随网站所需灵活应对
  • 1.3.2 驱动大型网站技术发展的主要力量是网站的业务发展

3、实时高并发数据处理机制。统一业务数据格式(设备编号、测点编号、测点数值、测点类型、采集时间等),预先定义映射关系,将不同数据格式的底层采集数据,统一格式化成标准的业务数据;对于模拟量、计算量、开关量实时数据的处理和存储。

 

1.4 网站架构设计误区

  • 1.4.1 一味追随大公司的解决方案
  • 1.4.2 为了技术而技术
  • 1.4.3 企图用技术解决所有问题

4、混合数据存储模式。针对不同类型数据,依据业务应用实际要求,选择合适的存储模式进行数据持久化处理,并对外提供数据。对于文件、图像、视频以文件方式存储;实时测点数据存储在内存数据库,事件状态数据局域的消息订阅机制,及时向外部应用推送;历史测点数据存储在时间序列数据库(OpenTSDB集群),配置管理、基础信息、业务数据、主题分析数据存储在关系数据库。

  一个个来看看,首先是数据采集,数据采集可以分为物理资源数据采集,应用数据采集和交易信息数据采集。

1.5 小结

5、开放式共享服务接口。事件、状态、告警等即时消息,通过消息队列订阅机制对外推送;提供RESTful
Web服务共享接口,为远程控制操作、实时数据和历史数据查询提供应用基础;同时,平台对外开发时间序列数据库、内存数据库、消息队列访问方式。

  物理资源包括服务器软件、服务器硬件、网络、存储、机房环境等,这些监控数据的采集一般采用成熟的第三方软件,例如网络监控可以采用netcool,服务器硬件可以采用HP
SIM,服务器软件和应用可以采用BMC Performance Manager。

2 大型网站架构模式

6、可拓展业务应用。共享服务支持第三方集控中心、SC、大数据分析应用、其它应用等二次开发。

  端到端的交易个性比较强烈,一般都需要自己开发了。无非也就是根据业务在信息系统内的流向,建立交易在信息系统的流向关系分析(也就是应用影响分析)。

2.1 网站架构模式

  • 2.1.1 分层
  • 2.1.2 分割
  • 2.1.3 分布式
  • 2.1.4 集群
  • 2.1.5 缓存
  • 2.1.6 异步
  • 2.1.7 冗余
  • 2.1.8 自动化
  • 2.1.9 安全

7、标准化、规范化。动环监控平台制定规范化和标准化的编码、命名、字典、接口定义,基于标准化、规范化基础,提供可视化的配置管理工具。

  

2.2 架构模式在新浪微博的应用

  数据处理包括事件和灾难管理处理平台、应用及交易性能分析平台等

2.3 小结

 

3 大型网站核心架构要素

  数据展示是为了将监控信息呈现给使用者。

3.1 性能

 

3.2 可用性

例如:当数据采集层的NETCOOL工具检测到一个服务器网络中断事件时,会将事件送到数据处理层,数据处理层的事件处理平台从知识库中获得该事件以前的处理经验,然后流程及自动化管理平台会形成事件单并从知识库中获取可能的解决方案开始按照既定流程进行处理并保存处理结果。流程及自动化管理平台同时需要负责事件任务的调度。

3.3 伸缩性

  

3.4 扩展性

重点难点:

3.5 安全性

1 将事件分为合适的级别和类型、统一事件编码

3.6 小结

2
梳理所有事件的处理流程和解决方案,能做到动态自动更新,最终实现出现过的问题能自动处理。

第2篇 架构

3
结合应用影响分析和业务影响分析,梳理需要监控的端到端交易和交易依赖的IT环境。作歹交易失败后的事件精准快速定位。

4 瞬时响应:网站的高性能架构

4
虚拟化或者云环境下监控会相对来说更复杂,特别用了很多虚拟化技术(VPLEXSVCKVMVSPHERE|powervm等等),这时候就需要采用各方的虚拟化监控和管理软件,然后在自己做集成开发,但是最好的方法我认为还是自己开发,在风险可控的情况下,金融业一定要学习互联网行业的成功的经验。互联网会对一切有超额利润的行业开战,这是互联网的天性,对于金融IT业一定要有前瞻。

4.1 网站性能测试

  • 4.1.1 不同视角下的网站性能
  • 4.1.2 性能测试指标
  • 4.1.3 性能测试方法
  • 4.1.4 性能测试报告
  • 4.1.5 性能优化策略

5
多数据中心会给监控带来挑战,一般的解决方法是多中心部署采集层,但是只在一个中心进行数据分析,然后将数据分析结果同步到其他中心进行只读的展示。

4.2 Web前端性能优化

  • 4.2.1 浏览器访问优化
  • 4.2.2 CDN加速
  • 4.2.3 反向代理

  

4.3 应用服务器性能优化

  • 4.3.1 分布式缓存
  • 4.3.2 异步操作
  • 4.3.3 使用集群
  • 4.3.4 代码优化

 

4.4 存储性能优化

  • 4.4.1 机械硬盘vs. 固态硬盘
  • 4.4.2 B+树vs. LSM树
  • 4.4.3 RAID vs. HDFS

监控产品的文章可以网上搜索,很多的,很多需要自己写一下shell脚本,这里不在累赘了。

4.5 小结

 

5 万无一失:网站的高可用架构

 

5.1 网站可用性的度量与考核

  • 5.1.1 网站可用性度量
  • 5.1.2 网站可用性考核

5.2 高可用的网站架构

5.3 高可用的应用

  • 5.3.1 通过负载均衡进行无状态服务的失效转移
  • 5.3.2 应用服务器集群的Session管理

5.4 高可用的服务

5.5 高可用的数据

  • 5.5.1 CAP原理
  • 5.5.2 数据备份
  • 5.5.3 失效转移

5.6 高可用网站的软件质量保证

  • 5.6.1 网站发布
  • 5.6.2 自动化测试
  • 5.6.3 预发布验证
  • 5.6.4 代码控制
  • 5.6.5 自动化发布
  • 5.6.6 灰度发布

5.7 网站运行监控

  • 5.7.1 监控数据采集
  • 5.7.2 监控管理

5.8 小结

6 永无止境:网站的伸缩性架构

6.1 网站架构的伸缩性设计

  • 6.1.1 不同功能进行物理分离实现伸缩
  • 6.1.2 单一功能通过集群规模实现伸缩

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

*
*
Website