想要知道软件即服务(SaaS)在云计算中的扮演的是什么角色吗?本篇文章将探究不同风格的SaaS,并给出两个SaaS如何在按需付费的云计算环境中工作的例子 —— 工厂工程管理和远程学习。通过结合多租赁和虚拟化的优点对SaaS进行性能调优。寻找针对未使用资源和互操作性问题的解决方案。最后,如果没有恰当的计划和实现,安全性防护的成本将远远超出SaaS和云计算的价格优势。
简介
如果使用过Amazon Web服务,您一定会对SaaS在云计算中扮演的角色很感兴趣。好消息是您可以基于这些Web服务开发Web感知、云友好的SaaS。您可以将这个SaaS销售给许多用户,比如顾问或产品工程师,并通过更实惠的按需付费方式减少提前购买软件的成本。另一个好处是SaaS在一个集中的位置提供更新,避免经常下载补丁和进行升级。
在本文中,我将向您展示SaaS和云计算之间的异同,并讨论SaaS在云计算中扮演的角色,以及展示它与效用计算和平台即服务(Platform as a service,PaaS)等其他形式的云计算的巨大差别。我还将给出服务类别和应用程序示例,探讨关于结合多租赁和虚拟化的内容。然后,我将论及未使用的资源和互操作性问题,并提供一些相应的解决方案。最后介绍测试SaaS在云计算中的执行情况所需的条件,以及SaaS在安全性方面的问题。
SaaS的成熟度
SaaS已经非常成熟,可以看作是mashup的一部分,或是PaaS产品或基于Internet的服务的一个插件。它提供开箱即用的应用程序,比如企业资源管理或工厂工程管理。不管您身居何处,都可以从Web浏览器访问这个应用程序。
SaaS服务的完善得益于服务器和磁盘上的虚拟平台软件。服务完善程度仅次于它的是PaaS和基础设施即服务(Infrastructure as a Service,IaaS)。服务完善程度最低的是基于Internet的服务。PaaS在磁盘上运行API和虚拟平台软件,而IaaS则通过Internet提供了一个完整的计算机基础设施,并仅为Amazon EC2和IBM Blue Cloud等的用户提供了服务器虚拟化。Amazon S3、Amazon Simple DB和Google Base等都是基于Internet的服务。
示例1:工厂工程管理
我们可以构建一个完善的SaaS,工厂工程公司可以利用它改进生产周期,以及为商品采购、销售和财务交易提供保障。这个SaaS还能帮助决定生产转包中的容量计划所需的业务流程。它的用户群很大,可以是厂长、质量经理、生产线管理员、COO和CFO。
主管人员不仅可以利用SaaS在按需付费的订阅环境中访问数据,他们还可以借助它在财务、工厂工程、生产周期、供应管理和人力资源计划方面做出关键决策。SaaS可充当制造型工厂的决策者的经营业务智能工具。比如,通过SaaS提供的工具可以为决策者提供原料处理时间、生产周期时间和设备更换时间的理想指标。这些工具还可以给出分析,并在某个指标没有达到理想指标时为决策者提供补救措施。
示例2:远程学习
我们可以将一个培训程序构建为SaaS。DigitalChalk的SaaS模型专门针对大学或企业客户,帮助他们通过Web站点传输培训内容(包括远程学习)。在构建这个SaaS时,它创建了自己的Amazon Machine Image(AMI)并使用Amazon S3、EC2和SQS,而不是使用数据中心。
要开发其他的SaaS服务,可以使用EC2将要运行的IBM AMI。其中包括IBM DB2、IBM Informix、IBM Websphere Smash和IBM Lotus Web Content。要扩展AMI存储库,可以使用预先配置好的AMI模板,也可以创建一个包含有应用程序、库、数据和相关设置的AMI。
SaaS服务的分类
Microsoft®将SaaS分为两类:面向企业的服务和面向个人消费者的服务。这两种服务均可通过订阅购买得到。面向企业的服务是用于金融、供应链管理及客户关系等方面的、基于按需付费的大型定制商业解决方案(例如,工厂工程管理)。面向个人消费者的服务的目标是不需要他们付费,而是依靠广告支持获得收入。
由于这两种分类仍然很有限,我这里再增加两个种类:共享资源服务和 外包服务。共享资源服务在一个用户池中分发服务,能够让大型公司以很低的成本能获得峰值的负荷容量,减少了对大型内部数据中心的需求。外包服务则让中小型企业可以通过完全外包数据中心基础设施的方式提供服务(比如,远程学习)。
除了面向个人消费者的服务外,只有企业向大量客户提供服务时,才可能有收益。因为只有客户群足够大,按需付费订阅的低收益才能弥补基础设施的高成本 — 它不像效用计算那样按使用率来收费。除订阅外,收入来源还有介绍费、交易费、基于消费的定价、基于性能的定价、转销收益及收入分成。
最佳性能调优
每个示例都显示SaaS的三个属性:可配置性、可伸缩性及多租赁效率。如果SaaS不具备一个或多个这样的属性,那么这个SaaS就是不成熟的。为了获得更灵活的系统最佳性能调优,可以将多租赁与虚拟化相结合。
多租赁
多租赁是指一种软件架构,在这种架构下,软件的单个实例作为一个SaaS运行,服务于多个客户组织(租户)。对于这种多租户的架构,数据和配置被虚拟分区,以使每个客户组织都能处理一个虚拟的应用程序实例。通过合并单个操作中的IT资源,多租赁节约了成本。
多租赁的一个缺点就是当用户的基数很小时,它也要占用大量的内存和进行大量的应用程序处理。当用户基数很大时,由于负荷可以在多个用户间分摊,就克服了这个缺陷。多租赁的另一个缺点就是构造一个高效的多租赁应用程序可能需要额外的编程,这就增加了开销。
虚拟化
SaaS架构中的服务器虚拟化不局限于多租赁的数据和配置虚拟分区。虚拟化的好处之一就是它能通过动态调整实际服务器的数量以及资源的合理大小(包括存储和数据库资源),从而提高系统的容量以满足需求(比如在12月份购买会增加)。不好的一面是,由于虚拟化软件互操作性方面的问题,虚拟化后的服务器有可能不能从一个厂商转移到另一个厂商。
问题1:未使用资源
运行在Web服务之上的SaaS利用SOA在软件应用程序之间进行交互。每个软件服务均可充当一个服务提供者或请求者。SaaS服务提供者通过公共代理向其他应用程序公开其功能。SaaS服务请求者合并来自其他服务的数据和功能。二者均在SaaS服务的部署和管理上因经营规模扩大而得到节约。
不管资源是否缺乏,Web服务通常会松散地耦合。要确保用于服务器提供者和请求者的资源在容量随需求上下波动时不会被浪费,需要创建一个具有耦合开关的Web服务以配合SaaS应用程序。当Web服务收到一个告警表示其对应的资源已经达到特定的浪费级别时,这个开关就会从松散耦合倒向紧密耦合。
问题2:互操作性问题
如果您的SaaS是Web感知、云友好的,公司可能会发现很难对不同的厂商运行同一个SaaS应用程序,因为这些厂商可能具有不同的导入和导出数据的格式。考虑这样一个场景:假设您有两个SaaS应用程序需要mashup。一个在某个厂商的云计算环境中使用了行业标准API。另一个则在另外一个厂商的云计算环境上运行了专有API。不经过某些修改,这种mashup将不能工作。
首先必须解决这两个云计算厂商间的可移植性问题。这两个厂商是已经允许两种环境之间的通信,还是必须要对二者间的数据进行处理?这两种类型API的数据格式和逻辑是兼容的,还是必须要重新格式化两个应用程序间的数据或更改逻辑?目前,还没有API导入和导出数据的相关标准。不过,IBM和Amazon正在共同努力以使互操作性和mashup更易于设计和管理。
测试非常关键
作为软件开发的一部分,测试可以确保云计算和SaaS能正常工作。为了提高服务质量,也需要进行SaaS服务和应用程序的测试。为了开始测试,需要仿真终端用户环境,比如多个Web浏览器、操作系统和网络连接性。没有这些条件就不是一个好开端。例如,一个Web浏览器有的特性,另一个浏览器可能没有。特性的缺少有可能会影响用户访问云计算中的SaaS服务的方式或者未使用资源如何处置的方式。
接下来,测试是否有多租赁漏洞,比如由于软件漏洞,用户A得以假冒成用户B。其他需要进行测试的还有:在系统负载正常的情况下,用户使用的扩展范围是多少。在按需付费的环境中如何最好地管理专有密钥。云中的大量数据应如何备份和存储。在SaaS模型中,版本控制和更改管理并非客户行为,但必须对其进行须测,以确保它们能被充分验证。同样重要的是要测试SaaS是否满足垂直需要,因为SaaS是一个水平应用程序。
要记住,与部署于典型的数据中心环境中的产品相比,云中的SaaS产品有着不同的部署和使用条件。因此,基于云的应用程序的测试要求也是不一样的。例如,SaaS产品可以在用户不知情的情况下被更改。由于集中化的管理使进行微小更新变得更为容易,SaaS部署模式的发布与其他模式相比更为频繁,因此SaaS产品的客户支持周期更短些。然而,如果不经过充分测试就频繁进行更改,这种短的发布周期就会给用户造成很大的麻烦。
购买、维护与运营测试所需基础设施成本非常昂贵。在SaaS基础设施不断增长时,设置功能、回归、性能和压力测试的成本肯定不会低。在一个SaaS产品最终发布前,需要建立Alpha和Beta测试环境来获取潜在用户的反馈。因此,提前计划并赢得一个大的市场份额至关重要,只有这样才能从价格低廉的订阅中实现盈利,并且抵消昂贵的测试成本。
安全性问题
在按需付费的基础设施中,灾难恢复、专用密钥管理和控件行为公开是SaaS环境中的主要安全性顾虑。如果不进行适当的计划和实现,那么安全防护的成本很可能会远远超出SaaS及云计算的经济优势。
灾难恢复
在2008年初Amazon的S3和EC2遭遇了一次三小时停机后,针对灾难恢复提前进行计划就显得尤为重要。在停机期间,用户错过了很多销售机会,主管人员也无法访问关键业务信息。停机所产生的影响要远远超出了一个SLA所提供的数据恢复和服务信用。
在没发生停机之前,用户不妨自己进行安全性测试,以检查SaaS供应商是否可以很快地恢复数据。这个测试很简单:只要给供应商发一封电子邮件索要您的存储数据,并检查此供应商恢复这些数据要花多久。如果恢复所需时间太长,请询问此提供商其中的原因以及您在其他的情形下可以获得多少服务信用。即便恢复大量数据所需的时间很短,也要验证校验和能否与原始数据匹配。另外,还需要在高峰时和低谷时测试灾难恢复。
数据保护
测试一种可信算法来加密您看得见的本地计算机上的数据,然后再用解密密钥访问您在云中看不见的远端服务器上的数据。这个测试非常必要。如果试图访问数据时无法读取数据,原因之一是解密密钥无效,原因之二是遭服务器拒绝,因为此提供商使用的是自己的加密算法。请询问您的提供商它所使用的是哪种加密算法。
云中的数据也可能存在一些问题。要保护数据,最好是管理自己的专用密钥。请咨询提供商有关专用密钥管理的相关信息。如果在Amazon上注册,它将会给您这种证书。
控件行为公开
并非所有提供商都愿意公开它在SaaS环境中是如何管理控件行为的。有些提供商具有审计其控件行为的策略。
请询问您的提供商在向用户公开控件行为和过程时使用的是不是SAS 70 Type II认证。这种认证可以确保数据中心(包括云计算内的访问和镜像数据中心)具有完善的更改管理文档、备份和恢复需求、灾难恢复需求以及物理级安全需求。如果它不是认证的,那么就要询问此提供商如何能够获得它管理控件行为方式的信息。如果您对您的提供商的程序质量很满意,那么就无需这种认证。Amazon已经在一篇文章中公布了其安全处理,请参见参考资料小节。
结束语
本文帮助您规划云计算中SaaS的开发和管理。用户希望通过廉价订阅按需付费的基础设施来获得服务,这为开发人员和项目团队中的其他人员带来了挑战。认识并解决开发和管理SaaS的问题,包括潜在的安全性问题,能够让您的团队免受麻烦的干扰。使用IBM Rational Web Developer WebSphere Software和IBM Rational ClearQuest发现缺陷并跟踪使用IBM AIM构建的SaaS应用程序可以实现这个目标。
关于作者
Judith M. Myerson是一位系统工程师兼架构师。她感兴趣的领域包括中间件技术、企业级系统、数据库技术、应用程序开发、网络管理、安全性和项目管理。
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
相关推荐
-
谷歌云业务CEO描绘谷歌云计划 收购传言四起
行业观察人士猜测,新任谷歌云首席执行官Thomas Kurian将通过大规模收购来获取市场份额,并与竞争对手A […]
-
Workday公司继续在亚太地区大举投资
随着亚太地区(APAC)地区越来越多的企业转向云计算来拓展其数字业务,Workday公司跻身为全球发展最快的云 […]
-
华为“一云一湖一平台”架构助力客户加速智能化进程
在第十五届华为全球分析师大会上,秉承“智IT,慧未来”的理念,华为IT产品线分享了IT基础设施在数字化转型过程 […]
-
云计算可移植性的来龙去脉
目前云计算提供商都是按不同的方式构建其产品,这造成典型的“缺乏标准、以创新为导向以及供应商锁定”的局面。 但供 […]