O'Reilly Velocity China 2010 ── Web 性能和运维大会 圆满结束
O'Reilly 一直致力于帮助大家构建更出色的互联网。由 O'Reilly 和淘宝网合办的 O'Reilly Velocity China 2010 即是出于这样目标的会议,今年的主题是“与生俱来地快”。
官网提供讲话幻灯片的PDF版本,请大家关注会议视频和幻灯片资料
其中包括
在这个报告中,我将介绍在Facebook网站前端性能优化中采用的最主要的一些技术。这些技术不光降低了服务器的开销,而且同时极大地提高了Facebook网站的用户体验性能。
- 我将首先介绍Quickling技术。通过Quickling,Facebook将所有的用户点击访问自动地转变成AJAX调用,避免了大量的服务器端重复计算和客户端的重复渲染。
- 然后我将介绍基于Quickling的PageCache技术,通过JavaScript自动缓存用户访问过的页面,极大的加速Facebook主页的性能并降低服务器开销。
- 最后,我将介绍BigPipe技术,通过采用微处理器内的流水线技术,将Facebook网站用户感知性能加速一倍以上。
使用 JavaScript 成功的关键在于认识到这一语言存在能够支持高质量程序开发的子集,要使用这一子集的最大优势。本次讲话将探讨如何做出权衡,它将会影响网站可维护性和网站性能。
异构环境的智能调度系统──天网调度系统(智能化,自动化,集成化,集调度,运维,监控,分析与一体),大幅提升运维效率和系统运行的效能。
Hadoop 云梯分布式计算平台(自动部署,统一gateway,自动适应任务分发),管理100台和管理10台的运维成本能好的控制,如何提升海量异构job的综合运行性能,提升整个集群的运行效率和资源使用率。
集成元数据,自动化分析系统瓶颈,自动化定位系统关键路径,轻松应对如何运维10w以上的job的自动化定位核心问题点。
- 首先介绍优化中的三个W一个H:为什么要优化数据库?谁来优化?优化什么?怎么优化?
- 在数据库设计中怎么设计出高性能的表结构以及选择合适的存储引擎;
- 如何设计出高效的索引和书写出高性能的查询语句;
- 通过使用合适的硬件以及调节MySQL服务的参数来达到服务的高性能;
- 在跨IDC的多点写入下如何从MySQL的部署架构上来满足数据量和查询量日益暴增的业务需求。
Yslow,PageSpeed,CDN加速,双线机房,BGP, 第三方监控,页面缓存......如果你们有几百人的团队,相信所有东西都会被仔细研究,可如果你的人手和资源有限又真的很想提高网站访问速度,怎么办?在过去三年里,我们仅有十人的技术团队在不断地监控和优化网站访问速度上做了很多的尝试,这里和大家分享下我们的些许心得。
过去的一年我们针对YouTube Watch页面做了很多前端性能改善工作,使用的技术包括逐步增强、基于行为的widget系统、预装载连接。我将讨论在YouTube我们如何使用这些技术以及您如何在自己的网站中使用他们。
网页中常常会引入的广告,流量统计等等第三方JavaScript代码。问题是这些代码不仅会拖慢页面速度而且还会对合作网站的稳定性造成影响。分享淘宝广告系统最近的一些工作成果关于如下这些话题:有哪些无阻塞脚本加载方案可供选择,采用这些方案还能保证广告展现的速度么?在合作方不改变已有埋点时,如何实现Fast By Default,如何为无时间戳的脚本做好版本控制?如何在严格控制代码总大小的前提下有效组织JavaScript代码?网站开发如何降低第三方代码对网站速度和稳定性的影响?
静态网页资源包括Javascript、CSS和图标图片,它们是现代网站不可缺少的部分。而这部分的性能又直接影响了网页的速度。在这个讲座里,我将与大家分享我们在静态网页资源的管理和优化上的经验。Facebook的五亿活跃用户来自五湖四海:不同文化、不同的语言、不同的网络链接质量。巨大的用户差异性给我们的静态网页资源管理提出了很多新的挑战。这个讲座将围绕这些挑战讨论:
- 系统架构:为全公司开发团队的提供简易透明的固态网页资源编程接口;
- 系统扩展性:研发一个可扩展的固态资源管理,以满足不断增长的网站功能、不断增加的用户语言和不断变化的个性化策略
- 自适应性:为固态资源管理研发自适应的优化模块,让系统随功能的增减和用户使用方式的变化自动调节,几乎不需要人力干预。
事件驱动、基于回合的处理模式让我们在浏览器端受益匪浅,现在有扩展到服务器端,同样会带来可观的新效率。
提高一个网站的性能很难,以一个很小的团队让一个大规模网站一直保持高性能更难。在这个讲座里,我将与大家分享Facebook在保持网站高性能这个问题上的经验和教训,并着重在以下三个方面深入讨论:
- 重视架构:如何让团队里的性能优化高手找到最高价值的优化目标
- 数据说话:如何测量最终用户体验,并且把测量数据与全公司开发团队分享
- 分担责任:如何与产品开发团队合作,共同提高网站的性能