【51CTO独家专访】运维需要掌握各个方面的技术和知识,如何才能少走弯路?在CDN做运维和在电子商务网站做运维有什么不同?在本次人物访谈中,我们邀请到了资深项目管理工程师余洪春(抚琴煮酒)跟我们分享他的一些经验心得。
在之前的一些文章和访谈中我们也介绍过,抚琴煮酒在2005年开始正式进入企业网管的岗位,在2007年到2009年之间在北京3158维护CDN系统,后来回到武汉某外企任职高级Linux/Unix系统管理员、项目实施工程师,负责电子商务网站维护、内网开发环境部署、以及技术研发支持等工作。最近加盟新组建的电子商务网站一拍网,担任系统架构师一职。
姓名 | 余洪春(抚琴煮酒) 英文名Andrew.Yu |
职位 | 武汉某外企高级Linux/Unix系统管理员、项目实施工程师,一拍网系统架构师 |
技术特长 | 负载均衡高可用和中小型证券类和商务网站架构 |
目前关注 | 网站架构和网络安全 |
个人博客 | http://andrewyu.blog.51cto.com/ |
51CTO:首先介绍一下您现在的情况吧。您现在加盟一拍网,主要还是负责电子商务网站维护、内网开发环境部署和技术研发么?
抚琴煮酒:主要是负责电子商务网站维护和技术研发。由于是小公司,所以不存在内网开发环境这块,程序这块我们全部外包出去了;公司没有程序员,肯定就不存在内网开发环境这一说。
一拍网的网站架构现在是我在设计。一开始预算不多,前期规模不会很大,后期我会再增加四台web服务器和四台squid反向加速服务器,全部用二手的2950,这样性价比最高!
51CTO:也就是相当于现在更多还是偏向于生产环境运维这一块了。从酒哥的经历看来,您自己对Windows、Linux/BSD服务器,网络以及数据库都有所涉猎。学了这么多方面的东西,您觉得从2005年正式开始转作企业网管到现在,发展的过程中有没有哪些走了弯路的地方?
抚琴煮酒:我感觉在工作中有二个方面花了不少时间和精力,但收益非常之少;
一个方面,我有段时间很喜欢研究别人没研究过的东东,比如DDNS,花了不少时间和精力做出来的实验却没法在生产环境中应用,还有samba结合域控等,我也想提醒大家,建议大家学习和努力的方向,应该是生产环境下能用得着的,大家真正在企业做事,领导真正看中的是你的经验,即你能够迅速投入生产环境的技术,而不是你会什么能什么;
第二个方面,我花了接近一年时间从事RHCE和Linux方面的教学工作,虽然认识了不少朋友,也拓宽了自己的职业发展方向,但我个人觉得,这种工作性质跟我目前从事的项目实施工程师还是很有距离,做讲师虽然是一个知识沉淀的过程,但由于接触不到生产环境,技术退步的反而性可能更大。
51CTO:就是说如果希望在项目实施工程师方向成长,最有效的方式还是尽可能的多参与生产环境的项目,这样才能知道企业真正需要什么技术么?
抚琴煮酒:恩,如果对自己有要求和不怕辛苦的话,建议多参加生产环境的项目实践,这是一个方面。第二个方面建议在一些大公司和门户网站做事。因为如果没有足够大的并发环境,许多开源的新技术都用不上;大家现在可以关注下淘宝的新架构,用了不少自己开发的新技术,这个也是我们应该关注的。企业真正需要的并不是什么技术,它需要的是能做事的人,特别是能够为自己的公司节约钱的人,这也是现在Xen虚拟化和集群如何流行的原因之一!
51CTO:刚好您说到节约钱,那我就先顺便问一句:酒哥有没有遇到过老板出于成本考虑不愿意添加服务器的情况?
抚琴煮酒:这种情况居多啊。像我现在做的许多小网站,就是因为客户不愿意增加服务器,逼得我用HAProxy做1+2的架构;而公司用的测试服务器就不说了,经常是组装的服务器,装个VMware ESXI都装不上,所以我只有花许多时间来测试VMware Server和思杰的XenServer5.6!
(编辑注:这也是抚琴煮酒写过很多虚拟化方面文章的原因。参考文章:
51CTO:难怪酒哥把各种虚拟化都试用了一圈。那么回到之前走弯路的那个话题。比如酒哥在07-09年间在北京3158负责维护CDN系统。那么07年之前,您对CDN系统有什么样的理解?然后现在您要总结的话,维护CDN系统都需要哪些技术?
抚琴煮酒:CDN主要是用来解决高并发和南北互连的问题,南北互连的问题即电信和网通之间的问题,CDN维护的技术含量非常高的,我觉得应该至少具备:
一、极熟悉linux/FreeBSD系统,我希望这方面的经验至少是3-5年以上的,因为很多时候我发现,CDN系统都是基于FreeBSD的;
二、极熟练的配置Linux的集群技术,比如LVS/Nginx/HAproxy,还有F5等硬件负载均衡,软件级别的负载均衡我希望大家能到一个比较精的水平;
三、了解squid和varnish原理,能够熟练的配置和优化它们;还有Nginx,这个是基本功,这一点是玩CDN中最重要的,尤其是squid的优化。
四、bind的智能view搭建和维护,这个不多说了,基本功;
五、熟悉至少一种数据库,能够DBA一起交流,能够设计数据库架构和切分,解决流量过大时,数据库的压力问题;
六、熟悉iptables的配置(这个看公司的需求了,有的公司有钱,全硬防);
七、能够熟练的配置openVPN,解决节点之间互连的问题;
八、能够用SHELL和puppet等分布式工具,解决和节点服务器自动配置和同步的问题。
CDN维护的技术含量非常高,我这里的要求只少不多,有些技术问题我可能暂时也没想到,因为现在CDN基本都是上亿级的PV,并发一般都是上万,这样的环境是最锻炼人的!
51CTO:CDN维护的工作听起来很复杂。相比之下,电子商务网站的运维又有哪些特别值得注意的技术点呢?
抚琴煮酒:CDN我感觉是架子大,初期搭好比较难,但搭好以后维护就相对轻松一些,大家各司其责就行,每一个节点都有一组集群,集群中的某台服务器出问题也没什么问题;但电子商务就不一样,我感觉每一天就像打仗一样,因为牵涉到的都是钱,所以丝毫不能松懈,电子商务网站我觉得应该掌握的技术有:
一、熟悉安全技术,了解硬件防火墙性能,能熟悉的配置iptables和了解Linux/Unix相关的安全工具;
二、熟练的配置Linux的集群技术,比如LVS/Nginx/HAproxy,了解其原理和会话保持机制;
三、熟悉的配置Nginx和Apache服务器,能熟练的配置其正则;
四、熟悉和了解MySQL或oracle数据库,至少要了解一种;
五、熟悉存储;
六、熟悉和了解虚拟化技术;
七、极熟悉SHELL脚本,用其实现工作中的各项需求;
八、懂PHP或java代码。
51CTO:我记得酒哥前一阵子在研究到底用lvs+keepalived还是Haproxy+Heartbeat架构,我现在看一拍网的架构图,最终还是选择了lvs+keepalived的架构,这个选择是出于哪方面的考虑?
抚琴煮酒:LVS+Keepalived我用了好多了(这种大家都应该相当了解和熟悉),我很多网站都是用这种成熟的负载均衡高可用方案, 一拍网的架构的负载其实是二层,LVS(一层--》Nginx(二层);由于我目前还只是将HAProxy+Heartbeat在内网测试环境下通过,主要是担心heartbeat的心跳问题。
HAProxy跟LVS比较类似,主要是Keepalived跟Heartbeat不一样,Keepalived是通过发送vrrp包,模拟一个路由出来;而Heartbaet的工作机制大家应该有所了解,它是比较成熟的双机方案,这里我不也想混淆大家,HAproxy+Heartbeat方案只是我研究的兴趣方向,如果大家想用成熟的线上方案,我推荐LVS+Keepalived或Nginx+Keepalived,参考地址:
http://network.51cto.com/art/201101/241997.htm
51CTO:那么就差不多最后一个问题。谈谈您马上要出的新书《构建高可用的Linux服务器》吧。这本书差不多8月能买到了吧?主要适合哪些人群阅读?
抚琴煮酒:对,8月底可以买到了。这本书主要涉及的是有几个方面,Linux集群、iptables防火墙和Linux安全及Xen虚拟化在里面占了很大比重,此书适合系统管理员、开发人员和网络管理员及IT类学生阅读。
51CTO:感谢抚琴煮酒本次的分享!本次专访到此结束。
【编辑推荐】