Linux就业技术指导

Linux就业技术指导(一):简历撰写及面试筹备要领

一,开场

二,模型

Linux就业技术指导 - 图1

三,目标选材

3.1 什么是目标选材

简单说就是确定一个候选人是否符合某一个工作岗位要求的整个流程。这是对招聘方的一个培训,应聘方如果掌握了,就知道应该怎样正确的去应聘工作。

3.2 目标选材最重要的心理学基础:

以一个人过去的行为预测未来的行为

Linux就业技术指导 - 图2
举个例子

  1. 我是xx公司的运维工程师,我在一天晚上8点左右遇到了一起线上的故障,我们的监控服务器发报警短信说某台服务器连接超时了(zabbix-agent),当时我用最快的速度用笔记本电脑连上公司的VPN,发现CRT已经连接不上故障服务器了,ping不通,telnet 22端口也连接不上,我判断是服务器死机了,然后我连上了服务器的远程控制卡并重启了服务器,等服务器启动好了,我登录上服务器,因为大部分服务都是做好init.d启动脚本并用chkconfig管理起来的,所以我检查了所有服务都运行正常了,又给相应的开发组写了邮件让他们确认程序是否正常,并跟老大汇报了处理过程和结果。

例子非常简单虽然只是运维日常中的一件小事,但是事件叙述的非常完整,全面。让对方理解起来非常清晰。事件的背景,行动,结果样样俱全。

3.3 什么样的话尽量不写/不说或者少写/少说?

  1. 模糊性
  2. 观点性
  3. 假设性

    四,简历撰写

    4.1 为什么要写简历?

    让别人快速的了解你过往的经历,不宜太长,也不宜太短。一般来说,长不要超过4页A4纸,短不要少于2页A4纸,可以附带一些作品,比如:架构图,表格,脚本。

4.2 必须包含的内容

  1. 姓名/性别
  2. 手机号
  3. 目标工作地点,目标职位
  4. 邮箱
  5. 教育背景
  6. 工作经历
  7. 项目经验

    #例:工作经历
    2015年5月-至今 北京xxx科技信息有限公司
    公司规模:50人-100人,职位:运维工程师
    主要工作职责:
    1,公司服务器的日常运维工作,常见服务部署搭建及维护。
    2,MySQL数据库的日常运维工作,主从同步搭建,数据备份
    3,监控系统的搭建和维护,为新上线的服务写自定义监控脚本
    4,处理线上服务紧急故障,保证线上服务7*24稳定运行。
    5,定期机房巡检,服务器上架等工作
    6,日常技术文档的编写,架构图的绘制
    #例:教育背景
    教育背景专业尽量向计算机上靠
    比如:生物工程--->生物信息工程
    比如:电子机械工程--->电子机械信息自动化
    实在不行
    那就说,我大学选修了计算机科学与技术课程
    #项目经验
    监控
    数据库
    lnmp
    负载均衡器
    

    4.3 可选内容

  8. 一段自信的自我介绍

  9. 期望薪资
  10. 年龄,工作年限
  11. 掌握技能
  12. 曾获奖项和兴趣爱好
  13. 附件(架构图,表格,脚本,技术文档)
    例如:
    CentOS6.x系Linux发行版      熟练掌握
    Nginx Web服务器             熟练掌握
    MySQL5.x数据库              熟练掌握
    Zabbix监控系统              熟练掌握
    Bash SHELL脚本              熟练掌握
    nginx反向代理+keepalived负载均衡高可用  熟练掌握
    NFS共享存储技术及高可用模型   熟练掌握
    虚拟化技术                    了解知道
    Python编程                    了解知道
    

    4.4 简历的投递

    建议选择两个渠道投递简历,智联招聘+拉钩,投递时间,工作日上午9点30到10点为最优

4.5 简历的打印和包装

至少把网投的简历打印5份,并用文件夹夹好,面试当天一定要随身携带一份简历。

4.6 面试前的准备

(1)保持手机畅通
1,询问对方公司名称
2,快速思考自己一周内的行程安排,约面试时间
3,请对方发面试邀请邮件,包括JD
4,建议每天面试的安排不要超过4个
(2)提前做好功课,网上查,群里问
(3)梳妆打扮,沐浴斋戒,养精蓄锐,调整状态

4.7 面试当天

(1)便装出行,不要迟到
(2)应聘登记表
(3)笔试题
1,有笔试题是好事
2,切忌长篇大论,简答,画图,列表
3,开卷原则,准备好4G流量

五,面谈技巧

5.1 首先简单介绍一下你自己

(1)姓名,教育背景,工作年限一定要说
(2)说工作经历的时候,要倒序说
(3)把话题往架构上带,带入包围圈
(4)切忌不要把自己负责的业务架构说的太大
(5)突出自己的监控业务,数据库维护及脚本编程的技术能力

#例
    我叫xxx,毕业于xxx大学,我有N年(注:N不小于2)运维工程师的工作经验。我最近一份工作经历是从2014年x月在北京xxx科技有限公司实习,是我们学校的一个师兄招我过去的,我在那里主要和师兄一起负责线上服务器的运维工作,那是一家做xxx业务的互联网公司,主要的线上业务是xxx,我主要和师兄一起负责xxx项目的业务运维,我接触到的主要是CentOS6系的操作系统,Web服务器主要是nginx,后端跑的是php业务。我们负责的业务,架构主要是这样的xxxxx。我参加过的运维项目主要有:STAR1,STAR2,STAR3...(与简历上保持一致)

5.2 回答技术问题的一些技巧

(1)不要信口开河!
(2)不熟悉的技术,可以找相似的技术替代
(3)表现出愿意学习的态度
(4)尽量表现自己的执行力和态度
(5)多说STAR,什么背景下?做过什么?结果是啥?

5.3 总结一些带坑的面试题

(1)你们的业务,日均pv是多少?并发多大?带宽?
要点:不要抠死数,说方法
(2)你们有多少台服务器?有多少开发?多少运维?
要点: 20来个服务节点,20个开发,3个运维
(3)你们的代码上线是怎么做的?
要点:要把大象装冰箱,统共分3步
(4)你们的监控是怎么做的?
(5)你们的日志分析是怎么做的?
要点: 日志的种类,简单的分析方法,思路
(6)阿里云,青云,亚马逊云这类云主机用过吗?
要点: 用过,和管理物理服务器没有太大区别,就是虚拟机
(7)你熟悉/了解xxx技术吗?(你听都没听说过的)
要点: 记住你身在一个技术团队,你不是万能的
(8)你有没有问题要问我们?

5.4 技术面试后

(1)第二轮技术面谈(90%以上)

面技术主管可能还要轻松些,所以别紧张

(2)你回家等消息吧(80%悲剧了)

可以要一下面试官的邮箱,晚上回家把面试总结一下

(3)HR面谈

一般不会当天,但也要做好准备

5.5 HR面谈

恭喜你,你的技术能力被认可了,但是战斗还没结束。下面,我们先来普及一些跟人力资源有关的名词。

  1. HR:Human Resource 人力资源
  2. JD:job description 岗位职责
  3. head count:职位空缺
  4. budget:岗位预算,这个和你的薪资有关
  5. xxK:一般谈薪水,都用多少多少K来谈,10K就是月薪1万。
  6. offer:就是官方的正式录用书,面试成功的标志
  7. 离职证明:离职证明就是证明你与前一家用人单位解除了劳动合同的证明,因为劳动法规定不能重复用工,所以请大家务必提前准备好。
  8. 税前工资:就是还没有扣税的工资。

到手工资=税前工资-社会保险个人部分-住房公积金-个人所得税
HR面试的特点:
标准化流程,问题大同小异
应对HR面试的策略:标准问题,有标准作答。
(1)你离职的原因是什么?
错误答案:

  • 我觉得上一家公司给我的薪水太低了
  • 我认为我在上一家公司太闲了
  • 我觉得上一家公司的同事很难相处。
  • 我觉得我的技术水平在上一家公司无法充分发挥出来
  • 我想找一份稳定的工作,我上一家公司的业务不是很稳定。

参考答案:

我上一家公司的领导非常重用我,我每天的工作都很充实,学到了很多东西,工作的很快乐,和同事相处的也很好。可是由于公司业务不断扩大,老板决定今年公司要搬家了,我的目标工作地点是:xxxx,因为我今年还想在业余时间学习Python,充实我的技术,如果公司搬家,我每天浪费在路上的时间就超过3小时。我就考虑找个离家近点的机会,既能在工作中发挥我的技术特长,又能在业余时间学习一点新的知识。

(2)你上一份工作的薪水是多少?期望薪水是多少?

#HR的思路是:
if [你要10K];then
    给你8K行不行?
fi

参考答案:

首先我想知道咱们公司这边这个职位的budget是多少?我之前的工作薪水是由基本工资和绩效工资两部分组成,我的基本工资是税前9K,绩效工资年底发放,当时签合同的时候说的是2-4个月的月薪,也就是我的年薪大概是16*9=14万左右,那我这次换工作的预期,大概的预期是年薪17万左右吧。具体的月薪,等我了解了贵公司的工资结构和福利待遇,可以再谈。

(3)你现在还在职吗?多久能入职?
分析:发offer的信号,但有陷阱
错误回答:我已经离职了,随时可以入职

点评:你丢掉了谈薪的筹码,把自己轻易就卖出去了,错失了其他的机会

六,谈薪秘籍

不要着急把自己卖了,让我们进入谈判的节凑:
1,公司每年的带薪年假有几天,带薪病假有几天?

点评:按照国家规定是这样的,累计工作满1年不满10年的,带薪年休假不少于5天,但是大多数互联网公司都会超过5天

2,公司给员工的社保和公积金上缴基数是多少?
拿到手的薪资=税前工资-社保个人部分-公积金个人部分-个税

if [ 缴费基数 -eq 税前工资 ];then
    哎呀,这样的话我拿到手的薪资就太少了,能不能再考虑税前工资再给多一些?
elif [ 缴费基数 -lt 税前工资 ] && [ 缴费基数 -gt 0 ]; then
    哎呀,我准备在北京长期发展,公积金缴费基数这么低,不利于在北京长期发展,能不能考虑税前工资再给多一些?
else
    什么?不给上社保和公积金?不好意思我不签你们公司。
fi

七,如何选择offer

7.1 如何选择offer

  1. 所有offer拿到,都要给自己1-2天的思考时间
  2. 跟对人,找准方向,给钱多的未必最适合自己
  3. 咨询老师,朋友,亲人的意见,综合考虑

    offer要HR正式发邮件到你邮箱里才算落袋为安,只口头上说,不发offer邮件的HR,可以理解为耍流氓。

八,初入职场

主动性:

  1. 发现架构服务等的问题隐患,主动提出问题解决方案(转正前以先了解为主,除非老大让你提方案)。不要光用口说,而是写好专业的可实施的解决方案提交给领导抉择。
  2. 领导无意中交代的任务。越是领导无意中交代的,你更要格外重视,快速响应,并完成。
  3. 领导:发邮件,让研究技术?

    这是常有的事,要加班熬夜,最短时间完成,不能影响自己的正常工作。哪怕是加班到半夜,第二天也不要迟到。新工作面临被信任问题,因此无论什么任务,都要最快速度完成。让领导信任,可能就是入职后打2-3个漂亮仗,以后路就平坦了。做完后,可以发给老师帮你审核确认,再提交领导,这样提升你打仗的漂亮程度。

表现:
(1)要表现就要人前人后一致,不要领导在了努力,不在偷懒,领导都不是傻子。例如:加班。踏实,靠谱是公司最需要的人。
(2)去新单位少做和工作无关的事。

实在没事干可以学习工作相关的内容,了解公司业务,了解架构,提提隐患,写写未来扩展方案。或者请示领导分配活,总之不要闲着,闲着没进步,还比较危险。

(3)做了有价值的工作要表现出来。

例如半夜处理报警,比较好的表现方法是,再处理问题后立即整理,发邮件(记录好),不要拖到天亮上班后发,那样效果就差多了。年底加薪主要靠业绩说话,某年某月某日某晚某时某分为公司做了什么事(减少了哪些不利影响),一年下来记录下工作大事记,就是年终总结了。数据是最好的表现自己的方法,其他文字都是苍白无力的。

(4)要有把公司当做自己是老板的态度。
(5)简单做人,勤奋做事,是初入职场的同学最应该有的心态

Linux就业技术指导(二):简历项目经验示例

一,期中项目经验示例

1.1 新服务器上线搭建系统环境

1,根据现有结构部署工具(PXE+kickstart)
2,结合应用系统需求定制部署模版
3,制作系统优化等一键执行脚本
4,自动化部署实施
5,根据定制的优化内容对自动化部署效果进行检验

1.2 新服务器上线搭建软件环境

1,在新批量部署的服务器上部署LNMP环境;
2,对批量化部署的环境进行效果检验;
3,编制Nginx配置文件并批量化部署;
4,根据需求做Nginx服务相关的优化(expires/gizp等)

1.3 web服务器架构调整(从单点到集群的设计)

需求:解决网站web服务器单点故障的问题
职责:
1,研究多种负载均衡方案
主要针对lvs+keepalived及nginx+keepalived进行研究
2,编写新架构方案实施项目书与实施日程
3,新系统部署与日常维护
把公司原来的多数单点服务器变成了集群,提升了网站的稳定性与高并发的应用场景

1.4 服务器用户权限管理改造方案与实施项目

需求:解决公司root权限泛滥问题
职责:
1,提出权限整改解决方案,改进公司root权限泛滥的现状
2,召集大家开会商讨并确定方案后推进实施
3,实施后使得公司的权限管理更加清晰了(总结维护),从根本上降低了内部操作等不规范及安全隐患的发生。

问题1:你们公司是如何来管理用户权限的? 答:我们是通过sudo来管理权限的,不论是运维还是开发,一般都不会给root权限,只有核心级开发或者研发总监或以上级别的我们才可能给相应服务器级别的权限;对核心运维或者运维总监才会给root权限 问题2:在规划服务器的时候,在服务器上都跑几个普通用户? 答:我们的普通用户是根据项目来的,在不同公司它的项目产品线不一样。我们公司只有十几个产品线,我们为每一个项目建立一个普通用户,因此不论nginx还是tomcat都是跑在普通用户下。 问题3:那一些公用服务呢?比如memcached或者redis。 答:这些公共服务也可以跑在普通用户下,总的来说是这样的,我对运维的理解是,运维做运维的事情,开发做开发的事情。运维负责网络系统,只要系统没有故障,只要网络没有故障,只要系统资源还够用,那么我们运维的职责就到位了。而我们公司的理念是项目负责制,也就是说每个项目的责任人是开发,我们运维大概占30%-40%的责任。我们的开发占60%的责任。当进程上线的时候,这个服务是由普通用户跑的。它的每个站点目录都是普通用户的权限,也就是700的权限普通用户,这个是最安全的。无论是项目的启动,停止,以及代码上线,日志收集,日志分析都是通过我们进程跑的普通用户实现的。我们在管理这个项目的时候,我们可以把开发的用户加到这个项目组里面,这样负责相应项目的开发人员就有对应项目的所有权限。

1.5 服务器日志审计项目提出与实施

1,权限控制后进一步实施对所有用户日志记录方案
2,通过sudo和rsyslog配合实现对所有用户进行日志审计并将记录集中管理
3,实施后让所有运维和开发的所有执行的命令都有记录可查,杜绝了内部人员的操作安全隐患

1.6 全网服务器数据批量分发与批量管理

需求:公司服务器逐渐增多,因此管理起来很麻烦,于是提出解决批量分发管理解决方案,进行全网服务器数据分发与管理
职责:
1,针对ansible分发工具及ssh key+rsync两套分发管理方案研究,最终选择简单易于维护并且强大的ssh key+rsync方案
2,找一台IDC内网服务器,作为分发机器,对固定普通用户做sshkey认证(注意不是root),需要root权限,通过sudo来控制,减少安全隐患。
3,对于分发机进行安全配置,例如,去掉外部IP,开启防火墙。实施完毕,运维管理的效率提高了很多,因此得到了公司的嘉奖。

1.7 全网服务器数据备份方案提出及负责实施

需求:为公司数据做一个完整的备份系统
职责:
1,针对公司重要数据备份混乱状态和领导提出备份全网数据解决方案
2,通过本地打包备份,然后rsync结合inotify应用把全网数据统一备份到一个固定存储服务器,然后在存储服务器上通过脚本检查并报警管理员备份结果
3,定期将IDC机房的数据备份公司的内部服务器,防止地震火灾等问题导致的数据丢失。

1.8 MySQL数据库实现主从同步,及完整备份解决方案

1,在进入公司之前前任运维丢失数据,因此老大很重视数据安全这方面
2,我提出并上线了MySQL数据库备份方案和MySQL架构方案
3,方案主要是在从库上开启binlog及按天分库分表全备,推送到备份服务器
4,将备份的数据定期恢复到测试库给开发使用
5,制定人工更新数据库的流程及制度

1.9 LNMP架构优化方案

1,公司使用LNMP架构,优化较少,运行效果不佳
2,我提出了LNMP架构的优化方案
3,方案主要是Linux系统优化,nginx服务优化,php服务优化,MySQL优化
4,优化完成后,LNMP架构性能有很大提高。

1.10 全网服务器监控解决方案实施

需求:到公司后,没有任何监控系统,每次故障无法报警,每次故障对公司的网站都造成了很大的影响,因此我用自己已经掌握的监控技术,以及查询资料撰写解决方案,提交给公司领导,以改善服务器报警不及时的问题,最大限度的保证公司网站故障及时处理
职责:
1,根据需求选定最流行的监控软件zabbix进行研究。
2,根据不同服务器具体需求定制模版进行监控实时报警
实施完毕后,做到了大部分的故障报警都能及时有效的汇报给管理员,为网站的稳定争取了时间

1.11 搭建jumpserver跳板机管理混乱账户

起止时间: 2016/03-2016/04
软件环境: CentOS6.5
开发工具: jumpserver
项目描述:在投入工作的几个月里,我发现公司的服务器运维管理中对于服务器账号的管理十分混乱,有的运维甚至有好几个工作账号,而且能随时登陆root账户。因此,每当有运维工作人员调岗或离职,服务器的所有账户密码都会被重新改变一次,不仅费时费力,密码也不好记忆,十分的麻烦。于是,几经思考,我向领导建议启用开源型的跳板机jumpserver来改善目前混乱的状况。
项目职责:

  1. 部署一台服务器为jumpserver跳板机
  2. 用xshell登陆跳板机进行授权测试

    1.12 NFS+keepalived高可用架构

    如期中架构图

    1.13 MySQL多实例及主从复制

    如期中架构图

    1.14 改善服务器存储问题

    需求:减轻访问高峰阶段存储压力
    职责:
    1,Web前端存储使用NFS主备结构
    2,用户写入数据,如图片,附件等,存储到NFS主上面,用户的读访问NFS备
    3,NFS主备,使用rsync+inotify进行数据同步
    4,NFS存储数据量不大,采用sersync把数据推送到web前端,尽量较少前端服务访问后端服务器的请求,减轻NFS存储压力
    5,数据备份的安全有了保障,不用担心数据的丢失。

    二,期末项目经验示例

    2.1 航天一院第三产业部————院综合服务集群

    项目需求:
    该项目主要实现的是航天一院内部服务平台搭建 目标是搭建一个安全、高效、稳定服务器群集架构。提供航天各院的服务综合平台。
    
    项目实施:
  • 前段采用负载均衡搭配Squid集群、搭配硬件防火墙,隔离内网与外网,并且能提供监控网络和记录传输信息的功能,加强局域网的安全性等.实现前端调度服务器的高可用、中间web服务器的负载均衡、后端数据库服务器的高可用、监控服务器监控集群中的每一台服务器的私有数据和公有数据前端调度服务器采用的软件是Keepalived和Nginx,中间Web服务器采用的软件是Nginx,并发数高,而且相对稳定
  • 后端数据库服务器采用的是读写分离,写库MySQL+MHA 双主互为主从模式。读从库使用负载均衡LVS+Keepalived+MySQL , 并使用Memcached缓存集群缓存从数据库.Web服务器采用Nginx来搭建网站服务器,并结合Inotify+Rsync实现网站数据同步.
  • 监控服务器采用的是Zabbix,监控各服务器的运行状态及服务状态。
    责任描述:
     本人在此项目中主要负责服务器服务平台的搭建,为了实现统一性,特编写了shell脚本,使得服务器部署更加标准化

    2.2 NFS集群升级改造

    需求分析:
    1、 原共享存储服务器NFS的方式、存在性能瓶颈和单点故障的问题
    2、 主NFS存储系统宕机后,报警管理员来人为手工根据同步的日志记录选择最快的NFS存储系统改为主,方案简单可行,但是需要人工处理.难免操作失误或者时间过长。
    解决方案:
    1、 使用分布式文件存储管理系统MFS替换NFS
    2、 目前MFS元数据服务器存在单点问题,因此我们通过DRBD提供磁盘及时同步,通过HeartBeat提供Failover,来达到高可用
    3、采用MFS+DRBD+Heartbeat高可用服务解决方案,这个解决方案可以有效解决主MFS存储系统单点的问题,当主MFS存储宕机后,可以实现把主MFS存储系统从一个主节点切换到另外一个备节点,而新的主MFS存储系统还会自动和所有其他的从MFS存储系统进行同步,且新主MFS存储系统的数据和宕机瞬间的主MFS存储系统几乎完全一致,这个切换过程完全是自动进行的,从而实现了MFS存储系统的热备方案. 快速故障恢复,提高业务可靠性.
    责任描述:
    本人在此项目中主要负责,项目现场协调,所有服务器服务平台的搭建,编写了shell脚本,使得服务器部署更加标准化

    2.3 MySQL集群读写分离及高可用方案

    需求分析:
    1、 新方案保证服务性能和I/O满足企业多台终端的快速响应需求。
    2、 保证系统长期不间断的稳定运行。保证成本合理性。
    3、 满足数据库系统的高可用性和可靠性。
    解决方案:
    1、 底层5台MySQL 数据库,一主四从. 开启半同步复制.提高数据安全
    2、 使用中间件Atlas 实现读写分离与读负载均衡,提高与程序端解耦。
    3、 在使用两台服务器搭建LVS+Keepalived 对Atlas 服务器做负载均衡与高可用
    4、 搭建一台主MHA服务器管理数据库主库热备问题.
    5、 该方案极大减少服务器资源浪费,实现故障30秒切换,极大保证数据库一致性
    责任描述:
    主要负责所有服务器服务平台的搭建,方案设计,编写脚本。

    2.4 NFS+DRBD+heartbeat高可用解决方案

    软件环境:Centos6.8
    硬件环境:DELL R710
    实施时间:2015年3月
    刚进公司不久,后端的NFS服务器在网络请求的高峰期,偶尔会宕机,使WEB服务器的挂载请求无法自动切换到备份服务器,导致web服务器无法正常使用,造成网络服务中止。公司领导为了避免以后出现类似的情况要求我做一个解决方案。通过对NFS服务器CPU和内存的负载情况进行观察,以及对NFS服务器之前的主要硬件的负载数据进行查询,并进行仔细分析,我提交了一份以DRBD+heartbeat+NFS的方案来解决现有问题,得到领导的批准由我来实施这个方案。
    项目职责:1、负责项目的整体规划和部署;
    2、负责heartbeat自动切换脚本的编写;
    3、负责NFS服务搭架的主要框架的搭架;
    4、通过对故障的模拟,和对元数据服务器、数据存储服务器运行数据的观察,和之前的情况进行数据比较,形成报告;
    5、项目实施报告的撰写。
    后期改善:
    通过配置多条独立的物理连接,以避免Heartbeat通信线路本身存在的单点故障,尽量地减少“脑裂”的发生机会。通过对ha.cf配置文件中,keepalive等选项的设置,来缩短主从服务器的切换时间。在DRBD中,对replication进程进行调整。处理Master端的坏块问题。

    2.5 移动端部署调优及上线

     运行环境:CentOS-6.6、DELL R730
     主要功能:分离移动端与PC业务
     运用技术:Nginx七层负载、tomcat8+jdk1.8、MHA实现mysql高可用(mysql—5.6.17)、
    php-5.6.30、shell脚本发送数据检测信息
     技术要点:
  1. 利用Nginx七层调度实现PC端与移动端业务分离、动静分离
  2. 七层调度+Keepalived高可用方案
  3. Nginx整合淘宝健康检测模块
  4. 代码读写分离+数据库mha成熟高可用方案
  5. 定时+脚本mysql数据备份及检测、发送检测结果信息到管理员手机
  6. web服务优化,php优化,tomcat优化

    2.6 squid 透明代理

    1、系统环境:CentOS6.5
    2、软件工具:squid-3.0
    3、项目描述:
    之前公司使用的是SNAT上网,造成员工在工作期间利用公司网络带宽浏览与工作无
    关的网站视频,导致工作效率降低;迅雷、P2P等应用的泛滥,导致网络拥堵,企业
    网带宽资源紧张。
    4、职责:
    a) 使用squid代理服务对公司员工的上网行为进行管控;
    b) 拟定企业上网行为管控方案;
    c) 实现对内网的安全防控功能,过滤恶意网页,防范恶意攻击;
    d) 限制网络行为,对迅雷、P2P等下载软件进行智能控制;
    e) 对上网行为进行精细智能管理。
    5、项目成果:
    项目实施完毕后,员工工作效率明显提升,保障了企业网带宽资源。

    Linux就业技术指导(三):IDC机房解密

    1.1 IDC机房

    1.1.1 带宽计算

    带宽流量计算公式:
    1 Byte=8bit,1KB=1024B,1MB=1024KB,1GB=1024MB
    B表示Byte,工业标准是1000.
    一般我们家装ADSL宽带,常说1M带宽,我们发现下载速度仅能在120-130K之间,这是为什么呢?是宽带接入公司欺骗我们吗?答:不是的。
    因为接入商说宣称的1M宽带的单位是以比特(bit)为单位算的,而我们常说的下载速度是按字节(byte)计算的,因此1Mb=125Kbyte,因此,我们说的下载速度是接入商说的带宽除以8的结果。这样解释后,你应该明白了吧。

    1.1.2 IDC机房内部结构图

    Linux就业技术指导 - 图3

    1.1.3 如何进入机房维护服务器?

    一般来说,要先和公司的负责IDC机房客服或销售人员事先打好招呼(邮件或电话),然后才能维护机房。机房一般都不在公司内,而是托管在固定的地点(有温度,湿度指标)。
    进入机房前要出示个人身份证,并在他们提供的本子上签字(名字,身份证信息,进入理由及进入时间,维护什么等)。有时会有机房销售或客服人员陪同。签字后,好一点的机房会发给你鞋套,需要套在鞋上,防止灰尘,垃圾带到机房内部影响服务器运行。

    1.1.4 进入机房后如何维护具体服务器?

    正常情况机房的温度比较低(具体见附录),而且,进入机房可以听到非常嘈杂的机器运行的声音。
    服务器的运行是没有显示器的,需要维护服务器时,机房会提供显示器(显示器一般会放在一个平板小车上(有多个),键盘,鼠标等一般还需要签字申请使用,使用后归还,小车推回原处)。
    当找到显示器后,把小车推到你的公司的机柜的服务器所在处。此时可以把显示器接好电源,接上服务器的接口,然后插上键盘和鼠标(U口),开始维护服务器—如安装系统,重起服务器等。通过笔记本接根网线到交换机上,然后SSH连接到服务器里。
    Linux就业技术指导 - 图4

    1.1.5 什么情况下需要去机房维护

    (1)公司购买了新服务器,可能需要把服务器拉到公司,你装完系统,配置好基础配置,然后拉到机房上架,也可能直接拉到机房安装系统(如机房有公司的人员的时候)。
    (2)机器运行异常,无法远程维护了,机房人员帮助未果,需要重装系统(远程控制卡可代替去机房)等。远程控制卡最好是独立的(非集成)。
  • 独立远程控制卡:可以重启,安装系统,查看启动过程,屏幕输出
  • 集成远程控制卡:只能重启,关机,查看一些服务器状态

(3)网络异常,如网线,交换机等。
最好办法:
1)求人不如求已:机房有公司维护人员,服务器配置远程控制卡自助解决。
2)机房人员帮助:让他重启服务,甚至让他接显示器看屏幕状态,或服务面板。还可能把密码给她让他登陆看看状态。但是机房人员一般技术,素质不是特别高。操作过程很慢。
3)自己的人跑机房
4)如果不是特别紧急,可以请机房人员帮忙维护。电话(事先报备的)说名字,身份证,机柜号,服务器位置,IP地址标签。
Linux就业技术指导 - 图5

1.1.6 机房带宽及机柜价格实际数据:

电:商业电费1元+,500-750W,一小时0.5-0.75度。一台服务器一年的电量:0.7_24_365=6132度
带宽费:
200-1000元/M/月(北京BGP机房价格),按1M/月/500计算,1M一年6000元

1.1.6.1 酒仙桥(兆维)数据维护中心

独享价格

机型 IP数 带宽 报价
半个机柜 7 100M独享 360000元/年
一个机柜 16 100M独享 450000元/年
/ 16 100M独享 300000元/年

1.1.6.2 北苑联通数据中心

100M共享

机型 IP数 带宽 报价
1U 1 100M共享 6500元/年
2U 1 100M共享 7500元/年
4U 1 100M共享 11000元/年
PC 2 100M共享 11000元/年

1.1.7 BGP机房:多线路机房

1.1.7.1 什么是bgp?

bgp边界网关协议,是一种用来在不同的运营商之间传递大量路由信息的路由协议。

1.1.7.2 什么是BGP机房?

简单说,BGP机房就是将IDC网络和多个运营商互联起来,实现单IP绑定在多条线路上,所有互联运营商(电信,网通等)的用户访问IDC的网络,都会智能的走相应的线路,达到访问速度都很快的目的。

1.1.7.3 BGP机房有什么优点?

  1. 服务器只需要设置一个IP地址,最佳访问路由是由网络上的骨干路由器根据路由跳数与其他技术指标来确定的,不会占用服务器的任何系统资源。服务器的上行路由与下行路由都能选择最优的路径,所以能真正实现高速的单IP高速访问。
  2. 由于BGP协议本身具有冗余备份,消除环路的特点,所以当IDC服务商有多余BGP互联线路时可以实现路由的相互备份,在一条线路出现故障时路由会自动切换到其他线路。
  3. 使用BGP协议还可以使网络具有很强的扩展性可以将IDC网络与其他运营商互联,轻松实现单IP多线路,做到所有互联运营商的用户访问都很快。这个是双IP双线无法比拟的。更多BGP信息可参考http://baike.baidu.com/view/360.htm

    1.1.7.4 既然BGP这么好,单线机房还有人用吗?

    外地有大量的单线机房,还有人会用么?当然会,因为成本的关系。

1)CDN会用。CDN通过智能DNS解析判断用户的地域及运营商来源,进而,重新分配最近的适合用户访问的线路。这大大降低了带宽成本(单线路带宽成本可能仅有M/20-50元/月,甚至更低。)
2)游戏公司,下载站等,如QQ游戏,业务里标着电信,网通,让用户选择去接入。
3)其它

1.1.8 机房带宽共享和独享:

共享:
100M共享:适合个人,小企业1-2台机器,业务量小的用户。
特点是:多个用户(公司)共同使用这个线路,因为会互相争抢资源,因此不是很稳定,但价格便宜。4000-7000元,单台服务器。
独享:
独自享有,即假如购买10M,完全自己用。不会有和别的客户争用带宽的情况。一般的正规企业都是独享。北京的价格200-700元/M/月,高的也有过1000元/M/月的。
如果带宽超了?

关于带宽,机房一般是会有限制的,根据经验高于购买带宽的10%-20%,就无法在跑上去了。当你发现MRTG流量图接近带宽顶峰后,线条很平的时候,很可能就表示带宽跑满了。此时用户在访问就会出现比较慢的情况。

2.1 服务器选型

2.1.1 互联网公司常用的服务器品牌:

DELL,HP,IBM(百度),联想,华硕,航天联志
Linux就业技术指导 - 图6
其中,DELL是一款性价比不错的品牌,大多数互联网公司的选择。

2.1.2 早期约8年前(2009年前)的DELL服务器系列

单位 型号
1u dell 1850,1950 可用于Web,lvs等
2u dell 2850,2950 可用于mysql db存储等
4u dell 6850 可用于oracle,共享存储等

2.1.3 近期约最近3-4年DELL服务器系列

Linux就业技术指导 - 图7

2.1.4 生产环境负载均衡集群系统架构设备选购案例

选购依据:价格,性能,冗余
硬件需求:

2.1.4.1 负载均衡器硬件选择及raid级别

LVS1主 DELL R610 1U CPU E5606*2 4G*2 内存 硬盘:SAS 146G*2 RAID1
LVS2主 DELL R610 1U CPU E5606*2 4G*2 内存 硬盘:SAS 146G*2 RAID1

提示: 负载均衡器很重要,需要稳定,对CPU,内存有一定要求,磁盘大小要求不高;

2.1.4.2 WEB层硬件选择及raid级别

www主站1业务(两台) DELL R710 CPU E5606*2 4G*4内存 硬盘:SAS 300G*2 RAID0
www主站1业务(两台) DELL R710 CPU E5606*2 4G*4内存 硬盘:SAS 300G*2 RAID0

提示: 这里也可以选R610.如果机房机器海量,考虑到老跑机房换硬盘装系统的成本,也可以考虑SAS146*3 raid5

2.1.4.3 数据库层硬件选择及raid级别(适合mysql和oracle)

MYSQL 主库1-1 DELL R710 CPU E5606*2 4G*8 内存 硬盘:SAS 600G6(或146G6) RAID 10
MYSQL 主库1-2 DELL R710 CPU E5606*2 4G*8 内存 硬盘:SAS 600G6(或146G6) RAID 10
MYSQL 从库1-1: DELL R710 CPU E5606*2 4G*4 内存 硬盘:SAS 15k 600G*4 RAID0 或RAID5
MYSQL 从库1-2: DELL R710 CPU E5606*2 4G*4 内存 硬盘:SAS 15k 600G*4 RAID0 或RAID5
MYSQL 从库2-1: DELL R710 CPU E5606*2 4G*4 内存 硬盘:SAS 15k 600G*4 RAID0 或RAID5
MYSQL 从库2-2: DELL R710 CPU E5606*2 4G*4 内存 硬盘:SAS 15k 600G*4 RAID0 或RAID5

提示1: 这里需要注意主从库RAID后,硬盘大小要一致。性能和维护折中考虑,从库也可考虑做raid5等。从库也可以根据硬件使用情况,跑多实例数据库,提升利用率。

2.1.4.4 存储层硬件选择及raid级别

数据备份硬件选择及raid级别:

DELL R610 E5606*2 16G内存 硬盘:SATA 10k 2T*4 可以不做raid交叉备份
DELL R710 E5606*2 16G内存 硬盘:SATA 10k 2T*6 raid5,做raid5是折中方案

提示: 备份服务器一般考虑容量和冗余即可,对性能要求不高。

共享存储NFS硬件选择及raid级别:

NFS1:DELL R710 E5606 16G内存 硬盘:SAS 15k 600G*6 RAID10 RAID5 RAID 0
NFS1:DELL R710 E5606 16G内存 硬盘:SAS 15k 600G*6 RAID10 RAID5

分布式存储MFS,GFS
普通服务器配置就可以了

2.1.4.5 监控管理网关层硬件选择及raid级别

监控及报警服务器兼出口网关等:DELL R610,E5606_1 8G内存,146G_2 RAID1

提示: 也可以不单独采购,和备份或共享服务器使用同一台机器。

2.1.4.6 cache服务器

Memcache:内存够大,无需磁盘空间

提示: 也可以不单独采购,和备份或共享服务器使用同一台机器。

2.1.4.7 网络设备:【采用全千兆交换机】

CISCO,H3C,DLINK(3000元)
提示:所有服务器要带独立的远程管理卡。(具体可以百度)

3 本节常见面试题

  1. 机房的带宽是怎么计算的?
  2. 你去过IDC机房么?描述下去机房的感受!
  3. U是什么?你曾经的维护的服务器,什么品牌型号?
  4. 什么情况需要去机房维护?
  5. 机房带宽多大?带宽费用?
  6. 什么是BGP,什么是BGP机房?为什么一定要用GBP机房。
  7. 带宽多大?你们用的哪个机房,在什么位置?
  8. 如何选择IDC机房,有什么实际的测试方法?
  9. 如何快速找到自己机房的某一台服务器的物理位置
  10. 集群架构不同业务硬件选型

随笔- 99 文章- 0 评论- 64

Linux就业技术指导(四):企业CDN缓存加速原理解密

1.1 CDN(网站加速)

1.1.1 什么是CDN

CDN的全称Content Delivery Network,即内容分发网络。其基本思路是尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快,更稳定。通过在网络各处放置节点服务器所构成的在现有的互联网基础之上的一层智能虚拟网络,CDN系统能够实时地根据网络流量和各节点的连接,负债情况以及到用户的距离和响应时间等综合信息将用户的请求重新导向离用户最近的服务节点上。其目的是使用户可就近取得所需内容,解决Internet网络拥挤的状况,提高用户访问网站的响应速度。

产生背景:
BGP机房虽然可以提升用户体验但是价格昂贵,那么CDN的诞生可以提供比BGP机房对于用户更好的体验(让地区的同一线路访问当地的同一线路的网站),BGP机房和普通机房价格将近5-10倍的价格差。CDN使用单线的机房,根据用户的线路以及位置为用户选择靠近用户的位置以及相同的运营商线路,即提升了用户体验价格又降下来了。
CDN的价值:为客户省钱,同时提升用户体验。

1.1.2 CDN的特点

(1)本地Cache加速提高了企业站点(尤其含有大量图片和静态页面站点)的访问速度,并大大提高以上性质站点的稳定性(省钱,用户体验提升)。
(2)镜像服务消除了不同运营商之间互联的瓶颈造成的影响,实现了跨运营商的网络加速,保证不同网络中的用户都能得到良好的访问质量。
(3)远程加速远程访问用过户根据DNS负载均衡技术智能自动选择Cache服务器,选择最快的Cache服务器,加快远程访问的速度。
(4)带宽优化自动生成服务器的远程Mirror(镜像)cache服务器,远程用户访问时从cache服务器上读取数据,减少远程访问的带宽,分担网络流量,减轻原站点WEB服务器负载等功能。

[root@web01 ~]# curl -I www.163.com
HTTP/1.1 200 OK
Expires: Wed, 02 Aug 2017 01:07:33 GMT
Date: Wed, 02 Aug 2017 01:06:13 GMT
Server: nginx
Content-Type: text/html; charset=GBK
Transfer-Encoding: chunked
Vary: Accept-Encoding,User-Agent,Accept
Cache-Control: max-age=80
Age: 43
X-Via: 1.1 fzhwtxz28:9 (Cdn Cache Server V2.0), 1.1 wangtong40:9 (Cdn Cache Server V2.0)
Connection: keep-alive

(5)集群抗攻击广泛分布的CDN节点加上节点之间的智能冗余机制,可以有效地预防黑客入侵以及降低各种DDOS攻击对网站的影响,同时保证较好的服务质量。

1.1.3 使用CDN的基本要求

要加速的业务应该存在独立的域名,例如:www.yunjisuan.com,业务内容图片,附件JS,CSS等静态元素。
正常的DNS解析范例:
我们DNS服务器上的加速前的A记录。
A records
www.yunjisuan.com IN A 124.106.0.21(服务器IP)
删除上面的记录:
www.yunjisuan.com IN A 124.106.0.21(服务器IP)
然后,做下面的别名解析:
CNAME records
www.yunjisuan.com IN CNAME bbs

1.1.4 CDN服务提供商架构的关键元素

  • DNS和智能DNS集群
  • Cache集群
  • 用户源站(cdn服务的客户)
  • 外围(计费,日志分析,存储,protal展示)

    1.1.5 智能DNS

    Linux就业技术指导 - 图9

    1.1.6 CDN的原理

    Linux就业技术指导 - 图10

    1.1.7 CDN的用途

    企业或门户网站的图片,视频,css,js,html等静态数据的缓存 大网站会把全站首页静态化放CDN,推广页面。 支持动态加速

1.1.8 CDN架构图

Linux就业技术指导 - 图11

1.1.9 CDN计费

CDN用多少交多少钱,这和IDC机房先购买固定带宽是有区别的。

计费方式说明:当前的计费方式为95%值计费方式,即取查询时间段中,所有带宽数据点,按带宽大小从低到高排序后,取第95%个点所对应的值作为计费带宽。如一段时间内有N(N=100)个带宽数据点,将这些点从低到高排序,第N95%(10095%=95)个点对应的带宽大小为该计费带宽的值。

CDN案例:有的时候我们源站负载很高(Web服务以及存储)
排查:
1)分析Web日志。IP来源谁
2)有可能CDN频繁来抓数据(a,源站更新频繁,b,CDN的缓存经常倒腾数据,c,命中率要高于98%)。CDN遇到404 403错误,是不缓存的,会向后请求源站
3)CDN公司增加缓存节点(一增加就是几百台级别)。抓源站,告诉CDN抓自己的服务器,不要老抓源站。

1.1.10 CDN后台

Linux就业技术指导 - 图12
Linux就业技术指导 - 图13
CDN删除违规图片流程:
1,CDN通知源站删除图片
2,源站运维从CDN提供的后台管理页面提交删除后的图片的位置的URL进行更新。
Linux就业技术指导 - 图14
源站更新了图片,那么CDN怎么更新?
1)源站更新,CDN不知道也不专注,
外部用户触发:用户会请求元素,这个元素CDN第一次没有,CDN会去源站请求。
内部编辑触发:源站更新时,通过CDN接口推送到CDN

1.1.11 CDN价格

30-100/M/月

1.1.12 如何选择CDN公司

网宿,chinacache(蓝讯),快网,帝联

1.1.13 跨机房分布式部署技术

Linux就业技术指导 - 图15

1.1.14 其他问题

(1)CDN节点宕机,企业网站人员如何知道?
不能可自主知道,只能通过:
1,CDN节点宕机地区的用过户反馈(其他地区都是好的,就这里有问题)
2,基调网络,博瑞,分布式测试
Linux就业技术指导 - 图16

附录1:CDN流量暴高如何分析与解决企业案例

1.1:列举案例:

(1)实际案例一:

凌晨三点某公司(网站业务)的一个IDC机房带宽流量突然从平时高峰期150M猛增至1000M,如下图:

Linux就业技术指导 - 图17

该故障的影响:直接导致数百台服务器无法连接,该机房全部业务中断。

(2)实际案例二:

某年某月某日夜接到学生紧急求助,公司网站(Web游戏业务)平时几十M带宽,结果突然跑满100M,持续100M已经很久。事后,该学生的总结开头如下:

凌晨一点接到报警短信,网站无法访问。立马拿起笔记本上网查看,发现整个机柜的网络都无法正常访问。第一感觉是不是IDC网络出问题了,给机房打电话反馈回来的信息是机房网络正常,但是带宽流量异常(100M带宽的流量峰值已跑满)

该故障的影响:直接导致数十台服务器无法连接,该机房全部业务中断,且故障持续时间长。

(3)实际案例三:

某月某日,接到运维朋友紧急求助,其公司的CDN源站,源站的流量没有变动,CDN那边的流量无故超了好几个G,不知道怎么处理? 该故障的影响:由于是购买的CDN,虽然流量多了几个G,但是业务未受影响,但是,这么大的异常流量,持续下去可直接导致公司无故损失数万元。解决这个问题体现运维的价值。

1.2 分析问题:

1)IDC带宽被占满的原因很多,常见的有:
a,真实遭受DDOS攻击(遇到过几次,造成影响的不多见,其中还有黑客勒索的案例)
b,内部服务器中毒,大量外发流量
c,网站元素(如图片)被盗链,在门户页面被推广导致大量流量产生
d,合作公司来抓数据,如:对合作单位提供了API数据接口
e,购买了CDN业务,CDN猛抓源站
2)CDN带宽异常,源站没异常

这类问题基本都是缓存在CDN的数据被频繁访问引起的。解决方法见结尾案例。

3)CDN带宽异常,源站也异常。

可能原因如公司做推广,大量数据访问,热点数据cache里不全。或CDN问题导致数据回源。影响就是带宽高,后端静态服务器及图片及存储压力大。

1.3 解决问题:

分析了问题的可能原因,就好比较排查了。
1)真实遭受DDOS攻击

如何防护DDOS攻击?

  1. 了解DDOS的几种攻击类型,攻击原理,攻击特征,抓包和分析日志那是必须的,只有知道这些信息,才能制定应对措施。
  2. 了解自己公司带宽,服务器,防火墙,架构的承受能力,再就是制定相应的应急预案,有什么情况下起用什么样的应对策略,让处理问题有序进行,以保证业务正常对外提供服务为原则。
  3. IDC机房的选用:这一点确实很关键,要寻找一些有实力,能提供更高级别防护,当面对攻击时能快速响应并配合做各种防护策略的IDC厂商合作,当然这种机房的价格也就相对会高些,这个根据实际情况来考虑,成本和安全找到一个平衡点,不要为公司省钱,当出现问题时,公司可能就不会考虑你为公司省了多少,而是损失多少。
  4. 架构设计:对于整体架构的设计要基于核心单点无单点(如果要求更高些,可以整体无单点),多缓存的原则,保证高可用,跨ISP,跨机房多点分布式部署,不能在一棵树上吊死,大量的DDOS攻击导致整个机房跨掉的我是碰到过几次。
  5. 系统优化:操作系统内核优化,程序层的代码优化,数据库层的结构优化,存储层的性能优化,业务层的业务逻辑优化,整体构架的节点优化…,另外,不要动不动就配置65535,很多运维人员总觉得配置的最大连接数越大越好,其实不然,这个要根据实际情况来设置,如果把连接数设的太大,一旦攻击来了,还没等你去分析问题,服务器就已经挂了。
  6. CDN:借助CDN来分担压力
  7. 硬件防护:对于软件防护,我想一般在对操作系统内核做优化的时候这些都已经考虑进去了,对于硬件防护我们可以使用傲盾,黑洞等专业的防DDOS防火墙组建集群。
  8. 数据包及日志分析:对于那种四两拨千斤(SYN flood,CC)或者疑似DDOS的攻击,可以通过分析数据包,日志来按制定防护策略,如果说要报警,这些也可以为警方提供线索。
  9. 疑似DDOS攻击:如果文件被盗链,服务器中毒,前端缓存服务器设置不合理,程序BUG,交换机(路由器)故障等要通过抓包分析,日志分析来定位问题。
  10. 第三方求助:对于大量的攻击可以请求上层的IDC或者ISP协助处理,对于一些无法准确判断的攻击方式可以请求行业内相熟的高手来协助处理,懂得求助往往事半功倍,还能快速的处理问题。

2)内部服务器中毒,大量外发流量。

-这个问题的解决比较简单,可能有的同学说,看看服务器流量,哪个机器带宽高处理下就好了。其实不然,实际解决比这复杂得多,带宽打满,所有监控都是看不到的。

  • 比较好的思路,是联系机房确定机房自身无问题后(机房一般没法帮我们的),请机房断开连接外部IP服务器的网线,如负载均衡器,仅保留VPN SERVER,然后断掉内部服务器出网关的线路,切断外发流量源头。
  • 接下来查看监控流量服务,判断外发流量的服务器,然后进行处理。
  • 其实,这个问题的发生及快速定位和很多公司的运维规范,制度关系很大,在给一些公司做运维培训分享时发现这个问题很严重(表象很好,内部运维规范,制度欠缺很多),大家都讨论的很深入,实际用的还是和聊的有差距。
  • 比如有的公司开发直接FTP连接随时发布代码,或者由开发人员负责定时多次上线。而运维人员又不知晓,结果导致问题发生定位时间长。
  • 建议的运维思路是:如果把网站机房比喻为一座房子,那首先要堵住后门(内部),其次是监控好前门(做好安全,留个小窗户给外面人看,即80端口服务,同时安排站岗值班的)
  • 网站的无休止的随时随意发布代码,对网站的稳定影响是至关重要的。对运维人员对故障的定位快慢也很关键。根据不完全的调查统计,约50%以上的重要运维故障都是程序代码导致的,这也是在企业做培训分享时,灌输建议CTO的,多把网站稳定的责任分给开发,而不是运维。如果这个思路不扭转,网站不稳定状况就难以改变。

3)网站元素(如图片)被盗链

这个属于网站的基本优化了,apache,lighttpd,nginx都有防盗链的方案,必须要搞。说到这也提个案例,有个学生,到了企业工作,发现人家网站没有防盗链,结果上来没有通知老大,就直接做防盗链了,然后美美的当时还给我留言,说给公司搞防盗链了,很有成就,结果导致公司对外合作的业务,都是小叉子了,幸亏发现的及时没有出大问题。

(4)合作公司来抓数据,如:对合作单位提供了API数据接口或购买了CDN业务。

  • 最常见的就是购买CDN服务,如:CDN新建一个节点(可能数十机器),直接来我们IDC源站来抓数据(有的做的好点的夜里来抓)。把源站抓的流量暴涨,严重的导致服务宕机。几家CDN公司,都有过这样的问题。
  • 当然和电信,联通,GOOGLE,BAIDU,词霸等公司合作,也会有流量爆高的情况,这里面包括了为合作的站搜索引擎爬虫爬数据的问题。有时虽然带宽流量不高,但是服务器或数据库撑不住了,搜索引擎专门喜欢爬站内搜索,DISCUZ,CMS等早期的开源程序的搜索都是全站like%%方式去数据库搜索的,几个爬虫过来,直接就挂掉了。

1.4 实战解决案例

下面的例子适合于网站流量很高,但是,还没达到全网瘫痪的严重地步时的解决方案,适合我们自己的IDC机房及CDN业务(如果是CDN,那么,分析处理可以交给CDN,自己下载CDN日志分析也可)。

范例:分析图片服务日志,把日志(每个图片访问次数*图片大小的总和)排行,取top10,也就是计算每个url的总访问大小
在生产环境里的应用:这个功能可以用于IDC及CDN网站流量带宽很高,然后通过分析服务器日志哪些元素占用流量过大,进而进行优化裁剪该图片,压缩js等措施。

本题需要输出三个指标: 【访问次数】    【访问次数*单个文件大小】   【文件名(可以带URL)】
解答:
测试数据
59.33.26.105 - - [08/Dec/2010:15:43:56 +0800] "GET /static/images/photos/2.jpg HTTP/1.1" 200 11299 "http://oldboy.blog.51cto.com/static/web/column/17/index.shtml?courseId=43" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)"
59.33.26.105 - - [08/Dec/2010:15:43:56 +0800] "GET /static/images/photos/2.jpg HTTP/1.1" 200 11299 "http://oldboy.blog.51cto.com/static/web/column/17/index.shtml?courseId=43" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)"
59.33.26.105 - - [08/Dec/2010:15:44:02 +0800] "GET /static/flex/vedioLoading.swf HTTP/1.1" 200 3583 "http://oldboy.blog.51cto.com/static/flex/AdobeVideoPlayer.swf?width=590&height=328&url=/[[DYNAMIC]]/2" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)"
124.115.4.18 - - [08/Dec/2010:15:44:15 +0800] "GET /?= HTTP/1.1" 200 46232 "-" "-"
124.115.4.18 - - [08/Dec/2010:15:44:25 +0800] "GET /static/js/web_js.js HTTP/1.1" 200 4460 "-" "-"
124.115.4.18 - - [08/Dec/2010:15:44:25 +0800] "GET /static/js/jquery.lazyload.js HTTP/1.1" 200 1627 "-" "-"

随笔- 99 文章- 0 评论- 64

Linux运维就业技术指导(九)期末架构考核

一,毕业架构设计考核筹备

1.1,架构图模板示例

1.1.1 架构图(一)概述

Linux就业技术指导 - 图19

本架构是4层lvs负载均衡给后方7层nginx反向代理; 业务进行了动静分离; 数据库前端有memcached缓存组,降低从数据库读压力,兼session共享 数据库主库高可用可选择MHA,DRBD+heartbeat,MMM三种方式中一种 数据库3从库用来提供读,1从库用来跑全量定时脚本及binlog增量备份,1从库用来提供给开发进行数据分析及新软件功能测试 提供测试和binlog备份的两个从库可选择kvm虚拟化,节省成本 存储需选用分布式存储(MFS/Glusterfs) 一台全网数据备份服务器 一台ZabbixServer端服务器 一台管理机服务器(ssh-key,ansible分发,代码上线更新等) 一台VPN服务器(openvpn/日志收集ELK/sudo操作审计/jumpserver跳板) squid反向代理服务器,为缓解后端Web的存储压力而设计;由于已经推给CDN所以后端存储一般无大压力,需要配合CDN流量冲击事件进行完整解释。

1.1.2 架构图(二)概述

Linux就业技术指导 - 图20

本架构是4层lvs负载均衡给后方7层nginx反向代理; 业务进行了详细的动静分离(至少upload,static,动态) 本架构图需要配合详细的LNMP优化方法进行诠释(性能优化,架构优化,安全优化) 本架构对memcached缓存组进行了数据预读的操作,Python运维开发实现的程序。 memcached的session共享由开发实现。(php主动代码写入),也可选择cookie的方式,需运维构建。 数据库主库高可用,可选用MHA,DRBD+heartbeat,MMM中的一种 存储可选用NFS的高性能架构(远程写,本地读)或glusterfs分布式存储 一台全网数据备份服务器 一台ZabbixServer端服务器兼管理机服务器(ssh-key,ansible分发,代码上线更新等) 一台VPN服务器(openvpn/日志收集ELK/sudo操作审计/jumpserver跳板)

1.1.3 架构图(三)概述

Linux就业技术指导 - 图21

自己研究

二,毕业架构设计考核要求(总分100)

2.1 架构设计演讲视频的内容概要

考核一共100分,完成毕业视频的同学,进行最终的技术面试。

  • 公司的完整架构图及基本业务流程解说(https://www.processon.com/)20分
  • 架构功能性局部分拆详细解说20分
  • 架构实施项目规划20分
    • 服务器按业务硬件搭配清单
    • 服务器网卡,IP,主机名规划
  • 重点原理详细图文解说(图+画笔)20分
  • NginxWeb优化,NFS/Glusterfs存储优化,Linux操作系统优化(图文,代码)解说20分

示例:
Linux就业技术指导 - 图22
Linux就业技术指导 - 图23
Linux就业技术指导 - 图24
Linux就业技术指导 - 图25
Linux就业技术指导 - 图26
本届同学们需要完成的原理列表如下:

  1. TCP三次握手四次挥手
  2. DNS解析原理(递归迭代)
  3. NFS工作原理及高性能读写分离原理
  4. LVS之DR模式工作原理
  5. Nginx反向代理工作原理
  6. LVS四层负载均衡和Nginx七层区别
  7. LNMP运行原理
  8. MySQL主从复制原理+主从复制延迟产生原因及优化解决方案
  9. MySQL双主互为主从工作原理
  10. MHA之MySQL高可用原理
  11. VRRP虚拟路由冗余协议
  12. Keepalived故障切换转移原理
  13. Apache的两种工作模式及原理,Nginx的epoll模式原理
  14. MyISAM和innoDB的区别及应用场景
  15. Glusterfs分布式存储的优缺点
  16. 进程和线程的区别
  17. PV,UV,IP
  18. MySQL-binlog三种工作模式及意义
  19. MySQL的慢查询日志的作用
  20. KVM是什么虚拟化(硬件,软件,网络等),什么是全虚拟化什么是半虚拟化
  21. DRBD之MySQL高可用原理

  22. MMM之MySQL高可用原理

  23. Memcached和redis的区别
  24. squid传统代理,透明代理,反向代理

Linux运维就业技术指导(八):期中架构考核

一,期中架构考核概述

1.1 架构图

Linux就业技术指导 - 图27

1.2 架构图公司背景概述

  • 公司是一个新兴的人脸识别高新创业公司,公司名称xxxx
  • 老总是博士生导师,还有一个副总是研究生导师
  • 副总同时是研发总监,负责所有的研发人员管理
  • 产品研发一共有4个小组,总共27人左右,每个小组有一个产品研发经理(在读博士生),成员绝大多数都是在读硕士生,偶尔也会外聘有经验的研发人员。
  • 运维这里本来只有我和一个网管两个人,但最近随着业务需要,又刚刚新招了一个负责线上展示环境的大数据运维(主要是hadoop,zookeeper等)。我则主要负责公司产品线的生产环境运维。
  • 在这个架构图中,我负责所有的搭建、维护、监控、备份、脚本编写还有权限管理。数据库我只负责部署和备份,其他方面由开发总监负责。
  • 公司一共有四条产品线,三个PHP的一个JAVA的。在权限管理上,我是通过sudo来管理权限的,在我的规划中,不论运维还是开发,都不会给root权限;只有产品经理或者研发总监我才有可能给相应服务器级别的权限;针对运维总监(也就是我们的副总)才会给root权限。
  • 我们的普通用户是根据项目来的,我们公司有四条产品线,我为每一个项目建立一个普通用户,因此不论nginx还是tomcat都是跑在普通用户下的。
  • 就算日后要扩充一些公共服务,我也可以让它跑在普通用户下。总的来说是这样的,我对运维的理解是,运维做运维的事情,开发做开发的事情。运维负责网络系统,只要系统没有故障,只要网络没有故障,只要系统资源还够用,那么我们运维的职责就到位了。
  • 我的运维理念是项目负责制,也就是说每个项目的责任人是开发,我们运维大概占30%-40%的责任。我们的开发占60%的责任。当进程上线的时候,这个服务是由普通用户跑的。它的每个站点目录都是普通用户的权限,也就是700的权限普通用户,这个是最安全的。无论是项目的启动,停止,以及代码上线,日志收集,日志分析都是通过我们进程跑的普通用户实现的。我们在管理这个项目的时候,我们可以把开发的用户加到这个项目组里面,这样负责相应项目的开发人员就有对应项目的所有权限。

1.3 项目经验相关简述参考

(1)实现nginx反向代理分业务

  • 公司的4个业务以前在云上,我来之后,公司希望将业务迁回本地。但只申请了一个域名,因此需要将公司的多个业务合并到一个域名下。

(2)实现LNMP的分离式部署及调优
(3)利用rsync+inotify实现NFS的读写分离
(4)实现MySQL数据库主从复制多实例
(5)利用rsync实现全网备份(NFS时时同步备份+全网备份+数据库全备)
(6)部署jumpserver跳板机及Linux服务器安全加固
(7)Zabbix实现全网服务器监控(SNMP,IPMI,JMX,agent主被动,Web监测)
(8)利用keepalived实现nginx反向代理高可用和NFS存储高可用
(9)为防止root权限泛滥,利用sudo管理普通用户(nginx+tomcat利用普通用户启动)

1.4 考核范围及要求

所有没到24岁(不包含24)的学生必须参加,24-27岁的学生建议参加,28岁及以上学生直接参加期末架构的考核。 同学们利用本架构作为参考,筹备撰写个人简历。项目经验不能少于5个。 在进行期中架构的找工作试炼当中,没有特殊情况,不能耽误上课。 期中架构考核以offer达8000者作为合格标准。24岁以下同学达8K可自行选择是否直接入职(建议直接入职),后续授课内容,可发视频。24岁到27岁的同学offer达10K者可自行选择是否直接入职。

1.5 服务器硬件规划

  • 可参考IDC机房解密章节进行硬件规划,服务器可用戴尔R730等型号,服务器内部组成,比如双CPU,24个内存插槽,8个3.5寸热插拔硬盘槽等,需要提前准备清晰。
  • 各个服务的raid规划,也要提前做参考。