`
agileai
  • 浏览: 60287 次
  • 性别: Icon_minigender_1
  • 来自: 沈阳
社区版块
存档分类
最新评论

淘宝技术专家谈大型网站架构

阅读更多

导读:本文作者是淘宝技术部技术专家陈康贤(花名龙隆),他是《大型分布式网站架构设计与实践》一书的作者,在本文中他分享了他对大型网站架构的理解,优优分享之,希望对你有帮助。

 

大型网站架构从来都不是一个预先定义的架构,而是一个演进式的架构。很少有一个网站从建站开始,就能够因具备大型网站的所有属性而一成不变的,从最简单的LAMP架构,再到基于IOE的大型集中式应用架构,再演变成时下的分布式应用架构,随着网站用户规模的扩大,架构也在不断演进。

 

从实体机到虚拟机再到当前流行的Docker技术,从单机房到同城多机房再到异地多活,从LAMP到J2EE再到各种分布式中间件如服务框架、分布式消息队列、配置管理中间件、分布式数据访问层,由简至繁的艰难蜕变,也正是一个网站从小变大由弱变强的成长历程,哪里有挑战,哪里才会有变革,这正是作为技术人建功立业的时刻。

 

规模不断扩大,但成本不可能随之线性增长,因此,如何利用规模效应降低资源成本,抽取公共部分,避免重复造轮子,提高开发效率和响应速度,成了必须思考的问题。技术存在的核心价值就是为了生产力的提高,当技术架构制约了生产力发展,就需要进行技术变革。当前支撑大型网站的几大核心技术,分布式、服务化、虚拟化,其中分布式解决的是规模化带来的问题,所谓的规模化即包括数据规模越来越大,访问量越来越高,也包括开发团队规模越来越大,工程代码规模越来越大。

 

单机的存储能力以及负载能力必然有限,从PC到小型机再到中型机、大型机,成本将成指数级升高,而成百上千人开发同一个工程,则导致系统臃肿,开发、发布效率极低,互联网将丧失了赖以生存的灵活性,回到以前传统软件的开发模式。通过应用垂直拆分,集群分布式水平扩展,不仅使系统容量得到提升,存储和负载将分配到大规模的廉价集群上,以降低成本,开发效率和开发模式也得到改变。通过公共业务抽取,将诞生一批处于系统底层的基础服务,避免相同的内容重复造轮子,提高开发效率。作为大型网站架构中最重要的中间件,服务化框架简化了服务调用所涉及的对象序列化与反序列化,通信协议,服务路由等操作,以及到后来诞生的一个新名词—服务治理,去梳理服务的依赖关系、调用链路、强弱依赖等等更复杂的问题。除此之外,在架构师的武器库中,还有众多不同应用场景下使用的中间件,如消息中间件、 分布式数据访问层、配置管理中心、数据迁移工具、分布式文件系统等等,这些都是日常系统架构中的粘合剂。

 

大型网站的另外一个核心技术就是资源的虚拟化,从实体机到Xen、KVM再到基于LXC的轻量级虚拟化方案,再到Docker,技术的更新换代使得资源的利用率越来越高,集群的运维、部署和管理越来越方便。另外不同的场景下如何选择存储也十分重要,高并发和大数据往往都不会单独出现,到底是采用磁盘、SSD还是采用内存,到底是采用分布式文件系统,关系数据库,还是NOSQL,还是采用内存分布式缓存,不同的场景下方案会大相径庭,分布式文件系统存储容量几乎可以理解为无限,但是吞吐低,关系型数据库有严谨的schema以及功能强大的SQL语句,可以满足各种复杂的查询条件,但无奈扩展太麻烦,为了应对高并发读写访问,master-slave、读写分离、分库分表一折腾,不仅工作量大增,且查询维度受限,还需要引入垂直化搜索引擎来扩展查询维度,NOSQL虽然能自动分区扩容,但无奈不支持SQL,而缓存虽快,内存条又太贵,架构就是要不断的权衡取舍。

 

大公司之所以不如小公司响应速度快,原因在于大公司有太多积累,有时候积累多了也会成为包袱,现有的模型会使得新业务难以快速融入。当遇到问题和挫折的时候,就是思考改进和系统变革的时候,从来没有哪个系统在设计好之后就封存代码永不改变的,技术永远是不断发展,需求和市场也是不断变化的,因此不要指望用一种架构满足所有的需求,系统设计需要满足一段时间内的可扩展性,但千万不要过度设计,因为过了半年之后你回过头来重新review,你会发现需求早已改变,这就是互联网的快节奏。

 

对于系统的架构来说,一段时间之内架构的演变,常常会经历从清晰,再到模糊混乱,再重构,再清晰,然后又变得模糊的过程,市场环境总是瞬息万变的,因此,系统的设计要遵循对扩展开放,对修改封闭的原则,做到这点即可方便及时的接入新流程,又能够不影响既有的流程。从宏观来看,各个系统间的关系一定不是烟囱与烟囱的关系,而是犹如城市里的高楼大厦,通过公路连接起来,因此,要提高建房子的速度,就要充分利用已有的基础设施,已有的中间件,来降低系统构建的成本和风险。

 

架构设计的几个层次,没有架构也是架构,专注于解决现有问题也能称为架构,而好的架构应该是即能够约束开发者又能够解放开发者使其专注于功能的设计。尽量将复杂的事情变的简单,而不要将简单的事情变的复杂,技术从来都不是用来炫的,而是用来解决实际问题的,因此我们不需要花拳绣腿,洛克希德·马丁公司的著名飞机设计师凯利·约翰逊所提出的KISS原则,就是最好的诠释。风险驱动的架构理念告诉我们,避免失败是所有工程技术的核心,架构也是技术,运用架构技术去缓解风险,避免走极端,是架构师的最根本职责。

作者介绍:陈康贤(花名龙隆, 博客),淘宝技术部技术专家,著有《大型分布式网站架构设计与实践》一书,在分布式系统架构设计、高并发系统设计、系统稳定性保障等领域积累了较为丰富的实践经验,对新技术有浓厚的兴趣 。

 

来源:CSDN

原文:http://www.csdn.net/article/2015-12-17/2826505

转载文章,向原作者致敬!如有侵权或不周之处,敬请劳烦联系数通畅联(QQ:299719834)马上删除,谢谢!

分享到:
评论

相关推荐

    大型分布式网站架构设计与实践

    《大型分布式网站架构设计与实践》是一本深入探讨如何构建高效、可扩展的分布式系统的重要参考资料,由淘宝技术团队的专家编写。这本书以其高清完整版的形式,提供了丰富的知识内容和清晰的目录结构,便于读者查阅和...

    大型互联网架构设计实例分析.docx

    他曾在诸多知名企业如方正国际、NEC、淘宝网、新浪网等担任架构设计工作,并在浙江大学教授面向对象高级课程,具备深厚的企业应用系统和大型网站架构知识。 课程首先讨论了互联网软件系统与传统企业应用的不同之处...

    淘宝技术这十年

    为了应对这种超常负荷,淘宝技术人员需要对网站进行实时监控和调优,确保系统稳定运行。 淘宝的技术发展历程,离不开背后技术团队的辛勤付出。文章中提及了多位技术专家和工程师,他们有的专注于数据库、有的致力于...

    淘宝技术嘉年华峰会上的7月10日全部PPT下载全套

    在压缩包中,你可以找到各个主题演讲、技术分享以及专题讨论的详细内容,这些都是淘宝技术团队和行业专家们的宝贵知识结晶。 淘宝技术嘉年华是阿里巴巴集团旗下的淘宝网主办的一项年度盛会,聚集了众多IT行业的精英...

    淘宝技术这十年,完整最终确认版

    首先,文档描述了淘宝技术发展的历程,从早期的个人网站阶段开始,到如今的大型电商平台。淘宝的技术发展主要可以分为几个阶段: 1. Java时代:在这一时期,Java成为了淘宝技术的核心,为网站提供了一个稳定的后端...

    专访阿里陈康贤:我所理解的网站架构

    陈康贤(花名龙隆,博客),淘宝技术部技术专家,著有《大型分布式网站架构设计与实践》一书,在分布式系统架构设计、高并发系统设计、系统稳定性保障等领域积累了较为丰富的实践经验,对新技术有浓厚的兴趣,目前...

    淘宝技术部技术专家陈康贤(龙隆) - 网游直充如何应对大促及突发的流量高峰_myslide.cn_.pdf

    ### 淘宝技术部技术专家陈康贤(龙隆) - 网游直充如何应对大促及突发的流量高峰 #### 大促背景和技术挑战 在电商领域,“大促”通常指的是大型促销活动期间,如双11、618等,这些活动往往伴随着巨大的用户流量涌入...

    阿里专家级并发编程架构师教程.txt打包整理.zip

    本教程可能是由阿里集团的专家级并发编程架构师提供的,旨在帮助开发者掌握高级并发编程技术。 【阿里巴巴】 阿里巴巴是中国乃至全球领先的电子商务和互联网科技公司,拥有包括淘宝、天猫、阿里云等在内的多个知名...

    淘宝技术嘉年华.part2.rar

    【淘宝技术嘉年华】是淘宝公司举办的一场技术盛会,旨在分享和探讨最新的互联网技术和实践案例。这个名为"淘宝技术嘉年华.part2.rar"的压缩包文件可能是活动的第二部分资料,包含了一系列的技术报告、演讲稿和幻灯片...

    2011PHP技术峰会嘉宾演讲

    在2011年的PHP技术峰会上,众多技术专家和行业领导者聚集一堂,共同探讨了PHP技术在构建大型网站架构中的应用与实践。此次峰会的主题聚焦于如何利用PHP技术来设计、建设和优化如新浪(SINA)、淘宝(TAobao)这样的大型...

    数据结构与算法大全

    从最初的个人网站建设,到Java时代的兴起,再到分布式系统的广泛应用,淘宝技术经历了快速迭代的过程。 - **引言:光棍节的狂欢**:介绍了“双11购物狂欢节”的起源和发展,强调了这一活动对淘宝技术团队的巨大...

    架构师成长笔记 低成本和高性能MySQL云架构探索 共28页.pptx

    首先,演讲者余锋是淘宝核心系统的资深技术专家,他拥有丰富的互联网行业经验,尤其在高性能分布式服务器、大规模集群服务器以及数据库系统和分布式文件存储方面有深厚的研究。他指出当前MySQL运维面临的主要问题...

    2013年中国数据库大会-29-InnoDB架构分析以及TNT引擎的优势分析

    在2013年举办的中国数据库大会中,数据库技术的专家们围绕MySQL的InnoDB架构进行了深入的分析,并探讨了网易杭研院研发的TNT存储引擎与InnoDB相比的优势。以下是根据提供的文件内容,对这些知识点的详细阐述。 ...

    2012年中国系统架构师大会PPT-_1 低成本和高性能MySQL云架构探索.pdf

    在2012年中国系统架构师大会上,淘宝核心系统资深技术专家余锋分享了一份关于“低成本和高性能MySQL云架构探索”的报告。该报告主要探讨了如何在云计算环境下构建一个既能够降低成本又能提升性能的MySQL云架构方案。...

    《架构师》电子月刊2010年10月刊PDF电子书

    淘宝开源的KEY/VALUE结构数据存储系统TAIR,展示了大型电商平台在海量数据处理方面的技术创新,为其他企业提供了学习和借鉴的案例。 ### HTML5与JavaScript框架 虚拟研讨会讨论了HTML5的最新JavaScript框架,反映...

    健康养生管理系统.ppt

    这种架构具有跨平台、高性能、安全性和易用性,已被众多大型网站如阿里巴巴、淘宝等采用。 2. HTML5+AJAX:HTML5提供了更好的浏览和互动体验,特别是在移动端,无需额外插件即可实现视频播放等功能。AJAX技术则实现...

    2017阿里技术年度精选(上)

    该精选集涵盖了算法、机器学习、大数据、数据库、中间件、运维、安全、移动开发等多个热门技术领域,并收录了十多位阿里巴巴技术专家的访谈记录。 #### 技术篇 1. **深度解读|阿里云新一代关系型数据库PolarDB** ...

    王峰:阿里搜索实时流计算技术

    王峰作为阿里巴巴集团的高级技术专家,在2013中国大数据技术大会上介绍了阿里搜索事业部在实时流计算技术方面的实践,其中重点讲解了一淘全网商品搜索系统架构以及iStream计算模型的构建和应用。iStream计算模型是由...

Global site tag (gtag.js) - Google Analytics