闇 カジノ 日本k8 カジノ“使用”より“構築”で学ぶオープンPaaS「OpenShift」仮想通貨カジノパチンコリップル 日本 円 チャート
ビット コイン 取引 時間 ビット フライヤーk8 カジノ オープンなクラウドで重要性を増すJava
5月28日 熱い店 パチスロ 最近、これからは「DevOps時代」だといわれるようになっていますが、DevOps時代のJavaプログラマにとってクラウドサービスを使った開発は、どのようにアプローチしていくのが良いのでしょうか。
Javaは、これまでオンプレミスなエンタープライズ向けWebアプリケーション開発で多く使われてきたこともあり、現在多くのパブリッククラウドのPaaSに対応プログラミング言語として採用されています(参考:Java開発者が知らないと損するPaaSクラウド8選)。パブリッククラウドPaaSへの採用例が多く、オンプレミス環境でも既存資産が多いことから、最近ではハイブリッドクラウド環境でJavaのシステムを構築する事例も見られるようになりました。こういった流れを受け、Java EE 8では、マルチテナンシー対応が予定されており、Javaはオープンで柔軟性のあるクラウド環境での重要性を増しています。
このため、オープンなクラウド環境を扱ううえでは、アプリケーション開発者(Dev)もデプロイや運用(Ops)面におけるクラウド/インフラ技術への幅広い理解が必要となってくると考えます。
そこで本連載では、DevOps時代のJavaプログラマのためのオープンクラウド開発という視点から、さまざまなクラウド技術を紹介します。
まずは、IaaSなどよりも開発者との接点が多いPaaSから取り上げていきます。今回はオープンソースのPaaSであるOpenShiftを紹介します。PaaSを単純に使うのではなく、PaaSの基盤も理解できるように手元に環境を用意してみましょう。
OpenShiftとは、そもそもPaaSとは
まず、OpenShiftについて説明します。OpenShiftはレッドハットが提供するPaaS(Platform as a Service)環境と、それを構築するためのオープンソースソフトウェアです。オープンソースソフトウェアは「OpenShift Origin」といいます(後述)。
PaaSとは、Webサービスを提供するに当たって必要なハードウェア、OS、データベースサーバ、アプリケーションサーバ、ロードバランサといったシステム一式をプラットフォームとして提供するサービスのことです。アプリケーション実行に必要な環境の管理については、プラットフォームであるOpenShiftに任せて、開発者はユーザーへ提供するサービスのためのアプリケーション開発の作業に集中できるようになります。
OpenShift向けのアプリケーションを開発するには、Java、Ruby、JavaScript(Node.js)、Python、PHP、Perlといった開発者に人気のプログラミング言語を利用できます。
また、各プログラミング言語向けのWebアプリケーションフレームワークの多くも利用可能ですし、JBoss、MongoDB、MySQL、PostgreSQLといった一般的なミドルウェアコンポーネントもサポートされています。Maven、Jenkins、Eclipseといった開発ツールのサポートもされています。
OpenShiftを使うと、開発環境を用意する手間や、運用に必要なサーバのセットアップの手間を、従来ほど掛けなくても、やりたいサービスの実装に取り掛かれます。
なおOpenShiftは、オープンな技術を採用してサービスが構築されているので、“特定企業によるロックイン”の心配はありません。OpenShift向けに開発したアプリケーションをインターネット上のクラウド環境ではなく、自社のローカルネットワーク内の環境で稼働させることもできます。
OpenShiftの構成
OpenShiftには、「Broker」「Node」という2種類のホストが必要です。サービスを提供するための最小構成としては1つのBrokerホストと1つのNodeホストから構成されます。
インストール構成は、要求される機能(冗長性など)によって変わります。開発環境を用意したい場合は1台で済ますこともあるでしょうし、1台のマシンにBroker、データストア、メッセージングコンポーネントをインストールし、Nodeは別マシンにインストールするといった構成も可能です(図1)。
なおOpenShiftのアーキテクチャについては、ここでは簡単な説明で済ませますので、詳細について知りたい方は、「Architecture Overview」をご覧ください。
図1 OpenShiftの構成例
Brokerのホストでは、ユーザーアプリケーションの新規作成、管理といった機能を提供します。これには、ユーザー認証機能や、ノード間の通信機能なども含まれます。
Nodeのホストでは、ユーザーアプリケーションを実行します。ユーザーアプリケーションには「Gear」と呼ばれる実行環境が割り当てられて、その環境上で動作します。Brokerのホストは、メッセージングサービス経由でNodeのホストへ問い合わせをしたり、Nodeのホストをコントロールします。
また、OpenShiftで稼働するアプリケーションをコントロールできるように、「RHC Client Tools」やWebコンソールなどクライアントアプリが提供されています。これらからの要求はBrokerのホストで提供されるREST API経由で実行できます。Brokerのホストはメッセージングサービスのコンポーネントを通してNodeのホストと通信をします。
ちなみにOpenShiftでは、各Nodeホストが独立して安全に通信ができるようにするために、サーバのオーケストレーション(デプロイや設定、管理の自動化)または並列ジョブ実行システムを構築するオープンソースフレームワーク「Marionette Collective」(旧、MCollective)が利用されています。
BrokerはPaaSが提供するサービスを稼働するためにさまざまな永続化データを管理する必要があります。次の3種類の情報を管理しています。
状態:通常アプリケーションの状態に関する情報は、デフォルトではMongoDBに保存DNS:ダイナミックDNSの情報は、デフォルトではBINDで管理される認証:ユーザーの認証と権限付与は、デフォルトではLDAPもしくはKerberos KDCに保存される
OpenShiftは冗長性を考慮した設計となっています。Broker自体はステートレスであり、単純なHTTPロードバランサの後方に設置できます。メッセージング層もステートレスで、MCollectiveは複数のメッセージキューのエンドポイントとして利用可能です。
Gear(ギア)
OpenShiftでは、ホストするアプリケーションに必要なリソースを提供するに当たり、量が決まっています。OpenShiftのサービスでは、次のよう「Small」「Medium」の2種類のGearが提供されています。
GearはNodeホスト上に用意されます。1つのNodeホスト上では複数のGearが実行できるようになっています。アプリケーションで利用するGearの数が多いほど、アプリケーションの処理が高速になり、利用できるディスク容量も増えます。アクセスが多い人気のWebサービスほど、Gearの割り当てを増やす必要が出てきます。
図2 アプリケーションとGear
ちなみに、OpenShiftのサービスでは、「FreeShift」という無償のプランでは3つのGearを利用できます。「MegaShift」という有償のプランでは3~16個のGearを利用できます。このように、プランによって利用可能なGear数に差があります。
Cartridge(カートリッジ)
OpenShiftでは、「Cartridge」という単位で、利用するミドルウェアを指定します。Cartridgeの種類は、Webフレームワーク、データベース関係、その他に分類できます。ロードバランサのHAProxyやCIサーバのJenkinsも手軽に利用できます。
Webフレームワーク用カートリッジJBossAS Cartridge Node.js Cartridge PHP Cartridge Perl Cartridge Python Cartridge Ruby Cartridge データベース関係のカートリッジ10Gen MMS Cartridge MongoDB Cartridge MySQL Cartridge PHPMyAdmin Cartridge PostgreSQL Cartridge その他のカートリッジHAProxy CartridgeCron Cartridge Jenkins Server Cartridge Jenkins Client Cartridge
Cartridgeを動かす環境はGearが提供します。また、Cartridgeに割り当てるGearの数を増やすこともできます。
図3 CartridgeとGearオープンソースソフトウェア「OpenShift Origin」とは仮想通貨カジノパチンコチャンピオンズ リーグ cl