写点什么

Week4 系统架构

用户头像
evildracula
关注
发布于: 2020 年 11 月 15 日

高并发,大流量

垂直伸缩

通过升级硬件和网络吞吐能力,通常无需改变应用架构。

缺点:

  1. 达到某个程度后,增加计算能力需要更多话费

  2. 有限

  3. 操作系统的设计或者应用程序自身制约着垂直伸缩最多只能达到某个点

水平伸缩

  1. 水平伸缩是指通过增加服务器提升计算能力的一类架构方法

  2. 水平伸缩被认为是伸缩性的圣杯,水平伸缩可以克服垂直伸缩带来的单位计算成本随计算 能力增加而迅速飙升的问题。

  3. 另外,水平伸缩总是可以增加更多服务器,这样,就不会像垂直伸缩那样遭遇到单台服务器的极限。


垂直技术方案

  • 通过使用 RAID(独立冗余磁盘阵列)增加 I/O 吞吐能力。

  • 通过切换到 SSD(固态硬盘)改善 I/O 访问速度。

  • 通过增加内存减少 I/O 操作 。

  • 通过升级网络接口或者增加网络接口提高网络吞吐能力。

  • 更新服务器使用更多处理器或者更多超线程。


架构技术方案

描述那些为解决互联网系统高性能、高可用、易扩展、可伸缩、安全等目标

分层

分层是企业应用系统中最常见的一种架构模式,将系统在横向维度上切分成几个部分,每个部分负责一部分相对比较单一的职责,然后通过上层对下层依赖和调用组成一个完整的系统。


分割

如果说分层是将软件在横向方面进行切分,那么分割就是在纵向方面对软件进行切分。

系统越大,功能越复杂,服务和数据处理的种类也越多,将这些不同的功能和服务分割开来,包装成高内聚低耦合的模块单元,一方面有助于软件的开发和维护;另一方面,便于不同模块的分布式部署,提高网站的并发处理能力和功能扩展能力。

分布式
  • 分布式应用和服务

  • 分布式静态资源

  • 分布式数据和存储

  • 分布式计算

集群

使用分布式虽然已经将分层和分割后的模块独立部署,但是对于用户访问集中的模块,比如网站的首页,还需要将独立部署的服务器集群化,即多台服务器部署相同应用构成一个集群,通过负载均衡设备共同对外提供服务。


缓存

缓存就是将数据存放在距离计算最近的位置以加快处理速度。缓存是改善软件性能的第一手段,现代 CPU 越来越快的一个重要因素就是使用了更多的缓存,在复杂的软件设计中,缓存几乎无处不在。大型网站架构设计在很多方面都使用了缓存设计。

  • cdn

  • 反向代理

  • 本地缓存

  • 远程缓存


异步

计算机软件发展的一个重要目标和驱动力是降低软件耦合性。事物之间越少直接关系,那么就越少被彼此影响,越可以独立发展。大型网站架构中,系统解耦合的手段除了前面提到的分层、分割、分布等手段,还有一个重要手段是异步,就是将一个业务操作分成多个阶段,每个阶段之间通过共享数据而不是直接调用的方法进行协作。


  • 提高系统可用性

  • 加快网站响应速度

  • 消除并发访问高峰


高可用

系统 7×24 小时不间断服务。大型互联网站的宕机事件通常会成为新闻焦点。

技术方案

冗余

互联网应用需要 7×24 小时连续运行,但是服务器总有可能会出现故障,特别是服务器规模比较大的时候,服务器宕机是必然事件。要想保证在服务器宕机的情况下网站依然可以继续服务,数据不会丢失,就需要一定程度的服务器冗余运行,数据冗余备份。

自动化运维

在无人值守的情况下网站可以正常运行,一切都可以自动化是网站的理想状态。目前互联网的自动化架构设计主要集中在运维方面。


海量数据

需要存储、管理海量数据


网络情况

许多大型互联网都是为全球用户提供服务的,用户分布范围广,各地网络情况千差万别。在国内,有各个运营商网络互通难的问题。而中美光缆的数次故障,也让一些对国外用户依赖较大的网站不得不考虑在海外建立数据中心。


安全环境恶劣

由于互联网的开放性,使得互联网站更容易受到攻击,大型网站几乎每天都会遇到黑客攻击情况。2011 年国内多个重要网站泄露用户密码,让普通用户也直面一次互联网安全问题。


安全技术方案

互联网的开放特性使得其从诞生起就面对巨大的安全挑战,网站在安全架构方面也积累了许多模式:通过密码和手机校验码进行身份认证;登录、交易等操作需要对网络通讯进行加密,网站服务器上存储的敏感数据如用户信息等也进行加密处理;为了防止机器人程序滥用网络资源供给网站,网站使用验证码进行识别;对于常见的用于攻击网站的 XSS 攻击,SQL 注入,进行编码转换等相应处理;对于垃圾信息、敏感信息进行过滤;对转账交易等重要操作根据交易模式和交易信息进行风险控制。


需求变更快,系统发布频繁

和传统软件的版本发布频率不同,互联网产品为快速适应市场,满足用户需求,其产品发布频率也是极高的。Office 的产品版本以年为单位发布,而一般大型网站的产品每周都有新版本发布上线,至于中小型网站的发布就更频繁了,有时候一天会发布几十次。


  • 架构分层,分割,分布式,异步,可扩展,冗余


  • 运维与安全

  • 自动化运维

  • 数据采集与展示

  • 数据监控与报警

  • 攻击与防护

  • 数据加密与解密


  • 前端

  • 动静分离

  • 内容服务

  • 反向代理

  • dns

  • 网关

  • 网关结构

  • 负载均衡

  • 动态页面静态化

  • 业务拆分

  • 服务层架构

  • 微服务框架

  • 分布式消息队列

  • 分布式缓存

  • 分布式一致性(锁)服务

  • 存储层架构

  • 分布式文件

  • 分布式关系数据库

  • nosql 数据库

  • 后台架构

  • 大数据平台

  • 搜索引擎

  • 推荐引擎

  • 数据仓库


发布于: 2020 年 11 月 15 日阅读数: 34
用户头像

evildracula

关注

还未添加个人签名 2019.07.29 加入

还未添加个人简介

评论

发布
暂无评论
Week4 系统架构