Contenu connexe
Similaire à 試して学べるクラウド技術! OpenShift
Similaire à 試して学べるクラウド技術! OpenShift (20)
Plus de Etsuji Nakai (20)
試して学べるクラウド技術! OpenShift
- 2. 試して学べるクラウド技術!
自己紹介
中井悦司(なかいえつじ)
– Twitter @enakai00
日々の仕事
– Senior Solution Architect and
Cloud Evangelist at Red Hat K.K.
企業システムでオープンソースの活用を希望される
好評発売中!
お客様を全力でご支援させていただきます。
昔とった杵柄
– 素粒子論の研究(超弦理論とか)
– 予備校講師(物理担当)
– インフラエンジニア(Unix/Linux専門)
Open Cloud Campus
- 5. 試して学べるクラウド技術!
OpenShiftとは?
WebアプリケーションのPaaS環境を作るオープンソース
– Herokuに似ている気がする?
– Ruby / Python / Perl / Java (Tomcat/JBoss) / PHP / Node.jsなど複数言語が
使える
• Linuxで動く言語なら自分で追加することも可能
• RoR / Django / Dancerなどのフレームワークも自由に追加可能
– Gitで実行環境にコードを送り込む
• 複数名で分散開発して、最終結果をGit Masterに集約して実行環境にデプロイするな
どの技が使える
– ギア(Gear)という単位で実行環境を提供する
• ギアを増やしてオートスケールすることも可能
– Jenkinsとの連携が可能
• JenkinsもOpenShiftの環境で稼働
• Unitテストの実施や過去のビルド結果の管理などが可能
Open Cloud Campus
- 6. 試して学べるクラウド技術!
OpenShiftの利用方法
クラウドサービスを利用する
– Red Hatがクラウドサービス「OpenShift Online」として提供
– 現在(2013/02)は、無償のDeveloper Previewとして提供
– 将来的に有償サービスの提供も計画中
オープンソースで環境を構築する
– OpenShiftによるPaaS環境を構築するために必要なソフトウェアは、オープン
ソースとして公開されています
– コミュニティプロジェクト「OpenShift Origin」で絶賛開発中
• https://openshift.redhat.com/community/open-source
商用ディストリビューションを購入する
– 今後、商用サポート付きの製品版「OpenShift Enterprise」が提供されるかも
知れない(予定は未定)
– オンプレミスでOpenShiftを利用したいユーザ企業向けのパッケージ
Open Cloud Campus
- 8. 試して学べるクラウド技術!
Webアプリケーション開発・実行環境の典型構成
Webサーバ
ビルドサーバ (ロードバランサ)
④デプロイ
アプリケーション
サーバ
③コンパイル/ビルド
⑤スケールアウト
②アップロード
①コーディング
開発PC DBサーバ
OpenShiftの場合は、上記の各サーバ機能を「ギア」で提供
• ギアの配置は自動で最適化されるので、ユーザによるギアの管理は不要
• DBサーバなどの特定のサーバ機能は「カートリッジ」というモジュール形
式でギアの内部に配置 Open Cloud Campus
- 9. 試して学べるクラウド技術!
OpenShiftによるWebアプリケーション開発・実行環境
管理者はアプリケーションの種類
ビルド以降の作業は (JBoss/Ruby/PHPなど)と追加
すべて自動化 するカートリッジを指定するだけ
Jenkins
カートリッジ
HA Proxy
カートリッジ
Jenkins Client Jenkins Client
ギア#1 カートリッジ カートリッジ
③コンパイル/ビルド ギア#4
Git ④デプロイ 実行コード 実行コード
リポジトリ Jboss EAP Jboss EAP
カートリッジ カートリッジ
⑤スケールアウト
ギア#2 ギア#N
②アップロード PostgreSQL
カートリッジ
①コーディング
開発者の作業は
コーディングと ギア#3 ギアの作成・配置
開発PC アップロードで終了
は自動で最適化
Open Cloud Campus
- 10. 試して学べるクラウド技術!
1個のギアによる最小構成例
PostgreSQL PostgreSQL
PHPアプリ環境(DB無し) カートリッジ カートリッジ
実行コード
実行コード 実行コード
PHP
カートリッジ Jboss EWS JBoss EAP
カートリッジ カートリッジ
Git
リポジトリ Git Git
リポジトリ リポジトリ
②アップロード
Tomcatアプリ環境 JBossアプリ環境
①コーディング
オートスケールが不要な場合は
開発PC
1個のギアで利用可能
Open Cloud Campus
- 12. 試して学べるクラウド技術!
「俺々OpenShift環境」を構築する際のサーバ構成
アプリケーションURLの
動的生成にDDNSで対応
MongoDBとActiveMQを使用
複数のブローカーで 負荷分散/冗長構成も可能
負荷分散も可能
DNSサーバ
ブローカー DB/MQサーバ
認証サーバ
各サーバは
LDAP/Kerberos/WinAD 仮想マシンでもOK
などが利用可能 ・・・
実行ノード 実行ノード
ユーザ/管理者の指示をブローカーが受けて、実行ノードにギアを自動で作成/配置
– ギアの複製によるオートスケール機能も提供
複数アプリケーションで実行ノードを共有するマルチテナント構成
– 同一ノードのギアは、SELinuxとcgroupsでセキュリティとリソースの独立性を確保
Open Cloud Campus
- 13. 試して学べるクラウド技術!
アプリケーションとギア/カートリッジの関係
ギア1(HA Proxyカートリッジ)
アプリケーションA ギア2(PHPカートリッジ + Jenkins Client カートリッジ)
ユーザA (PHP) ギア3(PostgreSQLカートリッジ)
アプリケーションB ギア1(HA Proxyカートリッジ)
(Tomcat) ギア2(JBossEWSカートリッジ + Jenkins Client カートリッジ)
ギア3(PostgreSQLカートリッジ)
アプリケーションZ
(Jenkins) ギア1(Jenkinsカートリッジ)
ビルド処理を依頼
ユーザが「アプリケーション」を作成すると、必要なギアとカートリッジが自動で作成され
ます。
– オートスケールオプションを付ける/付けないで、ギアの構成が変わります。
ユーザがDBなどの追加機能の「カートリッジ」を「アプリケーション」に追加すると、適切
なギアに自動でカートリッジが追加されます。
– 各ギア/カートリッジは1つの「アプリケーション」内で閉じて連携します。原則的に、他のアプリ
ケーションと内部的に依存することはありません。つまり、複数のアプリケーションでDBのカート
リッジを共有するなどはありません。
Jenkinsアプリケーションだけは特別で、他のアプリケーションの「Jenkins Client」カート
リッジから接続されて、複数アプリケーションのビルドに共同利用されます。
– 複数ユーザでアプリケーションを共有することは無いので、複数ユーザでJenkinsを共有することはで
きません。 Open Cloud Campus
- 15. 試して学べるクラウド技術!
参考資料
OpenShiftの内部構造についての覚書 (1)
– OpenShiftの概要とアーキテクチャの説明です。
– http://d.hatena.ne.jp/enakai00/20130104/1357298468
OpenShiftの内部構造についての覚書 (2)
– アプリケーションデプロイの仕組みを解説しています。
– http://d.hatena.ne.jp/enakai00/20130105/1357370645
OpenShiftの内部構造についての覚書 (3)
– Jenkinsカートリッジを使って、お手軽CI環境を作る話です。
– http://d.hatena.ne.jp/enakai00/20130106/1357387999
Build Your Own PaaS on RHEL 6
– OpenShift Originによる環境構築手順です。
• まだいろいろトラップがありそうですが・・・
– https://openshift.redhat.com/community/wiki/build-your-own
OpenShiftユーザマニュアル
– ユーザとしての利用手順です。OpenShift Onlineを使う場合はこれを参照ください。
– https://access.redhat.com/knowledge/docs/OpenShift/
Open Cloud Campus