运维与架构师的两大主题?

1、数据

项目经验:

全网数据备份解决方案:数据库数据,图片资源等,程序,运维配置文件,其他相关的。(丢失了线上的环境,保证可以恢复)

数据库数据:主从(解决物理故障),备机开binlog保持1天以上,按天做备份(丢失数据不会超过1分钟)。

百度案例:一主多从,其中有个从不提供服务,实时同步 drbd(基本不丢数据)

M-S1:(不提供服务,专做备份,半同步插件)

-S2:

图片资源等:

1、每天晚上全量备份,1T以下

增量备份:

01、rsync 小文件比对时间很长

02、drbd  浪费资源,备节点不可用

03、按时间增量,201606 201607

04、更新资源写log,让rsync直接通过log同步,不用再进行比对

05、innotify,sersync

全量备份:

01、drbd

02、程序双写,提交数据写到两个存储。

03、分布式存储 NoSQL,mysql,mongodb同步机制做存储

04、分布式架构方案。

程序运维的配置文件:都需要放到SVN里,再向外发布

按天备份即可:维护好SVN,就可以

办公室SVN-->IDC测试

 -->IDC正式

备份思想:

需求分析:对于每个项目或者业务点,事先定好备份计划。

数据库:数据规划好可以丢失多少,10分钟和1天,方案不同。

--> 需求谁来提出来?运维总监,开发总监,团队讨论。

机房迁移,OPENSSL升级,数据库升级

2、7x24小时不间断提供服务

集群lvs,nginx,haproxy,f5,netscaler

高可用keepalive,heartbeat,nginx,haproxy

性能/扩展:优化,用户体验要好,业务可以自动扩展收缩

监控:运维级别(网络连通性,磁盘,DNS)

 应用级别(jvm垃圾回收,访问速度,流量pv抖动)

 业务级别(按产品线监控,流量,负载,访问请求,错误日志50X 40x,接口存活以及流量)

 

1、降低服务器访问压力

可以将不同的资源放到不同的服务器上,可以降低单台服务器的压力,也可以加快整个网站的访问速度。另外,不同的服务器,减少cookie的传送,也可以降低带宽

2、页面静态化 

直接在服务器端生成静态页面,避免频繁访问数据库,降低数据库压力。

SHTML server sider incluee SSI 服务器端html拼接技术。

CDN对动态地址,不会做优化处理,对与请求静态的文件或者地址,进行优化。所以页面静态化也显得很有必要了

有些不适合静态化的,比如有权限的页面,需要注册登陆后才能浏览,这就不能静态化。

3、CDN

通过DNS解析,让不同区域的用户,访问最近的区域,使访问速度更快

现在很多企业没有能力搭建CDN服务,可以购买第三方CDN优化。开发需要留意会因为有CDN,开发会有不同。

CDN对动态地址,不会做优化处理,对与请求静态的文件或者地址,进行优化。所以页面静态化也显得很有必要了

4、js压缩和csssprite

用工具把js文件压缩,可以减少服务器和网络的压力,加快网页加载速度。

把所有的图片压缩到一个图片上,显示的时候利用CSS偏移就可以显示不同的图片。


访问不同的资源,可能请求不同的服务器,对于session可能存在不同服务器之间没有同步,造成需要重新登陆的情况,因此session放到专门的服务器,每次都去同一个地方访问session,就避免了这个问题


5、反向代理

用户向web发送请求的时候,并不是直接向服务器请求,先请求反向代理服务器,然后由反向代理服务器请求资源服务器。反向代理起到中转者的角色。

反向代理服务器可以米面慢速Internet占用Web服务器的连接数

反向代理服务器还可以起到安全和负载均衡的优点。


6、分离

文件服务器和web服务器分离:不同的事,不同服务器完成

上传和下载分离

消耗资源的处理(视频转码,图片加水印)和web服务器分离

数据库读写分离

数据库分库,分表


7、缓存-->降低服务器,数据库压力的最好方法

8、搜索引擎技术:全文检索

sql like的问题:数据库搜索时,用like查询 让整个数据库很容易卡死

全文检索的需求:高效率;模糊匹配

Lucene()全文检索的工具-->效率低

Solr:基于java的封装了Lucene-->效率高

技术都是混合架构的,适合的地方,使用适合的技术,不存在非谁不可的问题。

9、高并发的场景

秒杀和抢单:不能出现重复的问题

方法1:加锁,只能有一个线程进行操作。缺点:效率低,慢。 高并发场景,不使用这种方案

方案2:两个阶段处理,自由抢,然后排队裁判。

文章的阅读数:避免同时并发加1

方法1:加锁,只能有一个线程进行操作。缺点:效率低,慢。

方法2:每条阅读单独记录,然后汇总统计。

10、云计算 按需服务

比如12306平时10w够用,春运的时候需要100w,这就没有必要买100w台服务器,利用云服务,按照需要买需要的服务就可以了

随着云服务的深入,越来越多的企业,会去掉低端的网管,所以应该有危机感。