传统产业跟互联网产业的 IT

接触了不少的传统行业,对服务器网络设备以及上面跑的应用程序在传统行业的应用有些了解,跟互联网行业做个对比,谈谈感想。

首先先定义下传统行业主要是指非互联网的行业,包括零售餐饮金融政府机构等等。IT 部门对于传统行业来说可能就是一个单独的小小的部门,包括公司所有 IT 相关的日常维护;对互联网公司来说,包括 se、ops、ne、qa 等职位的统称。

1. 首先说说服务器,这个稍微有点规模的都少不了,不过两个行业的选择差距非常的大:

  • 传统行业更倾向于选择像 IBM,Cisco UCS 这类高端大气上档次的服务器产品,大型机小型机也在其列
  • 互联网行业更愿意选择 DELL、HP 这类,甚至是定制机、组装机这类性价比超高的,价格便宜的机器

2. 接着是网络设备,这个二者的差距不是很大,目前路由交换的高端市场被 Cisco、Juniper 霸占,中低端的是国产国外大混战;而像 (NG)FW、LB、AD 跟前面的情况很类似。二者的区别是:

  • 传统行业更容易选购远超过其实际需求的网络设备产品
  • 互联网行业更能把握目前的业务发展有针对性的进行选择

3. 最后就是上面跑的软件了,以目前很火的 big data 为例:

  • 传统行业虽然不是互联网,但是也清楚数据的重要性,因此,需要对其进行分析处理,因为有这样的需求,也就诞生了像 splunk 这类的公司,他们在传统行业做的很好
  • 但是到了互联网产业,很少有公司愿意使用 Splunk,更多是以 Hadoop,NoSQL 为代表的数据处理保存方案

传统行业,钱多(中字开头的一批)不多(若干中小规模的民营公司)不确定,但是人傻,这里的傻主要是指其公司的 IT 人员的职业素养相对的比较低,包括技术视野水平沟通等方面,而需求却不低于互联网公司,导致的结果就是需要有一类产品来弥补这种缺陷,于是类似 UCS、Splunk 这类"傻瓜式"的产品出现了,他们的共同特点式易于部署易于维护,但是缺点也很明显,花数倍的费用不谈,功能、性能、扩展性、定制化等方面则不能完全满足自身的要求。曾经试用过从刀片机、FCoE 到 Nexus 5000、Nexus 7000 的全套的 UCS 产品,最初的感觉就是强大。后来随着深入的了解,还是发现了不少的问题,比如,一个最基本的需求,既然使用的 UCS 是为了方便我对众多刀片机虚拟机的管理,那么我可不可以将 100 台机器在很短的时间(小于 10s)的更新完 BIOS 重起,在场的工程师都没有能很好的给出答案。

Continue reading

《The Startup Kids》 观后

The Startup Kids》是一部讲欧美小青年做(移动)互联网创业的纪录片,采访了不少的 startup,包括我一直在使用的 dropbox、vimeo,曾经用过的  Soundcloud 以及从未用过的 Kiip、Scribd、drop.io 等等。

要成功无非分为内在与外在因素,其中内在的起绝对的主要作用,包括热爱激情坚持专业等等的内在素养。这里主要说说外因,外因对一个公司的发展也有非常大的影响,感受最深的几点是:

这些 startup 能非常容易的廉价的租用各种云,这个在大陆基本是不现实的,如果你服务的是大陆客户但是使用的墙外类如 ec2 的基础设施,这意味着严重的访问延时严重的丢包,最不幸的是直接被墙。而大陆的几家云,具体的我就不评价了,要是靠谱的话,被收购后某些业务早就迁移过去了,而不是现在是用物理机的传统方案。

能够方便的获取各种资源,包括但不限于技术上的资源,比如各种各样的开源技术方案;相比大陆好的多工商、税务、办公场所等等一系列的商业资源;以及最最基本的生活设施,包括空气水等等。不得不承认的是,大陆的大部分工程师还在为租房买房买车担忧的时候,对岸的则在想着 "How to make world better"。

纪录片在介绍 drop.io 的时候让我突然想到了域名的问题,同样的,如果目标是大陆的用户,并且是老老实实把服务器放大陆,使用 xxx.io 这类的比较新奇域名就是死路一条,因为中国的局域网有备案这一说法,因此还是老老实实的用 .cn, .com 域名,即使买了,也请老老实实的去拍照备案。当年我们曾经找人帮我们做加急的三天快速备案,一方面是当时有一部分的 .com 域名没有备案,另一方面是有不少类似 .io, .us "非主流"域名,后来发现,域名备案带动了一个新的产业链,从上游到下游。

影片中有不少黄皮肤,人肉了一下发现要么是纯正的中国血统(Ping Li),要么是全家移民过去的(Brain Wong),有的连 Co-founder 都是中国人。这是不是说明中国人其实还是很有创新实干能力的,只不过周围的大环境不太理想,一旦到了一个比较好的环境,还是能如鱼得水做出不少工作的。

最后,推荐大家一看。

github 是家有良心的互联网公司

注:这篇博客写在 12 年的 12 月,但是到 13 年的 2 月才发表 -.-


国外(大陆几乎没看到过)有不少公司会有 status.xx.oo 的页面,随时让客户了解当前网站的情况。不过很少会像 github 那样把每次出现的 outage 总结对外公布的,从这个角度来说,github 是个比较有『良心』的公司。虽然他们的 https://status.github.com/ 页面经常冒出黄色的甚至红色的报警,虽然他们上个月的 App Server Availability 只有 99.4643%。
上个月他们家出现了有史以来最严重的 outage,其前奏可以看这里,后续的总结可以看这里。两片总结的非常到位,造成问题的原因简单的总结就是:
1. 网络设备本身有 bug
2. HA 在关键时刻并不能 HA

除了 github 之外,CloudFlare 做的也很不错,比如下面的这几篇博客:

尽管 CloudFlare 包括诸如 EvernoteDropbox 没有 outage 这个 tag,但是其发布的任何一篇博客都足以完爆大陆的那些点点点公司了。

 

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

今天是第三天(好长),明显没前两天有意思,早上 360buy 的那个原来是由雅虎的来讲的,做替补的感觉真不好受阿。实际上,早上的我并没有去听,只听了下午的两场。

1. 端到端的性能优化,这个我们目前也正在做,我理解的是,从你客户端发起请求到返回请求,这过程中走的每一步都需要有详细的计算,耗时多少,这样才能看出是哪部分的相应比较慢,发现了问题所在才能解决问题。
还是那句话,用户永远不会嫌你的系统太快,优化这个东西跟安全一样,不是一劳永逸的事情,是需要往复循环,坚持去做的。其实,我理解的,所谓的性能问题,从客户的层面来讲,就是一个字,慢。而这其中会牵扯到许多的人,尤其公司大了,系统复杂之后,参与进来的人会大大增加,这就需要我们能比较好的协调好各自的关系,处理好多方合作上的问题。很多有都有这种想法:事不关己高高挂起,多一事不如少一事。这个在发现系统问题的情况下更为明显。出现了问题,大家都是各自检查自己负责的模块,或者是应付性的查查或者根本就不查,然后告诉你,他负责的这块没有问题。但是是不是真的没有问题了?
所以了,要做一名优秀的管理员,除了技术层面上有过硬的技能之外,在人与人的沟通,协调方面也需要花费一定的时间来学习。

2. 网易的工程师介绍他们开源的 TCPCopy,做性能测试的。大致了解了下,完胜传统的压力测试工具。在此,对比了他的这个工具跟 tcpreplay,镜像,loadrunner 之间的优缺点。有两种极端的情况,比如你有大量的肉鸡,或者你直接搞促销抢购活动,这两种情况都能更为真实的发现系的压力,不过这不是每个公司都玩得起的。

开会这是个体力加脑力活,收获还是不少的,看看别的公司怎么做,参照我们在做的,才知道差距,有对比总是好的。综合评价 80 分。

最后感谢某 cdn 公司提供的门票。

系统架构师大会(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 年以上,有些夸张,但是从一定程度说明了一些问题。然后了,做安全的,我觉得目前普遍比较悲剧,基本处于被动的状态,尤其是在互联网公司,不出问题啥事都没有,出了问题,等着挨骂。

Continue reading

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

今天是 SACC 的第一天,整体的感受就是讲的比较实在,不装比。当然上午的还是基本以广告为主,前面的实在指的是下午场。

1. Tencent,泛泛而谈了他们的 webapp 开放平台的架构设计。基本运维这部分还是大同小异了,无非是监控,log 收集分析以便及时发现问题,自动化的部署,自动化的版本发布,质量的监测,这个我理解的还是属于监控这个范畴了,只不过是业务层的监控监控问题。
2. 然后是 MicroShit 吹嘘他那啥云云之类的;IBM 的在那边大谈特谈究竟什么是云。

人类大部分的活动,无非都是对资源划分于利用,这个是前天下午看完《敢死队2》的感受,其实对云来说也一样,无非是原来 100 台服务器,我不能很好的利用他的资源,现在有了云这个东西,可以把资源进一步的整合,你需要多少 cpu,需要多少 ram,我就给你分配多少的 cpu 以及 ram,不浪费,扩展起来很容易。我觉得这才是云要实现的目标。

3. 而余锋讲的则是 MySQL 在云方面的体系架构,目的也很简单,就是要更有效的利用、压榨物理机的每一点资源,同样这样的好处是管理起来也比较方便。最开始的 MySQL 使用的是 MS,这会出现同步不完全的问题并且 S 的利用率也比较低;后来改成了 proxy 的模式,制定一个统一的入口,前端 LVS 做 LB,这样控制起来比较方便。另外还使用 rabbitMQ 作为消息队列,使用 Mnesia 作为 db 的管理系统,整个系统大概 10w 代码,很多地方使用 Erlang 实现,据说该语言的特性使其特别的稳定。资源的划分是通过 cgroup 实现的,记得 baidu 也是这么做的。该系统还提供 SSL、白名单、log 追踪记录、FlashBack restore 的功能。不过该系统貌似目前还是有不少问题需要解决的,比如不能实现 group by 等操作。
Continue reading