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

16
中井悦司 Twitter @enakai00 オープンクラウド・キャンパス 試して学べるクラウド技術! OpenShift

Upload: etsuji-nakai

Post on 15-Jan-2015

4.113 views

Category:

Technology


1 download

DESCRIPTION

 

TRANSCRIPT

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

中井悦司Twitter @enakai00

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

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

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

Open Cloud Campus

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

自己紹介

好評発売中!

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

日々の仕事– Senior Solution Architect and

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

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

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

Open Cloud Campus

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

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

自主規制

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

OpenShiftとは?

Page 5: 試して学べるクラウド技術! 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テストの実施や過去のビルド結果の管理などが可能

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

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

OpenShiftのアーキテクチャ

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

Open Cloud Campus

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

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

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

②アップロード

④デプロイ

開発PC

ビルドサーバ

①コーディング

③コンパイル/ビルド

アプリケーションサーバ

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

DBサーバ

⑤スケールアウト

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

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

Open Cloud Campus

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

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

②アップロード

開発PC

①コーディング

Gitリポジトリ

PHPカートリッジ

実行コード

Jboss EWS カートリッジ

実行コード

PostgreSQLカートリッジ

Gitリポジトリ

PHPアプリ環境(DB無し)

Tomcatアプリ環境

JBoss EAPカートリッジ

実行コード

PostgreSQLカートリッジ

Gitリポジトリ

JBossアプリ環境

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

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

Open Cloud Campus

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

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

自主規制

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

Open Cloud Campus

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

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

実行ノード

ブローカー

DNSサーバ

認証サーバ

DB/MQサーバ

実行ノード

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

・・・

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

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

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

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

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

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

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

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

参考資料

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

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

中井悦司Twitter @enakai00

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

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