设为首页 收藏本站
查看: 2211|回复: 0

[经验分享] Redhat OpenShift 云计算平台试用小记

[复制链接]

尚未签到

发表于 2016-5-15 07:22:29 | 显示全部楼层 |阅读模式
  
  
DSC0000.png
 OpenShift 是 redhat 公司推出的一个 PaaS 云计算应用平台,开发者可在上面构建、测试、部署和运行应用程序,它支持 Java, Ruby, Node.js, Python, PHP, Perl 等众多语言环境和开发框架,并且支持 MySQL, PostgreSQL, MongoDB 等数据库服务。最重要的是,它的整个体系都是开源的,这和 IaaS 开源云计算软件 OpenStack 一样,对于拥有硬件资源而希望部署云的服务提供商来说很有研究价值。

一、再谈云计算
  云计算这个名词已经被炒翻了天,但到底什么是云,很多人其实仍在云里雾里。根据 NIST 的权威定义,云的服务模型,分为以下三种:
  




  • DSC0001.jpg
     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,国内的阿里云
  可见,三种模型从应用到平台再到架构,越来越底层,用户得到的可操作性和灵活性也越来越大。
  
  
DSC0002.jpg
 Red Hat 称,IaaS 和 PaaS 的特定实现既不应该是供应商锁定,也不应该受控于供应商。不同的架构阻碍了不同云之间的数据迁移。为了让云计算保持开放和活力,云端的实现应该走向真正的开放,不仅仅是在许可证上,而是也应该在管理方式上。OpenShift 将在这方面起一个标杆作用。反观某浪的 app engine,限制本地 I/O 读写和很多函数,要求开发者使用该平台的特有版本,这样一个封闭的环境实在是让人吐槽无力。
  

二、开通 OpenShift 服务
  目前在 Red Hat 的 OpenShift 上可以免费创建三个 app,提供 1.5G 内存和 3G 存储空间。

1. 使用 Web 方式
  (1)注册
  通过注册链接进行登记,这个很简单,不多说。
  (2)新增应用
  注册并 Email 激活完成后,登录管理后台,添加你的第一个应用。
  
  
DSC0003.png
 这时 PaaS 的优势就开始显现了,它提供了各种语言的平台给你选择,包括 Ruby, Python, PHP 以及当前热门的 Node.js 等等,与此同时还提供一些开发应用框架的一键安装,比如 ROR, WordPress 等等。
  选好自己的应用类型后,会进入配置页面,需要给你的应用添加一个二级域名。二级域名由“应用名”和“命名空间” 两部分组成,“命名空间”是和帐号绑定的,以后新增其他应用也会用到,不能再更改(已经可以更改了,不过所有应用的URL都会改变,成本很大),需要慎重选择。另外,应用创建后还可以绑定自己的顶级域名。
  
  
DSC0004.png
 这样,应用就创建成功了。接下来就是向服务器上传自己代码。OpenShift 使用 Git 来部署代码,你需要熟悉 Git 命令行的操作。另外值得一提的是,如果你按照上面 Web 的方式创建了第一个应用,在部署代码前你需要设置一个 RSA 密钥。
  
  
DSC0005.png
 这和 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 各种语言框架的上手指南

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-217063-1-1.html 上篇帖子: redhat as4下Mysql5+php5+apache2.2.4+GD2安装 下篇帖子: RedHat 9.0下配置FTP服务器zz
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表