更新时间:2015-04-30 14:33点击:
目前提供互联网服务的企业越来越多,尤其是近年来移动互联网发展势头迅猛,用户的急剧上涨对每一个中小企业都是巨大的压力,包括访问压力、业务提供等。一系列的压力对于企业的架构发展都是严峻的考验,如何让架构更好的服务于业务是每一个企业面临的重要问题。
一、架构发展目标
1.高可用性:提高系统的可用性,减少停工时间。
2.低成本:增加服务的重用性,提高开发效率,降低人力成本;利用成熟开源技术,降低软硬件成本;利用虚拟化技术,减少服务器成本。
3.智能化:提高运维工具的智能化管理,减少运维人员的操作,降低运维人员的工作量,降低系统的维护成本。
4.高扩展性:减少系统间的耦合,提高系统的灵活性,易于业务功能扩展。
二、贯通云网介绍
贯通云网是一家互联网新锐公司,致力于成为中国最具效率和创新精神的快递行业入口门户企业与解决方案提供商,基于云计算和大数据技术,为用户提供收发、查询和管理快件的最佳体验。使快递企业和用户更为贴近,降低行业整体运营成本,促进行业生产力提升。
三、贯通业务发展
(一)业务功能
贯通云网是一个服务的平台,在后台接入了很多主流的快递公司提供快递的基础服务。通过app端,web端等平台为用户提供更加快速有效的快递体验,业务主要包括查、收、发、管快递这四部分。通过指尖快递平台可以统一管理发出与收到的快递信息,统计每个月的快递花费,并且可以记录买过的东西的价格。
(二)发展历程
贯通云网业务发展从2014年5月公司成立经历了以下几个重要的时间点:2014年7月1.0版本上线;9月2.0版本上线;10月开始正式推广;2015年1月下载量突破300万;开放平台业务上线;大客户业务上线。
需要发展这些业务必须拥有一个强大的后台支撑,这个支撑既包含技术方面,也包含架构方面。
(三)发展之路
从2014年5月到现在贯通云网共经历了一年时间的企业发展之路。在这一年时间里公司提供并完善了这样几项功能:
1.指尖快递的上线,涵盖快件查、收、发、管各项功能
2.添加信息推送功能
一个单号是用户在指尖快递上发送的或者查询过的,下一次不需要再重复输入单号,当物流信息更新时系统会将信息主动推送到手机上,减少用户对app的操作,第一时间掌控最新物流信息。
3.开放平台业务上线
开放平台业务主要针对中小企业,以API接口方式提供快递的查、收、发等线上服务,企业可以通过开放平台对接的方式开展自己的快递业务。
4.添加电子面单功能
电子面单就是将用户录入的收发件信息打印出来,不再需要手填四联单,减少用户书写的繁琐。
5.大客户业务
大客户业务是针对每个月收、发件量在千件以上的大型企业开展的针对性业务。为客户定制快递服务系统,让每一位员工可以通过平台快速实现收件、发件和管理功能,帮助企业管理内部的快递费用和信息。
四、业务架构演变
指尖快递产品最初只实现了查、收、发、管功能,并通过web端和app端提供在线服务,后台对接一些主流的快递公司业务系统,初级简单而且易用,很多起步阶段的企业都会经历这个阶段。刚开始公司以核心功能为目的,将服务做得尽可能简单、易用且易于部署,让用户的使用体验更加通畅便捷。
慢慢的业务量开始增大,功能也越来越复杂,便要开始考虑架构的问题。贯通云网由于业务发展需求不得不考虑在web端和app端添加信息推送功能,同时为中小企业开展平台对接业务,于是有了贯通开放平台项目,此时固有的项目和结构已经无法满足发展需要。
为了解决新业务增长的架构支撑问题,贯通云网将架构拆分成三层。第一层为功能模块层,包括查询、发件和推送等主要的业务功能,这一层主要与各快递公司做功能对接;第二层为信息共享层,将所有项目、平台的核心业务信息共享到这里,无需每次都访问快递公司接口,提高访问效率和响应速度;第三层为业务层,将每一个业务都作为一个单独项目处理,有效分散用户的访问量并将同类型业务的请求统一处理,分摊系统业务处理压力。
接下来增加业务功能时,如电子面单功能,就可以直接在功能模块层上加入一个电子面单的模块就可以实现,不会影响其它业务的正常运营。模块化的处理可以非常灵活的对业务进行扩散,并且发挥它最大的效率。
几个业务架构演变的重要原则:
1.基础业务下沉:所有权限管理、个人信息维护等基础业务下沉到每个产品中分别管理。
2.核心业务的单元化:核心的业务功能单元化处理,提高灵活度、分减业务系统压力,有效地控制核心业务功能。
3.信息统一化:将各产品的信息统一标准化,将所有公共的业务信息统一管理,可大大提高系统的处理效率。
4.业务平台化:将核心的功能业务平台化处理,增加新产品加入时的灵活性和复用性,也能有效统一的管理核心业务中的数据。
五、应用架构模式
(一)设计原则
1.稳定性:一切以稳定为中心,架构尽可能简单、清晰,不过度设计;
2.解耦/拆分:稳定部分与易变部分分离,核心业务与非核心业务分离,应用与数据分离,服务与实现细节分离;
3.抽象化:服务抽象化,应用抽象化,数据抽象化;
4.松耦合:跨域调用异步化,非核心业务尽量异步化,必须同步调用时,需要设置超时时间和任务队列长度;
5.容错设计:服务独立,避免引发连锁反应,集群部署,避免单点,多机房容灾。
(二)稳定性原则
贯通云网的应用架构主要分为三层。第一层是数据结构层,主要包括信息架构、业务分析以及业务智能;第二层是业务监控层,业务监控层主要管理整个业务的整个生命周期的可用性、事务性以及安全性;第三层是真正接触客户的业务层,主要是消息传送和协议的转换,包括展现层、业务处理层、核心服务层、功能组件层。
展现层指的是app应用、web页面、开放API等。业务层是开展的某项业务,比如指尖快递、开放平台、大客户应用。服务层是信息平台和DB数据库。功能组件层就是把查询服务、发件服务和推送服务单独拆分,作为功能组件来做。
整个流程从展现层开始发起,用户发起一个请求,比如说查询。查询的单号通过指尖快递平台进行信息处理,首先判断合法性以及是否有权限。然后到信息平台层,系统会将这个信息保留到DB的数据库层,然后再进行功能的组件操作,在功能组件这边进行分类,直接通过查询的接口推送到快递公司,快递公司根据系统提供单号查询信息,最后返回到信息平台把查询到的信息保存在数据层里面,并且反馈给用户。当下一次用户再访问指尖快递时,查询指令到信息平台层时便可以发现业务在DB层已经被保存了,就直接将这个信息直接反馈给用户,无需再进行下面的操作,提高了整个流程的效率。