最近公司在使用其他云服务的同时,要封装自己的云服务,下面作为开发产品前的热身,来了解云计算中的三种服务模式,笔者也是从网络上查找,进行综合总结。请拍。。
三种服务模式
根据现在最常用,也就是比较权威的NIST(National Institute of Standard and Technology)美国国家标准技术研究院定义,云计算主要分为三种服务模式,而且这三层的分法重要是从用户体验的角度出发的:
IaaS
IaaS全拼是Infrastructure as a Service,基础设置即服务,消费者通过Internet可以从完善的计算机基础设施获得服务。例如AWS、OpenStack,CloudStack提供的虚拟机计算服务。通过这种模式,用户可以从供应商那里获得他所需要的虚拟机或者存储资源来装载相关应用,同时这些基础设置的繁琐的管理工作将由IaaS供应商来处理。IaaS能通过它上面对虚拟机支持众多的应用。IaaS主要的用户是系统管理员。
产品
主要包括:Amazon EC2,Linode,Joyent,Rackspace,IBM Blue Cloud和Cisco UCS等。
功能
IaaS云有哪些功能呢?在《虚拟化和云计算》中列出了Iaas的七个基本功能:
资源抽象:使用资源抽象的方法,能更好的调度和管理物理资源。
负载管理:通过负载管理,不仅能使部署在基础上设施上的应用运能更好地应对突发情况,而且还能更好的利用系统资源。
数据管理:对云计算而言,数据的完整性,可靠性和可管理性是对Iaas的基本要求。
资源部署:也就是将整个资源从创建到使用的流程自动化。
安全管理:IaaS的安全管理的主要目标时保证基础设置和其提供资源被合法地访问和使用。
计费管理:通过细致的计费管理能使用户更灵活地使用资源。
SaaS
SaaS全拼是Software-as-a-service ,国内通常叫做软件运营服务模式,简称为软营模式,提供的是软件服务,例如office365等,通过互联网就直接能使用这个软件应用,不需要本地安装。
用户只需要接上网络,并通过浏览器,就能直接使用在云端上运行应用,而不需要考虑类似安装等琐事,并且免去初期高昂的软硬件投入。SaaS主要面对的是普通用户。
主要的产品
salesforce sales cloud,Google Apps,Zimbra,Zoho和IBM Lotus Live等,也包括像网页番茄类似的软件。
Saas的功能
要把你的产品做成SaaS服务给别人使用,需要完成那些功能?
随时随地访问:在任何时候,任何地点,只要接上网络,用户就能访问这个SaaS服务。
支持公开协议:通过支持公开协议(比如Html4/5),能够方便用户使用。
安全保障:SaaS供应商需要提供一定的安全机制,不仅要使存储在云端的用户数据处于绝对安全的境地,而且也也要在客户端实施一定的安全机制(比如Https)来保护用户。
多用户:(Multi-Tenant)机制,通过多用户机制,不仅能更经济地支持庞大的用户规模,而且能提供一定的可指定性以满足用户的特殊需求。
PaaS:
PaaS是Platform-as-a-Service的缩写,意识是平台即服务。通过Paas这种模式,用户可以在一个包括SDK,文档和测试环境等内的开发平台上非常方便的编写应用,而且不论是在部署,或者在运行无需为服务器,操作系统,网络和存储等资源管理操心,这些繁琐的工作都由PaaS供应商负责处理,而且PaaS在整合率上面是非常惊人,比如一台运行Google App Engine的服务器能够支撑成千上万的应用,也就是说,PaaS是非常经济的。PaaS主要的用户是开发人员。把服务器平台作为一种服务提供的商业模式。例如Sea,通过互联网就直接能使用的开发平台,不需要本地安装各类的开发环境。
产品
google App engine , force.com,heroku 和windows Azure Platform等。
作为PaaS的服务功能需求包括:
有好的开发环境:通过SDK和IDE等工具来让用户能在本地方便地进行应用的开发和测试。
丰富的服务:PaaS平台会以API的形式经各种各样的服务提供给上层应用。
自动的资源调度:也就是可伸缩特性,它不仅能优化系统资源,而且能自动调整资源来帮助运行于其上的应用更好地应对突发流量。
精细的管理和监控:通过PaaS能够提供应用层的管理和监控,比如,能够观察应用运行的情况和具体数值(比如吞吐量和反映时间)来更好地衡量应用的运行状态,还有能够通过精确计量应用使用所消耗的资源来更好的计费。
三者服务关系?
三者服务之间没有必然的联系,只是三种不同的服务模式,都是基于互联网,按需按时付费,就像水电、煤气一样,不能说有什么联系,又不能说完全没有联系。
但是在实际的商业模式中,Paas的发展确实促进了SaaS的发展,因为提供了开发平台后,SaaS的开发难度降低了。
从用户体验角度而言,他们之间的关系是独立的,因为他们面对的是不同的用户。
从技术角度而言,他们并不是简单的继承关系,因为SaaS可以是基于PaaS或者直接部署于IaaS之上,其次PaaS可以构建与IaaS之上,也可以直接构建在物理资源之上。
他们之间的关系如下图所示:
核心技术:Maven,Springmvc mybatis shiro, Druid, Restful, Dubbo, ZooKeeper,Redis,FastDFS,ActiveMQ,Nginx
1. 项目核心代码结构截图
项目模块依赖
特别提醒:开发人员在开发的时候可以将自己的业务REST服务化或者Dubbo服务化
2. 项目依赖介绍
2.1 后台管理系统、Rest服务系统、Scheculer定时调度系统依赖如下图:
2.2 Dubbo独立服务项目依赖如下图:
3. 项目功能部分截图:
zookeeper、dubbo服务启动
dubbo管控台
REST服务平台