从零到十亿——大型网站架构设计变迁课件.pptx

从零到十亿——大型网站架构设计变迁课件.pptx

从零到十亿——大型网站架构变迁什么是架构?架构——人们对一个结构内的元素及元素间关系的一种主观映射的产物。[词典]架构——架构是在组件,彼此间和与环境间的关系,引导设计发展原则中体现的系统的基本结构。[IEEE 1471]架构——系统(模块)与系统(模块)之间的关系的抽象。[自定义]设计架构的意义?好的架构设计可以让系统的承载率更高。好的架构设计可以让系统更高效。好的架构设计可以让系统更稳定。好的架构设计可以让系统更容易扩展。好的架构设计可以让系统更安全。好的架构设计可以让系统更容易迁移。……架构==框架?语言不是可伸缩性的关键,架构才是关键网站架构的目标高可用性(High Availability)可伸缩性(Scalability)高性能(High Performance)正题开始网站建立初期需求特点需求:能够正常访问开发效率高特点:数据访问量:少于10000数据量:少于10000代码量:少对安全性要求:不高特点:1.简单2.数据库表结构简单3.开发效率高4.Web Server单点5.DB Server单点6.程序耦合性高7.不易扩展8.性能主要依赖数据库访问量达到10万问题访问量日益增大性能越来越低经常出现宕机数据库的压力越来越明显特点1.缓解了数据库压力2.降低对数据库的依赖的风险3.需要存储大量静态文件4.不利于信息的更新5.读数据有延迟特点1.逻辑比较复杂2.使用场合跟业务相关3.数据可能出现不统一访问量达到100万问题访问量日益增大性能越来越低静态文件数据量庞大工作效率低下项目代码越来越多开发效率低下图片、CSS等静态文件访问给服务和带宽带来额外消耗单台数据库访问达到瓶颈解决系统进行垂直划分数据库按系统进行垂直划分增加本地页面、数据缓存增加本地缓存增加CDN缓存按业务划分模块,增加代码复用率反响代理/负载均衡的引入特点1.对系统进行了垂直划分分摊了系统压力2.代码按项目拆分提高了开发效率2.增加了CDN缓存增加了静态文件读取速度,降低了服务器额外的负担3.数据库垂直划分解决了数据库瓶颈4.出现业务模块负载均衡DNS负载均衡反向代理负载均衡直接路由......DNS负载均衡D:\python\Django-1.1.1nslookup Server: Address: 0Non-authoritative answer:Name: Addresses: 4, 12, 0, 1Aliases: 简单缺少灵活性(DNS缓存)反向代理负载均衡负载均衡软件nginxHAProxyapache httpdLVS(网络第四层工作)F5(硬件,四层/七层)Linux Virtual Server(LVS)VS/NAT模式VS/TUN模式VS/DR模式FailoverARP表IPMAC……Failover注意问题Arp广播需要关闭Content Delivery Network访问量达到1000万问题传统的嵌入模块式架构已很难满足发展需求大量业务模块嵌入不易维护数据量急剧增大,查询效率急剧下降本地缓存已不能满足业务和数据发展需求大量上传文件的存储日益成为显著问题没有系统日常跟踪,无法判断系统日常运行状态解决设计中间层服务(分布式架构)分布式缓存系统分布式存储系统数据的水平划分搜索引擎系统日志系统开放平台中间层服务设计设计目标服务集群高可用服务机器执行高效服务集群可管理分布式缓存一致性哈希分布式存储利用一些文件存储系统如GFS、TFS等利用数据作为存储介质,使用Url哈希得到资源位置数据水平切分搜索引擎日志系统开放平台拦截系统异常根据异常报警多协议开放平台安全性自助访问量达到1亿以上问题服务太多管理成为问题系统的部署逐渐成为一个难题服务器数量剧增存在严重的资源浪费情况系统与系统之间的耦合性比较高,通信成本交高大量的数据分析需求产生开发规范比较松散,系统中充满各种框架数据库的架构对开发人员不透明解决动态服务管理系统消息总线离线分析系统开发web与数据层框架平台运维管理平台人工智能动态服务管理系统解决了服务管理问题解决了服务部署问题重发提高了资源利用率消息总线1.消息的可靠性2.消息的持久化3.消息订阅采用多种接口4.消息级别定义离线分析系统Hadoop 是一个能够对大量数据进行分布式处理的软件框架。 MapReduce 的一个实现多种框架平台目的:规范、约束、调高开发效率,降低因开发人员素质不同造成的影响。表示层框架,如淘宝的webx中间层框架,封装通信、可用性、稳定性等数据层框架,对分库、分表透明、提供自定义的查询语句、提供分布式的数据缓存一些未提到的问题系统的安全问题系统的容灾机制运维平台垃圾信息的处理Passport问题QA谢谢!

文档评论(0)

1亿VIP精品文档

相关文档