試して学べるクラウド技術! OpenShift

Preview:

DESCRIPTION

 

Citation preview

中井悦司Twitter @enakai00

オープンクラウド・キャンパス

試して学べるクラウド技術!OpenShift

Open Cloud Campus

試して学べるクラウド技術!

自己紹介

好評発売中!

中井悦司(なかいえつじ)– Twitter @enakai00

日々の仕事– Senior Solution Architect and

Cloud Evangelist at Red Hat K.K.企業システムでオープンソースの活用を希望されるお客様を全力でご支援させていただきます。

昔とった杵柄– 素粒子論の研究(超弦理論とか)– 予備校講師(物理担当)– インフラエンジニア(Unix/Linux専門)

Open Cloud Campus

試して学べるクラウド技術!

ここでいきなりデモンストレーション

自主規制

OpenShiftとは?

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テストの実施や過去のビルド結果の管理などが可能

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を利用したいユーザ企業向けのパッケージ

OpenShiftのアーキテクチャ

Open Cloud Campus

試して学べるクラウド技術!

Webアプリケーション開発・実行環境の典型構成

OpenShiftの場合は、上記の各サーバ機能を「ギア」で提供• ギアの配置は自動で最適化されるので、ユーザによるギアの管理は不要• DBサーバなどの特定のサーバ機能は「カートリッジ」というモジュール形式でギアの内部に配置

②アップロード

④デプロイ

開発PC

ビルドサーバ

①コーディング

③コンパイル/ビルド

アプリケーションサーバ

Webサーバ(ロードバランサ)

DBサーバ

⑤スケールアウト

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カートリッジ

実行コード

Open Cloud Campus

試して学べるクラウド技術!

1個のギアによる最小構成例

②アップロード

開発PC

①コーディング

Gitリポジトリ

PHPカートリッジ

実行コード

Jboss EWS カートリッジ

実行コード

PostgreSQLカートリッジ

Gitリポジトリ

PHPアプリ環境(DB無し)

Tomcatアプリ環境

JBoss EAPカートリッジ

実行コード

PostgreSQLカートリッジ

Gitリポジトリ

JBossアプリ環境

オートスケールが不要な場合は1個のギアで利用可能

Open Cloud Campus

試して学べるクラウド技術!

ここで再びデモンストレーション

自主規制

Open Cloud Campus

試して学べるクラウド技術!

「俺々OpenShift環境」を構築する際のサーバ構成

実行ノード

ブローカー

DNSサーバ

認証サーバ

DB/MQサーバ

実行ノード

複数のブローカーで負荷分散も可能

・・・

MongoDBとActiveMQを使用負荷分散/冗長構成も可能

アプリケーションURLの動的生成にDDNSで対応

LDAP/Kerberos/WinADなどが利用可能

ユーザ/管理者の指示をブローカーが受けて、実行ノードにギアを自動で作成/配置– ギアの複製によるオートスケール機能も提供

複数アプリケーションで実行ノードを共有するマルチテナント構成– 同一ノードのギアは、SELinuxとcgroupsでセキュリティとリソースの独立性を確保

各サーバは仮想マシンでもOK

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カートリッジ)ビルド処理を依頼

参考資料

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/

中井悦司Twitter @enakai00

オープンクラウド・キャンパス

みなさんもクラウド技術を試して学んでください!

Recommended