APP下载

浅谈云应用的构建

2014-12-16张强

2014年32期
关键词:模式概念

作者简介:张强,男,黑龙江黑河人。本科在读,齐齐哈尔工程学院信息系计科111班,方向:计算机信息安全。

摘要:今天,个人电脑、移动设备、智能手机正以前所未有的速度爆发式的增长着。这些小型的电子设备之所以能快速发展,完全得益于因特网。过去,人们会使用性能强大的服务器来实现这个需求。然而,近几年一种称为“云计算”的概念诞生了,与传统的使用计算资源的方式不同,云计算将计算资源视为一种服务,形同公用事业一般的服务。向最终用户提供服务的公司再也不用事先通过估算去采购昂贵的硬件了,取而代之的是他们可以按需使用这些取之不尽的计算资源。于是,一個全新的时代到来了。

关键词:云应用;概念;模式

一、引言

关于云计算有上百种字面上的定义,其中大多数对于这些定义的创造者以为的普通人而言,很难甚至完全无法理解。许多公司把他们的虚拟主机环境称作云,因为这意味着强大、高速、可扩展性。实际上,云相当于那些拥有无限扩展能力的计算和存储资源的集群系统。

二、云服务的基础

1、云服务是什么

现在当人们提到云服务时,他们其实只是在说云计算。尽管如此,云服务的概念在计算机领域之外也同样存在。云服务指的是诸如电缆、因特网、甚至燃气之类的公用事业,就像公用事业有很多种类一样,云服务也是有许多种。云服务所能提供的远不止云计算资源。最早的云服务提供的根本就不是云计算资源,而是存储,他们以一种独特的Wed形式提供存储服务,让你访问一个系统。它虽然不是文件系统却能够简简单单地通过API来进行存储、读取以及修改对象,对象基本上就是命名资源。只有三个核心基础设施能被冠以云服务的名称:计算、存储、链接。

2、遗留模式

所谓遗留模式,是一种方法,能使现在的应用程序不经修改就运行在云平台上。然而,遗留模式实际是一个反模式,相比其解决的问题,因其产生的问题往往更多。初次接触云应用的开发时,多数人遇到的最大问题就是他们试图把现有的应用程序塞进云中的服务器。实际上,他们并不提供类似虚拟机的系统,相反,他们允许访问常规硬件。他们使用的并不是传统意义上用于大规模应用程序的超级电脑,而是消费级硬件。

3、运行在云中的应用并不会自主扩展

对于云计算最大的误解就是:如果你选择了云服务,就能立即获得无限的扩展能力。把一个设计在单台计算机上运行的应用程序突然放到云服务中,指望它能够自动扩展,这种想法是不切实际的。仅仅把应用程序放到云中运行并不意味着它能够扩展。云服务提供商并不会将自动扩展能力赋予你手中既有的应用程序,他们提供的是增强应用程序所需的工具。

三、设计镜像

在构建作为实例基础的镜像时,用户可能不会想到模式,但它却是整个应用程序的核心。这些模式决定了OS和基础系统是如何在应用程序中发挥作用的。如果没有合理地规划核心系统,就会浪费大量时间为每个独立的系统进行更新或安装,而不是以应用程序为一个整体来执行这些维护任务。你所做的最后一件事就是,将系统的整体的使用量骤然增大100倍同时禁止应用程序根据这一情况进行扩展,之所以这样做事因为你必须手工启动每一个新的实例,并逐一进行调整。通常,如果以云平台上的开发作为起点,就可以用预定好的镜像开始,但是过不了多久,你就会想要创建一个自己专属的镜像。大多数云服务提供商最开始都会向用户提供一组基础镜像,但不会包含用户的定制应用中所需要的一切,在有些环境中,用户甚至可以访问别人创建的镜像,来进行开发工作。一般来说,在基础镜像中寻找一个与你的系统所需的镜像比较接近的用来开始并不困难。然后,用单一的实例来启动这一镜像,在重新打包。基于其他的基础镜像来打造自己的镜像会有些帮助,因为其中已经解决了所有与你指定的云服务提供商有关的特殊需求。

四、设计架构

对于任何应用程序来说,最重要的就是与其他东西协作。如果能让一切都在系统内部完成固然很好。但是这样一来,你就需要用恰当的方法将请求转发到各个实例上。并作相应的处理。请求可以是以各种形式组织的,但是通常都是首先由用户的交互行为触发的。在一个典型的应用程序中,首先产生的是Wed请求,最简单的表现形式就是用户请求打开某个网页。在这种情况下,用户的浏览器会通过80端口与某个实例简历链接,告诉你实例用户希望得到某个页面。另一种请求是异步的,比如请求对视频进行转码,由于这样的请求通常无法再常规的HTTP浏览器链接超时前完成,所以你要将这些请求放进队列,然后等到可以对该请求进行处理的实例空闲时,再将请求支配给对应的实例。

五、操作数据

1、队列模式

当你需要与多个不同的系统进行通信时,让系统直接相互通信往往是不切实际的。这不仅要求你把工作进程的信息通知给发出请求的系统,还要求发送请求一方直接处理请求中的委托任务,并决定请求失败时该如何处理。把直接通信机制换成队列能让这些异步请求自动执行,并且可以不用通知任何一方就能新增工作进程,此外,通过在队列中更新自己的状态,你还能提供容错机制,只有当你确认所有请求的任务完成后才将该消息从列表中删除。

在队列模式中,请求源会向中央的队列服务发送请求,该请求只包含一点简单的数据,而且必须是语言中立的,必须采用所有监听队列的工作进程都能处理的标准格式,对于监听队列的工作服务器,它们可能会访问数据库以及其他分布式系统。这通常很有效,因为这些请求信息都不会很庞大,一般都是一组简单的指令,针对存储在其他分布式系统中的数据进行操作。

六、集群系统

分层结构的设计初衷是为了将系统划分为不同的层次并通过替换某个层次来提供更多的功能,就像在传统的模型-视图-控制器模式中,应用程序的执行逻辑、处理结果的现实被分割成不同的层次,多层构架将数据可表现层、显示方式也划分为不同的层次,使你能自下而上地构建整个应用程序。这种分层方法能让你分开客户端和应用程序代码之间诸如认证和授权逻辑。通过构架上的分层,你能提供多种身份认证的方法,且无需修改应用程序就能替换授权逻辑,每当有新的平台可以使用的时候,你还能在既有系统上增加额外的客户端层,而不需要修改应用程序的代码。

七、总结

Amazon、Google等行业巨头都先后推出了自己的云服务,与此同时,许多小型的云服务提供商也如雨后春笋般的涌现出来。根据服务的不同类型,云服务可分为laas以及paaS两大类,使用云平台和服务需要大量的经验和技巧。但是,在当前的环境中,云服务还不算完美,还有很多不足的地方,所以我们在使用的过程中还要掌握一些必要的相关知识,只有更了解云服务,才能更好的运用和使用云服务。(作者单位:齐齐哈尔工程学院)

猜你喜欢

模式概念
Birdie Cup Coffee丰盛里概念店
幾樣概念店
学习集合概念『四步走』
聚焦集合的概念及应用
高端饭店业产学研模式研究
永续债券探析
思想政治理论课实践教学研究述评
中学数学创造性教学的模式与策略研究
论间接正犯概念之消解
概念的限制