基于阿里云架构开发方法论

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

基于阿里云的架构开发方法论阿里云方法论©2014AlibabaCloudComputing作者:墨三(赵圣强)shengqiang.zhaosq@alibaba-inc.com基于阿里云的架构开发方法论阿里云方法论©2014AlibabaCloudComputing文档历史下面是本文档的版本历史:版本作者日期目的0.0赵圣强2014-1-9初始思路版本0.10.91.0基于阿里云的架构开发方法论阿里云方法论©2014AlibabaCloudComputing数据库及相关产品:.........................................................................................101.2分布式数据访问层TDDL:........................................................................................112.分布式缓存系统.............................................................................................................113.分布式消息系统.............................................................................................................124.分布式服务框架.............................................................................................................125.分布式存储系统.............................................................................................................126.OceanBase数据库..........................................................................................................137.NOSQL数据库产品........................................................................................................14第三章典型场景实现思路.....................................................................................................151.Oracle数据库存储过程.................................................................................................152.Trigger.............................................................................................................................153.多维度查询.....................................................................................................................154.多表join..........................................................................................................................165.多表事务.........................................................................................................................166.统计查询.........................................................................................................................16第四章总结.............................................................................................................................17第五章参考.............................................................................................................................18基于阿里云的架构开发方法论阿里云方法论©2014AlibabaCloudComputing基于阿里云的架构开发方法论阿里云方法论©2014AlibabaCloudComputing前言编写本文的目的是讲解阿里云架构思路,介绍云化产品组件,帮助使用阿里云架构开发的同学进行思路转换以及方案选型。南隐是一位禅师。一天,一位学者来向他问禅,但自己喋喋不休。南隐则默默无语,以茶相待。他将茶水注入这位客人的杯子,满了也不停下来,而是继续往里面倒。眼睁睁看着茶水不停地溢出杯外,客人着急地说:“已经满出来了,不要再倒了!”南隐说:“你就像这只杯子一样,里面装满了自己的看法和成见。如果你不先把杯子空掉,叫我如何对你说禅呢?”阿里云架构是一套新思路,它以更高效的效率、更开放的心态、更好的可用性、更加自控的产品、更易扩展的设计、更完善的运维体系、更低的成本来解决规模化企业IT建设中遇到的各类问题,请大家以更加OPEN的心态来看待这个新思路,接受他、了解他,再批判他、完善他。基于阿里云的架构开发方法论阿里云方法论©2014AlibabaCloudComputing第一章阿里云架构思路我们先从计算机软件系统特性说起,作为一个正确的计算机软件系统,要能够根据输入可预见其输出,可以理解为当一个状态输入进去,可预见其输出的状态,状态的不同可能会带来不同的结果,所以状态是关键。维基百科说:状态是一个物体在一定情形下的内部环境与外部环境的总称。在计算机领域,数据即是状态,数据不同,表达的内容不同,结果亦可能不同。状态是会转移的,状态的转移图,称之为状态机,状态机可以是计算机的一段程序,也可以是一个计算机系统。在数据库系统中,状态的变化,是采用事务方式(ACID)来约定的,即保证状态变化过程和结果的原子、一致、隔离、持久性,最终保证让状态机转移到正确的位置,如图1所示。图1:XXXXXXXXXXXXXXX在外界看来,状态s、s1、s2之间的转移,是确定的,要么是状态s要么是状态s1,不会出现s’的状态,这种用ACID来保证一个系统的所有状态转移的方式,一直被广泛应用于系统的设计过程中,非常典型的一个设计是一个数据库,承载着一个系统的运行,交易和物流还有其他的系统,都在一个数据库中,如图1:图2:XXXXXXXXXXXX系统做的好,功能强大,用的人多,流量越来越大,随之带来的是系统压力越来越大,基于阿里云的架构开发方法论阿里云方法论©2014AlibabaCloudComputing系统的各个部分就开始出现瓶颈,当APP出现瓶颈时,处理相对简单,因为APP无状态,加一些机器就可以解决,而保证系统状态正确转移的数据库,在这时就不那么容易扩展了,他将会成为扩展最难的一个点。对于任何一个系统来讲,都有两种扩展方式,当然,人们首先想到的是向上(垂直)扩展,因为容易、快速,所以运行数据库的机器经历了下面的一个发展过程,当然并不是所有人都到了大机,如图2:图3:XXXXXXXX这种方式有很明显的缺点:业务压力总会超过这套系统的处理能力,另外,处理事务能力的增长和成本的增长不能呈现一个线性的关系,越往后,成本的增长越快,也就是事务处理能力的单价是越来越高的。还有一种方式,水平扩展,这种方式非常复杂,但是提供了很大的灵活性,而且要获得更多的事务处理能力不需要付出比之前更昂贵的单价。水平扩展中也包含了两个维度:一是以业务单元为维度拆分,称为服务化,二是业务单元内再拆分多个数据库,图3可以说明其特点:图4:XXXXXXXXXX水平扩展和向上(垂直)扩展方式,在进行状态转移时有重要区别:向上扩展保持ACID,交易和发货状态在一个数据库的一个事务中完成转移,能够保证其实时正确性,不会出现不确定性,水平拆分后,这两个状态被分到了两个独立的物理库中,无法在一个事务中完成状态转移,其中任何一个状态转移出现异常后系统状态会变成什么样子,是不确定的,这时候如何来保证状态能够被正确转移,成为了一个关键点,而是否使用跨物理资源的分布式事务,又成了各种权威争论不休的胶着点。对于这个棘手的问题,业界已经有广泛共识,那就是基于网络的数据共享系统有一个显著的特征,会受CAP理论约束,即Consistency一致性,是为了追求状态正确转移,Availability基于阿里云的架构开发方法论阿里云方法论©2014AlibabaCloudComputing可用性,是为了追求系统能够提供服务,PartitionTolerance分区容忍性,追求能够有良好的扩展性,但是这三项只能较好的实现其中两项,而最后一项只能做些弱化、妥协,以达到系统整体设计需求,请

1 / 18
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功