转载
http://timyang.net/category/architecture/page/2/
在使用Twitter几年的时间里面,经常思考微博如何更好的实现,恰好最近几个月也参与了相关工作,大部分都是工程实践,总结实践会促生更具实际价值的理论。因此在QCon Beijing 2010这次演讲参考了不少网友的意见后选择了《构建可扩展微博架构》的题目。
由于在决定选题时知道来自Twitter总部有30万followers的@nk也会讲一个类似的题目,心中当时有点忐忑,最大的顾虑就是要讲的领域更他重叠,如果他讲得更深入,我就没必要班门弄斧了。后来考虑到以下几个原因还是决定继续
•Twitter架构是单IDC设计,从它递增的tweet id就可以看出,后来当面向@nk提问也得到了证实。
•中美网络环境差异,单IDC和多IDC有很多设计上的不同
•大部分参会人员未必能对英文演讲有深入理解及感悟,中文的演讲可以讲一些细节解释更透彻。
•Twitter对故障的容忍度大,国内公司对服务故障通常更敏感。因此国内架构师会考虑设计方案尽量简单可靠,服务需要更稳定。国外开发团队更倾向追求在工作中应用技术创新,因此会导致架构设计理念的不少差异。
演讲的slide如下,登录slideshare之后可以下载。
Build scalable microblog qcon beijing 2010
View more presentations from Tim Y.这里再补充在qcon演讲未来得及考虑成熟的一个方面,用户规模影响设计,具体是指用户数每上一个数量级,许多设计需要重新考虑。
10万用户级别
•单服务器,前端、后端、cache、db在一起。
百万级
•db和cache单独部署服务器,db或按业务进行拆分(sharding)
•cache或使用一致性hash扩展。
•前端后端还是在一起,但是根据业务拆分,每个业务可分配不同数量的服务器
千万级
•开始重视架构设计,有专门技术架构师
•需跨机房部署,前端在远程增加反向代理加速,数据库在异地机房使用slave数据库副本
•后端拆分出来,系统内部需要远程调用,内部需远程调用协议。
亿级
•架构更细分,或增加数据架构师,cache架构师,分布式架构师
•数据库sharding碰到烦恼,开始考虑分布式数据服务
•数据访问需要根据业务特点细分。
•开发、运维、测量、调优具备有自己的专有工具。
•所有服务需要地理多机房分布,具备IDC容灾设计。
•服务可降级
上面的数字仅供理解“用户规模影响设计”,数字本身并无具体指导价值。
另外在slide中也提到了,目前新浪微博团队急需人才,对上面相关技术领域感兴趣的架构师及各层次开发人员(熟悉PHP,Java, C或数据架构任意一种)可随时跟我联系,工作地点为北京,联系方式见博客首页。
分享到:
相关推荐
本次演讲由eBay杰出架构师Randy Shoup分享,主要聚焦于eBay作为一个全球领先的电子商务平台,在其发展历程中所面临的可扩展性和可用性挑战,并介绍了一系列的最佳实践方案。eBay的成功不仅在于它的商业模式,更在于...
通过这种方法论,可以确保架构设计不仅满足业务需求,还能保证系统的可扩展性、可维护性和可靠性。 #### BABSC方法详解 - **Business Understanding**:首先,需要深入了解业务的具体需求和目标。这一步骤是整个...
标准化可以帮助减少重复劳动,而互换性则确保了系统的灵活性和可扩展性。 - **实践**:实施通用的标准和规范,比如采用开放API标准、遵循特定的编程规范等,这些都是提高架构质量的有效方式。 #### 观点六:以秩序...
2. **存储(Storage)**:持久、可扩展且可用的存储服务,提供了必要的抽象层。 3. **管理(Management)**:自动化服务生命周期管理,确保应用程序能够高效运行。 #### Windows Azure架构详解 - **计算服务...
IBM的企业应用平台包括交互服务、信息服务、合作伙伴服务、业务应用服务、访问服务、开发服务和管理服务,它们共同构建了一个综合环境,促进人、流程和信息之间的协作,统一...,构建健壮、可扩展且安全的服务环境...
此外,他还通过一系列示例阐述了基于云的柔性运营型商务智能(Opertional BI)的具体实现过程,展示了从订单创建到制造商之间的数据交换过程,以及如何利用XML文档来增强数据的可扩展性和灵活性。 #### 总结 总体来...
- **架构**:采用拖拽式的设计方式构建应用程序。 - **特点**:支持应用程序的直接部署、监控与管理等功能。 - **演示**:通过实例展示了VDC的操作流程。 #### 关键点总结 - **弹性计算**:提供了完整的基于开源...
随着IT技术的不断发展,数据中心面临着越来越高的需求,包括提高运行效率、容灾能力、安全性以及资源的可扩展性等。虚拟化技术作为一种重要的工具,在实现这些目标方面发挥了关键作用。在本次演讲中,演讲嘉宾李严冰...
1. 田毅的《Spark介绍与应用案例分析》:Spark作为快速、通用且可扩展的大数据处理框架,其易用性和高效性在大数据领域备受瞩目。田毅的演讲可能详细介绍了Spark的基本原理、核心组件(如RDD、Spark SQL、Spark ...
最后,`taobao_arch_qcon_2009.pdf`可能是关于淘宝网在2009年QCon上的架构分享,可能涉及大规模电子商务平台的架构设计、负载均衡、高可用性和可扩展性等方面的技术实践。 综上所述,这些文件集合为我们提供了一个...