試して学べるクラウド技術! OpenShift
-
Upload
etsuji-nakai -
Category
Technology
-
view
4.121 -
download
1
description
Transcript of 試して学べるクラウド技術! OpenShift
![Page 1: 試して学べるクラウド技術! OpenShift](https://reader034.fdocuments.net/reader034/viewer/2022051014/54b778694a795918738b46a3/html5/thumbnails/1.jpg)
中井悦司Twitter @enakai00
オープンクラウド・キャンパス
試して学べるクラウド技術!OpenShift
![Page 2: 試して学べるクラウド技術! OpenShift](https://reader034.fdocuments.net/reader034/viewer/2022051014/54b778694a795918738b46a3/html5/thumbnails/2.jpg)
Open Cloud Campus
試して学べるクラウド技術!
自己紹介
好評発売中!
中井悦司(なかいえつじ)– Twitter @enakai00
日々の仕事– Senior Solution Architect and
Cloud Evangelist at Red Hat K.K.企業システムでオープンソースの活用を希望されるお客様を全力でご支援させていただきます。
昔とった杵柄– 素粒子論の研究(超弦理論とか)– 予備校講師(物理担当)– インフラエンジニア(Unix/Linux専門)
![Page 3: 試して学べるクラウド技術! OpenShift](https://reader034.fdocuments.net/reader034/viewer/2022051014/54b778694a795918738b46a3/html5/thumbnails/3.jpg)
Open Cloud Campus
試して学べるクラウド技術!
ここでいきなりデモンストレーション
自主規制
![Page 4: 試して学べるクラウド技術! OpenShift](https://reader034.fdocuments.net/reader034/viewer/2022051014/54b778694a795918738b46a3/html5/thumbnails/4.jpg)
OpenShiftとは?
![Page 5: 試して学べるクラウド技術! OpenShift](https://reader034.fdocuments.net/reader034/viewer/2022051014/54b778694a795918738b46a3/html5/thumbnails/5.jpg)
Open Cloud Campus
試して学べるクラウド技術!
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テストの実施や過去のビルド結果の管理などが可能
![Page 6: 試して学べるクラウド技術! OpenShift](https://reader034.fdocuments.net/reader034/viewer/2022051014/54b778694a795918738b46a3/html5/thumbnails/6.jpg)
Open Cloud Campus
試して学べるクラウド技術!
OpenShiftの利用方法
クラウドサービスを利用する– Red Hatがクラウドサービス「OpenShift Online」として提供– 現在(2013/02)は、無償のDeveloper Previewとして提供– 将来的に有償サービスの提供も計画中
オープンソースで環境を構築する– OpenShiftによるPaaS環境を構築するために必要なソフトウェアは、オープン
ソースとして公開されています– コミュニティプロジェクト「OpenShift Origin」で絶賛開発中
• https://openshift.redhat.com/community/open-source
商用ディストリビューションを購入する– 今後、商用サポート付きの製品版「OpenShift Enterprise」が提供されるかも知れない(予定は未定)
– オンプレミスでOpenShiftを利用したいユーザ企業向けのパッケージ
![Page 7: 試して学べるクラウド技術! OpenShift](https://reader034.fdocuments.net/reader034/viewer/2022051014/54b778694a795918738b46a3/html5/thumbnails/7.jpg)
OpenShiftのアーキテクチャ
![Page 8: 試して学べるクラウド技術! OpenShift](https://reader034.fdocuments.net/reader034/viewer/2022051014/54b778694a795918738b46a3/html5/thumbnails/8.jpg)
Open Cloud Campus
試して学べるクラウド技術!
Webアプリケーション開発・実行環境の典型構成
OpenShiftの場合は、上記の各サーバ機能を「ギア」で提供• ギアの配置は自動で最適化されるので、ユーザによるギアの管理は不要• DBサーバなどの特定のサーバ機能は「カートリッジ」というモジュール形式でギアの内部に配置
②アップロード
④デプロイ
開発PC
ビルドサーバ
①コーディング
③コンパイル/ビルド
アプリケーションサーバ
Webサーバ(ロードバランサ)
DBサーバ
⑤スケールアウト
![Page 9: 試して学べるクラウド技術! OpenShift](https://reader034.fdocuments.net/reader034/viewer/2022051014/54b778694a795918738b46a3/html5/thumbnails/9.jpg)
Open Cloud Campus
試して学べるクラウド技術!
OpenShiftによるWebアプリケーション開発・実行環境
②アップロード
④デプロイ
開発PC
ギア#1
①コーディング
③コンパイル/ビルド ギア#4
⑤スケールアウトギア#2 PostgreSQL
カートリッジ
HA Proxyカートリッジ
Gitリポジトリ
ギア#N
開発者の作業はコーディングと
アップロードで終了
ビルド以降の作業はすべて自動化
管理者はアプリケーションの種類(JBoss/Ruby/PHPなど)と追加するカートリッジを指定するだけ
ギアの作成・配置は自動で最適化
ギア#3
Jenkinsカートリッジ
Jenkins Clientカートリッジ
Jboss EAPカートリッジ
実行コード
Jenkins Clientカートリッジ
Jboss EAPカートリッジ
実行コード
![Page 10: 試して学べるクラウド技術! OpenShift](https://reader034.fdocuments.net/reader034/viewer/2022051014/54b778694a795918738b46a3/html5/thumbnails/10.jpg)
Open Cloud Campus
試して学べるクラウド技術!
1個のギアによる最小構成例
②アップロード
開発PC
①コーディング
Gitリポジトリ
PHPカートリッジ
実行コード
Jboss EWS カートリッジ
実行コード
PostgreSQLカートリッジ
Gitリポジトリ
PHPアプリ環境(DB無し)
Tomcatアプリ環境
JBoss EAPカートリッジ
実行コード
PostgreSQLカートリッジ
Gitリポジトリ
JBossアプリ環境
オートスケールが不要な場合は1個のギアで利用可能
![Page 11: 試して学べるクラウド技術! OpenShift](https://reader034.fdocuments.net/reader034/viewer/2022051014/54b778694a795918738b46a3/html5/thumbnails/11.jpg)
Open Cloud Campus
試して学べるクラウド技術!
ここで再びデモンストレーション
自主規制
![Page 12: 試して学べるクラウド技術! OpenShift](https://reader034.fdocuments.net/reader034/viewer/2022051014/54b778694a795918738b46a3/html5/thumbnails/12.jpg)
Open Cloud Campus
試して学べるクラウド技術!
「俺々OpenShift環境」を構築する際のサーバ構成
実行ノード
ブローカー
DNSサーバ
認証サーバ
DB/MQサーバ
実行ノード
複数のブローカーで負荷分散も可能
・・・
MongoDBとActiveMQを使用負荷分散/冗長構成も可能
アプリケーションURLの動的生成にDDNSで対応
LDAP/Kerberos/WinADなどが利用可能
ユーザ/管理者の指示をブローカーが受けて、実行ノードにギアを自動で作成/配置– ギアの複製によるオートスケール機能も提供
複数アプリケーションで実行ノードを共有するマルチテナント構成– 同一ノードのギアは、SELinuxとcgroupsでセキュリティとリソースの独立性を確保
各サーバは仮想マシンでもOK
![Page 13: 試して学べるクラウド技術! OpenShift](https://reader034.fdocuments.net/reader034/viewer/2022051014/54b778694a795918738b46a3/html5/thumbnails/13.jpg)
Open Cloud Campus
試して学べるクラウド技術!
アプリケーションとギア/カートリッジの関係
ユーザAアプリケーションA
(PHP)
アプリケーションB(Tomcat)
アプリケーションZ(Jenkins)
ギア1(HA Proxyカートリッジ)ギア2(PHPカートリッジ + Jenkins Client カートリッジ)ギア3(PostgreSQLカートリッジ)
ユーザが「アプリケーション」を作成すると、必要なギアとカートリッジが自動で作成されます。
– オートスケールオプションを付ける/付けないで、ギアの構成が変わります。
ユーザがDBなどの追加機能の「カートリッジ」を「アプリケーション」に追加すると、適切なギアに自動でカートリッジが追加されます。
– 各ギア/カートリッジは1つの「アプリケーション」内で閉じて連携します。原則的に、他のアプリケーションと内部的に依存することはありません。つまり、複数のアプリケーションでDBのカートリッジを共有するなどはありません。
Jenkinsアプリケーションだけは特別で、他のアプリケーションの「Jenkins Client」カートリッジから接続されて、複数アプリケーションのビルドに共同利用されます。
– 複数ユーザでアプリケーションを共有することは無いので、複数ユーザでJenkinsを共有することはできません。
ギア1(HA Proxyカートリッジ)ギア2(JBossEWSカートリッジ + Jenkins Client カートリッジ)ギア3(PostgreSQLカートリッジ)
ギア1(Jenkinsカートリッジ)ビルド処理を依頼
![Page 14: 試して学べるクラウド技術! OpenShift](https://reader034.fdocuments.net/reader034/viewer/2022051014/54b778694a795918738b46a3/html5/thumbnails/14.jpg)
参考資料
![Page 15: 試して学べるクラウド技術! OpenShift](https://reader034.fdocuments.net/reader034/viewer/2022051014/54b778694a795918738b46a3/html5/thumbnails/15.jpg)
Open Cloud Campus
試して学べるクラウド技術!
参考資料
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/
![Page 16: 試して学べるクラウド技術! OpenShift](https://reader034.fdocuments.net/reader034/viewer/2022051014/54b778694a795918738b46a3/html5/thumbnails/16.jpg)
中井悦司Twitter @enakai00
オープンクラウド・キャンパス
みなさんもクラウド技術を試して学んでください!