资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,系统架构概述,Yes,We KAO,更强,更高,更持久,系统架构概述Yes,We KAO,1,了解什么是架构,了解,Alibaba,网站架构的历史,掌握,Alibaba,网站架构的现状,掌握网站架构设计的理念,课程目标和内容,了解什么是架构课程目标和内容,2,架构规定了软件的高层划分及各部分间的交互,架构,不是,软件,但架构决策体现于软件平台和框架之中,架构的优劣决定了业务应用系统的实施能力和发展空间,技术搭台,业务唱戏,架构搭台,应用唱戏,架构永远在随着业务的发展而变迁,拥抱变化!,什么是架构?,架构变迁,架构升级,更多用户,更多数据,更多功能,硬件成本,人力成本,质量成本,提高收益,节约成本,业务发展,架构规定了软件的高层划分及各部分间的交互什么是架构?架构变迁,3,B2B,架构演化过程,1999,史前,2001,石器时代,2002,中世纪,2005,工业革命,未来,星际时代?,Perl,WebMacro,pojo,jdbc,Velocity,Ejb,WebX,Spring,SOA,OPEN API,云计算,B2B架构演化过程1999200120022005未来Per,4,Perl,,,CGI,Mysql,Apache,服务器在美国,,56KModem,,远程开发、测试、部署,1999-,史前时代,Perl,CGI1999-史前时代,5,Java,服务器使用线程性能比,cgi,技术使用进程好,Java,相比,Perl,,可维护性好,开发效率高,Java,开始在国内流行,史前,-,石器时代原因,Java服务器使用线程性能比cgi技术使用进程好史前-石器时,6,开始使用,Java,模板技术采用,WebMacro,中间层采用,Servlet,技术,使用,POJO,封装业务逻辑和数据访问,使用,BizObj,对象封装基本业务逻辑和数据访问方法,其它业务对象继承,BizObj,方法,实现自己的业务逻辑和数据访问方法,使用,JDBC,访问数据库,Servlet,容器使用,resin,,,Web,服务器使用,Apache,开始使用Java,7,2001,底,-,石器时代,(,续,),基于,POJO,的,biz,层,基于,WebMacro,的模板技术,表现层,业务层,BizObj,业务逻辑方法,数据访问方法,OfferObj,业务逻辑方法,数据访问方法,MemberObj,业务逻辑方法,数据访问方法,CompanyObj,业务逻辑方法,数据访问方法,基于,pojo,的,Biz,层,Oracle,数据库,LDAP,数据存储,2001底-石器时代(续)基于POJO的biz层基于WebM,8,表现层仅仅使用模板技术,缺乏,MVC,框架,导致大量的,servlet,配置,业务逻辑层和数据访问层耦合,可维护性和可扩展性差,受到,EJB,风潮的影响,石器时代,-,中世纪原因,表现层仅仅使用模板技术,缺乏MVC框架,导致大量的servl,9,表现层采用,WebX,模板技术,Velocity,在,Turbine,基础上开发了自己的服务框架和一系列公共服务,通过一个,delegate,对象访问业务逻辑层,业务逻辑层使用,EJB,(,SLSB,,,CMP,,,DAO,等),通过一个,faade,对象供表现层,delegate,访问,Faade,对象访问多个,SLSB,实现的,controller,对象实现业务逻辑,使用,CMP,实现单条记录的增加和删除,考虑性能,在,CMP,之外封装,DAO,对象通过,JDBC,访问数据库,EJB,服务器使用,Weblogic,Web,服务器使用,Apache,2002,底,-,中世纪,表现层采用WebX2002底-中世纪,10,2002,底,-,中世纪(续),搜索引擎,Oracle,数据库,LDAP,使用,SLSB,实现的业务逻辑对象,Controlers,基于,Webx,以及,Service,框架的,Web,层框架,CMP,进行单条记录的增加删除,,DAO,对象查找,表现层,商业逻辑层,数据访问层,数据存储,delegate,Faade,2002底-中世纪(续)搜索引擎Oracle数据库LDAP使,11,Turbine,的发展缓慢,EJB,配置复杂,可维护性差,重量级框架,业务侵入高,高度容器依赖,可测试性差,CMP,性能差,导致,DAO,和,CMP,并存,中世纪,-,工业革命原因,Turbine的发展缓慢中世纪-工业革命原因,12,表现层使用,WebX,和,Service,框架,Velocity,模板技术,自有服务框架及多种公共服务:,Form Service,,,Template Service,,,Mail Service,,,Rundata Service,,,Upload Service,等,通过,command,模式和,biz,层交互,无状态,Web,应用,基于,cookie,实现,session,,获取线性扩展性,业务逻辑层使用,Alibaba Service,框架,并且引入,spring,框架,Spring,容器和,Alibaba Service,框架无缝集成,AO,,,BO,使用分布式,cache,缓存对象,数据访问层,透明的事务处理,引入,Hibernate,和,iBatis,,以,iBatis,为主,2005-,工业革命,表现层使用WebX和Service 框架2005-工业革命,13,2005-,工业革命(续),搜索引擎,Oracle,数据库,LDAP,基于,Spring,以及,Service,框架的,biz,层框架,基于,Webx,以及,Service,框架的,Web,层框架,分布式,Cache,分布式,Session,基于,Spring,以及,DAO,设计模式的数据访问框架,表现层,商业逻辑层,数据访问层,数据存储,2005-工业革命(续)搜索引擎Oracle数据库LDAP基,14,数据库成为瓶颈,-,分布式数据库,应用耦合严重,-SOA,Pampas,平台,演化还在继续,数据库成为瓶颈-分布式数据库演化还在继续,15,中文站会员数超过,2000,万,中文站,Offer,已经超过,1.5,亿,中文站每天的用户,PV,已经超过,1.6,亿,中文站每天新发,Offer,超过,100,万,中文站每天重发,Offer,超过,1500,万,国际站略少,但是增长迅猛,网站的现在,中文站会员数超过2000万网站的现在,16,中文站,/,国际站应用部署图,中文站/国际站应用部署图,17,网站镜像部署图,(,国际站,),中供用户,网站运营,海外卖家,网站镜像部署图(国际站)中供用户网站运营海外卖家,18,Load Balance,(F5,Alteon),Apache,Jboss,Database,Search Engine,Apache,Jboss,Apache,Jboss,Apache,Static Resource,Cache,Storage,用户请求处理,Load BalanceApacheJbossDatabas,19,流量随着用户量而增加,业务的变更频繁,用户行为的收集,产品角色的细分及调整,7 X 24,的高可用性,互联网的挑战,流量随着用户量而增加互联网的挑战,20,流量激增,处理用户请求,Request,Process,Response,Request,Process,Response,Request,Process,Response,应对的挑战,并发,(,垂直,),用户数量的增加,使用资源的增加,响应,(,水平,),处理性能的维持,流量激增处理用户请求RequestProcessRespon,21,业务变更,专业化细分之前,offer,list,detail,member,company,personal,transaction,no support,专业化细分之后,offer,Clothing,Retail,Loan,member,Trust Pass,Special Market,transaction,alipay,paypal,业务变更专业化细分之前offerlistdetailmemb,22,数据挖掘,offer repost,new offer,bid,行为数据的采集,追踪埋点,异步收集,采集数据的分析,数据仓库,分析引擎,运营团队决策,风险行为的控制,CTU,系统,安全团队,数据挖掘offer repostnew offerbid 行,23,网站产品的生命周期,产品需求整理,架构团队设计,开发团队实施,质量团队质检,运营团队运作,用户需求分析,团队再细分,用户需求分析,商业策划,市场策划,产品需求分析,产品设计,网站运营,架构团队,架构师,开发团队,程序员,项目经理,用户体验,质量团队,测试,流程控制,运营团队,产品运营,客户服务,角色专业化细分,网站产品的生命周期产品需求整理架构团队设计开发团队实施质量团,24,业务,1,业务,2,业务,3,避免宕,机,集群化,服务化,备份切换,维护时间有限,新产品发布,在线发布,叠加式发布,用户透明过渡,高可用性,业务1业务2业务3避免宕机高可用性,25,架构是平衡的艺术,不要把简单问题复杂化,也不要把复杂问题简单化,系统架构需要考虑哪些业务要求和质量指标?,怎样取得平衡?,分解复杂度,自上而下,分离关注点(总体,系统,局部),分配复杂度,用合适的技术、合适的组织来解决问题,架构设计理念,更多用户,更多数据,更多功能,更少硬件,更少人力,更少故障,质量指标,可用性,安全性,性能,稳定性,可维护性,架构是平衡的艺术架构设计理念更多用户更少硬件质量指标,26,分解,业务,应用,数据,合并,联动的业务,高藕合的数据,持续发展,插件式扩展能力,弱藕合,易于剥离,局部可优化调整,可测试,稳定性,高可用性,负载均衡,线性扩展,可被监控,架构的考虑要点,分解业务应用数据合并联动的业务高藕合的数据持续发展插件式扩展,27,业务划分,系统细分,应用优化,架构考虑的方向,业务划分系统细分应用优化架构考虑的方向,28,销售后台,会员管理,跟单管理,财务管理,运营后台,Offer,审批,会员审批,类目运营,数据采集分析,网站前台,用户登录,用户前台,用户后台,旺铺、广告,社区、论坛,合作部门,搜索引擎,阿里旺旺,支付宝,总体架构,分解:按不同的业务领域、用户群来分解,业务复杂性,分配:将业务需求分配到各个,公司、部门、系统、服务,系统,/,服务可独立部署和维护,它们之间多采用分布式交互,业务划分,(,总体架构,),销售后台会员管理跟单管理财务管理运营后台Offer审批会员审,29,会员体系,运营体系,业务体系,业务划分,(,总体架构,),会员体系运营体系业务体系业务划分(总体架构),30,系统架构,表现层,WebX,Velocity,Spring MVC,业务逻辑层,IOC(Spring),SOA(Pampus),EJB,数据访问层,iBatis,CMP,JMS,工具,安全,容错,管理监控,日志,Build,系统架构,分解:按不同的技术层次来分解,技术复杂性,分配:将技术需求分配到各个,中间件、容器、框架、工具组件,容器,/,框架通过特定的技术模式来透明或半透明地解决技术问题,系统架构表现层WebXVelocitySpring MVC业,31,网站应用系统,BOPS,系统,资源系统,系统细分,网站应用系统BOPS系统资源系统系统细分,32,应用优化,存储系统,DAC,SAN,NAS,搜索引擎,全文索引,目录索引,数据库,索引,数据复制,水平分割,垂直分割,Cache,内容静态化,数据库缓存,对象缓存,客户端缓存,局部调优(数据存取),分解:按数据的位置、读写、计算特性等分解,数据存取复杂性,分配:将数据分配到各个,数据库、索引库、存储系统、,Cache,不同的存储技术适合于不同的数据存取需求,应用优化存储系统DACSANNAS搜索引擎全文索引目录索引数,33,读,写
展开阅读全文