云计算开发服务平台毕业设计(论文)

云计算开发服务平台毕业设计(论文)
云计算开发服务平台毕业设计(论文)

毕业设计(论文)课题名称:云计算开发服务平台

目录

前言 ....................................................................... II 第一章系统概述 (1)

1.1先电云计算平台架构 (1)

1.2 支撑的多种开发环境 (2)

第二章系统配置 (5)

2.1 前提条件 (5)

第三章安装PAAS软件 (7)

3.1 安装前准备 (7)

3.2 建立安装资源库和安装依赖组件 (7)

3.3 配置域名服务(DNS) (8)

3.4 安装和配置MongoDB数据库 (9)

3.5 安装和配置ActiveMQ消息管理服务 (9)

3.6 安装Puppet MColltive Client端 (10)

3.7 安装PaaS Broker配置身份服务 (11)

3.8 PaaS Broker Plugin的安装 (12)

3.9 PaaS Broker Web Console 的安装 (14)

3.10 安装Node 容器节点 (15)

3.10.1 Broker/Node All-In-One 安装 (15)

3.10.2 Broker/Node 分开双结点安装 (15)

3.11 配置多租户 (16)

第四章使用PAAS平台上部署应用 (17)

4.1 Git 使用说明 (17)

4.1.1 Git 客户端 (17)

4.2 Git Server (18)

4.2.1 本地SSH Git 库搭建 (18)

4.3 部署RHC 客户端管理软件 (19)

4.3.1 RHC 基本环境 (19)

4.3.2 配置RHC (19)

第五章使用PAAS平台部署应用和开发环境 (21)

5.1 Jenkins Server (21)

5.2 WordPress 博客系统 (23)

5.3 部署Node.js项目实践:构建可扩展的Web应用 (26)

总结 (26)

致谢 (28)

参考文献 (29)

前言

云计算(cloud computing)是基于互联网的相关服务的增加、使用和交付模式,通常涉及通过互联网来提供动态易扩展且经常是虚拟化的资源。云是网络、互联网的一种比喻说法。过去在图中往往用云来表示电信网,后来也用来表示互联网和底层基础设施的抽象。对云计算的定义有多种说法。对于到底什么是云计算,至少可以找到 100 种解释。目前广为接受的是中国云计算专家咨询委员会副主任、秘书长刘鹏教授,著云台团队给出的定义:“云计算是通过网络提供可伸缩的廉价的分布式计算能力”。云计算代表了以虚拟化技术为核心、以低成本为目标的动态可扩展网络应用基础设施,是近年来最有代表性的网络计算技

术与模式。

云计算是继 1980 年代大型计算机到客户端-服务器的大转变之后的又

一种巨变。云计算(Cloud Computing)是分布式计算(Distributed Computing)、并行计算(ParallelComputing)、效用计算(Utility Computing)、网络存储(Network Storage Technologies)、虚拟化(Virtualization)、负载均衡(Load Balance)等传统计算机和网络技术发展融合的产物。云计算通过使计算分布在大量的分布式计算机上,而非本地计算机或远程服务器中,企业数据中心的运行将与互联网更相似。这使得企业能够将资源切换到需要的应用上,根据需求访问计算机和存储系统。根据 NIST 的权威定义,云计算有 SPI,即 SaaS、PaaS 和 IaaS 三大服务模式。这是目前被业界最广泛认同的划分。

中国电子科技集团公司第 55 研究所是国家军工骨干研究所之一。南京第五十五所技术南京第五十五所技术开发有限公司(https://www.360docs.net/doc/7019180998.html,)创办于 1987 年,是五十五研究所直属全资公司,公司业务主要涉及建筑智能化、物联网技术应用、云计算技术应用、教学仪器设备、智慧校园、智能电网等。公司研发推出的先电?云计算技术与服务平台采用符合国际云计算标准的、主流云计算厂商、服务商所n纳的三层架构,基于统一的云安全框架搭建。本文主要讲述先电?云计算开发服务平台的构建方法,该平台基于基于业界领先的OpenShift 开源框架,安装和维护中间件、数据库、操作系统、开发环境在内的各类型软件资源,提供给各应用模型和接口,支持用于 Java、Python、PHP、Perl 和 Ruby 等应用开发的框架。采用分布式技术方案解决分布式存储和分布式计算,包含 SQL 和 NoSQL 数据存储,实现平台即服务(PaaS)功能。OpenShift 为云计算的开发人员提供全面的功能集合。

关键词:云计算 PAAS VMware centos6.5

第一章系统概述

1.1先电云计算平台架构

先电云计算平台架构即服务(PaaS),是一个面向开发人员的开发平台。支持用于 Java、Python、PHP、Perl 和 Ruby 的更多的开发框架,包括 Spring、Seam、Weld、CDI、Rails、Rack、Symfony、Zend Framework、Twisted、Django 和 Java E。它包含 SQL 和 NoSQL 数据存储和一个分布式文件系统。为云计算的开发人员提供全面的功能集合。

先电云计算平台架构让用户可以创建、部署、管理云端应用,其云环境可以基于先电IaaS 平台,先电 IaaS 基于磁盘空间、CPU 计算资源、内存资源、网络连接,提供虚拟主机供 PaaS 平台使用。PaaS 的主要组件包括:

系统的组件说明:

1)控制节点:是所有应用管理活动的入口。它主要负责管理用户登录、

DNS、应用状态以及应用服务编排(服务分发)。用户和控制节点交互

主要是通过 Web 管理控制台、CLI 工具或者接口 REST APIs。

2)应用套件:应用容器为应用运行提供了实际所需的功能。每个应用容

器提不同的开发环境软件包,包括服务器,比如 Tomcat、JBoos、

NodeJs、Apache;同是提供运行环境支撑库,比如 Java 、PHP、Python、

Ruby、Perl,同事提供数据库支持,包括 MySQL、MongoDB 等。

3)应用容器:先电 PaaS 是通过容器提供应用运行环境和隔离。

容器:提供了给应用套件运行的容器。一个容器可以运行一个或多个应用。容器可以为应用套件提供按需分配的的内存与磁盘空间。

节点:一台物理机或虚拟机,其中包含多个容器。因为某些容器与并不都是处于运行中,所以一个节点通常会处于超配额状态,即放入

了超过限额个数的容器。

区域:区域定义了一些节点,其中的容器可以方便地进行基于节点的负载均衡。

4)系统的架构图如下:

图1.1 Paas 系统架构图

1.2 支撑的多种开发环境

先电 PaaS 平台支持不同应用类型关系数据库、NoSQL 数据库、Hadoop 分布式文件系统;支持 Tomcat、JBoss、PHP Server 等应用服务器,可以在其之上部署远程办公、电子商务、在线学习等各种 SaaS 应用。此外,OpenShift 也提

供了 DNS 域名管理。

图2 .1 PAAS支持的主流的开源开发框架

基于先电 PaaS 平台,用户可以部署包括企业应用服务器、在线办公、博客系统、电子商务、e-learning 服务、云计算工具、网盘服务、文档阅读服务、开发工

具套件、邮件服务等。搭建起 SaaS 应用服务平台,如下:

图2.2 基于paas可以支撑搭建的软件

第二章系统配置

2.1 前提条件

先电 PaaS 平台部署在先电 IaaS 平台的虚拟机上,虚拟机采用 64 位的CentOS 6.5 的操作系统。

部署 Centos6.5 选择最小安装,或者最小安装加桌面。

PaaS 平台组件包括 Broker 控制部分,包括 Node 容器节点。部署的方案在用选用 Broker和 Node 安装在一台虚拟机之上的方案(All-In-One),或者Broker 和 Node 分别安装在两台虚拟机上。

2.2 网络设置

安装 PaaS 的 VM 的网络 IP 采用 IaaS 的外部 IP,IP 设置成静态 IP。网络架构如下:

图2.1 网络架构图

在配置完网络接口之后,重启启动网络服务使更改生效:

(1)更改主机名

(2)在/etc/hosts 文件中修改 Broker 控制节点主机名。

(3)修改 SELinux 模式为 enforcing,然后重启。

(4)删除/etc/yum.repos.d 路径下的所有 repo 文件,将提供的 repo 文件拷贝到该目录下。

(5)编辑各个 repo 文件,修改成从控制节点的 ftp 路径下获取包。

修改方法:

1、修改 openshift-base.repo 文件

baseurl=ftp://10.0.0.120/openshift-base (注:ip 地址为控制节点

的内网 ip 地址,下同)

enabled=1

gpgcheck=0

2、修改 openshift-epel.repo 文件

baseurl=ftp://10.0.0.120/openshift-epel

enabled=1

gpgcheck=0

3、修改 openshift-origin.repo 文件

baseurl=ftp://10.0.0.120/openshift-origin (注:未注释的那行)

enabled=1

gpgcheck=0

4、修改 openshift-origin-dependencies.repo 文件

baseurl=ftp://10.0.0.120/openshift-origin-dependencies

enabled=1

gpgcheck=0

第三章安装PAAS软件

3.1 安装前准备

安装本系统的执行脚本:

执行命令 yum install paas-xiandian

根据自己的网络规划和 PaaS 平台部署设计,修改/etc/xiandian/config.ini 文件

文件 config.ini 内容:

#配置 broker 节点主机名 host

A_HOST= paas

#配置 node 节点主机名 host

B_HOST=node

#配置域名 https://www.360docs.net/doc/7019180998.html,

A_DOMAIN=https://www.360docs.net/doc/7019180998.html,

#配置 broker 节点 IP

A_IP=192.168.1.130

#配置 node 节点 IP

B_IP=192.168.1.131

#配置数据库密码

A_DBPASSWORD=000000

#配置 admin user 密码

ADMINPASSWORD=000000

#repo_dir

REPOBASE=ftp://192.168.1.120/

#配置网页登录用户名

HTUSER=demo

#配置网页登录密码

HTPASSWORD=000000

修改配置文件后,执行脚本 runbefore.sh。脚本完成相关配置(config)文件的建立根据

提供的 yum 源地址配置 yum 源配置文件。

3.2 建立安装资源库和安装依赖组件

系统安装需要建立安装源、系统运行需要 NTP 服务、运行库依赖 Ruby。

当使用 all-in-one 方案时,执行脚本 paas-pre-host.sh;当分开安装时,Broker 节

点执行脚本 paas-pre-host.sh,Node 节点执行 paas-pre-node.sh。然后重启机器,

以此完成 repo 的安装、NTP 的安装、Ruby 安装。

NTP(Network Time Protocol),是用来使计算机时间同步化的一种协议,它可以使计算

机对其服务器或时钟源(如石英钟,GPS 等等)做同步化,它可以提供高精准度的时间校正

(LAN 上与标准间差小于 1 毫秒,WAN 上几十毫秒),且可介由加密确认的方式来防止恶

意的协议攻击。

CentOS 系统需要安装和设置 SCL Ruby193.Ruby 是 PaaS 平台运行的依赖开发环境。

paas-pre-host.sh 执行结果:

图3.2.1成功结果

3.3 配置域名服务(DNS)

PaaS 的部署环境和应用访问,依赖 DNS 域名服务框架。确保控制节点和计节点主机访

问,解析 PaaS 在节点容器上(Gear)部署的应用的域名访问。域名 DNS 需要安装和配置 BIND

来实现。

在 all-in-one 的虚拟机或分开安装的 Broker 节点执行脚本.

paas-pre-broker.sh

成功标志:

图3.3.1 成功标志

3.4 安装和配置MongoDB数据库

PaaS 系统使用的数据库为 NoSQl 类型的数据库 MongoDB。MongoDB 存储用户(user)、

容器(Gear)和其他必要的信息。MongoDB 是文档数据存储系统,使用 JavaScript 语法进行命

令交互,使用 JSON 格式存储信息。

在 all-in-one 的虚拟机或分开安装的 Broker 节点执行脚本:

paas-install-mongodb.sh

执行后的结果

脚本完成的主要工作有 MongoDB 的安装、创建 MongoDB 的用户“Openshift”,配置后

通过 Mongo 客户端命令进行操作验证。

成功标志:

图3.4.1 成功标志

3.5 安装和配置ActiveMQ消息管理服务

ActiveMQ 消息服务管理器,存储各个消息客户端发送来和派发出去的消息,不限制客

户端应用的实现方式,实现不同编程语言的程序直接的通讯, PaaS 使用ActiveMQ 完成控制节点(Broker)和资源节点(Node)直接的通讯。

在 all-in-one 的虚拟机或分开安装的 Broker 节点执行脚本:

paas-install-activemq.sh

该脚本完成 ActiveMQ、ActiveMQ Client 的安装,ActiveMQ 运行依赖 Jetty Web 应用服务器。

成功标志:

图3.5.1 成功标志

安装完成后,登录 ActiveMQ。

http://IP:8161 需要修改 jetty.xml 其中的 127.0.0.1 为 0.0.0.0

图3.5.2 验证成功标志

3.6 安装Puppet MColltive Client端

在控制 Broker、容器 Node 使用 MCollective 作为消息客户端同消息服务器 ActiveMQ 进行消息通讯, MCollective 实现 Node 节点向 Broker 中ActiveMQ 消息服务器的消息发送和接受。

在 all-in-one 的虚拟机或分开安装的 Broker 节点执行脚本:

paas-install-mcollective.sh

成功标志:

图3.6.1 成功标志

3.7 安装PaaS Broker配置身份服务

PaaS Broker 是 PaaS 控制系统,管理所有的容器节点(Node)、应用部署、应用,同时提

供了通过 Web Console 进行控制的 Web 界面。

PaaS Node 是 PaaS 的容器节点,内部是内容的应用套件,这些应用套件通过PaaS Broker

部署和启动,提供给最终用户使用。二者之间通过 MCollective 和 ActiveMQ 实现消息传递和调用。

在 all-in-one 的虚拟机或分开安装的 Broker 节点执行脚本:

paas-install-broker.sh

在脚本执行过程中,要求输入 key 加密随机数,重复输入 2 次回车,等待脚本执行完成。

图3.8.1 成功标志

该脚本完成 PaaS 认证、消息、域名等功能模块,安装后配置 http 服务,部署PaaS amdin和 PaaS Console Web 应用。

成功标志:

图3.7.1 成功标志

3.8 PaaS Broker Plugin的安装

PaaS Broker 使用插件(Plugin)连接系统安装的服务和 Broker 的对应服务,对应的插

件分别是 DNS、Authentication、消息插件。安装插件后,同时进行正确配置。在 all-in-one 的虚拟机或分开安装的 Broker 节点执行脚本:

paas-install-broker-plugins.sh

执行脚本后启动 Broker服务。通过访问Broker的API json服务进行验证是否安装正确:

执行命令:

Curl -u root:123456 http://localhost:8080/broker/rest/api.json

成功标志:

执行后返回 APIs 的 JSON 描述:

{"api_version":1.6,"data":{"API":{"href":"http://localhost:

8080/broker/rest/api","method":"GET","optional_params":[],"rel

":"API entry

point","required_params":[]},"GET_ENVIRONMENT":{"href":"http:/

/localhost:8080/broker/rest/environment","method":"GET","optio

nal_params":[],"rel":"Get environment

information","required_params":[]},"GET_USER":{"href":"http://

localhost:8080/broker/rest/user","method":"GET","optional_para

ms":[],"rel":"Get user

information","required_params":[]},"ADD_DOMAIN":{"href":"http:

//localhost:8080/broker/rest/domains","method":"POST","optiona

l_params":[{"default_value":null,"description":"A list of gear

sizes that are allowed to be created on this

domain","name":"allowed_gear_sizes","type":"array","valid_opti

ons":["small","medium"]}],"rel":"Create new

domain","required_params":[{"description":"Name of the

domain","invalid_options":[],"name":"name","type":"string","va

lid_option80/broker/rest/domains","method":"GET","optional_params":[],"r

相关文档
最新文档