与19楼的交流

起因是微博上福强转了csdn的总编刘江发的一条信息说19楼已经全面采用scala了,因为就在杭州,大家很有兴趣去了解一下他们用的怎么样,于是阿干联系到了之前在阿里巴巴中文站现在19楼的汤汤,在汤汤的安排下,有了今天的这次交流。

感谢汤汤和19楼的热情接待,技术总监王治和另外几位开发负责人,跟我们分享了一下他们对scala的使用情况。先是分享了一个ppt介绍了一些scala的特点,他们碰到的一些问题等。然后大家交流了一下具体的东西,大致了解了一下19楼的网站技术架构:

前端的负载均衡是F5,静态服务器使用 Nginx,后边 Tomcat,虽然使用scala,但并未选用lift或play框架(只有个别项目尝试过lift,风格差异太大没有在全站采用),仍使用的springMVC,数据库使用mysql,sharding的方式是每次做运算来确定的,持久层框架采用的ibatis,缓存使用的memcached,目前的整个集群大约二三十台。

构建工具仍采用maven没有使用sbt,单元测试用的scala-test框架。最早期19楼是是php,后迁移到java,在09年时就开始尝试scala,他们算是在技术上很敢于尝鲜的,那时scala的版本还是2.7,后来升级到2.8因为不兼容,折腾了一番,当前使用的scala2.9.3,jvm版本是1.6

在soa方面,19楼也对部分业务做了切分,比如user模块,但在调用上,大多在前端js就调用了不同的服务,后端服务之间的相互调用不是很多,rpc基于http/json,我们还问了一些其它关注的问题,重要的一个问题是当初怎么决定采用scala的,这是由他们的技术总监决策的。在人才招聘和培养方面,招进来的时候只要求懂java就可以,后续个学习和培养的过程,这中间也有一些程序员不习惯scala而走掉的,但是留下的都是对新技术有学习热情的;并且他们目前的开发团队规模和流动情况都比较小,能够保持一个比较稳定且好学的团队,这也是他们可以选择新技术的一个优势。

后续,文波 介绍了一下阿里巴巴的一个sns产品来往使用scala的情况。与19楼相似的一点是,也是用scala实现业务层(service)逻辑的,框架上也没有改动现已稳定成熟的 webx3+spring+ibatis,只是把service和dao的实现用scala来做,然后通过spring与现有框架无缝集成。构建工具也使用maven,单元测试有junit和scala-test。

最后聚石 分享了一下HouseMD这个诊断工具的使用和开发。这个工具是他用scala实现的,类似btrace的功能,但在交互上只需要attach一次,然后在prompt下用一些命令来操作。推荐大家在诊断问题时使用这个工具,有问题在github上反馈他会比较及时。

以后的活动和交流,仍会先在CSUG上通过发起issue来确定,CSUG并不只是阿里内部的一个组织,也不局限在杭州,欢迎更多scala爱好者们加入。

与19楼的交流》上有1个想法

  1. Pingback引用通告: 回顾2013 | 在路上

发表评论

电子邮件地址不会被公开。 必填项已用*标注