OpenShift 是 redhat 公司推出的一个 PaaS 云计算应用平台,开发者可在上面构建、测试、部署和运行应用程序,它支持 Java, Ruby, Node.js, Python, PHP, Perl 等众多语言环境和开发框架,并且支持 MySQL, PostgreSQL, MongoDB 等数据库服务。最重要的是,它的整个体系都是开源的,这和 IaaS 开源云计算软件 OpenStack 一样,对于拥有硬件资源而希望部署云的服务提供商来说很有研究价值。
一、再谈云计算
云计算这个名词已经被炒翻了天,但到底什么是云,很多人其实仍在云里雾里。根据 NIST 的权威定义,云的服务模型,分为以下三种:
-
Software as a Service (SaaS):软件即服务模型,用户直接使用构建在云端的软件。例如,Google Docs, Salesforce.com,甚至是 Web Email 也是云计算,因为我们抛弃了客户端。 - Platform as a Service (PaaS):平台即服务模型,用户使用云平台所支持的语言和工具,开发应用并部署在云平台。例如,Google App Engine, Force.com,国内的 Sina App Engine
- Infrastructure as a Service (IaaS):基础架构即服务模型,提供处理器、存储、网络等(虚拟)硬件资源给用户,用户可任意安装软件和开发环境,包括安装操作系统。例如,Amazon EC2, Joyent,国内的阿里云
可见,三种模型从应用到平台再到架构,越来越底层,用户得到的可操作性和灵活性也越来越大。
Red Hat 称,IaaS 和 PaaS 的特定实现既不应该是供应商锁定,也不应该受控于供应商。不同的架构阻碍了不同云之间的数据迁移。为了让云计算保持开放和活力,云端的实现应该走向真正的开放,不仅仅是在许可证上,而是也应该在管理方式上。OpenShift 将在这方面起一个标杆作用。反观某浪的 app engine,限制本地 I/O 读写和很多函数,要求开发者使用该平台的特有版本,这样一个封闭的环境实在是让人吐槽无力。
二、开通 OpenShift 服务
目前在 Red Hat 的 OpenShift 上可以免费创建三个 app,提供 1.5G 内存和 3G 存储空间。
1. 使用 Web 方式
(1)注册
通过注册链接进行登记,这个很简单,不多说。
(2)新增应用
注册并 Email 激活完成后,登录管理后台,添加你的第一个应用。
这时 PaaS 的优势就开始显现了,它提供了各种语言的平台给你选择,包括 Ruby, Python, PHP 以及当前热门的 Node.js 等等,与此同时还提供一些开发应用框架的一键安装,比如 ROR, WordPress 等等。
选好自己的应用类型后,会进入配置页面,需要给你的应用添加一个二级域名。二级域名由“应用名”和“命名空间” 两部分组成,“命名空间”是和帐号绑定的,以后新增其他应用也会用到,不能再更改(已经可以更改了,不过所有应用的URL都会改变,成本很大),需要慎重选择。另外,应用创建后还可以绑定自己的顶级域名。
这样,应用就创建成功了。接下来就是向服务器上传自己代码。OpenShift 使用 Git 来部署代码,你需要熟悉 Git 命令行的操作。另外值得一提的是,如果你按照上面 Web 的方式创建了第一个应用,在部署代码前你需要设置一个 RSA 密钥。
这和 Amazon AWS 平台恰恰相反,AWS 会在云端生成密钥对,并将私钥下载给你。而这里是让你自己生成公钥和私钥,并将公钥上传给 OpenShift。虽然用户自己生成密钥看上去更安全,但无形中也增加了用户的使用壁垒。下面就是在 Linux 下使用 openssl 命令生成密钥对的方法
$ openssl genrsa -out privatekey.pem 1024 $ openssl rsa -in privatekey.pem -out publickey.pem -pubout |
用文本编辑器打开 publickey.pem,将里面的字符串粘贴到上图中的网页文本框中提交即可。
2. 使用命令行方式
如果使用命令行方式,则会自动创建密钥对,比较方便。参考“如何开始”指南,Windows 用户需要安装 cygwin 模拟 Linux 环境,包括 openssh、ruby、make、gcc、git 等等。考虑到 Ubuntu 用户比较多一些,下面是 Ubuntu 的操作流程
# 安装rhc工具 $ sudo apt-get install git ruby rubygems $ su -c 'gem install rhc' # 创建命名空间(慎重选择名字) $ rhc domain create -n mydomain -l rhlogin Password: (type... type... type...) # 创建应用 $ rhc app create -a myapp -t php-5.3 Password: (type... type... type...) # 部署代码 $ cd myapp $ vim php/index.php (Make a change... :wq) $ git commit -a -m "My first change" $ git push |
3. 添加模块
一般应用都需要使用数据库以及其他辅助工具,OpenShift 也提供这些工具,十分方便。在网页管理后台中点击“My Applications”进入应用,选择“Add Cartridges”就可以看到有很多数据库可供使用,包括 MySQL, PostgreSQL 以及 NoSQL 数据库 MongoDB 等等。
或者使用命令行工具添加模块
$ rhc app cartridge add -a myapp -c mysql-5.1 |
三、搭建 wordpress 博客
现在 OpenShift 为了简化应用创建,提供了 WordPress 等常用软件的一键搭建,在上面“新增应用”的截图中都可以看到。不过为了熟悉代码部署的方式,我们还是使用 rhc 命令行把新建 wordpress 的整个流程走一遍,这也可以作为搭建其他语言类型应用的参考。
# 新建一个名为wordpress 的 php-5.3 应用 $ rhc app create -a wordpress -t php-5.3 # 添加 mysql 支持 $ rhc app cartridge add -a wordpress -c mysql-5.1 # 下载 wordpress 代码到本地 $ cd wordpress $ git remote add upstream -m master git://github.com/openshift/wordpress-example.git $ git pull -s recursive -X theirs upstream master # 上传代码到 openshift 服务器 $ git push |
完成。访问你的 wordpress:
http://wordpress-$yournamespace.rhcloud.com
默认帐号为admin/OpenShiftAdmin
如果要绑定自己的域名,可以用以下命令:
$ rhc-ctl-app -a wordpress -c add-alias --alias blog.lovelucy.info |
然后添加 blog.lovelucy.info 域名的 CNAME 到 wordpress-$yournamespace.rhcloud.com
需要注意的是, git push 会把本地仓库推送到远端的代码仓库里,同时还会重写远端应用目录下的 repo 目录(就是 www 服务的根目录)。而这个过程似乎是覆盖式的重写,如果里面有不在仓库里的文件或目录,之后也会丢失。在 WordPress 管理页面里更新插件安装中文包,然后经过 push 后这些都没了。这也意味着,这个博客的更新,主题安装等都需要先在本地搞好、提交到本地的 git 仓库之后,通过 push 上去,才算可以使用,直接在 WordPress 管理界面更新、安装主题等,会被以后的 push 灭掉。或者可以先 pull 再 push。关于 git 的使用,我也才刚刚开始学习。
经过测试,发现服务器 I/O 性能十分不错。Ping 了一下,欧洲和美国的用户访问都很快,只不过 Red Hat 可能没有在亚洲部署服务器,在中国访问网站连接速度不是很理想。
四、总结
根据 NIST 的定义,云计算服务至少应该包含如下几个特征:
- On demand 按需服务。用户可以自己定义自己需要多少资源,灵活配置,不必为用不到的资源付费。例如某个网站应对高访问量只需要更多的 CPU 和 内存,而硬盘存储则不必很多。
- Broad network access 可访问性。不论你是使用电脑、笔记本、手机,不论你使用什么网络,只要你连接上了 Internet,你就可以获取到你的计算资源。所以说云是瘦客户端的。
- Resource pooling 资源池。云的提供商应当给用户提供计算、存储、网络等资源,用户按需索取,而不必理会底层细节。例如云服务供应商的服务器可能遍布各大数据中心,但对用户来说,他看到的只是 CPU 内存等资源,他不需要知道自己所使用的资源到底在哪一台物理设备上,也就不会受限于这些因素。
- Rapid elasticity 快速伸缩。用户可以没有限制地对自己的资源进行调整,平滑过渡,立即生效。例如给自己的服务器增加计算能力,或者获取更多的网络带宽,指令发出后自动执行。
- Measured service 服务可测量。云系统应该可以监控、报告自身资源的使用情况,甚至自动进行调整优化,无需人工干预。另外就是可以根据使用量来进行计费。
前两年的时候,云计算、物联网等概念炒作得十分火热,国内却基本没有看到任何实质的产品出现。政府跟风起哄,投入了很多,基本上都是被伪装为砖家的商人给骗了,资金都被挪去搞了房地产。现在,物联网基本上也没怎么提了,不过整个数据中心的技术却是已经有了实质性的进展,很多主流互联网公司都在自己建立数据中心。海量存储、MapReduce 并行计算,虚拟化等等技术不断在进步和创新。在借鉴国外先行者成功的基础上,国内很多互联网公司也有了不少积累。在移动互联网时代,由于终端设备的计算能力限制,云计算会有非常大的发展前景。
参考链接:
在OpenShift中部署ROR应用
在Red Hat OpenShift平台部署Django应用
OpenShift 各种语言框架的上手指南
相关推荐
redhat 的云计算的介绍pdf文档,红帽云计算是开源云计算平台。对于我们研究云计算有一些帮助。
IBM RedHat OpenShift Container Platform版本V4.7.X 环境构建操作指南
RedHat关于OpenShift的线上培训课件
Red Hat OpenShift是一个基于容器应用的开源平台,它使用Docker容器技术为应用程序提供一个全生命周期的管理环境。同时,它利用Kubernetes来管理容器的编排和部署,支持自动化、快速扩展和容器化应用程序的运维。...
《Red Hat OpenShift Administration》是针对企业级容器化平台Red Hat OpenShift的管理指南,它涵盖了OpenShift的基础架构、安装部署、操作维护以及安全管理等多个重要领域。OpenShift是由Red Hat公司开发的一个开源...
openshift 是一个基于 Kubernetes 的容器应用平台,提供了自动化部署、扩展和管理容器化应用程序的功能。本文档将指导用户如何在 Red Hat 8.1 操作系统上使用 PXE 安装 openshift 4.3.8,包括环境信息、安装过程和...
Introduction to Containers, Kubernetes, and Red Hat OpenShift.zip
"OpenShift平台OC命令练习手册" OpenShift是一款基于Kubernetes的云原生应用平台,提供了快速开发、托管和扩展应用程序的能力。OpenShift平台基于Kubernetes项目,提供了安全、可靠和可扩展的应用程序编排方式,...
openshift-php7-phalconphp2 在RedHat openshift上安装nginx,php7和phalconphp 2框架
开放式PHP 在 RedHat 的 Openshift PaaS 上构建和设置 Apache-2.4 和 PHP-5.6如何开始:作为子模块 $ git submodule add git://github.com/m6w6/openshift-php.git .openshift作为合并子树 $ git remote add ...
红帽 OpenShift ASCII 标志 :sparkles: 红帽 OpenShift 作为 ASCII 艺术。 半手动完成,您不能直接使用 转换图像,圆形会扭曲成椭圆形对象)。 此外,还包含一个 shell 脚本,以便您可以直接使用它在 CLI 上获取输出...
**Red Hat 云计算解决方案**是一种基于开源技术构建的云平台解决方案,它为用户提供了一个灵活且可扩展的基础架构,支持从传统的数据中心到混合云环境的各种应用场景。Red Hat 提供的云解决方案主要包括 Red Hat ...
Ansible-azure-openshift.zip,azure上的redhat openshift origin cluster azure上的redhat openshift origin cluster,ansible是一个简单而强大的自动化引擎。它用于帮助配置管理、应用程序部署和任务自动化。
在构建企业云计算平台时,虚拟化软件的选择是至关重要的,因为它直接影响到企业的IT效率、成本效益和业务连续性。这份“企业云计算平台虚拟化软件选型方案”详细地阐述了如何进行这一关键决策过程。 首先,导言部分...
RedHat OpenShift培训此仓库包含基于从RedHat接受的培训的笔记内容模块1应用程序管理基础应用程序存储基础机器集,机器和节点基础架构节点和运营商部署和管理OpenShift容器存储Ceph简介OpenShift日志聚合使用...
A guide for RedHat OpenShift PaaS platform for beginners
快速入门-Redhat-OpenShift AWS云上的Red Hat OpenShift容器平台 本快速入门以高可用性配置在AWS云上部署Red Hat OpenShift容器平台。 红帽OpenShift容器平台是基于Docker格式Linux容器,Kubernetes编排和红帽企业...
为 OpenShift 播放框架 2 (已弃用) 仅用于历史目的 快速预配置 非常容易阅读和修改。 事实上,你必须阅读它,因为你会忍受它。 使用此配置应用程序不会中断,也不会被修改。 它不是一个循序渐进的指南,它需要对...