Bootstrap

大型互联网应用的发展和未来

典型的大型互联网应用

特点

典型的大型互联网应用具有以下特点

  • 高并发,大流量

  • 高可用

  • 海量数据

  • 面对的网络环境复杂

  • 易受到攻击

  • 迭代快

  • 渐进式发展

应对技术方向

应对高并发问题的技术策略:

垂直伸缩

通过升级硬件和网络吞吐能力可以有效的提升系统性能。常见的方法有

  • 使用RAID增加I/O吞吐能力

  • 使用SSD提升I/O访问速度

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

  • 升级/添加网络接口提升网络吞吐能力

  • 更换服务器,使用更好的CPU提升处理能力

垂直伸缩的缺点:

水平伸缩

水平伸缩就是通过增加服务器来提升性能。

水平伸缩很好的解决了垂直伸缩花费代价大和单台服务器极限的问题。

水平伸缩在初始阶段花费比垂直伸缩高,但是达到一定程度之后水平伸缩更具有优势。

核心要素

典型的大型互联网应用核心要素包括:性能,可用性,扩展性,伸缩性和安全性

大型互联网架构演进

典型的大型互联网应用主要经过了以下几个阶段:

互联网架构模式

分层

分层是最常见的一种架构模式,将系统在横向维度分成几个职责较单一的模块,然后通过上下层直接的依赖调度组成一个完整的系统。最常见的分层是将系统分成:展示层、应用层、服务层和存储层。

分割

分割和分层相比,就像是从纵向进行分层,将业务拆分成多个独立的应用,这些应用无论是物理上还是逻辑上都是独立的。例如将商城切分成会员、商品、商家、订单等。

分布式

分布式的目的是使用更多的服务器来处理同一个功能,分层和分割的最终目的也是为了实现分布式部署。常见的分布式方案有:

  • 分布式应用和服务

  • 分布式静态资源

  • 分布式数据存储

  • 分布式计算

集群

分布式是指系统内的多个模块物理隔离部署,而集群是指单个模块的多服务器部署,即多台服务器部署相同的应用构成一个模块集群。

缓存

缓存可以理解为两种快速:

1、访问路径最近,数据返回快速;例如CDN和反向代理,这两种缓存就是通过将数据存放在离请求者更近的请求路径上而加快响应返回的。

2、数据I/O快速。例如本地缓存和分布式缓存,这两种缓存方式是通过I/O读写速率的提高来提高响应速度的

异步

异步最常见的方式就是使用消息队列,其作用如下:

  • 提高系统可用性

  • 加快系统响应速度

  • 消除并发高峰

冗余

冗余的目的是保障系统的高可用,也就是通俗的7 X 24 小时连续运行。常见的方式有:主备、多机房和异地多中心

自动化

自动化的目的是在无人值守的时候系统也可以平稳的运行。大型互联网系统可包含的自动化包括:

  • 自动化发布

  • 自动化代码管理

  • 自动化测试

  • 自动化安全检查

  • 自动化部署

  • 自动化监控

  • 自动化失效转移

  • 自动化失效恢复

  • 自动化降级

  • 自动化伸缩

安全

互联网应用的安全方法有

  • 使用应用防火墙

  • 网站用户身份认证

  • 数据加密传输

  • 对用户行为日志记录和分析,做风控管理

  • 非正常请求的监测、过滤和阻断

  • 合理的站点规划和分割

  • 使用负载均衡和负载保护策略

  • 有容灾备份和恢复方案

  • 规范化的管理规章制度

互联网架构技术

互联网架构技术分层情况如下:

各类架构技术细分如下:

总结

为了能让应用系统在庞大复杂的互联网环境上高效、平稳和安全的运行,为了能让业务快速适应互联网的发展,为了满足大型互联网系统的核心要素,整个互联网行业在不断的探索前行,互联网发展历程中的每种架构模式,每个技术方法都见证了历史,即使在当前数据爆发的情况下,每个模式,每种技术方法也都还有勇武之地。伴随着AI、云服务和架构理念的发展,未来的互联网应该是一个海量数据的,智能的,基于云和服务网格的时代。