想知道国内互联网公司都在用什么时髦或靠谱的技术,服务,开源项目吗?为此我发起了个调查,已经有一些结果了,随我来看。
调查地址:http://www.diaochapai.com/survey/1a9164b1-fbbf-4476-b542-c6aad67f6587
本次调查收到133份样本,独立IP 130个,覆盖微博上好多互联网公司,有一定的代表性。
通过本次调查,总结出几个关键字:git,Markdown,RESTfull,nagios,Redis,mongodb,nginx,DNSPod,Python,QQ群,gitlab,jira
你们公司用什么管理文档?
通过调查发现大多数公司使用版本管理工具来进行文档管理,好处是文档的历史可以保留,而且git等版本管理工具开发人员用起来也很方便顺手。
另外就是用Wiki进行内部文档管理的公司也占一定的分量,它的优点就是可以在web查看,方便分享,但一般wiki都是全公开的,没有权限管理,对一些级别高的项目的文档管理有些不便。
在其它选项里也有公司选择用Google Doc进行文档管理的,也不错,但是缺点也是很明显的,这个你懂的。
其实在我们公司,文档也是用git管理的,但git的仓库是由gitlab管理的,文档既可以进行版本管理,也可以方便分享和权限管理。
你们公司的文档主要使用什么格式?
怪不得微软还这么强大,还有这么多人使用Office写文档,其次就是PDF,优点就是跨平台。
比较欣慰的是Markdown这种轻格式也逐渐被很多公司所认可,它编写方便,阅读美观,存储方便,平台通用,应该是程序员最喜欢的格式,我看好它。
你们公司的服务间通信选用什么协议和框架?
HTTP/RESTfull API以它的通用性,夸平台性赢得了很多公司的使用,完了就是RMI,.NET Remoting等语言框架内置的通信方式所占比例也很大,再次就是好多公司都是自主开发通信协议,看来一些开源的方案还是不能满足企业的内部需求。
再就是ZeroMQ,Celery等通信领域的新秀也崭露头角,有不少公司内部在使用了。
你们公司的运维监控用什么?
首先是好多公司在运维监控方面都是自主开发,这个现象比较奇怪,可能是现在好多公司的服务器越来越多,在运维监控上的需求越来越多,越来越个性化,一些开源的方案已经不太能胜任了,所以好多公司选择自主开发,在这个问题上,我还是希望各公司能分享自己的经验,让更多人受益。
nagios和catcti这两个老牌工具还是宝刀未老。 graphite也有很多人使用了,这是个比较轻量级的方案,数据上报协议很简单,而且有各种语言的客户端,比如pystatsd。
其它选项里,有很多人提到了监控宝,看起来监控宝也功能不错,还有就是zenoss,zabbix,ganglia,collectd, munin,这些我都不了解,有兴趣的朋友可以搜搜。
你们公司的自动部署用什么?
震惊的同时也感觉有些道理,这么多公司的自动化部署竟然是用Shell脚本,Shell脚本真是运维的尚方宝剑呀。
puppet和fibric的成绩也不错,puppet功能很强大,大公司应该用的比较多,fibric比较轻量级,也很灵活,应该一些新型公司在用。
其它选项里有人选择ccnet,cap,chef, capistrano,hudson,deployhq, jenkins, Bcfg2,ant的,大多不认识,但好多人用每日构建工具或持续集成工具做自动部署,确实感觉很新颖,要不就是我太土了,:)。
你们公司用什么做队列?
Redis这次当仁不让了,我想不用解释了,RabitMQ也很给力,占了近20%的份额,这个东西性能也相当强劲,淘宝褚霸经常推荐,应该错不了,主要是公司得有像霸爷这样能驾驭的了erlang的人才更靠谱。
JMQ,MSMQ不说了,其它选项里有MangoDB,ApachMQ, hornetq,activemq, kestrel, zeromq, beanstalk的,真是百花齐放呀,俺蛤蟆跳井--不懂。
你们公司的nosql系统用什么?
redis,memcached,mongodb这哥三齐头并进,不分伯仲。当然memcached资格老,用的人肯定多,redis不仅是k-value db,还支持key-结构化数据,队列,Sub-pub等模式,是架构设计的得力助手,mongodb虽然好多人说有这问题那问题,但瑕不掩瑜,在使用方便性上来说几乎无出其右者。
其它选项有CrabDB,hbase, couchbase, postgresql, dynamodb的,为啥没人用BDB呢?奇怪。tk也没人用了吗?
你们公司的WebServer,反向代理,7层负载用什么?
这。。。nginx又不低调了,快满格了。apache竟然还活着,佩服。haproxy做7层负载应该很强,但使用量貌似有些对不起它的知名度,我 一直以为大家都是用lvs做四层负载,haproxy做7层负载呢。gUnicorn就5个人使用,识货的人不多呀,或者玩python的公司不多,它的性能应该仅次于nginx,当然功能没nginx那么丰富,做python的web server肯定是首选,+1。
其它选项里有Litespeed,netscaler,F5,IIS,lvs,Tomcat的,用F5的都是高富帅,屌丝们可以退散了。
你公司的DNS解析用什么?
域名解析对一个互联网公司的重要性大家都是有目共睹的,DNSPod以其稳定安全的解析赢得了众公司的亲睐,成绩不俗,赞一个。
好多公司还是选择域名注册商如万网等自带的解析,还有一些IT能力或研发能力强的公司自己用Bind架DNS或完全自主开发,其它选项里有tinydns,softlayer,linode, aws, csiso,name.com, 花生壳啥的。
您公司有没有用时髦的编程语言?
好吧,我是python的坚定支持者,我觉得语言学好c,python,javascript基本就是无敌了,图表说明一切,不解释了。
other选项里有scala,Groovy,f#, obj-c啥的,都不错的语言,当然除了obj-c。
你们公司内部交流分享都用什么?
qq群立功了,呵呵,看来互联网公司都比较开放,不像一些传统公司,上班连qq都不让开,坑爹呀。内部论坛和rtx也有不少人用,另外飞信我就不说了。。。
其他选项有:skype irc,8hours.do, Lync(支持下),google sites, trac, wangwang(这是啥?), bootcamp, hipchat, IMO, OC, GTalk, salesforce, 邮件,wiki, node_chat, openfire, LCS, 飞秋(还记得那些年我们传的片儿吗?),webex, Hi(是百度hi吗亲?)。我去,好长,一口气念不完呀。
你们公司的BUG/需求管理用什么?
这个问题回答的好不统一,直接上其它选项吧:trello(好),jira(牛),mantis, QC, ClearQuest,github,redmine(有些老了),prd,禅道,bugfree,Agilezen,Asana(潮),openerp,MantisBT,codebase,bugzilla,urtracker
好了,调查分析到此告一段落,其实有好多问题还没问题,比如你公司用谁家的cdn? 你公司用什么源码管理工具?等,下回再来分解吧。