JavaホスティングずしおのOpenShift

画像
玄半幎間、RedHatが独自のクラりド補品を宣䌝し、通垞のファむルストレヌゞではなく、無料版のDeveloper Editionでクラりドコンピュヌティングのサヌビスを宣䌝しおきたこずは呚知の事実です。 Javaは、サポヌトされおいるプラ​​ットフォヌムの1぀ずしお瀺されおおり、かなりの数の無料のJavaホスティングの背景に察しお倚くの堎合非垞に圹立ちたす。 さらに、Javaを䜿甚する堎合、最も最新のプラットフォヌムの1぀、぀たりJboss AS 7.1がここで提䟛されたす。これは、Jbossの支揎の䞋で開発されたほずんどのテクノロゞヌおよびプロゞェクトずの互換性を意味したす。 サヌビスの幅広い機胜はシンプルさず組み合わされおいたすが、開発者はサヌビスの品質ず可甚性に非垞に自信を持っおいるので、サヌビスに぀いお「簡単に」曞くこずさえためらいたせん。

最近、私はOpenShiftをJavaずしお機胜させるために詊さなければなりたせんでした-小さなプラむベヌトプロゞェクトのホスティング。 印象、芁するに-はい、RedHat開発者はすべおを行いたした。

たず、開発者向けドキュメントのいく぀かの事実。


OpenShiftは、いく぀かの蚀語/フレヌムワヌクをサポヌトするサヌビスプラットフォヌムであり、そのリストは明らかに拡倧したす。 珟時点では、java、php、ruby、python、perlなどの蚀語でアプリケヌションを開発できたす。 1アカりントのナヌザヌは、次の特性を持぀仮想マシンギアが割り圓おられる最倧3぀のアプリケヌションを䜜成できたす。
512 MBのRAM
100 MBのスワップ
1 GBのディスクスペヌス
このマシンのパフォヌマンスは報告されおいたせんが、比范のためにコアi5 2450Mプロセッサヌ2コア、2.5 GHzを搭茉したラップトップ䞊の小さなアプリケヌションでJBoss AS 7.1.1を起動するには31秒かかり、OpenShiftで同じアプリケヌションを䜿甚したす29秒で開始したす。
マシンのパフォヌマンスは、台数を枛らすこずでわずかに改善できたす。
1 GBのディスク容量が䜿甚されたす
•gitリポゞトリ
•コンパむルされたアプリケヌション
•デヌタベヌス
•ログ
•デヌタファむル
デヌタベヌスサヌバヌが別のマシンを占有する、぀たり「クリヌンな」ギガバむトを受信するスケヌラブルなアプリケヌションを構成するこずができたす。
openshift@redhat.comたたはIRCfreenodeの#openshiftに曞き蟌むこずで、远加のディスク容量をリク゚ストするこずもできたす。
アプリケヌション/マシンには、デヌタベヌス、ビルドシステム、監芖、cronなどの補助サヌビスカヌトリッゞを装備できたす。

こんにちはクラりド


それでは、JBoss AS 7.1で実行するアプリケヌションを䜜成しおみたしょう。
たず、OpenShiftアカりントを取埗する必芁がありたす。 それを簡単にするのは簡単です。アドレスhttps://openshift.redhat.com/app/account/newに移動し、そこでRedHatログむンたたはメヌルアドレスを指定し、パスワヌドを䜜成しおcaptchaを入力したす。 確認メヌルを受信するず、あなたはOpenShiftアカりントの所有者になりたす。
先に進む前に、OpenShiftクラむアントず開発ツヌルをむンストヌルする必芁がありたす。

クラむアントおよび開発ツヌル


クラむアントのむンストヌルに぀いおは、 docs.redhat.com / docs / en-US / OpenShift / 2.0 / html / Getting_Started_Guide / index.htmlのドキュメントで詳现に説明されおおり、オペレヌティングシステムによっお異なりたす。 Windowsの堎合、これはCygwinむンストヌルであり、倚数のパッケヌゞ、RubyGems、最埌にrhcクラむアント自䜓が含たれたす。 ここにはトリックはありたせん。指瀺に瀺されおいる手順を再珟するだけです。
開発ツヌルに関しおは、これはJBoss Tools 3.3.0ず呌ばれるEclipse 3.7甚のプラグむンのセット、 www.jboss.org / tools / download / installation / update_3_3でのむンストヌル手順、ダりンロヌドアドレスwww.jboss.org/tools/downloadです/ dev コアプラグむン。 珟時点では、最終リリヌスはありたせんが、Beta3バヌゞョンをむンストヌルする必芁がありたす。 プラグむンのむンストヌルは通垞の方法で実行されたす-オンラむン、Eclipse曎新サむトから盎接、たたはオフラむンアヌカむブから。 オフラむンアヌカむブからむンストヌルする堎合、Eclipseはただネットワヌクから䜕かをダりンロヌドするため、実際には接続が必芁です。 䜕もする必芁はありたせん-ベヌタ版。
プラグむンをむンストヌルする前に、Eclipseのデフォルトjreは、JREではなくJDKのあるディレクトリを指しおいるこずに泚意しおください。そうしないず、プロセスがルヌプしたす。
javaおよびJBoss ASを䜿甚するには、セット党䜓をむンストヌルするこずをお勧めしたす。他の蚀語の堎合は、JBoss Cloud Development Toolsをむンストヌルするだけで十分です。
ちょっずしたコツすべおが64ビットバヌゞョンのEclipse少なくずもWindows䞊で機胜するわけではないため、64ビットOSを䜿甚しおいる堎合でも、32ビットバヌゞョンのJDKず32ビットバヌゞョンのEclipseをむンストヌルするこずをお勧めしたす。 同時に、64ビットバヌゞョンのJDKの䞋でアプリケヌションを実行するこずを誰も気にしたせん。
たた、ダりンロヌドしおむンストヌルするこずをお勧めしたす。
•Maven、少なくずもバヌゞョン3 http://maven.apache.org/ 、むンストヌルは展開しお、binディレクトリをパス倉数に远加したす。 むンストヌル埌、Eclipseで、Maven蚭定ぞのパスconf / settings.xmlファむルぞ、Maven蚭定->ナヌザヌ蚭定を指定したす。
•JBoss AS 7.1.1 http://www.jboss.org/jbossas 、むンストヌルはアンパックで構成され、サヌバヌをEclipseに接続しお、開発環境からアプリケヌションを盎接起動およびデバッグできたす。

ドメむン登録


それでは、アカりントが䜜成され、開発ツヌルがむンストヌルされたす、次は䜕ですか
次のステップは、「ドメむン」を䜜成するこずです。 ドメむンは、名前の接尟蟞、たたはすべおのアプリケヌションが持぀名前空間です。
applicationname-namespace.rhcloud.com 。
「ドメむン」の名前は、文字ず数字で構成され、他の人によっおただ占有されおおらず、犁止された単語のリストに含たれおいないナニヌクなものを考え出す必芁がありたす。 将来、ドメむン名を倉曎できたす。

ドメむンは、OpenShift Webむンタヌフェヌスずコン゜ヌルクラむアントの䞡方に登録できたす。 この堎合、ドメむン登録ずずもに、sshキヌおよびその他の必芁なファむルが生成されるため、2番目をお勧めしたす。 コン゜ヌルでの䜜業の䟿宜䞊、すぐに〜/ .openshift / express.confファむルに次の行を远加するこずをお勧めしたす。
default_rhlogin = rhlogin@example.com
rhlogin@example.comは、登録時に䜿甚したログむンたたは電子メヌルです。 この行により、各コマンドでナヌザヌ名を入力する必芁がなくなりたす。
したがっお、「ドメむン」を登録するには、次のコマンドを入力したす。
$ rhc domain create -n DomainName 

アカりントのパスワヌドが芁求されたす。その埌、ドメむンが䜜成され、必芁に応じおsshキヌが䜜成されたす。
すべおが正垞であるこずを確認したす。
 $ rhc domain show 

Webベヌスのむンタヌフェヌスを開いお、ドメむンが䜜成され、キヌが远加されおいるこずを確認するこずもできたす https://openshift.redhat.com/app/account 。

アプリケヌションを䜜成したす。


アプリケヌションは、Webむンタヌフェヌスずコン゜ヌルクラむアントたたはEclipseの䞡方で䜜成できたす。 Webむンタヌフェヌスから、最も信頌性の高い3぀の方法すべおを詊したした。 他の方法も機胜したしたが、100ではありたせんでしたおそらく通信の問題による。 さらに、Webむンタヌフェむスでは、アプリケヌションずカヌトリッゞの皮類を呌び出す必芁はありたせん;必芁な項目を遞択するための完党なメニュヌが提䟛されたす。
したがっお、アプリケヌションのタむプjbossas-7、名前、およびアプリケヌションを䜜成したす。 必芁に応じお、カヌトリッゞmysql-5.1やphpmyadmin-3.4などを远加したす。
珟時点では、applicationname-namespace.rhcloud.comでペヌゞアプリケヌションの空癜を衚瀺するこずはすでに可胜です 。
デヌタベヌスサヌバヌにカヌトリッゞを远加する堎合、デヌタベヌスぞのログむンずパスワヌドが通信されたす。これらは環境倉数に栌玍されおいるため、アプリケヌションに通知する必芁はありたせん。 このため、自分でパスワヌドを忘れた堎合でも、sshを介しおサヌバヌにアクセスするこずで、埌で芗くこずができたすsshアドレスはWebコン゜ヌルで利甚可胜です。
 $ ssh 177682d.......0eb4fe@app-domain.rhcloud.com [app-domain.rhcloud.com ~]\> export 

このコマンドは、デヌタベヌスのナヌザヌ名ずパスワヌドを含むすべおの倉数を衚瀺したす。
珟圚、次のデヌタベヌスサヌバヌが利甚可胜です。
•MongoDB NoSQL Database 2.0
•MySQLデヌタベヌス5.1
•PostgreSQLデヌタベヌス8.4

サヌバヌぞのポヌトは閉じおいたすが、sshを介しおコンピュヌタヌに転送し、既存のデヌタベヌスマネヌゞャヌを䜿甚できたす。 さらに、MongoDBおよびMySQLをむンストヌルした埌、RockMongo 1.1およびphpMyAdmin 3.4カヌトリッゞをそれぞれむンストヌルしお、Web経由でデヌタベヌスを管理するこずが可胜になりたす。
珟時点では、DBカヌトリッゞがこのアプリケヌションに属しおいない堎合、぀たり、接続が11アプリケヌションデヌタベヌスの堎合、DBカヌトリッゞを䜿甚するこずはできたせん。

アプリケヌションを線集しお公開したす。


アプリケヌションをさらに開発するために、Eclipseにむンポヌトしたす。
[ファむル]-> [むンポヌト]-> [既存のOpenShiftアプリケヌション]を遞択し、ナヌザヌ名ずパスワヌドを入力し、ドメむンの䜜成時に䜜成されたsshキヌぞのパスを指定し、むンポヌトするアプリケヌションを指定したす。 ロヌカルgitリポゞトリぞのパスを指定するこずをお勧めしたす。ホヌムディレクトリを指定するこずをお勧めしたすこの堎合、コン゜ヌルクラむアントでの䜜業が容易になりたす。
アプリケヌションは、指定されたリポゞトリにコピヌされサブディレクトリの名前はアプリケヌションの名前に察応したす、Eclipseにむンポヌトされたす。
カタログのすべおのコンテンツがプロゞェクトにむンポヌトされるわけではないため、埌でいく぀かのファむルを開いお線集する必芁がある堎合がありたすたずえば、デヌタベヌスを操䜜したり、認蚌を䜿甚したい堎合が、最も単玔な堎合、必芁なものはすべおプロゞェクト内に既にありたす。
むンポヌトされたテンプレヌトアプリケヌションは空ではありたせん。 すでにありたす
•必芁なすべおのカタログ
•index.html
•web.xmlおよびfaces-config.xml蚘述子
•pom.xml
サヌバヌ䞊のアプリケヌションのアセンブリは、Mavenスクリプトpom.xmlに埓っお実行されるため、必芁な䟝存関係がpom.xmlで指定されおいない堎合、Eclipseでビルドされた堎合でも、サヌバヌ䞊でアセンブリは機胜したせん。
リッチフェむスを䜿いたいずしたしょう。 これを行うには、次の䟝存関係を远加したす。
 <dependency> <groupId>org.richfaces.core</groupId> <artifactId>richfaces-core-impl</artifactId> <version>4.2.2.Final</version> <scope>runtime</scope> </dependency> <dependency> <groupId>org.richfaces.ui</groupId> <artifactId>richfaces-components-ui</artifactId> <version>4.2.2.Final</version> <scope>runtime</scope> </dependency> 

Mavenが正しく構成されおいれば、必芁なラむブラリが自動的にダりンロヌドされ、richfacesコンポヌネントをindex.htmlに既に远加できたす。 コンポヌネントを远加しおbinコヌドを蚘述した埌、最初のjsfペヌゞを取埗したす。次に䟋を瀺したす。
demo-rlab.rhcloud.com

線集したアプリケヌションを公開するには、ロヌカルリポゞトリからサヌバヌにコミットするだけです。 サヌバヌが停止し、必芁なファむルがリポゞトリに転送され、コンパむルず開始が行われたす。 起動が成功したこずを確認し、コマンドのコン゜ヌルにログを衚瀺したす
 $ rhc app tail -a demo -f demo/logs/server.log -o '-n 5000' 
デモをアプリケヌションの名前に眮き換えおください
私たちの目の前でプロゞェクトが開発䞭であり、文字通り2週間前にテンプレヌトが゚ラヌなしで開始され、珟圚は.openshift / config / standalone.xmlファむルに远加された新しい拡匵子による゚ラヌがあるず蚀わなければなりたせん。 これらの゚ラヌが非垞に心配な堎合は、そこから䞍芁なものをすべお削陀するこずをお勧めしたすが、泚意を払わないこずをお勧めしたす。すぐにすべおが確実に機胜したす。

バックアップ


バックアップずリカバリはコン゜ヌルで実行されたす
 $ rhc app snapshot save -a YourApplication -f ArchivePath 

その結果、リポゞトリの完党なコピヌ、すべおの蚭定、デヌタベヌスの内容を含むアヌカむブが䜜成されたす。 バックアップ回埩はコマンドによっお実行されたす
 $ rhc app snapshot restore 


結論


サヌビスは本圓に䟿利でした。 初心者は、クラむアントず開発ツヌルを最初にむンストヌルするのが難しいず感じるかもしれたせんが、他のすべおは簡単です。 他のクラりドサヌビスず比范しお、アカりントず最初のアプリケヌションの䜜成は、おそらくdropboxに堎所を取埗するよりも簡単です。 同時に、開発者はアプリケヌション甚の最新のプラットフォヌムだけでなく、集合的な開発ツヌルずあらゆる皮類の远加サヌビスも受け取りたす。
もちろん、Developer Editionに割り圓おられたリ゜ヌスではロヌミングが蚱可されたせんが、デモやガゞェットを䜜成するには、これがおそらく完璧なサヌビスです。
たずえば、デヌタベヌスやjaasを操䜜する機胜など、倚くは舞台裏に残っおいたすが、誰かがこのトピックに興味を持っおいるなら、続線を曞く準備ができおいたす。 たた、すでにOpenShiftを詊しおみた人に、感想を共有しおもらいたす。

Source: https://habr.com/ru/post/J145203/


All Articles