云服务架构设计基础模式
云计算软件架构如同大多数软件架构一样,是对实际需求、扩展性、可靠性及性能等需求方面因素,CRM、物流管理、财务管理等专业因素,以及人力成本、开发周期、运营预期及升级周期等众多因素平衡取舍的结果,不会有一个大而全的架构能够适应所有情况;但对于云服务专业化、高并发、高可靠特性这一特点,有设计模式可供参考。
1、一致而稳定的抽象层
云计算是通过规模集中及服务专业化来提高服务效率,达到降低使用成本的目标,因此一般来讲,对于云服务系统,需要整合多个不同业务,以满足用户多方面的需求。多个服务是否能够整合,是否能够根据用户需求更换不同的服务提供者,关键的一点就是该服务是否能够抽象成一个高级别的组件,迅速组合,构成满足用户需求的服务,这也是系统可高度配置的基础,以适应在一个平台上快速满足众多企业用户的需求。
因此,云计算提高了抽象水平,所有组件都抽象化或虚拟化,并可用来迅速组合较高级别的应用程序或平台。如果某个组件不向其客户或同行提供一致而稳定的抽象层,该组件就不适合于云计算。如常用的单点登录,将用户认证、用户关系组织成一个公有服务,用户在互联网上登录时,无论在哪个服务上登录,都能够提供身份认证,保障一次登录使用所有应用,同样地,目前社交网络服务(SNS)中,使用微信可进行身份认证,将服务提供给更多用户,这是一个典型的用户认证及关系抽象的例子。对于该服务自身来讲,并不处理用户登录,仅仅通过虚拟登录概念,通过不同的适配,达到同样的目的,极大地扩展了服务使用人群。
云计算的 SaaS 服务大都采用 Web 服务封装,提供标准服务接口,这样各个客户及其他服务提供者能够简单集成,一起向最终用户提供服务,如上面所说的微信的服务接口,这样既能保障客户通过微信获取更多服务,也能够让网站在开通初期,尽快扩大用户群体,是一个双赢结果。
IaaS 应用标准部署单位是虚拟机,它本质上可运行于抽象硬件平台。人们很容易过度关注构建虚拟机映像(image),而忽视用来创建虚拟机映像的模式。在云计算中,维持该模式而非映像本身非常重要。该模式是保留下来的,而映像则是从该模式产生的。虚拟机映像始终在变化,因为虚拟机映像内的软件层总是需要修补、升级或重新配置。不变的是创建虚拟机映像的流程,而且这是开发人员所应重视的。开发人员可以通过把 Web 服务器、应用程序服务器和 MySQL 数据库服务器叠加在一个操作系统映像上,应用补丁程序、配置更改,以及互连各层组件,来构建虚拟机映像。可以说虚拟机抽象是 IaaS 服务基础,但本质是虚拟机维护、创建、监控、资源配置与隔离及可靠性保障等的抽象与封装,使得 IaaS 一致稳定地向不同客户提供服务。
随着微服务架构的兴起,CaaS 成为 IaaS 应用标准部署的子集。容器比虚拟机减少了硬件仿真,依靠操作系统进程级别的隔离,其创建和销毁速度在毫秒到秒级,是一个“轻”沙盒。现在广泛应用于业务在高峰和低谷之间的容量的调整、AI 运算和大数据处理领域。
PaaS 平台可以建立在 IaaS 之上。使用虚拟机系统隔离每个用户部署在平台上的应用,虚拟机产生映像时,将平台 API 相关调用库、认证设置等一次部署到位,而且平台安全、可靠等相关部署事项都可以通过虚拟机方式隔离,让用户开发、部署应用的难度极大降低,这是 PaaS 服务抽象的常用模式。同样,通过抽象建立业务运行的隔离环境,除业务 API 外,部署、开通、计费等服务系统必备 API 都应该是 PaaS 平台 API 的一部分,这样就能通过一个稳定的抽象层隔离各个用户发布的服务,当一个服务故障时,不影响其他服务的正常使用。
2、标准化
对于云服务,需要同其他服务提供商、企业服务集成,才能满足企业用户的不同需求,而不同企业用户对不同服务有着各自不同的需求,这就要求对服务的抽象和封装尽量符合行业标准,这样就能快速替换不同服务,满足用户需求。
云计算首先重视效率,因而采用少数标准和标准配置有助于降低维护和部署的成本。拥有可简化部署的标准比拥有用于作业的最佳环境更重要。二八原则就是:20%的标准可以支持 80%的使用案例。从成本效益来看,这样的工作可以让高成本的一次性产品开发转变为可以复用的构件开发,从而降低多个项目的综合成本。
云服务一般采用 Web Service 标准接口,包含 RESTful 和 SOAP 两大阵营,随着封装级别提高,RESTful 日益兴盛。SOAP 由于历史原因,还有大量服务和系统支持,并且由于 SOAP 工具更成熟,它仍然是许多服务提供接口的选择。考虑到效率、耦合度及开发分发等一系列因素,RESTful 可能是高并发系统的最佳选择。
版权声明: 本文为 InfoQ 作者【穿过生命散发芬芳】的原创文章。
原文链接:【http://xie.infoq.cn/article/e581e919c84db46fbeb67b568】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论