您好,欢迎访问三七文档
主编杨赛审阅煮酒品茶出版方51CTO系统频道(os.51cto.com)出版日期每个月的第2个星期五邮件订阅订阅(最早发布)=777iPad订阅《读览天下》客户端联系电话010-68476606-8035编者的话《Linux运维趋势》眼看着就发布到了第19期,算上一开始的测试刊和Linux20周年时推出的特刊,到现在已经走过了21期,22个月的时间。“是时候做一些改变了。”一方面,《趋势》最初以主题确立每期的内容方向,随着期数增多,却也限制了取材的范围;另一方面,原本的版式学习自横版的《FullCircles》,虽然在PC上更具观赏性,但在往专业的杂志平台推送、以及转换成电子书格式的过程中,都遇到一些问题。这个时候,我阅读到一篇关于《HackerMonthly》的文章,这令我对《趋势》未来的发展,有了新的想法。所以,就有了今天这个改头换面的《趋势》新刊。如果你对此有什么想法,欢迎随时反馈!邮箱(yangsai@51cto.com)、微博/推特(@lazycai)或QQ(502965602)均可。■——lazycai《Linux运维趋势》是由51CTO系统频道策划、针对Linux/Unix系统运维人员制作的一份开放的电子杂志,内容从基础的技巧心得、实际操作案例到中、高端的运维技术趋势与理念等均有覆盖。我们的所有内容均收集整理自国内外互联网,每篇文章都会严格标注出处与作者,同时编辑也会尽力联系每一篇文章的原作者进行确认。如果您认为本杂志的内容侵犯到了您的版权,可发信至yangsai@51cto.com进行投诉。目录专题22警惕程序日志对性能的影响文/杨文博(solrex)24一次博客的性能故障排查文/BOYPT26三招解决MongoDB的磁盘IO问题文/nosqlfan28MySQL数据库中orderby的实现和byrand()的优化文/丁奇观察思考30阿里巴巴集团去IOE运动的思考与总结文/mysqlops33挑战无处不在文/陈皓本月推荐05百度云首席架构师林仕鼎:工程师应如何突破瓶颈采访整理/杨赛08探秘Facebook的交付工程团队和BT部署系统文/RyanPaul编译/核子可乐技术分享16Django托管在Github上的实践文/Perchouli18/dev/null2&1详解文/南非蚂蚁19Shell脚本自动记录登陆后的IP地址和历史记录文/Trespassers20批量下载Linux运维趋势引发的反思文/煮酒品茶04本月推荐Linux运维趋势2012年5月号总第19期05投稿信箱:yangsai@51cto.com百度云首席架构师林仕鼎:工程师应如何突破瓶颈采访整理/杨赛在今年的百度开发者大会上,百度云战略高调发布,成为开发者们瞩目的焦点。一直以来在公共领域很低调的百度移动·云事业部的首席架构师,也在当天以百度云首席架构师的身份站到了前台。在他的博客上,他喜欢谈谈架构,谈谈安全,谈谈火车票订购系统,谈谈OS的内核架构;在他的微博上,除了讨论技术之外,也喜欢晒晒团队,谈谈社会与生活。他是林仕鼎,一位自称“西二旗跨界架构师”的资深技术男。他的成长历程是典型的研究学院派:对于架构师的成长之路,林仕鼎先生有什么看法?近日,51CTO编辑对林仕鼎先生进行了一次采访,讨论这方面的话题。以下为采访实录:51CTO:您最近的博客将架构分为三类:软件架构,系统架构,以及大规模分布式架构。能具体讲讲一开始接触架构设计的时候是怎样的背景吗?林仕鼎:其实我对架构设计的看法主要还是源于项目经验,做过的事情多了,于是开始总结和提炼。架构设计不是一个单独的行为。它在系统设计和实现的过程中发生,或者在事后总结提炼生成。我觉得并不存在一个单纯的、独立的“架构设计”。51CTO:您最初开始接触计算机和编程是什么时候?为什么会喜欢上CPU设计和内核架构这个领域的?林仕鼎:我从95年到02年都在北航6系,真正编程始于大二。大二上半年用C做了个跳棋小游戏,暑假时帮一个老师干活,做了个基于单片机的图形化控制系统。这个控制系统大概用了一两万行的8051汇编代码,在此过程中我隐隐约约地悟出了资源管理、函数调用和模块封装等理念。虽然以今天的眼光来看,这些经验都很粗糙,但奠定了我做底层系统的基础,也从此喜欢上了这一领域。后来在本科阶段做的工作也主要与网络通信和并行程序相关,在读研时因缘巧合加入了实验室的OS小组。本月推荐06本月推荐Linux运维趋势2012年5月号总第19期51CTO:当时学习OSKernel主要是通过阅读论文吗?在这种深层次的领域,有没有觉得有时候特别难懂,好像自己的成长陷入一个瓶颈,特别烦躁的情况?林仕鼎:我当时主要通过阅读Linuxkernel源码和CPU(i386,SPARC)手册来学OSkernel的。半年多的时间,一些关键代码基本是一行一行研究的。在那个阶段,总是有新的东西可学,觉得每天都在进步,一直都很兴奋。我的看法是Linuxkernel(或者Unix-likekernel)的最关键之处在于进程的创建、调度和切换,当时在把0号和1号进程搞清楚之后,真的是手舞足蹈兴奋不已。有几天觉得最复杂的程序都研究清楚了,也不过如此,甚至产生了“身登绝顶我为峰”的幻象。不过这个幻象很快就被打破了,因为有人问了我一个问题,我哑口无言。这个问题是“Linuxkernel有什么缺点?如果你自己设计,会怎么改进?”后来,我开始阅读一些关于OS架构的论文,这些论文为我打开了一扇进入系统领域的大门。在我身上,比较少有陷入瓶颈的情况,一般我都在不停地迎接新的挑战,这可能也跟我的经历有关。51CTO:对于突破瓶颈,您个人有什么经验分享吗?有没有和导师、师兄弟们交流过这方面的事情?林仕鼎:不同阶段工程师的瓶颈是不同的,有些人需要多写点程序,而有些人却需要从程序中跳出来。对于需要从程序中跳出来的人,我的百度空间里有篇文章,可供一读:《架构相关领域的学习材料》。另外对于架构师的成长,我也有张图,总结了我个人的经验:“不同阶段工程师的瓶颈是不同的,有些人需要多写点程序,而有些人却需要从程序中跳出来。”简言之,通过写code和辛勤工作深刻理解how,通过阅读和思考逐渐体会到why,二者需要持续迭代不断升华。通常工作中得到的只是experience,思考后才会变成自己的skill;而阅读中得到的一般也只是information,使用后加深理解才会变成knowledge;把skill和knowledge结合起来,才会真正形成自己的expertise。于此,才有可能具备前瞻性,知道whattodonext。51CTO:后来接触分布式系统又是从什么时候开始的?您提到大规模分布式架构的重点是资源整合、快速交付和运维问题,而系统架构的重点是资源的分配与复用,这当中的异同具体表现在哪些方面?林仕鼎:2002年毕业后,我加入微软研究院的系统研究组,主要研究大规模分布式系统和高性能系统架构。这段时间的主要工作是问题域研究、系统设计和原型实现,真正做出实际系统是在我到百度工作之后。07投稿信箱:yangsai@51cto.com分布式架构和系统架构是两个维度的技术。从规模上来看,分布式架构通常关注的是机群或IDC,而系统架构则是单机。从目标上来看,分布式架构主要保证availability,而系统架构提供performance。在一个实际系统中,通常这两个维度的技术都会有所体现。对于这几个类型的架构划分,都是纯粹的个人观点,不一定是成熟的或业界公认的。我的习惯是,先把一些复杂的问题解耦、分离成独立的子课题,这样比较容易找到切入点和理解问题域,然后再把不同维度的技术结合,针对具体问题和环境做出不同的折中考虑,最后形成最终解决方案。51CTO:现在百度移动、云计算这块,您目前主要关注的方向是什么?林仕鼎:我当前的主要工作是把面向数据处理的云计算平台、面向网络服务的应用引擎以及面向网页的浏览器平台结合,形成一个更具有普适性意义的OS平台,供WebApp运行。现在有几个大的技术浪潮,移动、云计算、大数据以及物联网。在我看来,移动和物联网提供的是interaction和connectivity,云计算提供的是处理能力,而大数据产生智能。我们的工作就是整合这些能力,使其变得普适化,使App可以更方便地使用。然后App做什么呢?我的看法是用来programweb。Web上有足够的data和services,App可以更智能地把这些能力都串联起来,更好满足用户需求,提供更自然的交互方式。这些技术与互联网的结合,将开启一个全新的时代,我认为这就是继PC和互联网之后的云的时代。这也是百度云战略的发展目标。原文::之前看您提到过百度的绿色数据中心计划,这方面目前的进展如何?有没有计划跟其他同行,比如淘宝的工程师团队进行合作?林仕鼎:我们的绿色数据中心计划包括三个方面:IDC、服务器和新硬件。IDC方面,我们自行设计的M1数据中心已经运营半年多了,除了常规的直流供电和新风制冷等技术,我们还设计了冷热风道隔离和智能调节,当前的成果是夏季平均PUE是1.4左右,冬季大约1.1,这应该是国内的领先水平了。服务器方面,我们正在设计整体机架式服务器以及基于ARM的低功耗高密度服务器。新硬件则包括自行设计的SSD、FPGA卡等。这些设计我们都会逐步开放,也很欢迎其他同行采用我们的做法或共同研发。51CTO:最后一个问题有关新人的培养。您现在招聘工程师主要看中哪些方面?有没有什么可以快速招到(或者定位到)合适的人的经验可以分享?林仕鼎:就我个人而言,我最看重的是工程师的抽象能力和对问题变化的敏感性。很多年来,对于新人我只用一道面试题,很简单的数据结构建模,然后变化一些条件,看他的处理方案。51CTO:好的,问题到此结束。感谢林仕鼎先生接受我们的采访!■“移动和物联网提供的是interaction和connectivity,云计算提供的是处理能力,而大数据产生智能。”08本月推荐Linux运维趋势2012年5月号总第19期探秘Facebook的交付工程团队和BT部署系统文/RyanPaul编译/核子可乐Facebook有一套成熟的软件交付流程,平均30分钟可完成一次升级。这套流程的背后有一个交付工程团队,以及一套BT部署系统。这个系统是如何运作的?Arstechnica网站去拜访了一次这个交付工程团队,揭开了这个系统的神秘面纱——Facebook总部设立于加利福尼亚州门洛帕克市,这同一片园区在多年前孕育出了SunMicrosystems这家同样声名在外的高科技企业。园区入口处矗立着巨大的宣传看板,相信每一位用过Facebook的朋友都不会对上面竖起大拇指的图案感到陌生——赞,这是用户表达肯定态度的方式,可能也标志着Facebook公司对自身成就的评价。我最近一次到园区采访的时候,恰好碰上一群十几岁的少年们聚集于此,争相在宣传板前合影留念。一部席卷全球的热门影片“社交网络”让成千上万普通用户了解到Facebook公司如何从学生宿舍内的构想成长为世界第二大巨型网站,这样一个丑小鸭变天鹅的故事本身就极具传奇色彩。然而恐怕很少有人知道这家社交网站成功的背后,有多少技术人员在交付工作方面付出了艰辛的努力:先进的高科技基础设施造就了如今每天数以百万计用户的交互式Web应用体验,而这正是无数工程师呕心沥血打造出的傲人成果。我前几天刚刚获准对Facebook总部进行专访,全程跟踪这家社交巨头的交付流程工作。Facebook公司正在筹备并部署一项全新社交功能,即“timeline”系统。而我则以独家观察者的身份参与到项目当中,随时收集第一手信息并将资料整理发布。在Facebook园区入口与前往企业办公地点通路的交汇处,一个交通指标牌映入我的眼帘,上面写着:黑客之路。正如该公司创始
本文标题:运维趋势19期
链接地址:https://www.777doc.com/doc-6042052 .html