京城四月,春暖花开, Qcon 北京 2011 大会如期举行,历时三天(4 月 8 日 -4 月 10 日),时间虽短,但是日程安排丰富,大会邀请国内外知名技术专家为开发社区奉献了 9 场主题演讲和 12 个专题会议,共计 57 场讲座,参会者人数超过 1200 人,创下历史新高。正如 InfoQ 中文站创始人霍太稳在致辞中所说,创造可信赖的内容是 InfoQ 的核心价值观之一,QCon 大会也以此为目标。
闲话少说,为了让读者更好地了解本次 Qcon 北京 2011 大会,我们在这里根据专题分类快速回顾一下大会的精彩讲座,希望能够对未参会的朋友有所启发,参会的朋友也可以温故知新。
主题演讲
- 支撑Facebook 消息处理的HBase 存储系统:Facebook 存储工程师、Hbase 开发者之一 Nicolas Spiegelberg 分享了 Facebook 在消息处理方面对 NoSQL 技术的应用;
- Java EE 7 平台:走进云计算:Oracle 技术布道者 Lee Chuk Munn 介绍了未来的 Java EE 7 平台对云计算的支持特性;
- 在实践中实现企业的敏捷性:国际资深敏捷专家、Gordon Pask 大奖获得者 David Hussman 深入剖析了在企业中如何真正实现敏捷,记住他的 Dude 定律:价值 = 原因 / 做法;
- 2011 年的企业级 Java 和超越:从 JavaEE 6 到云计算:Spring 开发者之一 Juergen Hoeller 通过讲座分享了 Java EE 6 中间件的分化趋势,探讨了与企业应用开发的相关性;
- 百度离线集群整合之道: 百度高级工程师吴波分享了在异构集群之间整合处理器和内存的原因、遇到的困难以及系统未来的发展和使用方向;
- 基于云计算架构构建 Netflix :性能技术专家 Adrian Cockcroft 介绍了互联网视频提供商 Netflix 在云计算中的性能设计和优化;
- 领域驱动设计:解决复杂问题的高效模式:《领域驱动设计——软件核心复杂性应对之道》作者 Eric Evans 介绍了如何通过领域驱动设计高效地解决复杂问题;
- Ceylon 项目——下一代 Java 语言?:Hibernate 创始人 Gavin King 向观众提前展示了即将发布的 JVM 语言 ceylon 的魅力;
- Twitter 中的性能优化原则:Twitter 服务团队的总工程师和架构师 Evan Weaver 讲述了 Twitter 中遇到的性能问题和应对策略;
专题会议
互联网热潮仍不减,知名网站来支招。百姓网技术总监潘晓良从机房选型、速度监控、瓶颈发现、数据分析到优化手段等各个方面讲述了百姓网的优化过程;新浪微博首席架构杨卫华介绍了新浪微博平台的最新技术改进和构建高性能微博系统的必要条件;天涯论坛产品总监王建科分享了天涯论坛十年来的技术进化、为创业团队提供了一线经验;淘宝数据库专家余锋讲述了淘宝商品库从各个层面优化的实际经验。
敏捷逐渐深入人心,企业转型是否路漫漫?上海贝尔研发能力总监田立新通过五个产品部不同的转型故事分享经验和教训;国际资深敏捷专家、Gordon Pask 大奖获得者 David Hussman 介绍了在企业中实现敏捷采用哪些指导工具,如何产生价值;广联达研发副总裁卢旭东总结了公司两年来在敏捷转型中的收获和经验;腾讯高级经理肖德慧讲述了在产品形态差异大、员工众多的情况下如何实施敏捷。
NoSQL 时代,No,SQL!腾讯资深技术专家胡戊以QQ 邮箱为实际案例分享了对NoSQL、MYSQL、及自身开发的SDB 存储系统的对比分析; 视觉中国技术总监潘凡详细讲述了人气最旺的NoSQL 数据库之一MongoDB 的应用开发实践经验。Facebook 存储工程师、Hbase 开发者之一 Nicolas Spiegelberg 分享了深入浅出地分析了 NoSQL 技术;BeansDB 作者、豆瓣架构师刘洪清介绍了BeansDB 的实现原理和关键技术。
技术沉浮录,热点抢先看。淘宝架构师廖凯以亲身经历讲述了服务器端JavaScript 运行环境Node JS 在淘宝的实践应用和前景;支付宝架构师周爱民从语言特性的角度高屋建瓴地分析了JavaScript 的发展史以及对开发社区的影响;ThoughtWorks 中国区首席技术专家徐昊则从软件架构的角度评说了从远程过程调用(RPC)到SOA 再到REST 的是是非非;Hibernate 创始人 Gavin King 介绍了 ceylon 语言的类型系统。
即使没有银弹,我们还要努力!兴业银行IT 工程师周伟然从银行稳定性的角度介绍了负载均衡、高可用性等经验;Spring 开发者之一 Juergen Hoeller 分享了 Spring 3.1 的现代组件设计;艺龙首席架构师贾志峰讲述了电商类网站的架构设计原则与实际应用;用友集团瑞友科技研究院副院长池建强讨论了企业级软件的组件化和动态化开发实践。
古老的话题,新鲜的经验。淘宝性能测试负责人吴毓雄详细介绍了淘宝线上线下的性能跟踪体系和容量规划;腾讯互联网测试部助理总经理吴凯华就如何搭建企业自身的自动化测试平台做了论述;IJI China 董事总经理吴穹针对某大型保险公司的开发测试团队组织方式以及系统的架构特点,给出了一套分层测试、融合开发测试团队的具体解决方案;国际资深测试技术专家 Erik Petersen 介绍如何通过整理、调查、预测这三个探索式测试的主要步骤,分析应用程序,发现漏洞并做妥善处理。
当小 web 成长为大 WEB,性能问题随之而来。新浪首席 DBA 杨海朝分享了MySQL 性能优化的实践经验;系统分析师蒋江伟讲述了淘宝前台系统的优化过程和技巧;性能技术专家Adrian Cockcroft 侧重介绍了Netflix 开发过程中的迁移策略、监控和运维等实践经验;资深网游专家谢廷宝从其多年的网游服务器优化工作中分享了自己的经验。
移动开发,你搭上这班车了吗?财帮子创始人陆亦斌重点讲述了开发高质量iOS 应用的技巧;台湾软件架构设计大师高焕堂分享 扩展Android 框架功能和底层模块的技术要点;睿德英志CTO李亮详细介绍了 iOS4 的新特性以及对开发的影响;知名IT 技术专家韩超分析了Android 对Linux 内核的改造及影响。
可伸缩性,架构设计的重要一环。Google 资深工程师方坤分享了Google 的互联网超级云计算平台;米聊技术负责人陈臻探讨了分步式系统架构的取舍和难点;《领域驱动设计——软件核心复杂性应对之道》作者 Eric Evans 介绍了如何通过领域驱动设计处理遗留系统;阿里巴巴架构师蒋韬分享了跨国交易平台的风控和反欺诈技术。
站在高处太久了,不妨低头看看脚下的路。淘宝技术专家李宇讲述一个互联网团队从几个人到几百人的过程改进之路;百度项目经理路宁向大家展现了 百度持续集成中的工具战争;ThoughtWorks 项目经理胡凯讲述了建设全功能团队的是是非非;中兴通讯上海网管开发部部长苏春山探讨了敏捷中用户合作、为用户创造价值的课题。
HTML 5 来了,你准备好了吗?HTML 5 中文小组主席谢子斌从W3C 成员的角度介绍了HTML 5 的过去、现在和未来;淘宝前端工程师李晶分享了淘宝实际应用HTML 5 技术的宝贵经验;MagnetJoy Games 的CTO杜欢从网游的角度分析了HTML 5 的优势;来自盛大创新院的贺师俊讲述了HTML 5 的兼容性问题以及对策。
永不宕机,看似遥不可及。百度高级工程师肖伟揭秘了百度应用开发引擎(Baidu App Engine) 的高可靠性;阿里巴巴架构师张旭升分享了阿里巴巴全球网络基础平台等方面的架构设计以及高效网络运维方面的经验;蓝汛CBU 研发总监许伦详细剖析了大型视频网站单点分析与可用性提升问题;美地森科技技术总监王劲凯介绍了基于服务器、集群存储和虚拟机的云服务器实现。
正如读者所看到的,本次QCon 大会的主题范围广泛,涉及软件开发领域的各个方面,目的是希望能够满足参会者的不同需求。大会得到了参会者的热情支持——在许多分会场,由于满座,许多人不顾疲劳站着听完了专家的讲座;在主题演讲时,由于提问太多,主持人不得不中止互动环节,请观众与讲师线下交流;在茶歇时间,观众们围住讲师自由讨论,犹如开技术Party…这一切都是观众对QCon 大会内容的肯定和褒奖。
除了正常的专题讲座之外,QCon 利用晚上的时间还组织了讲师见面会、Open Space 等,促进参会者与讲师、参会者之间、讲师之间的沟通。以讲师见面会为例,大家可以与感兴趣的讲师进行零距离的交流,讨论的内容没有限制,可能是对讲座内容的疑问,也可能是观众实际问题的求助等等,现场气氛十分热烈,甚至有几位志同道合者聊到半夜…
像以前一样,本次QCon 大会设置了课程评议制度,参会者可以对每场讲座评分,InfoQ 中文站会认真对待大家的反馈并以此改进未来的专题和讲师安排。
与往年不同的是,QCon 北京2011 大会设置了观众微博互动项目,大家通过发送的Qcon 微博会实时显示在会场外的电子显示屏上,风趣的点评吸引了大批驻足者。截止大会结束,与 QCon 有关的微博数量超过 4000 条。
热心的参会者通过各种形式对 QCon 大会的内容进行了讨论和记录,其中不乏亮点。
途我睿的博客对 Netflix 的云计算性能优化做了精彩的回顾:
Netflix 作为一家美国最成功也是最炙手可热的在线视频公司,在过去的几年经历了巨大的转型。Netflix 一开始构建自己的 data center,后来发现用户增长太快,data center 的增长赶不上用户的增长速度,于是采用了 Amazon 的 AWS,从此一发不可收拾,目前主要服务都跑在 AWS 上,未来会将所有内容和服务都迁移到 AWS。Cloud 对部署的一个好处是不再存在“升级”。Netflix 这样做升级:
- 新的代码被集成到 AMI 中,然后创建一堆新的实例。
- 老的实例继续提供服务,少数流量被导入到新的实例上观察效果。
- 如果一切正常,流量全部切换到新的实例上。
- 稳定一段时间后,老的实例被彻底终止。
侯伯薇的博文则概括了 Qcon 大会有关敏捷专题的一些专家观点:
- 敏捷要快速地响应变化
- 敏捷的过程中要不停地反思和改进
- 想要真正改善现状和解决问题,就不能仅仅关注于开发。
- 对于实施敏捷的团队,领导具备敏捷的意识很重要
- 只要目的一致,就不会存在不可调和的冲突和矛盾
- 敏捷会节约成本,包括沟通的成本、反复的成本等等
Another Java Geek 的博客对 Twitter 的优化原则做了总结:
做得越少越好。
当然这不是教人偷懒,而是非常明智的折中原则。这不仅适用于性能优化,也适用于产品演进。在面临众多候选的产品特性时,拒绝大而全的诱惑,将精力聚焦于那些关键的功能特性上,做到少而精。Twitter 自始至终坚持 140 字的短消息,没有扩展到 1000 字、10000 字用于写长篇博客,用户关系是简单的 follow 和被 follow 的关系,没有扩展成 SNS 那种复杂的关系。Twitter 的成功也说明了这条原则的正确性。关注内存的使用。
由于 Twitter 所有计算的开销都不大,而包括对象分配、Cache 等都要占据内存,因此内存成了关键资源,Twitter 的很多努力都花在内存的使用上。Twitter 的技术方案是基于 Ruby on Rails,关于 Ruby 的 GC,Evan 讲了很多,Twitter 内部自己实现了一个 Ruby 的垃圾收集器 (Garbage Collector),名叫 kiji 好像。其垃圾收集算法跟 Java 的类似,不过似乎比 Java 的简单,堆内存分为 Longlife Heap 和 Eden Heap,Longlife Heap 相当于 Java 的 Old Generation 或 Permanent Generation,Eden Heap 相当于 Java 的 Young Generation 中的 Eden Space。让代码去做假定。
关于这一点,我的理解是让代码在访问数据之前对各种可能的情况先做假设,而不是等到所有数据收集齐备再做决定,这样能够更快得做出响应,进而提高吞吐量。以明确地、批量方式访问数据。
来自 5173 网站的余波在他的博客【主题点评】一边扯淡,一边 QCon 中对这次的 QCon 大会做了深入的总结,里面特别提到他对来自广联达的讲师卢旭东演讲的赞赏:
这是我最喜欢的一个主题,没有之一。广联达在敏捷转型过程中,非常务实,非常灵活,在困境中背水一战,最终完成了敏捷转型。而且这种转型,是整个公司文化的转型,不光研发过程敏捷起来,整个公司的各项事务都敏捷起来了。以卢总为代表的广联达吃透了敏捷的本质,高屋建瓴,在核心原则的指导下大刀阔斧的进行适应性调整。更让人惊叹的是,他们还建立了很多非常具体的观察点,来验证敏捷实践的效果,方向越做越明确,信心越做越大。更加难能可贵的是,敏捷转型过程中,几乎没有人员流失,就是原来的这群人,摸索出来一条可以轻松点干活的路。
除此之外,还有 Scourgen 的 QCon 演讲点评、秋花寂海的 QCon 第一天、李三火的 QCon 见闻、杨灿的 QCon 大会日志等等,大家从各个方面对 Qcon 大会做了跟踪和回顾。
对 QCon 感兴趣的朋友和参会者,可以通过 QCon 大会网站下载讲师的幻灯片资料,InfoQ 稍后会制作演讲、采访视频放到中文站上。
感谢所有关心或者参与 QCon 大会的读者朋友!
最后预告一下,今年 10 月下旬 QCon 杭州 2011 大会将在美丽的西子湖畔举行,人间天堂,技术盛宴,让我们不见不散!
给 InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家加入到 InfoQ 中文站用户讨论组中与我们的编辑和其他读者朋友交流。
评论