系统架构师大会(SACC 2012)第二天

今天是第二天,上午主要是 PPTV 的那位演讲以及网易的那个 MySQL for the Web。
1. 中大型运维系统的改造,讲的很真实,感同身受。before 就是一个乱字,做视频的 IDC、CDN 机房比较多,据说全国有几百个 IDC,然后傻逼的把 DB 挤在 VM 上,公网 IP 到处乱配,系统 root 密码没记录,30% 的机器找不到归属者,各个业务各自为政,自己做自己的监控,没有所谓的容量规划,纯人肉打造,基本就是个粗放型的、简单粗暴的做法。接着这个演讲的大大来了之后,一切都不一样了(搞的很神奇似的),首先就是制定规范、标准,比如服务器的命名规范的,这个是必须有的;通过 LDAP 来管理帐号信息,通过 CAS-SSO 来管理登录;监控划分的相对比较细致,从硬件到系统到上层的业务线;大部分的都是拿来主义了,用了像 Puppet, Zabbix, LDAP, CMDB 等,当然,他们用的应该比较深入;log 通过 Fluentd + MongoDB 的方式收集。
另外一点就是要加强跟 dev 的沟通,建立一个信任的关系,这个跟 pm 与 dev 多沟通是一个道理,比如,我们完全可以把我们的监控系统以只读的形式公开给 dev 看,这个能建立起一个比较良好的信任的关系。
几个有用的观点:在监控上,漏报比误报更可怕;做总比不做好。
其实一个系统出现了问题,可以从很多层面去发现问题,比如某个业务的前端受了影响,随之而来的就是业务线的监控有问题,相应的系统级别的应该也能看出一些问题。因此,只要监控做的到位,全面,要及时的发现问题还是比较容易的。不过 PPTV 貌似不是很关心这个上层的业务监控,做的也不是很好,据说主要是 dev 不关心,这个就没办法了,自己都不关心自己写的代码,其他人再怎么催都没用。

2. 网易做的跟昨天 taobao 讲的那个有那么点类似,都是前端 LVS 到后面的 MySQL Proxy 再到 MySQL。然后下面说的比较复杂,这种大公司做的事对于绝大多数的公司来说参考的意义并不大,最起码不能在很短的时间就实现一个跟他们几乎一样的系统,实现类似的功能。相比之下,如果从『急功近利』的角度来讲,还是上面的更有价值些。

下午听的主要是安全专场,最后的结论是,如果黑客想搞你,没有他们搞不定的事。之前是谁说的了,地下黑客的水平比那些安全研究人员的领先 10 年以上,有些夸张,但是从一定程度说明了一些问题。然后了,做安全的,我觉得目前普遍比较悲剧,基本处于被动的状态,尤其是在互联网公司,不出问题啥事都没有,出了问题,等着挨骂。


1. 吴翰清说的比较笼统些,总结了一些 CVE 漏洞,既然是云,肯定离不开 VM 了,因此几个 CVE(1, 2) 都跟 VM 有关。

2. 网宿的就是在做广告了,不过了解了一些关于 DDOS 的数据,防火墙也只能小打小闹的防些 DOS,真的 DDOS 来了是抗不住的,还有点是防火墙是要跟的带宽相匹配的,带宽买的小,比如 20M,防火墙有 10G 的能力也没用。最后一场兰亭集市的就描述了他们的 DDOS 升级史,最后还是得靠有大量储备带宽的 CDN 服务商。兰亭集市用的应该是这个,他们是服务于全球的,因此用的是 akamai,如果服务对象主要是大陆,肯定是不能用他的,只能试试大陆的那几家服务商了,这个我认为需要事先跟这些服务商沟通好了,根据业务需求吧,比如我们主站肯定是不用 CDN 的,不过如果真的来了 DDOS,在几分钟内切换下 cname 到 CDN 的,还是可以的。这个最大的优点是隐藏了自己的真实 IP,把自己的真实 IP 做个 acl,只有 CDN 的能访问,这样基本抗住 DDOS 是没问题的。
目前主要的攻击类型有:SYN flood, UDP flood, HTTP flood, ICMP flood, cc, DNS query flood。遇到这些问题,要么修改 DNS 的指向,这个只能防范针对域名的攻击,如果针对 IP,只能不停的换 IP,也这够蛋疼的。

3. 淘宝的主要介绍了 Apache traffic server(ATS),他们用这个做 CDN 的 cache,据说效果比 squid 好,然后后台的管理还比较人性化。

4. 接下来是史应生介绍高性能网络的设计,RHCA 大陆第一人,我最开始以为是做普通的千兆网络的优化,后来发现理解错了,他们做的都是基于 10G 的网卡的,并且主要的业务是针对银行,证券所这类,跟互联网还是有点不同的。不过部分原理还是通用的。
首先是 BIOS 就要关闭一些选项,logical processor, turbo mode, c-stats, CIE,把 power managent 设置成 mac performance。接下来是了解了一些协议,下面的之前一个都没听说过:IPOIB, SDP, IB, Rsockets, kernel bypass。然后还用了 solarflare 家的 controller 以及 SR-VIO。然后他们能做到一块 VNIC 分配一个制定的 core。
接下来介绍了 ethtool 这个工具,涉及的参数有 -S/-c/-g/-k/-i。然后还有些内核参数,这个就不说了,都能 g 到。介绍了 Intel 的 NUMA。
最后介绍了 opfile, systemtap, perf, ftrace, utrace 以及 LTTng 这些性能诊断工具。信息量比较大,得慢慢消化。

5. 《互联网攻防以及运维团队的组建》这个告诉我们,像 Nginx, JBoss, Nagios, Ganglia, Zabbix, Puppet node manager, F5, Memcache 这类服务,在安全人士眼里,这是漏洞百出,随便 g 一下都能发现很多问题。
接下来介绍了安全方面的一些文档:ITIL, CEE, Cisco safe frame, OWASP, SAMM, BSIMM, ISSAF, NIST。这些文档之前都没接触过,有机会会选择性的看看。

6. 下午最后一场是流氓公司的分享,他们也知道自己是流氓,所以说可以不用他们的方案,但是借鉴一下,在自己的内网部署一套还是不错的。360 要想要覆盖的是除了 APT 这类高端攻击之外的其他攻击。
他们后台得到的一些数据比较有意思,一般情况下,后门连接的时间在 0:00-3:30 以及 9:30-12:00,后者比较奇怪;目前全球最大的攻击源显然是大陆地区。
技术上的了解的不是很多,他们用了深度定制的 LVS,这跟我之前好奇的 LVS 做防火墙的问题很类似,或者说他们通过 LVS 解决了这个问题;Nginx 也是定制过的;DNS 是自己写。
最后谈了些关于用户、产品上的问题。我觉得你得把用户想的足够的『傻逼』,用户永远都是对的,你是这样想的并不代表用户也是按照你的思路想的。抛出的几个问题比较有意思:
用户为啥要用 360 来修复网站的漏洞,或者说他们修复漏洞的动机是什么?
360 的那啥检测产品分为免费的跟收费的,前者检测的漏洞没有后者多,但是为什么用户对后者几乎就没有兴趣?
如果要实行付费的机制,用户会在什么样的情况下才会付费?

  • http://www.liurongxing.com/ JavasBoy

    认真看完了,很好奇你是怎么样记录下现场讲座的容易。
    而且很后悔没报名参加这个SACC,现在看看这个报名费还是很值得的。

    • http://jaseywang.me/ Jasey Wang

       人肉记些点就好了。自己想办法,没必要自己掏钱去听。