系统架构概述Yes,WeKAO更强,更高,更持久•了解什么是架构•了解Alibaba网站架构的历史•掌握Alibaba网站架构的现状•掌握网站架构设计的理念课程目标和内容•架构规定了软件的高层划分及各部分间的交互–架构不是软件,但架构决策体现于软件平台和框架之中–架构的优劣决定了业务应用系统的实施能力和发展空间–技术搭台,业务唱戏架构搭台,应用唱戏•架构永远在随着业务的发展而变迁–拥抱变化!什么是架构?架构变迁架构升级更多用户更多数据更多功能硬件成本人力成本质量成本提高收益节约成本业务发展B2B架构演化过程1999史前2001石器时代2002中世纪2005工业革命未来星际时代?PerlWebMacropojojdbcVelocityEjbWebXSpringSOAOPENAPI云计算……•Perl,CGI……•Mysql•Apache•服务器在美国,56KModem,远程开发、测试、部署1999-史前时代•Java服务器使用线程性能比cgi技术使用进程好•Java相比Perl,可维护性好,开发效率高•Java开始在国内流行史前-石器时代原因•开始使用Java•模板技术采用WebMacro•中间层采用Servlet技术,使用POJO封装业务逻辑和数据访问–使用BizObj对象封装基本业务逻辑和数据访问方法–其它业务对象继承BizObj方法,实现自己的业务逻辑和数据访问方法•使用JDBC访问数据库•Servlet容器使用resin,Web服务器使用Apache2001底-石器时代-www系统2001底-石器时代(续)基于POJO的biz层基于WebMacro的模板技术表现层业务层BizObj业务逻辑方法数据访问方法OfferObj业务逻辑方法数据访问方法MemberObj业务逻辑方法数据访问方法CompanyObj业务逻辑方法数据访问方法基于pojo的Biz层Oracle数据库LDAP数据存储•表现层仅仅使用模板技术,缺乏MVC框架,导致大量的servlet配置•业务逻辑层和数据访问层耦合,可维护性和可扩展性差•受到EJB风潮的影响石器时代-中世纪原因•表现层采用WebX–模板技术Velocity–在Turbine基础上开发了自己的服务框架和一系列公共服务–通过一个delegate对象访问业务逻辑层•业务逻辑层使用EJB(SLSB,CMP,DAO等)–通过一个façade对象供表现层delegate访问–Façade对象访问多个SLSB实现的controller对象实现业务逻辑–使用CMP实现单条记录的增加和删除–考虑性能,在CMP之外封装DAO对象通过JDBC访问数据库•EJB服务器使用Weblogic•Web服务器使用Apache2002底-中世纪2002底-中世纪(续)搜索引擎Oracle数据库LDAP使用SLSB实现的业务逻辑对象Controlers基于Webx以及Service框架的Web层框架CMP进行单条记录的增加删除,DAO对象查找表现层商业逻辑层数据访问层数据存储delegateFaçade•Turbine的发展缓慢•EJB配置复杂,可维护性差•重量级框架,业务侵入高•高度容器依赖,可测试性差•CMP性能差,导致DAO和CMP并存中世纪-工业革命原因•表现层使用WebX和Service框架–Velocity模板技术–自有服务框架及多种公共服务:FormService,TemplateService,MailService,RundataService,UploadService等–通过command模式和biz层交互–无状态Web应用,基于cookie实现session,获取线性扩展性•业务逻辑层使用AlibabaService框架,并且引入spring框架–Spring容器和AlibabaService框架无缝集成–AO,BO–使用分布式cache缓存对象•数据访问层–透明的事务处理–引入Hibernate和iBatis,以iBatis为主2005-工业革命2005-工业革命(续)搜索引擎Oracle数据库LDAP基于Spring以及Service框架的biz层框架基于Webx以及Service框架的Web层框架分布式Cache分布式Session基于Spring以及DAO设计模式的数据访问框架表现层商业逻辑层数据访问层数据存储•数据库成为瓶颈->分布式数据库•应用耦合严重->SOA•Pampas平台演化还在继续…•中文站会员数超过2000万•中文站Offer已经超过1.5亿•中文站每天的用户PV已经超过1.6亿•中文站每天新发Offer超过100万•中文站每天重发Offer超过1500万•国际站略少,但是增长迅猛网站的现在中文站/国际站应用部署图网站镜像部署图(国际站)中供用户网站运营海外卖家LoadBalance(F5,Alteon)ApacheJbossDatabaseSearchEngineApacheJbossApacheJbossApacheStaticResourceCacheStorage用户请求处理•流量随着用户量...