继成功举办了百度 Web App 应用开发者大会北京站之后,近日大会移师上海。百度产品架构师田晓萌、百度高级工程师朱建庭以及大众点评网高级系统架构师王宏为大家带来了精彩的主题演讲,随后的 Open Space 环节中,各位演讲人、嘉宾及与会者也做了深入交流,会后大家均表示意犹未尽。
田晓萌在开场演讲中对百度应用开放平台做了一个介绍,自去年 8 月底上线以来,该平台的累计使用次数已达数十亿次,有 30000 提交应用,超过 10000 个审核通过的应用,20000 名以上的开发者投入其中;不少应用上线后使用量的增长惊人,有的使用次数增长高达 5000%。百度开放平台为开发者和用户架起了一座桥梁。关于百度开放平台的更多内容可以访问活动北京站的报道。
随后,参与了百度应用开放平台建设的朱建庭介绍了如何开发一款平台上的应用。与其他的开放平台有所不同,百度应用开放平台上的应用既可以出现在网页搜索结果页面里,也可以出现在应用的独立页面中,因此它的加载方式是先在页面中加载应用画布页,随后在画布页中加载第三方应用页面。此处的加载模式又可分为 BDML 模式、BDiframe 模式与普通 iframe 模式,推荐使用普通 iframe。之后,他又详细说明了应用的参数校验方式、用户登录授权方式、OpenAPI 的调用方式,还有平台对应用稳定性的监控策略等内容。并为提升用户体验提了一些建议,例如,针对页面高度自适应的问题就有如下方案:
- 所有页面都使用一样的固定高度
- 各页面高度不一致,但都是固定高度
- 各页面高度不确定,为自适应 JS 函数传入可能的最小值
- 同一页面的高度可能会因 JS 事件而发生变化,此时可重新设置高度
在《大众点评网的 Web 开发之路》中,王宏介绍了大众点评网是如何从2003 年的2 名技术人员一台虚拟主机,发展到现在102 名技术人员35 台主干服务器,在发展的不同阶段遇到了什么问题,他们又是如何解决的。大众点评网的技术发展路线对中小网站来说非常具有参考价值。
比如,在走过初创期之后的2005 年,大众点评网已经达到了180 万动态请求,这时他们的优化措施主要是动静分离,建立了动态和静态两个站点,压缩CSS、JS 资源,对图片进行优化,使用gzip 缩减带宽开销。尤其是要为静态站点设置一个短域名,这样可以缩短路径长度,更重要的是能减少同域的Cookie 网络传输开销。另外还要合理地设置过期时间,充分利用本地缓存。此时他们使用了第三方CDN,考虑到CDN 对静态资源的更新策略不同,王宏建议通过URL Rewrite 为文件名增加版本号的方式进行静态资源的版本控制,例如在CDN 上以xxx.v22.css 的文件名来表示这个css 文件的22 版本。
2008 年开始,网站的发展进入了一个新的阶段,此时的网站架构又有了新的变化,遇到了新的问题。比如图片文件数量剧增,导致服务器的 IO 居高不下,这时他们引入了分布式文件系统来存储这些图片,建议在初期就要对文件存储目录做合理的规划,避免大量文件都存储在一个目录中。针对缓存的使用,要控制缓存对象的粒度,注意对象序列化带来的 CPU 及网络开销,可以通过缓存自身的失效机制来实现大批量缓存数据的清除。大量的原子更新会造成数据热点,要对数据表做适当拆分,对于原子更新可以考虑使用目前流行的 NoSQL 产品,比如 Redis 或 MongoDB 。
演讲最后,王宏总结了几点经验:
- 尽早动静分离
- 突发性的诡异问题,往往都是由于低级错误造成的
- memcached 好用,但要用好却不容易
- 谨慎使用 SQL Join
- 使用成熟的第三方平台,把你不擅长的事交给擅长的人去做
- 建立有效的监控系统
在活动最后的 Open Space 环节中,来自篱笆网、五分钟、盛大等公司的嘉宾与大家做了精彩互动。百度 Web App 应用开发者大会下一站将移师深圳,后续各站的详细议程请关注大会专题页面,我们期待您的参与。
评论