• 从 Twitter 运维技术经验可以学到什么


    没有一个网站的性能像 Twitter 这样这么令人牵肠挂肚,看见那条大鲸鱼总是让人感觉很无奈。Twitter 的运维专家 John Adams 在 Velocity 2009 上做了一篇题为 Fixing Twitter 的技术分享(PDF),人家也是一直在努力阿。John Adams 在 2008 年七月加入的 Twitter ,对于 Twitter 的站点稳定的确做了不少工作。

    Twitter 运维团队的职责:

    • 软件性能(后端) Software Performance (back-end)
    • 可用性 Availability
    • 容量规划 Capacity Planning (metrics-driven)
    • 配置管理 Configuration Management

    看完这个接近 50 页的 PDF ,除了满足我们一小部分技术窥探的癖好,或许也可以学到点什么。

    不重复发明轮子

    对于监控,Twitter 用的就是 RRDtoolGangliaMRTG 这些已经成为很多网站标准配备的组件。而不是自己写一大堆功能重复的东西。值得注意的是, Twitter 也一直在用 Google Analytics 进行业务分析。

    不重复发明轮子,可以打磨轮子,比进行如一些功能脚本定制之类的工作。

    发明不重复的轮子

    Twitter 开源了他们自己用的一个 Apache 模块 mod_memcache_block(a distributed IP blocking system),这个模块根据 HTTP 代码请求限制访问频率。熟悉 Twitter 的朋友会知道这是针对第三方应用程序的必须的一个功能,否则的话,会产生类似 DDos 的效果 :) John Adams 说这个模块是他多年以来就期待的东西,我相信,如果有人已经做了同样的事情,他们肯定不会自己再写一个。

    尽可能的自动化

    无论是配置管理还是针对各项功能的"开关",都尽可能的自动化。依赖于人来控制一些事情容易"规范",但是流程冗杂,节奏变慢。

    更好的理解硬件

    拥抱新技术体系,使用更有经济效益的硬件(比如对 8 核 CPU 的选型与更换)会带来更好的收益。而这个要建立在对硬件体系的正确理解上才行。

    另外几句话要记住:

    • Disk is the new Tape. (内存是新类型的磁盘. 磁盘是新类型的磁带)
    • Kill long running queries before they kill you. (问题是如何提前发现? 有效的监控!)
    • Use metrics to make decisions, not guesses.
    • "Cache Everything!" not the best policy

    或许还应该学到更多...

  • 相关阅读:
    git 分支报错: error: The following untracked working tree files would be overwritten by merge
    JSAPI唤起微信支付
    解决html body 元素在底部设置padding-bottom 或者margin-bottom失效的问题
    Java中的接口
    Java中的抽象类
    IDEA快捷键
    Java的访问控制权限修饰符
    Java中的包机制和import机制
    Java中的final关键字
    Java面向对象三大特征
  • 原文地址:https://www.cnblogs.com/flysun0311/p/2615026.html
Copyright © 2020-2023  润新知