The Mirages

樱桃沟夹事

《浪潮之巅》是一本IT巨头的发展进程的图谱。看完的感受用一句话总结就是“各领风骚XX年”。 在AT&T时代和IBM时代还能领风骚几十年,但是发展到21世纪后发现这个缩短到只有几年了。特别是针对互联网领域。而吴军下一个google在哪里还是比较迷茫的,所以他去了腾讯。国内也就2个巨头阿里和腾讯。百度在技术和商业模式上跟这2家还是有一定差距的。 而新贵的崛起无疑是需要大量的人才的,google崛起的时候用了大量SUN和YAHOO的一些资深工程师,facebook崛起的时候又挖了大量google的人。在微薄上一个各个互联网公司互相挖人的动态。yahoo现在是只有被挖的份了。虽然它的薪资还是不错的。 在硅谷这个只占斯坦福大学1/10的土地上居然诞生了那么多的公司。我不知道硅谷的房租现在是怎么样的?是不是小公司也能租的起呢?但是国内的清华科技园还是中关村西区我看是很多还没融资到的小公司根本无法生存,大家都给房东打工而已。政府的目标就是提高准入标准,让那些小作坊全部关门。这个就让我想到静安区把吴江路拆了然后提高准入标准的事情。结果吴江路的小吃都没了。 另外一个重要的感想是美国对于知识产权的保护,这个是这些公司崛起的必备条件。要是没有保护,也许苹果的IPHONE没出多久就出来HIPHONE,intel的80386的芯片出来没多久就会出来90396这样的山寨货。而说到这个就涉及到整个社会的问题了,不展开了。 另外一个就是证明了那些定律的可怕性,摩尔定律推动着整个芯片行业的发展。而yahoo开创了互联网的免费模式,前段事件国内翻译过一本叫《免费:商业的未来》一书,可这个不就是说的是现在互联网基本的模式啊。而google是将这个发展到了极致,facebook要在营收上超过google那可不能在从现在的广告上突破了。必然发展自己的收费项目,比如象QQ币这样的了。 除了互联网,还有什么可以如此高速的发展。这个其实是由最早进入那几个公司来确定的。按书中的说法,如果互联网还是由AT&T这样的公司把持,那现在我们上网估计不会到处都是免费的资源了,开个邮箱要收费,发个QQ消息估计也得收费。可惜还好啊。 另外书中大量的关于如何融资的部分很不错,这个对于很多创业者是个很好的参考,以及后面上市应该怎么谈等等。然后金融业对于IT公司的影响力也太大了,不过影响力对于互联网公司还是以正面和积极的意义更多,对于一些硬件厂商就是负面的更多了。而一旦有更高速发展的行业,那互联网公司会被立刻抛弃的。 互联网的常青树至今没有出现,要有可能现在也就google看着会更像一点。 一个国家如何常青树也是同样的道理。社会契约是很重要的,亚当斯密不光写了著名的《国民财富的性质和原因的研究》,其实他还写了一本《道德情操论》我们可以看看,在我20岁的时候我觉得看不大懂。 但是如何在知识产权保护和阻止垄断是当务之急啊。要不然我们会被微软这样的公司继续摆刀。

Engineering Reliability into Web Sites: Google SRE Alex Perry alex.perry 原文:http://research.google.com/pubs/archive/32583.pdf 概要 这个主要讲的是在google的网站保障工程师(SRE, 国内应该称之为应用运维),解释了他的目标和描述它会遇到的挑战 在mountain view, zurich, new york, santa monica, dublin 以及 kirkland的SRE团队管理着许多google的服务和网站。 他们利用分布于全世界数据中心的基于linux的计算资源。 主要内容

  • 根据不同站点来划分组
  • 网站的失效和不可靠会耗尽人力成本
  • 工程师应该专注于消除未来的工作,而不是像救火队员一样,要有一定的预见性。
  • 一个新项目是如何转移到SRE团队的。这个主要是一个新项目是如何从开发转到SRE的。
  • 对于用户量的快速增长要有计划。主要是根据现有的增长速度来进行预测。
  • 估算SRE团队最合理的人数

网站 — 是一项综合的部署

  1. 团队需要确定用户可视化的(可测量的)的在线时间和质量水平
    1. 这个需要掌控所有相关软件和系统的情况
  2. 对于各个组件有深度的了解和知识是很有必要的
    1. 这是一个需要比较陡的学习曲线,这种曲线大部分由于各个组件的复杂性造成的
    2. 要持续的再学习,因为网站是一直都在升级的。要想一劳永逸是不大现实的。
  3. 对于使用共享组件架构的特殊性
    1. 要确定那些共享的组件有很好的可靠性。比如一个网站所用共享的中间层和底层组件。

Reliability – it just works

  1. 最小化的人力成本的使用
    1. 团队管理监控和开发都需要自动化。自动化监控和部署。比如puppet,nagios这些工具
    2. 这个意味着使用脚本工具和数据分析工具。一些初始化脚本和安装工具等等。
    3. 大部分失效都需要适当地自动恢复。当出现问题了能够自动恢复。比如自动切换和重启。
  2. 把更高的风险转移到方便处理的时候
    1. 在工作日之前学习那些已经处理掉的风险(Learn of age mortality risk during preceding workday)
    2. 那些刚开始的风险需要完美的解决,防止影响google现有的业务(Infant mortality ideally also avoids Google meals)
阅读全文 »

上周去人民医院看病,这医生的态度就是敷衍。 周六9点去的,到了之后挂号还是挺快。然后就是等啊等的。由于是周六门诊,所以一个科室都是只有一个医生看病。 而这个医生的态度绝对是有问题。前面看到很多病人都是不到1,2分钟就被打发出来了。我想我应该不会也被这样对待吧。 结果我发现我比他们还快,说了下病情,医生就说这个是什么病。也不按任何部位,也不说要检查一下,就这样直接了当的说了。然后叉叉叉的开始开药方了。我不死心就问,这个是什么原因导致的,医生回答说这个原因是有很多种的,具体哪种不清楚。 我觉得吧,这个看病确实不是都靠仪器检查的,有些医生巴不得你把他们科室所有检查科目都给做了再给你诊断。这种医生也太黑了,而象我碰到这样的,简直就是敷衍了事,巴不得快下班了。也不仔细查看,也不详细问病情或者各种症状。然后直接就给你下结论了,我不知道是你觉得这种是小毛病,不值得你看呢,还是你觉得你看的同样的病太多直接一眼就能确诊了呢。 至少给我的感觉是这个医生很不专业,也不问什么问题,望闻问切在你这边就是个空话。 前几天看到一个妇产科大夫的月薪才2500了,想想也是阿,要在北京一个月2500能干什么。但是这就能算是上班捣浆糊的理由了吗? 一个对于自己的职业如此的不认真和负责,那他会有什么发展呢? 如果是让患者来评判的话他估计这辈子只能当个这样的医生了。 其实我之前也碰到过这种类似的医生,同一个病,在不同医生看来居然是完全不同的病,最终还是华山医院一个副教授给确诊了,在医院躺了一个礼拜就回家了,什么事情都没有。也许这就是水平吧。

《黑客与画家》不能算是计算机书。主要说的其实是黑客的一些事情。通过这些事 情让你对于计算机有了从其它方面的了解。 其实这些观点大多是其它事情上来进行引申的。比如为什么书呆子不受欢迎,为什 么会有不能说的话,为什么有时候贫富差距的扩大是好的,技术进步对于贫富差距 是拉近了还是拉远了? 还是不知道从哪个角度来写这个读后感,因为书中的每个章节都是完全独立的。基 本上所有论点都是跟现实普遍看法有很大的不同。 贫富差距这是个普遍的问题,普遍看法是这个差距是越小越好。可作者的观点并不 是很赞同这个观点,特别是国内大家都有普遍的仇富心理。但是我们大家也都不仇 视姚明那么多钱啊,于是我们就加了个前提,我们仇视的是非法所得。可对于国企 那些高官P事不管还拿那么多工资大家也都挺义愤填膺的,对于某些明星拍个广告 拍个电影赚那么多也很有看法。 其实作者最后的观点就是技术的进步其实是减少了这种贫富差距。比如汽车,钟表 等等产品。现在唯一可以保持这种差距也就是品牌而已了。 该书基本上是颠覆了我们以往的日常观点。但是所有的论据总觉得哪里不够充分。 感觉像是一个老愤青发出的声音而已。 而读完该书最大的想法就是对于平时我们习以为常的想法得常常考虑为什么。可如 果只是为了这个目的的话应该看看《学会提问》这本书更好点。

《1984》是一本有名的政治预言小说,小说的主人公温斯顿生活在1984年的社会注意英国,简称英社。 小说分为3个部分,第一部分是描述了集权社会主义的恐怖,而主人公要在这种恐怖的氛围中寻找某种自由。 第二部分是他跟女主人公朱丽亚的一段自认为是自由的生活,同时为了推翻这个恐怖的英社他们还寻找兄弟会的踪迹。 第三部分是他们被抓起来后,受到严刑,并最终在内心服从了老大哥。 其实主人公的不幸在第二部分就已经显现出来了。当他发誓了为了推翻英社而愿意杀人发火暗杀的时候就已经形成了。 我们究竟是为了什么而不满现有的社会。是由于不自由,还是由于不公平不公正。可一旦我们为了推翻这种不公平不公正而做那些泯灭人性的事情,那我们不是也跟现在这个社会一样吗?那由这些人创造出来的世界不也一样不公平不自由,难道这些人做的一定是公平公正的?你以为你是天皇老子和老毛同志?你以为下面人都喊万岁万岁万万岁的就真的不朽了? 以前皇上要求子民万岁,可现在不也一样。以前皇上还不会不要脸的把万岁刻在皇宫门口,可现在呢? 国家的改朝换代好像从来没有不爆发几次流血冲突的,就是死多少人的事情,每次外国或者外族侵略也从来不缺乏汉奸,这些国外应该也有,可是在数量上超过侵略者本身的数量我们可是绝无仅有的了。 以前不明白为什么《1984》这种讽刺社会主义的小说怎么可以在中国出版,现在我明白了。

今天我生日,没啥感想,只是感觉又老了一岁。 某党昨天90岁大庆,可惜天公不作美。关于国际歌,某党宣传的时候都只有前面2段,故意漏掉后面几段。某党的宣传水平一直是世界一流的。 国际歌-鲍狄埃词-狄盖曲 第一段: 起来,饥寒交迫的奴隶! 起来,全世界受苦的人! 满腔的热血已经沸腾, 要为真理而斗争! 旧世界打个落花流水, 奴隶们起来,起来! 不要说我们一无所有, 我们要做天下的主人! 这是最后的斗争,团结起来到明天, 英特纳雄耐尔就一定要实现! 这是最后的斗争,团结起来到明天, 英特纳雄耐尔就一定要实现! 第二段: 从来就没有什么救世主, 也不靠神仙皇帝! 要创造人类的幸福, 全靠我们自己! 我们要夺回劳动果实, 让思想冲破牢笼! 快把那炉火烧得通红, 趁热打铁才会成功! 这是最后的斗争,团结起来到明天, 英特纳雄耐尔就一定要实现! 这是最后的斗争,团结起来到明天, 英特纳雄耐尔就一定要实现! 第三段: 压迫的国家、空洞的法律, 苛捐杂税榨穷苦; 富人无务独逍遥。 穷人的权利只是空话, 受够了护佑下的沉沦。 平等需要新的法律, 没有无义务的权利, 平等!也没有无权利的义务! 这是最后的斗争,团结起来到明天, 英特纳雄耐尔就一定要实现! 这是最后的斗争,团结起来到明天, 英特纳雄耐尔就一定要实现! 第四段: 矿井和铁路的帝王, 在神坛上奇丑无比。 他们除了劳动, 还抢夺过什么呢? 在他们的保险箱里, 劳动的创造一无所有! 从剥削者的手里, 他们只是讨回血债。 这是最后的斗争,团结起来到明天, 英特纳雄耐尔就一定要实现! 这是最后的斗争,团结起来到明天, 英特纳雄耐尔就一定要实现! 第五段: 国王用烟雾来迷惑我们, 我们要联合向暴君开战。 让战士们在军队里罢工, 停止镇压,离开暴力机器。 如果他们坚持护卫敌人, 让我们英勇牺牲; 他们将会知道我们的子弹, 会射向我们自己的将军。 这是最后的斗争,团结起来到明天, 英特纳雄耐尔就一定要实现! 这是最后的斗争,团结起来到明天, 英特纳雄耐尔就一定要实现! 第六段: 是谁创造了人类世界? 是我们劳动群众! 一切归劳动者所有, 哪能容得寄生虫?! 最可恨那些毒蛇猛兽, 吃尽了我们的血肉! 一旦将它们消灭干净, 鲜红的太阳照遍全球! 这是最后的斗争,团结起来到明天, 英特纳雄耐尔就一定要实现! 这是最后的斗争,团结起来到明天, 英特纳雄耐尔就一定要实现!

《野火集》是本很不错的书,虽然是在出版后20年才看到,但是对比现在大陆的情况,依然发现我们现在远远做的不够啊。 书中说了大量台湾人你为什么不生气,你为什么不反抗,美国真的那么好吗? 但是归根结底说的是民主和自由。 所谓民主就是让所有人都能说出自己的声音,社会能够包容各种意见和声音。就跟好莱坞电影里说的“虽然我不同意你所说的,但我誓死捍卫你说话的权力”。而一个经常有不同意见出现的社会才会知道自己的弊病并进行更改。 这书是讲民主的,在20年的台湾这个东西没有,而现在的台湾有的也只是假民主而已,更多的是跟唱戏一般。但是我们大陆现在连假的没有,人民政协就是一个党内养老院一样。 民主这个东西一定是自己争取来的,我们也不需要通过政变来获得民主,这个东西只有民众有了自我觉醒才行,不然无论谁执政的结果都是一样的。没有监督的权利必然是腐败的。而如果我们自己不去监督,不去申张自己的意见,那自然没人来对你负责的。 最近还是很欣喜的看到一些人自费参选人大代表,对于我这样的从小到大从来没有看到过选票是什么样子的人来说真是一大进步。不要说什么中国地方大,选票发不到你家里,也没法通知到你这样的借口。这些宪法赋予我们的我们都没有得到。 我觉得互联网很好,互联网让很多人说出了自己的声音,互联网让很多事情不再只有人民日报一种声音了。 大声的说出你自己的声音吧,无论是平时生活还是关键时刻。

在维护mysql数据库系统中碰到了以下问题。

对于线上数据库一定要用非常稳定的版本,对于数据库版本一定要稳定,而不要追新。而对于mysql之前的版本号来看,一旦过了50基本算是稳定的版本了。

mysql5.1的版本也已经发展到5.1.57了,算是非常稳定的版本了。而5.0居然都到了5.0.92了。 如果你现在开始建立一个新数据库系统的话就用这2个版本好了。

线上数据库版本必须保持一致,如果都是5.0.92那以后就都是5.0.92在同一个系统内,而对于DBA来说最好以后永远都是5.0.92。但是对于升级遵循的原则还是要到50以后才算是稳定版本。所以现在5.5的版本还不能运行到线上作为一个稳定的正式系统的后台数据库。当然你可以做实验,毕竟innodb1.1对于之前的改造还是相当大的。

关于mysql HA的方案,这个之前的文章说过,虽然现在有各种各样的双master方案,但是始终没有完全可靠的方案。首先是DRBD不可靠,双master的方案也不够可靠。cluster又觉得性能不行,所以这个只能将就下的,看CAP中你看重哪个了,然后根据不同的结果来决定用什么方案。

建立标准的my.cnf文件,这个主要是进行统一。一旦建立这个文件后需要测试环境和生产环境同时执行,这样才能保证正式上线后不会出现数据库层面的问题。而这样的话可以在测试期间尽量的发现存在的问题。

阅读全文 »

今天听了下百度的朋友讲了百度现有的运维体系,感觉还是很不错的,比较适合大的方向把握。 第一个是运维的日常工作: 1. 突发流量,这个需要及时的进行流量调度,以及排查为什么会有突发流量,是某个新的上线导致还是由于配置错误还是运营推广。 2. 复杂环境关联。这个其实是最重要的,在一个复杂的系统环境中会有很多层次,我们要了解每个层次之间的关联,以及每个层次的性能。所以一个完整的系统逻辑框架图和物理框架图是很有必要的。 3. 快速开发并上线。这个是由于互联网的特性造成的,我们什么都是讲究一个快字,快速开发,快速部署,快速增长,快速下线。 第二个是整体运维的框架: 1. 容量管理 2. 关联关系 3. 任务管理 4. 自动部署 5. 分布式集群和传统集群 6. 机器管理 要在一开始为这6项做好流程化和监控管理,同时最后要贯穿安全检测和灾难管理。 具体到运维框架里的自动化监控 数据采集: 1. 数据采集(主动提交到中心服务器上): 在client端部署公共插件和自定义脚本的一些监控 2. 服务器状态检测(由中心服务器隔时间去检测): 这个主要是中心服务器去检测服务器上的服务状态和程序状态,以及用户访问的质量 3. 第三方信息:这个主要是跟公司内部系统相关联 数据处理: 1. 复杂计算:因为有些监控阈值不是单独一个值就能判定这个是否有问题,而是通过多个监控值进行计算后才能确定是否有故障 2. 阈值判别 3. 智能分析:这个是分析到底是什么导致了这个故障,为后面做故障自动恢复打下基础。 报警和联动: 1. 报警策略:这个主要是报警的阈值和去重报警。当一台服务器挂掉的时候,那一般情况这个服务器上所有报警都会发出来,但是这个时候其实就报一个服务器down就可以了。 2. 联动处理:由于一个服务的问题可能导致其它问题的产生,这个时候需要了解系统的逻辑架构和关联关系才能知道。 3. 报警跟踪:跟踪问题的处理过程和结果,时间等信息 4. 问题管理:每个问题都有各种各样的原因产生的,这个可以汇总整理 完整的监控内容: 1. 域名监控:看看dns解析是否正确,这个百度吃过大亏的 2. 流量监控:主要是某个区域和全网流量是否有异常。 3. 访问质量监控:通过对于前端服务器的流量镜像分析来判定网络质量值否正常。也有是从本地通往远程是否网络路由是否正常。也可以使用networkbench和gomez这种第三方监测来发现。 4. 语义监控:就是对于页面中的关键字进行监控 5. 基础监控:系统的状态,cpu, load等等 6. 端口监控:telnet到机器的服务端口看看是否正确返回 7. 结构体监控: 这个是当某个进程还在系统中存在,端口也存活,但是无法正常服务的情况下进行监控。可以模拟程序请求这个进程,看是否能正常工作并返回正确的值。 8. 模块监控 9. 日志监控:对于机器的错误日志,访问日志等信息进行监控 10. 自定义监控: 其实以上所有的监控的最终目的就是要发现对于用户的影响是什么? 具体到具体的语义监控内容: 1. 语义监控(页面监控):其实就是通过get页面然后判断页面是否有预定义的关键字。 2. 高级语义监控(面向功能):这个是为了监控页面中多个模块是否正常。这个需要在html对于不同的功能定义标签开始符和结束符,这样通过get这个面后看看标签之间是否数据存在就知道页面功能是否正常。 监测各地用户访问质量: 1. 各地访问速度:这个基本需要在当地部署机房后才能测定,也有用networkbench和gomez来测量的。 2. 各地流量 3. 机房带宽使用 4. 各地DNS速度 对于模块的监控: 1. 程序自身占用的资源是否合理 2. 程序的性能表现是否正常 3. 该程序的分支是否正常 基础监控: 1. CPU资源占用: 这个就看CPU到底是多少核了,不能一定说多少 2. 内存使用:这个要看实际使用的,不能算上buffer和cache,因为Linux系统默认是利用完所有的内存的 3. 文件句柄的使用 4. 网络句柄 5. 各种状态的进程数 服务监控标准: 1. 数据加载情况 2. 模块处理能力 2.1 平均耗时 2.2 队列长度 2.3 线程池使用率 3. 模块间通讯状态 3.1 平均连接时间 3.2 读写错误数 异常根源分析: 1. 关联关系查询 2. 模块关联探测 3. 服务器关联状态探测 4. 网络关联探测 5. 波动性预警 联动处理: 1. 流量切换预案 2. 服务器重启 3. 磁盘数据清理 4. 执行用户自定义命令 报警去重: 1. 服务器维度 2. 策略维度 3. 多维度 4. 计算同策略两次连续报警的时间间隔 5. 最大等待时间

mysql 5.5 以后的tar包居然是用cmake来进行安装的,而不是之前的Autotools方式即(configure方式)

所以还是记录一下安装过程,以备后记。

首先是下载tar包,大概22M的样子,我自己下载的是5.5.10的版本。

然后是安装一些必备的工具

1
sudo apt-get install cmake libncurses5-dev g++

然后是通过cmake来进行编译

阅读全文 »
0%