openshift_通过OpenShift超越云炒作

openshift

您是否厌倦了为应用程序请求新的开发机器? 您是否为必须为应用程序设置新的测试环境感到烦恼? 您是否只想专注于和平开发应用程序而不会一直“沉迷于堆栈”? 我们听到你的声音。 我们也去过那里。 不用担心,OpenShift就在这里!

在本文中,您将通过简单的步骤逐步了解如何使用OpenShift在云中设置一台,两台,三台而不是五台新计算机。 您将部署您的应用程序以进行开发,测试或在数分钟之内将它们全面展示给全世界。 没有更多的混乱。

我们首先概述什么是OpenShift,它来自何处以及如何在工作站上获得客户端工具设置。 然后,您将浏览客户端工具,因为它适用于OpenShift的入门级(称为Express)。 在几分钟之内,您将回到并专注于您的应用程序开发,进行部署以在OpenShift Express中对其进行测试。 完成后,您将只丢弃测试机器并继续前进。 掌握了这一点之后,就该使用OpenShift Flex将其提升到一个新的水平了。 这稍微开放了您的选项,因此您可以对可能需要更多火力的复杂应用程序和部署执行更多操作。 此后,您将完全有能力在选择时,需要的地方并立即注意进入OpenShift Cloud。 这就是开发应该的样子,没有堆栈干扰的开发。
介绍

现在,在IT世界中,有关云的宣传大肆宣传。 对于IaaS,PaaS和SaaS之类的各个领域,不乏首字母缩写词。 OpenShift是Red Hat的平台即服务(PaaS),它为您提供了运行应用程序的平台。 对于作为开发人员的您来说,您想要查看将应用程序作为仅提供的服务放置的环境。 您无需理会该服务如何由一组组件构造,如何配置或在何处运行。 您只想利用他们提供的此服务来部署,开发,测试和运行您的应用程序。 在此基本级别上,OpenShift为您的Java应用程序提供了一个平台。

首先,让我们快速了解一下OpenShift的来源。 它始于一家名为Makara的公司,该公司位于加利福尼亚的红木城,提供的解决方案使组织能够在私有或公共云上部署,管理,监视和扩展其应用程序。 红帽在2010年11月收购了Makara,第二年他们将红帽技术合并到一个名为OpenShift [1]的新项目中。 他们启动了第一个项目,最初提供两个级别的服务[2],即称为Express的共享托管解决方案和称为Flex的专用托管解决方案。 对于Java开发人员来说,这种技术融合的有趣之处在于,Red Hat在OpenShift [3]中包含了基于JBoss AS 7的下一代应用程序平台。 这为您的所有开发需求带来了快速的闪电应用平台。

OpenShift Express

OpenShift网站指出:“ Express是一个免费的基于云的应用程序平台,适用于Java,Perl,PHP,Python和Ruby应用程序。 它非常简单,您的开发环境也是您的部署环境: git push ,“您就在云中。” 这使人们的兴趣达到顶峰,因此请尝试一下,看看是否可以将我们的Web应用程序提升到云端。 为此,我们有我们的jBPM迁移Web应用程序[4],在本练习的其余部分中,我们将使用它作为运行示例。

Express入门在网站上有很好的记录,可以作为快速入门[5],一旦您注册了Red Hat Cloud(rhcloud)帐户,便可以开始使用。 快速入门为我们提供了使我们的应用程序联机所需的四个步骤,并从安装必需的客户端工具开始。 这是针对Red Hat Enterprise Linux(RHEL),Fedora Linux,通用Linux发行版,Mac OS X和Windows概述的。 对于RHEL和Fedora,这是一个简单的软件包安装,其余的是基于Ruby的gem安装,我们将留给读者将其应用于她的系统。

一旦安装了客户端工具,就会有多个基于rhc- <command>形式的命令。 有可用的在线界面,但是大多数开发人员更喜欢命令行客户端工具提供的控件,因此我们将使用它们。 以下是对可用内容的概述,并简要介绍了每个可用内容:

  • rhc-create-domain –用于将注册的rhcloud用户绑定到rhcloud中的域。 每个注册的rhcloud用户最多可以有一个域。
  • rhc-create-app –用于为给定的rhcloud用户,给定的开发环境(Java,Ruby,Python,Perl,PHP)和给定的rhcloud域创建应用程序。 对于给定的域,您最多可以创建五个应用程序。 这将为您的rhcloud实例生成完整的URI,根据您选择的环境设置您的rhcloud实例,默认情况下将为您选择的开发环境创建本地git项目。
  • rhc-snapshot –用于创建给定rhcloud实例的本地备份。
  • rhc-ctl-app –用于控制给定的rhcloud应用程序。 您可以在此处添加数据库,检查实例的状态,启动,停止等。
  • rhc-tail-files –用于连接到rhcloud应用程序日志文件并将其转储到命令外壳中。
  • rhc-user-info –用于查看给定的rhcloud用户,定义的域和创建的应用程序。
  • rhc-chk –用于对安装程序进行简单的配置检查。

建立您的网域

要开始使用演示应用程序,我们需要做一些简单的事情,以从域开始获取用于托管Java应用程序的Express实例设置。

# We need to create the domain for Express to start setting up
# We need to create the domain for Express to start setting up
# our URL with the client tooling using 
# rhc-create-domain -n domainname -l rhlogin
#
$ rhc-create-domain --helpUsage: /usr/bin/rhc-create-domain
Bind a registered rhcloud user to a domain in rhcloud.NOTE: to change ssh key, please alter your ~/.ssh/libra_id_rsa and~/.ssh/libra_id_rsa.pub key, then re-run with --alter-n|--namespace   namespace   Namespace for your application(s) (alphanumeric - max 16 chars) (required)-l|--rhlogin     rhlogin     Red Hat login (RHN or OpenShift login with OpenShift Express access) (required)-p|--password    password    RHLogin password (optional, will prompt)-a|--alter                   Alter namespace (will change urls) and/or ssh key-d|--debug                   Print Debug info-h|--help                    Show Usage info# So we setup one for our Java application. Note that we already have 
# setup my ssh keys for OpenShift, if you have not yet done that, 
# then it will walk you through it.
#
$ rhc-create-domain -n inthe -l [rhcloud-user] -p [mypassword]OpenShift Express key found at /home/[homedir]/.ssh/libra_id_rsa.  Reusing...
Contacting https://openshift.redhat.com
Creation successfulYou may now create an application.  Please make note of your local config file
in /home/[homedir]/.openshift/express.conf which has been created and populated for you.

创建你的应用

接下来,我们要创建我们的应用程序,这意味着我们要告诉OpenShift Express我们需要哪个堆栈。 这是通过rhc-create-app客户端工具完成的。

# Let's take a look at the options available before we setup a Java 
# instance for our application.
#
$ rhc-create-app --help
Contacting https://openshift.redhat.com to obtain list of cartridges...(please excuse the delay)Usage: /usr/bin/rhc-create-app
Create an OpenShift Express app.-a|--app   application     Application name  (alphanumeric - max 16 chars) (required)-t|--type  type            Type of app to create (perl-5.10, jbossas-7.0, wsgi-3.2, rack-1.1, php-5.3) (required)-l|--rhlogin  rhlogin      Red Hat login (RHN or OpenShift login with OpenShift Express access) (Default: xxxxxxxxx)-p|--password  password    RHLogin password  (optional, will prompt)-r|--repo  path            Git Repo path (defaults to ./$app_name)-n|--nogit                 Only create remote space, don't pull it locally-d|--debug                 Print Debug info-h|--help                  Show Usage info# It seems we can choose between several but we want the jboss-as7.0 
# stack (called a cartridge). Provide a user, password and location 
# for the git repo to be created called 'jbpmmigration', see the 
# documentation for the defaults. Let's watch the magic happen!
#
$ rhc-create-app -a jbpmmigration -t jbossas-7.0 -l [rhcloud-user] -p [mypassword] -r /home/[homedir]/git-projects/jbpmmigrationFound a bug? Post to the forum and we'll get right on it.IRC: #openshift on freenodeForums: https://www.redhat.com/openshift/forumsAttempting to create remote application space: jbpmmigration
Contacting https://openshift.redhat.com
API version:    1.1.1
Broker version: 1.1.1RESULT:
Successfully created application: jbpmmigrationChecking ~/.ssh/config 
Contacting https://openshift.redhat.com 
Found rhcloud.com in ~/.ssh/config... No need to adjust 
Now your new domain name is being propagated worldwide (this might take a minute)... 
Pulling new repo down 
Warning: Permanently added 'jbpmmigration-inthe.rhcloud.com,50.17.167.44' (RSA) to the list of known hosts. 
Confirming application jbpmmigration is available Attempt # 1 Success!  Your application is now published here: http://jbpmmigration-inthe.rhcloud.com/ The remote repository is located here: ssh://1806d6b78bb844d49378874f222f4403@jbpmmigration-inthe.rhcloud.com/~/git/jbpmmigration.git/ To make changes to your application, commit to jbpmmigration/. Then run 'git push' to update your OpenShift Express space .

如果我们查看我给定的回购路径,就会发现一个git-projects / jbpmmigration git存储库。 请注意,如果您决定更改域名,则必须调整git repository配置文件以反映远程存储库的位置,请参见“ ssh:…..”行上方。 该页面也已经位于 http://jbpmmigration-ishereon.rhcloud.com/ 。 这只是一个入门的初始屏幕,因此现在我们继续部署现有的jBPM Migration项目。

首先,让我们看一下git项目中提供的自述文件,该文件对存储库布局有一些见解。

Repo layout
===========
deployments/ - location for built wars (Details below) 
src/ - maven src structure 
pom.xml - maven build file  
.openshift/ - location for openshift specific files 
.openshift/config/ - location for configuration files such as standalone.xml (used to modify jboss config such as datasources) 
../data - For persistent data (also in env var OPENSHIFT_DATA_DIR) 
.openshift/action_hooks/build - Script that gets run every push, just prior to starting your app

对于本文,我们将仅检查部署和src目录。 您只需放入WAR文件,在项目根目录中删除pom.xml文件,它们就会被自动部署。 如果要部署爆炸的WAR文件,则只需添加README文件中概述的名为“ .dodeploy”的文件即可。 对于实际的项目开发,我们希望通过普通的src目录结构推送代码,也可以通过使用提供的pom.xml文件来实现。 提供的自述文件提供了开始使用所需的所有详细信息。

我们的演示应用程序jbpmmigration还带有一个README文件,该文件提供了将项目内容添加到我们的新git存储库中的说明,因此我们将运行这些命令将这些文件拉入我们的本地项目中。

# placing our application into our express git repo.
#
$ cd jbpmmigration 
$ git remote add upstream -m master git://github.com/eschabell/openshift-jbpmmigration.git 
$ git pull -s recursive -X theirs upstream master # now we need to push the content.
#
$ git push origin[jbpmmigration maven build log output removed]
...
remote: [INFO] ------------------------------------------------------------------------ 
remote: [INFO] BUILD SUCCESS 
remote: [INFO] ------------------------------------------------------------------------ 
remote: [INFO] Total time: 3.114s 
remote: [INFO] Finished at: Mon Nov 14 10:26:57 EST 2011 
remote: [INFO] Final Memory: 5M/141M 
remote: [INFO] ------------------------------------------------------------------------ 
remote: ~/git/jbpmmigration.git 
remote: Running .openshift/action_hooks/build 
remote: Running .openshift/action_hooks/deploy 
remote: Starting application... 
remote: Done 
remote: Running .openshift/action_hooks/post_deploy 
To ssh://1806d6b78bb844d49378874f222f4403@jbpmmigration-inthe.rhcloud.com/~/git/jbpmmigration.git/ 410a1c9..7ea0003  master -> master

如您所见,我们现在将内容推送到我们创建的rhcloud实例,它部署了内容并启动了我们的实例。 现在,我们应该可以在http://jbpmmigration-ishereon.rhcloud.com/jbpmmigration_upload-0.4/上在线找到我们的应用程序。

然后,最后一步是您已经完成了该应用程序的工作,并希望将其释放给新的应用程序。 然后,您可以使用rhc-snapshot客户端工具进行备份,然后使用rhc-ctl-app客户端工具删除实例。

# Ready to get rid of our application now.
#
$ rhc-ctl-app -a jbpmmigration -l eschabell -c destroy 
Password: ********Contacting https://openshift.redhat.com 
!!!! WARNING !!!! WARNING !!!! WARNING !!!! 
You are about to destroy the jbpmmigration application. This is NOT reversible, all remote data for this application will be removed. 
Do you want to destroy this application (y/n): y Contacting https://openshift.redhat.com 
API version:    1.1.1 
Broker version: 1.1.1 RESULT: 
Successfully destroyed application: jbpmmigration

如您所见,从应用程序开发中必须使用的五个免费实例开始非常容易。 您可能会注意到存在一些限制,无法使用特定的集成监视工具,自动缩放功能缺失,并且对配置的控制受到限制。 对于那些需要更多访问权限和功能的用户,请查看下一步使用OpenShift Flex [6]的步骤。

这就完成了我们对OpenShift Express项目的游览,在其中我们为您提供了等待您和您的应用程序的可能性的一瞥。 创建域,定义您的应用程序需求并将您的项目导入提供的git项目非常容易。 将更改推送到新的Express实例后,您将关闭并在云中测试应用程序开发。 这是真的。 这很简单。 现在走到那里,将您的代码提升到云炒作之上。

相关链接:

  1. OpenShift, https: //openshift.redhat.com。
  2. 项目概述OpenShift, https: //openshift.redhat.com/app/platform。
  3. 云中的JBoss AS7, http: //www.jboss.org/openshift。
  4. jBPM迁移项目Web应用程序, https://github.com/eschabell/jbpmmigration_upload 。
  5. OpenShift Express快速入门, https: //openshift.redhat.com/app/express#quickstart。
  6. OpenShift Flex快速入门, https: //openshift.redhat.com/app/flex#quickstart。

参考:我们的JCG合作伙伴 Eric D. Schabell在中间件,Linux,软件,自行车和其他新闻…博客上发表了OpenShift , 超越Cloud的炒作 。


翻译自: https://www.javacodegeeks.com/2012/06/rise-above-cloud-hype-with-openshift.html

openshift

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/354708.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

初级程序员需要接触好的架构代码

最近感触最深的就是一个项目需要好的架构设计&#xff0c;不会因为后面不断延伸业务需求造成业务代码的不断堆砌&#xff0c;破坏整个项目的层次结构&#xff0c;也让新来的团队成员更好的上手项目&#xff0c;从清晰的结构就能很快的了解整个业务的流程。一个好的架构设计&…

行动中的反思实践

在上一篇文章中 &#xff0c;我解释了最基本的敏捷实践是反思。 在本文中&#xff0c;我概述了组织&#xff0c;团队和人员如何在行动中运用反思的示例。 通过回顾反思 回顾是强大的工具&#xff0c;整个团队都可以使用它们来反思其当前的工作实践&#xff0c;以了解他们为持续…

python基本语法1.2--数的移位及与或抑或相关计算

#便于中文的显示# -*- coding: utf-8 -*- #指数表示 # a ** b <> power(a, b) print(10 ** 2) #100 print(10 ** 2.5) #316.22776601683796 #做除法 # //: 返回商的整数部分 print(23 // 5) #4 print(28.7 // 4.4) #6.0#<<向左移位做乘法#>>向右移位做除法 …

fabric canvas 清空并重置画布

fabric.js是一个强大而简约的依赖HTML5上的 canvas的javascript库&#xff0c;Fabric在canvas元素顶部提供了交互式对象模型&#xff0c;它还具有SVG到画布&#xff08;和画布到SVG&#xff09;解析器&#xff0c;官网上提供了丰富的案例&#xff0c;可照葫芦画瓢&#xff0c;足…

使用vue-axios请求geoJson数据报错的问题

最近的项目用到了echarts一个带有散点地图的图表,按照正常jquery写法应该使用ajax请求geojson的数据动态去切换地图,就像下面这样 $.get(Js/map/ cityData.name .json, function(geoJson) {map(gr-map, cityData, geoJson, geoCoordMap);//调用地图方法}); 页面显示(成功) bu…

前端工业物联网开发(Electron + Typescript + Vue)

从SpaceX公司的带来的Javascript上天新闻开始&#xff0c;以及近几年js语言在整个互联网的广泛应用&#xff0c;注定未来js语言有着不平凡的使命&#xff0c;跨端&#xff08;一套代码多端运行&#xff09;、易UI&#xff08;前端开发UI的便利&#xff09;、丰富的生态&#xf…

JAVA记录-Servlet介绍

1.什么是Servlet Servlet是sun公司提供的一门用于开发动态web资源的技术。Sun公司在其API中提供了一个servlet接口&#xff0c;用户若想用发一个动态web资源(即开发一个Java程序向浏览器输出数据)&#xff0c;需要完成以下2个步骤&#xff1a;1、编写一个Java类&#xff0c;实现…

前端jenkins打包编译发布项目流程

如今的前端项目已不像之前直接写完代码&#xff0c;扔到服务器直接运行了。免不了安装依赖&#xff0c;执行build过程&#xff0c;然后再将打包后的代码上传到服务器&#xff0c;可能还需要更改配置文件啥的。如此多的步骤严重影响开发的日常划水时间。所以jenkins自动化部署少…

OpenMap教程4 –图层

1.简介 在第一个教程中&#xff0c;我们创建了一个基本的OpenMap GIS应用程序&#xff0c;该应用程序在JFrame中显示一个从文件系统加载的具有一个形状图层的地图。 该教程基于com.bbn.openmap.app.example.SimpleMap 。 在第二篇教程中&#xff0c;我们扩展了基本应用程序以使…

Vue.js实战之Vuex的入门教程

在 Vue.js 的项目中&#xff0c;如果项目结构简单&#xff0c; 父子组件之间的数据传递可以使用 props 或者 $emit 等方式。 但是如果是大型项目&#xff0c;很多时候都需要在子组件之间传递数据&#xff0c;使用之前的方式就不太方便。Vue 的状态管理工具 Vuex 完美的解决了这…

为什么写公众号,为什么改名字

这是一篇水果文&#xff0c;啥叫水果文&#xff1f;比水文稍微有点内容&#xff0c;我暂时这么解释吧。最近刚刚开始决定写公众号&#xff0c;其实这个订阅号申请的还蛮早的&#xff0c;当时是为了学习开发公众号而创建的&#xff0c;所以中间有过一段空档期&#xff08;呸&…

chrome浏览器解决ajax跨域问题

方法一 1、右键谷歌快捷方式&#xff0c;选择“属性”。 2、打开属性窗口&#xff0c;切换到“快捷方式”选项卡。 3、在目标路径的后面添加【 --disable-web-security】&#xff0c;其中chrome.exe与--disable之间有一个空格 4、点击应用&#xff0c;然后点击确定关闭窗口。 5…

前端的使命来了

最近国家工信部发布了一则关于重大App进行适老化改造的政策目的在于随着互联网的普及&#xff0c;有一部分群体在互联网应用的使用上存在着一定的障碍&#xff0c;为了保证这部分人能够顺利的使用手机中的App&#xff0c;国家出手了&#xff01;现在人们的生活越来越离不开互联…

java 过滤xss脚本_Java Web应用程序的反跨站点脚本(XSS)过滤器

java 过滤xss脚本这是为Java Web应用程序编写的一个好简单的反跨站点脚本&#xff08;XSS&#xff09;过滤器。 它的基本作用是从请求参数中删除所有可疑字符串&#xff0c;然后将其返回给应用程序。 这是我以前关于该主题的帖子的改进。 您应该将其配置为链&#xff08;web.xm…

第二章 Burp Suite代理和浏览器设置

Burp Suite代理工具是以拦截代理的方式&#xff0c;拦截所有通过代理的网络流量&#xff0c;如客户端的请求数据、服务器端的返回信息等。Burp Suite主要拦截http和https协议的流量&#xff0c;通过拦截&#xff0c;Burp Suite以中间人的方式&#xff0c;可以对客户端请求数据、…

Multiavatar头像生成,要多少有多少

还在为选一个个性十足&#xff0c;不同于别人的头像而烦恼吗&#xff1f;12,230,590,464个头像够你选择够不够&#xff1f;Multiavatar一款集多文化头像生成器&#xff0c;它可以根据不同的种族&#xff0c;不同的文化&#xff0c;不同的年龄&#xff0c;不同的世界观&#xff…

将Java 8流解析为SQL

当Java 8发行并且人们开始流式处理各种东西时&#xff0c;很快他们就开始想象如果可以以相同的方式使用数据库将有多大的潜力。 本质上&#xff0c;关系数据库由以表状结构组织的巨大数据块组成。 这些结构非常适合进行过滤和映射操作&#xff0c;如SQL语言的SELECT&#xff0c…

TCP Congestion Control

TCP Congestion Control Congestion occurs when total arrival rate from all packet flows exceeds R over a sustained(维持) period of timeBuffers(缓冲) at multiplexer will fill and packets will be lostPhases of Congestion Behavior Light traffic Arrival Rate &l…

SVG格式的Icon,用了你就知道有多香

继阿里的iconfont之后&#xff0c;字节跳动也出品了自己的矢量图标库&#xff0c;可以实现根据单一SVG源文件变换出多种主题&#xff0c; 具备丰富的分类、更轻量的代码和更灵活的使用场景。矢量SVG图标的出现&#xff0c;完全改变了前端的开发方式&#xff0c;之前总是通过设计…

抓住StackOverFlowError的尾巴

使用Java程序时&#xff0c;可能要处理的一种更烦人的情况是StackOverFlowError&#xff0c;如果您有一个很好的可生产测试用例&#xff0c;那么关于使用堆栈大小或设置条件断点/某种痕迹 。 但是&#xff0c;如果您有一个测试案例可能一次失败100次&#xff0c;或者像我的案例…