从小站到大站的技术架构优化之路-网站架构与前端服务性能优化

本文涉及的产品
云数据库 Redis 版,社区版 2GB
推荐场景:
搭建游戏排行榜
云数据库 MongoDB,通用型 2核4GB
简介:

一、课程目的

2015年,5月的某天,正在上班,突然看线公司群里开始发出携程网访问500的信息,于是乎,大家小扯的一下,大家并没有想到后来发生的事情的事情会如此震惊,开始官方的微博确认问题为,正遭受攻击,但后来内部的技术人员泄漏出“数据库被物理删除!” 这个对于技术的人员来说,可以说是非常惊讶的消息,大家开始了各种疑问,怎么确定是数据库引起,作为一个大公司怎么会有这种问题产生,数据库作为底层核心,为什么恢复机制是那么薄弱。

陆续消息中,最后传出,由于运维人员的类似于自动化系统操作不当,造成几个系统的数据目录被清理。这个也人员失误最后也得到了官方的证实。

https://www.zhihu.com/question/30746844

2014年,当时应邀去成都的一家企业作mongodb的培训,公司正利用mongdb作为单一的数据仓库,他们选用2.4的版本,由于业务性质,主要存储客户车辆和交通位置信息,且mongodb很好的分片方式,避免了关系数据库的水平扩展。由于持续的数据写入,并且初期缺乏对mongdo管理维护的了解,导致当时一个collection的数据超过了150G,oplog的设置为200m的,导致性能极具下降。

2014、2015年正是微信公众账号的极速发展事情,很多小的创业团队,利用公众账号的平台大赚了一笔。15年中旬,接到一家公司老板打过来的电话,电话中着很急切的告知他们公司的服务目前正不断遭受类似于DDOS的恶意攻击,这种情况已经持续了一段时间,由于问题迟迟无法定位,导致线上核心服务无法正常运行,为此收到了很多顾客投诉反馈,若再无法解决,业务将没法正常开展,急需技术支持.

在这几年,或是而听、或是全身心经历,兼职技术支持,我接触了很多类似的案例,写这个课程的最基本的目的就是,总结经验和教训,为了避免走相同的路。

因......

    1、为什么要设计这门课程

 

     2、我们能学到什么?

                  2.1.1、一样的技术不一样的切入点

                   从整体到局部,从案例到总结 我们来讲解本课程

                  2.1.2、常遇到的内容不常明白的东西

                  基于个人实践案例,从其抽象出的互联网概念中,细节的介绍典型的案例实现。

                  大的问题,几乎都是由于细节的不注意引起,有的问题,我们常遇到,也容易疏忽,以至于导致造成的大问题。

                  2.1.3、一样的针对性适合不一样的人群

                  资深工程狮-看不同问题的处理手段、程序猿-了解不同领域的技术实现、技术小白-了解互联网技术架构的奥秘。

         没错,本课程我们要讲的是 “架构”“性能”、和 “实践”。                   

      3、讲解前言

                  3.1.1、讲解方式

                   金字塔形式的方式从上层到下层讲解,先:介绍技术架构模式、一般演变模式。总体介绍接入层、中层层、底层的技术架构,再着重围绕接入层性能优化展开案例分析。

                   课程若有涉及比较浅显的内容,本课程提供出对应知识点指引,并不作详述。

 

 
大章节 小标题 课程小节 内容介绍 预计时长(min) 课时小章(拆分成小课时) 预计时长(min)
课程设计前言 课程目的 1、为什么要作这期的课程? 介绍这门课程设计的目的,比如介绍一些由于我们在日常的工作中常常遇到的问题,或是由于网站整体设计时的考虑不足,导致后期的性能、功能扩展瓶颈,最后不得不考虑重构,学习完这门课程后,我们所作的东西更有前瞻性,思路能更复合公司的业务发展方向。或是由于单一的通过某一种思路或者方向上去考虑问题,导致功能、性能及安全的冲突,学习完这门课程后,我们学会多方面的综合分析,拿出最有效的方案。或是由于,目前企业中已经出现了各式各样的问题甚至到了瓶颈时期,一直到不到出路,这时借助这门课程来学习到一些我之前处理并且归纳好的经验,从而有助于帮助你走出问题困境。也许你只是了解互联网的一部分,那么我将带你进入到互联网的技术世界,看看一路从小站到大战中有多少的坑是可以避免出现的。 6    
2、课程找重点及注意事项 提高到架构,确实讲解课程内容有很多,好比一个金字塔,这个课程是带着大家从顶端往下分析,内容过于笼统,我们也就只能知道个大概,不知所以然,如果一个个深挖,就是一个幕客网所有视频的集合。                                                  所以,在这里特别的告诉大家,我们介绍的就是从上层说起,分别准备三大块内容:网站性能优化、开源应用、及框架应用及分析、网站安全三个课程分类进行。                                           即使是分了三个部分,也是有海量的内容存在,但是就目前互联网的常用架构及工作模式,我们针对性的介绍一些,针对性的介绍具体某一个案例时,我将把设计到的基础内容以别的方式提供,或者引升到。案例部分详细介绍,注意了:重点是思路总结,我们需要掌握的就是这个。                            介绍三门课程前端服务性能优化 中间层、底层开源服务、安全分别将介绍的内容。 5    
3、我们能学习到什么? 学习到什么,我想不用多介绍,就如本课程的标题一样,如果你能一一的按照课程的内容学习完,那么你将从总体上对网站架构有把控。相信借助课程中实践的经验总结,你也将收获到可贵的经验,从而以后的工作中少走弯路。 2    
  主要内容          
常见的网站部署架构模型 小站的常用部署架构 1、集中方式 1、介绍单机部署特点 2、存在的优点和缺陷 3、典型的集中式架构演示 10    
   
2、BS\CS架构模式 1、介绍什么是BS及CS的架构模式 2、介绍BS\CS的架构模式特点 3、集中模式到BS\CS模式需要注意问题 4、典型的BS架构演示  10    
   
   
大站的常用部署架构 1、分层服务化部署 1、水平拆分与垂直拆分 2、常用的分层模式案例 3、应用、数据分层演化 10    
   
   
2、分布式架构 1、什么是分布式架构 2、SOA面向服务模式 2、互联网中常用的分布式架构案例 3、CDN网络 4、GLSB的实现  10    
   
4、服务的接入层、中间层、底层 演示服务接入整体架构,总体分析本课程中前端接入层,中间层底层服务有哪些。 10    
   
   
   
从小站到大战演变 4、架构演变 1、阐述架构演变模式 2、开发语言性能优化 3、整体架构的稳定性 4、网站架构设计中的矛盾 5、水平拆分与垂直拆分 10    
   
   
   
网站架构设计核心 衡量架构设计好坏的标准 1、网站性能中的可用性和可靠性 1、可用性与可靠性介绍 2、网站性能指标参数讲解 5    
   
2、网站扩展能力 1、网站架构设计之初该考虑的扩展性 2、案例分析:扩展性考虑缺失而导致的隐患 网站上线初期带宽预估不足导致页面加载缓慢   tomcat多个服务部署与独立部署的矛盾 5    
   
前端服务常用重点技术 Web前端性能优化 1、接入端性能优化常见方法 1、接性能优化逻辑 2、js代码结构优化 3、多线程、异步、非阻塞实现 3、 120 1、网站接入层性能优化逻辑 10
2、常用的接入前端服务结构(JAVA、PHP、PYTHON) 10
3、Tomcat独立部署还是选择整合部署? 10
4、服务的动静分离实现 15
5、LAMP与LNMP 15
6、Tengine对比nginx 15
7、linux系统下的多线程 15
8、程序的异步与非阻塞实现 15
9、Linux系统下的IO模式 15
2、Nginx服务优化 1、详解轻量级Nginx服务及优化 2、Nginx代理详解 3、Nginx服务常用结构及优化手段 70 1、Nginx为什么能脱颖而出 10
2、Nginx系统性参数优化 15
3、代理服务 15
4、负载均衡 15
5、静态资源服务 15
3、负载均衡服务 1、负载均衡实现特点 2、常用的负载均衡实现方式 3、LVS方案的高可用设计及实现 45 1、负载均衡的基本原理 15
2、不同场景下的负载均衡技术实现 15
3、LVS 15
4、持久化缓存 1、持久化与非持久化 2、构建高性能的Redis持久化集群 3、Mongodb分片集群可用性介绍及注意事项 50 1、什么是持久化和非持久化? 10
2、Redis中的持久化和非持久化实现 15
3、Mongodb和redis集群对比 10
4、Mongodb和Redis分片集群的实现对比 15
5、非持久化缓存 1、一致性哈希与哈希取模的算法实现 python程序为例 2、数据级缓存设计实现逻辑 python、php程序实现为例 3、memcache开发使用过程中的那些坑 30-40 1、非持久化缓存的特性及应用 10
2、用Memcache构建高可用非持久化集群 15
3、程序演示Python中实现一致性哈希的实现 15
6、页面缓存服务 1、页面缓存的作用 2、Nginx\Varnish\ATS\Squid缓存加速区别 3、如何有效的使用Vanrish缓存加速 20-40 1、什么时候应该考虑页面缓存 10
2、页面缓存的实现已及各种类的缓存应用对比 10
3、静态内容缓存实现分类 10
4、Varnish静态动态接口页面缓存的实现 15
  案例 1、应用混部导致网站性能故障 10    
2、归纳应用部署常见的错误 10    
3、日志错乱写入引发的故障 10    
4、归纳日志管理不善导致的其他影响 10    
5、不好的编程习惯引发的故障 15    
6、归纳编程习惯导致的问题 15    
7、缓存操作不合理导致的系统性崩溃 20-30 1、连接数限制设置过小导致缓存的短链接性质受限 10
2、哈希取模的算法实现容易导只能 10
3、缓存数据内容维度对接口功能的影响 10
8、归纳缓存的使用不当造成的影响 10    
前端服务架构设计总结 1、接入层服务架构设计逻辑总结 15    

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
目录
相关文章
|
1月前
|
前端开发 JavaScript UED
优化前端性能的关键技巧
在当今数字化时代,网站和应用程序的性能对用户体验至关重要。本文将介绍一些优化前端性能的关键技巧,包括减少HTTP请求、使用CDN加速、精简代码等方面的实用建议,帮助开发者提升前端性能,提供更流畅的用户体验。
|
1月前
|
缓存 前端开发 JavaScript
揭秘前端性能优化:从代码到用户体验的全面升级
揭秘前端性能优化:从代码到用户体验的全面升级
19 0
|
1月前
|
Web App开发 缓存 前端开发
前端性能优化方案有哪些?
前端性能优化方案有哪些?
66 1
|
1月前
|
运维 网络协议 安全
长连接网关技术专题(十):百度基于Go的千万级统一长连接服务架构实践
本文将介绍百度基于golang实现的统一长连接服务,从统一长连接功能实现和性能优化等角度,描述了其在设计、开发和维护过程中面临的问题和挑战,并重点介绍了解决相关问题和挑战的方案和实践经验。
73 1
|
1月前
|
网络协议 Linux
Linux DNS服务详解——DNS主从架构配置
Linux DNS服务详解——DNS主从架构配置
405 4
|
1月前
|
消息中间件 前端开发 API
架构的未来:微前端与微服务的融合
架构的未来:微前端与微服务的融合
|
1天前
|
存储 缓存 前端开发
前端如何利用indexDB进行数据优化
使用IndexedDB作为浏览器内置的客户端数据库,用于存储大量数据和实现离线支持。它能缓存常用数据,减少服务器请求,提高用户体验。IndexedDB支持数据索引、复杂查询及版本管理,允许离线操作并同步到服务器。但需熟悉其异步API,可借助Dexie.js、localForage等库简化使用。
|
4天前
|
机器学习/深度学习 前端开发 算法
使用机器学习优化前端用户体验
在当今高度竞争的互联网市场中,用户体验是至关重要的。本文将探讨如何利用机器学习技术来优化前端用户体验,从而提高用户满意度和留存率。我们将介绍如何利用机器学习算法分析用户行为数据,优化网站性能和内容推荐,以及如何实时调整界面设计和交互方式,从而实现个性化、智能化的用户体验。
|
5天前
|
前端开发 算法 JavaScript
如何优化前端性能:探索图片压缩与延迟加载技术
本文深入探讨了前端性能优化中的关键问题:图片压缩与延迟加载技术。通过介绍图片压缩的原理和方法,并结合实例说明了如何有效减少图片大小、提升加载速度;同时,详细解析了延迟加载技术的实现原理及其在提高页面加载性能中的作用,为前端开发者提供了实用的优化方案。
|
7天前
|
缓存 前端开发 JavaScript
如何优化前端网页加载速度:7个实用技巧
在当今互联网时代,网页加载速度对用户体验至关重要。本文将介绍7个实用的技巧,帮助前端开发者优化网页加载速度,提升用户体验。从压缩资源到异步加载,从图片优化到缓存策略,这些技巧将帮助你在前端开发中取得更好的效果。