淘宝的技术架构一直在变的,分几个阶段:
V10:小而快(20035_20045)
2003年淘宝诞生,用的是LAMP经典架构(linux+apache+mysql+php),后端用的是php语言
V20:多层次结构,开始做自己的软件(20042_20083)
2004年在淘宝业务发展的推动下,淘宝开发参考了电信运营商、银行等的一些企业解决方案,将LAMP架构改造为Oracle+IBM小型机的数据库架构和EMC存储方式。为了配合Oracle,php也彻底被替换为java。
V30:产品化思维及服务导向框架(200710-200911)
2007年,淘宝全年的交易额超过400亿元,平均近1亿多一天,每天有100多万笔交易被创建。淘宝被改造成分布式架构,引入缓存,分布式存储和分布式搜索引擎。这时候应用服务器使用的是JBoss,数据库又从Oracle变成了MySQL,语言还是java。
V40:系统化、智能化、专业化(20098-)
从2010年开始,淘宝网重点着眼于统一架构体系,从整体系统层面考虑开发效率、运维标准化、高性能、高可扩展性、高可用、低成本方面的要求,底层的基础架构统一采用了阿里云计算平台。这时候的web后端语言没变,还是java。
顺便说一下,上图的中间件也是java开发的,java语言在阿里应用非常广,大约90%以上的系统是由Java技术构建。
说一说对互联网系统和传统企业IT系统的一些看法和观点。
现在被炒的很火热的互联网,云计算架构,其相对于传统的大型企业系统架构,最大的区别就是以分布式的架构去替代原先的集中式系统架构。
打个比方,原先的大型企业系统架构,就好像一架大型的民航客机。作为出行来讲,飞机无疑是最舒适最快的交通工具,同时安全性也很好。但飞机却也不是人人都能坐的。首先:做飞机要经过换领登机牌,安检等若干道手续,乘客必须提前一个多小时到机场办理各种手续,而坐火车大巴则随到随买随上车,方便的多;其次:坐飞机很多东西不能随身携带甚至不能托运,火车大巴则相对宽松;还有:机票很贵坐飞机花销很大而且飞机运载能力也不如火车。当你有数万数千人要一次性到达某地时,一两架飞机的运载能力根本不够,要调动成批飞机的话整体成本又太高。最后:虽然飞机很少出事故,飞机一旦出现事故的话危险级别往往都会很高。
但是,以前除了飞机之外,就只有火车,大巴这种交通方式选择了。相比之下,这些方式虽然收费低廉,乘车,携带物品都比较方便,但是速度实在太慢而且受外界因素诸如雨雪等等的影响太大,乘坐也不是很舒适。只能满足那些相对时间宽裕,或者囊中羞涩人群的出行需求。
于是,为了满足更多人,更便利更高速的交通运输需求,新的交通运输模式—动车/高铁就出现了。它和火车最大的区别是:火车只有一节车头有动力,后面能拖几节车厢跑多快基本就是看一个车头有多强劲。但个体的力量终究有限,一个车头再强劲也有个极限,发展空间也就那点了,实在难以有太大作为。动车则不同,它每节列车都独立有自己的动力系统,连在一起各节车厢动力系统就是一个叠加递增的关系。所以理论上越多节车厢接在一起就可以拉更多人跑的更快,是一个无限扩展的系统!而且因为动车可以搭载的乘客很多,所以均摊到每个乘客头上,坐动车的速度可以某种程度上接近坐飞机,但成本要低很多。
现在互联网,云计算的系统架构其实和动车的理念相类似,就是分布式系统的架构 – 将任务分解交由每个小计算单元进行分布式的并行处理,充分利用每个单元的计算和存储能力,理论上性能可以无限线性扩展,任何一个节点的故障不影响整个系统的运行,整个系统没有单点故障。
也就是说:我们可以简单把大型企业核心架构,或者说就是大型机,RISC系统比作飞机;而把互联网,云计算的系统架构比作动车。现在,就可以做些很有意思的讨论了。
还是来说说稳定性和可靠性:就说2012年吧,飞机也好,动车也好,新闻里面都有报道过出现严重事故,可见没有一种系统是完全稳定可靠不会出现任何宕机风险的,但是其概率都是非常非常小的。从整体来讲,都是很稳定很可靠很安全的选择。只不过各自对于如何防灾冗余的策略还是有些不一样。先说飞机,因为飞在空中,万一出了事情没有后备可用,所以能采取的方式只有想尽一切办法提高飞机自身个部件的冗余度,设计时尽可能多的考虑各种小概率事件。哪怕发生某故障的概率只有千万分之一甚至亿万分之一,只要有可能,也要把应对措施设计进去。这也是飞机造价为什么会那么高,对携带物的要求会那么多的原因。而动车则相对简单:反正多拖几节车厢又不影响我速度,那我就尽量多拖些备用车厢跑着呗。万一某节车厢出事了,就把里面乘客挪到备用车厢里,车照样跑得欢。然后等到了站再去更换检查有问题车厢也不迟。
回到IT世界也是一样。分布式系统基本都是基于x86的PC服务器。单就一台服务器而言,虽然性能可靠性在不断加强,但肯定还是不如RISC系统的。但是没关系,咱可以用数量来弥补单机冗余度的不足啊。设计没你好冗余度没你考虑的多我就多拉几台呗。坏了几台没事,应用任务再分配到别的空闲机器上就好了。坏了的机器也不用马上修,反正没坏的机器加起来也够用。等到故障机器到了一定数量我再一次性批量检修更换部件效率更高。对于用户来讲,即使我坏了100来台服务器只要剩下的服务器还能正常工作,应用就不会受任何影响。谷歌,Facebook那些超大型数据中心现在的工作思路大致如此。这么做看起来是个很简单有效,很聪明的方法,但其实也有不少问题存在。
首先我觉得这个架构好处是实现原理简单,而且扩展性d性比起RISC架构来好处不言而喻。但其实这个架构里面也存在着无谓的资源浪费可能性。例如拿存储而言,目前Hadoop类的多副本分布式存储很火。一份数据存三份,发现有数据损坏立即找空闲空间恢复。听上去很简单很容易实现很高效,但如果你真的坐下来仔细算算账,你就会发现:
1 当你数据量不大(小于PB)的情况下这种一份数据存三份方式的成本其实比现有任何商业存储方案的成本都要高。
2 这种方式下每台服务器的CPU利用率都很低,而现在市面上的大存储容量服务器,CPU配置都很高。所以这种方式,基本上是对于CPU资源的一种浪费。所以,或许对于数据量适中的企业来说,用EC CODE这种以计算能力换存储的分布式存储解决方案会比多副本方案更经济实惠。
3 这种方式很容易让IT运维人员产生一种习惯性思维 – 即要提高系统在线时间就多买些服务器就好了。因为服务器多了分布性好了自然冗余度就高了。于是不必要的服务器采购就这么产生了,每个数据中心也就又多了很大一笔不是很必要的电费开销。
其次,我觉得分布式架构的某些故障很可能会产生连锁效应,导致更严重全局瘫痪。打个比方,大家都知道赤壁之战的故事。里面有个很著名的桥段就是庞统献连环计,铁锁连舟。起始时使曹 *** 万余战船连成一体稳如平地进可攻退可守前后都可照应看似完美,但唯有一个命门就是怕火攻。而诸葛亮周瑜正是利用这个命门,解东风火烧赤壁把曹 *** 百万大军杀的丢盔卸甲。互联网的分布式架构其实我觉得也有类似“命门”。大型机或者RISC系统之所以那么贵,其实很多时候用户在为千万分之一甚至亿万分之一的“万一”买单。而互联网,现在的公有云架构,在设计之初,基本的考虑思路是大用户,大并发,然后尽量减少TCO。所以很多时候,设计架构时会先把那些“千万分之一”排除在外,暂时不予考虑。而系统上线之后,稳定运行一段时间用户量暴涨,精力往往又会去专注扩容方面了。搞不好就会把一些“命门”漏掉,于是乎万一正好遇上“东风”吹到了命门上,后果估计会比曹阿瞒更惨。因为IT世界里还没有那么仁义的关云长会在华容道上放曹 *** 一马。
其实从最近Facebook,Amazon、谷歌的几次宕机事件来看,已经有些那个苗头了。好在那些互联网领头羊们应该是已经意识到这些问题,已经在积极修补“命门”了。
最后,我想说互联网,云计算的业务类型其实和传统企业的业务类型不一样,所以大型机,RISC系统处理的任务,运行的计算并不一定都适合移植到分布式系统架构上来。还是以交通运输举例:我要去美国,目前还是只有飞机可以满足我的需求。当然你可以说我坐动车也可以,无非是多转几趟跨国列车。但那毕竟很勉强,速度不快,费时费力还不省钱,毫无意义。人家直接飞过去就行了,你却要绕着太平洋海岸线跑一个大圈来兜,何必呢
那么以上这些问题有没有办法解决呢其实我觉得解决以上问题的关键就是两个字:运维。分布式系统,要保障其安全可靠的运行,合理有效的扩容,关键不在系统的软硬件,而是在系统搭建之后的运维和持续的对系统的改进修正!现在网络上很多人都在热衷于各种开源架构如openstack,Hadoop的开发,应用场景探讨。但个人以为这些开源系统的特点是搭建简单,维护艰难!要想把这些架构和技术真正投入企业成熟应用,在运维管理上投入的成本可能要比RISC大得多。因为这些系统架构更分散,出现的不可预估性更多,同时也更需要有人来理清何时用分布式架构,何种场景还是需要传统架构。那么可能有人要问,既然如此,我们还有必要走分布式系统这条路吗当然有!原因也很简单:分布式架构给了我们处理海量请求的能力和应对突发事件的d性;同时分布式架构也使系统具备了更好的扩展能力和更多业务创新的可能性。
说了这么多,基本要讲的也就讲得差不多了。怕前面说的有些散稍微总结下我想说的观点:无论传统RISC架构还是现在流行的分布式架构,虽然实现方式各有不同,但都是具有很高的稳定性可靠性的系统。但没有一个系统是绝对稳定不会宕机的,要保障系统稳定可靠运行,运维管理很重要。分布式系统相比传统RISC架构有扩展性和灵活性方面的巨大优势,但也存在资源浪费和故障隐患危险。在这一方面,分布式系统架构还需要多向传统架构的运维管理学习借鉴,提升自身的忧患意识和故障预警处理能力。
这个好大呀, 没法发呀, 从最上层到最下层,晕 比如说TAOBAO 上面董事会就不说了,中间层就分为产品研发中心,客户中心 运营中心,战略营销中心,财务和数据分析中心,行政管理中心等等以行政中心来说下面就分为人事法律等每个小类都有经理和专员,到最下层的员工,比如产品研发部下面就有产品经理,C、C++开发工程师,前端开发工程师,交互设计师 ,网页设计师, 软件测试工程师,java软件工程师,系统管理员,架构设计师,数据库工程师等等 每个员工都对应的有管理的人
通信网络要素。
淘宝app属于信息系统的通信网络要素,主要起到衔接的作用。
淘宝app属于亚洲较大的网上交易平台,提供各类服饰、美容、家居、数码、话费卡充值等。
大网站 一般用的都是企业级的应用 像EJB 数据库用ORACLE 像MVC只是众多架构的一种,需求不同所以用的架构不同,MVC方便多人开发独立模块。容易整合!。。相关资料你查一下各种架构呗 现在MVC2 MVC3 都出来了。。不过百变不离其宗知道最基本的其他的易学。。
淘宝与天猫的对标
1、从商业模式上看: 都是聚集买家与卖家在一个平台交易的双边商业模式,没差异
2、从价值主张来看: 都是撮合交易,只不过撮合交易双方主体不同,淘宝对于交易双方无资质要求,而天猫对于交易的卖家有企业的资质要求,同时对于商品在天猫销售更加明确为品牌正品。
3、从平台核心收入来看: 淘宝还是以广告收入为主。而天猫是以交易抽成为主,广告收入为辅。
4、商品: 淘宝支持只要不违法的商品都能上架,而天猫的商品必须是正品,或者经过授权的品牌。
5、IT能力: 这里不是指用的开发语言(如JSP,PHP),指的是IT支撑的业务能力。都是支持多商户开店及担保交易,但是天猫在交易过程中,增加了抽佣的能力。不过这个能力被集成到支付宝了。所以从IT支撑上两个平台是没有本质性区别的。
6、运营定位: 淘宝定位就是集市,而天猫定位是品牌购。从本质上说就是让“谁”在电商平台上卖“什么样的商品”。
1、运营确定了进入的细分市场: 一样的支撑模型,不同的运营定位,造就了两个不同的细分市场。
2、万能的IT支撑模型: B2B2C模式的IT架构模型理论上可以支撑互联网电商市场上所有的运营诉求。
3、定位平台电商: 这两个平台与自营B2C最大区别就是,自己都不生产或者采购任何商品在平台销售,获取零售的毛利。淘宝&天猫是真正的平台电商。
以上就是关于大家知道淘宝是用什么语言开发的吗全部的内容,包括:大家知道淘宝是用什么语言开发的吗、传统制造企业IT架构和互联网企业的IT架构,之间的区别、淘宝网的组织架构等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)