尼洪涛
摘要:近年来,云服务的概念越来越火,它是一种以云计算的模式将网络中的各种软硬件资源整合起来,实现数据的储存、处理、共享的托管技术。越来越多的企业选择将自己的系统部署到云平台上,这样不仅节省下来购置服务器的费用,而且也使得系统更加稳定,企业则可以专注于自己的业务发展。文章首先介绍—下云服务的基本概念,然后从一个Web项目部署到云平台的需求入手,简单分析—下其中遇到的一些问题以及相应的解决方案。
关键词:云服务;Web项目;部署
1 基本概念
很多人都听说过“云服务”,但“云”只是一个比喻,大家并不知道它到底是什么。下面就简单介绍一下云服务的基本概念。 云服务并不是一个单一的服务,它主要分为3种模式:基础设施即服务(Infrastructure-as-a-Service,IaaS)、平台即服务( Platform-as-a- Service,PaaS)、软件即服务(Software-as-a-Service, SaaS).
1.1 IaaS
以提供服务器,存储和网络硬件为服务的。如果一个企业想要在服务器上运行一些企业的应用,只需要租用云服务公司的IaaS服务即可,IaaS会提供给你所需要的一切硬件设备。这样既节省了购买硬件的成本,也无需对硬件设施进行维护。通俗地讲IaaS就是提供裸机的租用服务。
1.2 PaaS
以提供开发和分发应用的解决方案为服务的。比如提供虚拟服务器和操作系统,网络安全,数据存储以及应用开发工具等。大多数公司的开发都是在这一层进行,它使得不同开发部门之间的合作变得更容易。通俗地讲PaaS就是提供安装了操作系统和常用软件的服务器网络的租用服务。
1.3 SaaS
一种通过Internet提供软件服务的模式,用户不需要再购买软件,而改为向软件提供商租用基于Web的软件服务,来管理企业经营活动,且无需对软件进行维护,服务提供商会全权管理和维护软件。通俗地讲SaaS就是提供通过网络访问我们所需要的软件的租用服务。
2选型分析
下面结合笔者不久前做过的一个项目来进行具体分析。现有ORACLE公司一套成熟的PLM产品,以下简称APLM。该产品由java语言开发,主要运行在Linux平台上,需要在服务器上预装JDK,Oracle DB,Weblogic等第三方软件。目前APLM产品均部署在客户自己公司的服务器上,客户希望能将APLM产品部署在ORACLE公司的云平台上,可通过简单地配置实现快速部署。
云服务有3种模式,到底选用哪种云服务模式来实现APLM产品在云平台上的部署呢?
最初的设想是采用IaaS服务,提供服务器裸机由客户自行安装APLM产品,这种模式最简单,但其实与现有的非云平台部署模式并无太大的区别,客户依然需要先安装所有需要的软件,再安装APLM产品,并没有体现出云服务的优势。
其次设想过采用SaaS服务,在云平台上提供一个已经安装配置好APLM产品的系统镜像文件,客户只要将系统镜像文件挂载在云平台服务器上即可使用,可谓简单快速。但实际上这种模式也不可行,因为APLM产品复杂,客户的配置千差万别,DB不同,部署模式不同,仅提供一個已经安装配置好的APLM产品并不能满足所有客户的需求。
所以最适合的是采用PaaS服务。设计方案同样为提供一个系统镜像文件,先在镜像文件中预装APLM产品安装运行时所需要的第三方软件,省去了安装这些第三方软件的时间,同时在镜像文件中包含APLM安装文件(云平台定制版),当客户将系统镜像文件挂载到云平台服务器上的时候,只需通过简单的客户化配置即可完成安装,开始使用。类似于我们新买手机第一次开机时的配置过程。
3 问题及解决方案
ORACLE公司为了方便开发公有云服务(ORACLEPublic Cloud,OPC),提供了一套叫作虚拟机服务器环境(Oracle VM Server,OVS),它模拟了真实的OPC运行环境,可以在它上面进行云服务开发和测试工作,同时开发完成后可方便地将整个系统打包成为OPC可用的系统镜像文件,并上传部署到OPC。
由于APLM产品主要运行在Linux平台上,我们采用了常用的Oracle Linux 6.8操作系统为模板来制作镜像文件。
APLM产品通过InstaIIAnywhere这款第三方软件制作安装文件的,安装时通过交互式的窗口来收集用户输入的产品配置信息。但在OPC的Linux操作系统中,为了安全性,默认是没有提供VNC服务的,没有可视化界面之前的安装文件便无法安装,需要对原有的安装文件进行修改。
其实用InstaIIAnywhere制作的安装文件,在可视化配置界面一步步引导用户输入配置信息的时候,只是在收集配置信息,真正的安装过程并未开始。等到所有配置信息收集完毕,最后会生成一个包含所有配置信息的c onfig.property文件,真正安装时会读取该配置文件。
本文设计了3种方式来生成用户的配置文件。
(l)将可视化界面的这些配置步骤用Linux scripts脚本来代替,采用命令行问答的方式引导用户输入所有配置信息,同时生成config.property文件,将用户输入的信息写入到该文件中。
(2)提供一个包含所有默认配置信息的config.property文件,安装时如果用户选择默认安装的方式,则直接读取该文件。
(3)用户可以自己定义一个config.property文件,或者复制之前安装过程中生成的配置文件。安装时用户可以指定配置文件的路径,读取其中的配置信息。
通过上面的3种生成配置文件的方式,我们可以跳过APLM原有的通过可视化界面收集客户配置信息的过程,同时第2种、第3种生成配置文件的方式更是极大地简化了客户的输入操作。
APLM产品提供单机和集群两种部署模式,同时OPC也提供数据库云服务( Database Cloud Service,DBCS),将一台或多台数据库服务器部署在云平台上的。因此我们的部署方式也更加丰富灵活。
本文提供了如下3种部署方式。
(1) All-in-one部署方式,将所有软件(包括APLM产品、第三方软件、数据库等)全部安装在一台云服务器上。此种部署方式主要用于客户体验和培训。
(2) Multi-Node部署方式,即分布式的部署方式。可根据客户需求将APLM产品安装在不同的云服务器上。如单独的Admin Node服务器,一个或多个Managed Node服务器,一个Admin Node+ -个或多个Managed Node服务器,单独的数据库服务器等。此种部署方式最为常见。
(3) DBCS部署方式,类似于分布式的安装方式。将其中的数据库服务器用DBCS服务所替代,APLM产品直接连接DBCS服务。
不仅支持3种部署方式,而且还要支持多种数据库的导入。All-in-one模式因为主要用于客户体验和培训,因此导入的是Demo数据库,非常小。但是后两种模式要导入的是客户的数据库,大小差别很大。如果按照客户最大的数据库空间需求预留,显然对于其他不需要大空间的客户会造成浪费。因此按照最小空间需求All-in-one模式制作系统镜像文件(大小在40 G左右),然后根据客户选择数据库的种类动态分配额外的硬盘空间。
OPC支持标准的REST API,我们调用REST API来动态分配硬盘空间。
首先通过用户名和密码连接OPC,获取到OPC的Cookie。
最后利用获取到的Cookie调用REST API,分配硬盘空间。
完成配置信息的收集和硬盘空间的分配,接下来就是软件安装的过程了。软件安装的过程与原来的一致,无需修改,在此不再赘述。
4结语
本文主要介绍了云服务的一些基本概念,以及将一个已有的Web项目部署到OPC上3种云服务的选型分析,部署中遇到的两个技术难点以及解决方案。当然整个部署过程还有其他很多工作需要完成,由于篇幅所限不再一一介绍,以后有机会再进行深入探讨。