SlideShare ist ein Scribd-Unternehmen logo
1 von 16
Downloaden Sie, um offline zu lesen
オープンクラウド・キャンパス



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




          中井悦司
     Twitter @enakai00
試して学べるクラウド技術!

自己紹介
 中井悦司(なかいえつじ)
   – Twitter @enakai00

 日々の仕事
   – Senior Solution Architect and
     Cloud Evangelist at Red Hat K.K.
     企業システムでオープンソースの活用を希望される
                                        好評発売中!
     お客様を全力でご支援させていただきます。


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




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

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




                自主規制




                       Open Cloud Campus
OpenShiftとは?
試して学べるクラウド技術!

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



                                                          Open Cloud Campus
OpenShiftのアーキテクチャ
試して学べるクラウド技術!

Webアプリケーション開発・実行環境の典型構成
                                            Webサーバ
 ビルドサーバ                                   (ロードバランサ)
              ④デプロイ
                      アプリケーション
                         サーバ

③コンパイル/ビルド

                                 ⑤スケールアウト
          ②アップロード




          ①コーディング


   開発PC                           DBサーバ


 OpenShiftの場合は、上記の各サーバ機能を「ギア」で提供
    • ギアの配置は自動で最適化されるので、ユーザによるギアの管理は不要
    • DBサーバなどの特定のサーバ機能は「カートリッジ」というモジュール形
      式でギアの内部に配置                    Open Cloud Campus
試して学べるクラウド技術!

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
試して学べるクラウド技術!

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

                        PostgreSQL     PostgreSQL
PHPアプリ環境(DB無し)          カートリッジ         カートリッジ




     実行コード
                          実行コード          実行コード
     PHP
   カートリッジ              Jboss EWS       JBoss EAP
                       カートリッジ         カートリッジ
      Git
    リポジトリ                 Git            Git
                        リポジトリ          リポジトリ


           ②アップロード
                     Tomcatアプリ環境     JBossアプリ環境
           ①コーディング


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

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

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




                自主規制




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

「俺々OpenShift環境」を構築する際のサーバ構成
   アプリケーションURLの
   動的生成にDDNSで対応
                                            MongoDBとActiveMQを使用
                      複数のブローカーで              負荷分散/冗長構成も可能
                       負荷分散も可能

        DNSサーバ


                                ブローカー    DB/MQサーバ

        認証サーバ

                                                      各サーバは
LDAP/Kerberos/WinAD                                 仮想マシンでもOK
   などが利用可能                        ・・・
                        実行ノード           実行ノード

 ユーザ/管理者の指示をブローカーが受けて、実行ノードにギアを自動で作成/配置
   – ギアの複製によるオートスケール機能も提供
 複数アプリケーションで実行ノードを共有するマルチテナント構成
   – 同一ノードのギアは、SELinuxとcgroupsでセキュリティとリソースの独立性を確保
                                                        Open Cloud Campus
試して学べるクラウド技術!

アプリケーションとギア/カートリッジの関係
                           ギア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
参考資料
試して学べるクラウド技術!

参考資料
 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
オープンクラウド・キャンパス



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




         中井悦司
    Twitter @enakai00

Weitere ähnliche Inhalte

Was ist angesagt?

"Docker is NOT Container." ~ Dockerとコンテナ技術、PaaSの関係を理解する
"Docker is NOT Container." ~ Dockerとコンテナ技術、PaaSの関係を理解する"Docker is NOT Container." ~ Dockerとコンテナ技術、PaaSの関係を理解する
"Docker is NOT Container." ~ Dockerとコンテナ技術、PaaSの関係を理解する
Etsuji Nakai
 
Dockerの利用事例
Dockerの利用事例Dockerの利用事例
Dockerの利用事例
maebashi
 

Was ist angesagt? (20)

Docker技術情報アップデート v1.9 ネットワークとオーケストレーション
Docker技術情報アップデート v1.9 ネットワークとオーケストレーションDocker技術情報アップデート v1.9 ネットワークとオーケストレーション
Docker技術情報アップデート v1.9 ネットワークとオーケストレーション
 
"Docker is NOT Container." ~ Dockerとコンテナ技術、PaaSの関係を理解する
"Docker is NOT Container." ~ Dockerとコンテナ技術、PaaSの関係を理解する"Docker is NOT Container." ~ Dockerとコンテナ技術、PaaSの関係を理解する
"Docker is NOT Container." ~ Dockerとコンテナ技術、PaaSの関係を理解する
 
Docker on RHEL & Project Atomic 入門 - #Dockerjp 4
Docker on RHEL & Project Atomic 入門 - #Dockerjp 4Docker on RHEL & Project Atomic 入門 - #Dockerjp 4
Docker on RHEL & Project Atomic 入門 - #Dockerjp 4
 
Dockerイメージ構築 実践テクニック
Dockerイメージ構築 実践テクニックDockerイメージ構築 実践テクニック
Dockerイメージ構築 実践テクニック
 
Docker超入門
Docker超入門Docker超入門
Docker超入門
 
Dockerの利用事例
Dockerの利用事例Dockerの利用事例
Dockerの利用事例
 
Kubernetes超入門 with java
Kubernetes超入門 with javaKubernetes超入門 with java
Kubernetes超入門 with java
 
TectonicはKubernetesの構築・管理基盤である -概要の章-/-構築の章-
TectonicはKubernetesの構築・管理基盤である -概要の章-/-構築の章-TectonicはKubernetesの構築・管理基盤である -概要の章-/-構築の章-
TectonicはKubernetesの構築・管理基盤である -概要の章-/-構築の章-
 
OpenStackとDockerの未来像
OpenStackとDockerの未来像OpenStackとDockerの未来像
OpenStackとDockerの未来像
 
今さら聞けない人のためのDocker超入門 – OpenStack最新情報セミナー 2015年4月
今さら聞けない人のためのDocker超入門 – OpenStack最新情報セミナー 2015年4月今さら聞けない人のためのDocker超入門 – OpenStack最新情報セミナー 2015年4月
今さら聞けない人のためのDocker超入門 – OpenStack最新情報セミナー 2015年4月
 
Dockerクイックツアー
DockerクイックツアーDockerクイックツアー
Dockerクイックツアー
 
Dockerイメージ管理の内部構造
Dockerイメージ管理の内部構造Dockerイメージ管理の内部構造
Dockerイメージ管理の内部構造
 
DevOpsにおける組織に固有の事情を どのように整理するべきか
DevOpsにおける組織に固有の事情を どのように整理するべきかDevOpsにおける組織に固有の事情を どのように整理するべきか
DevOpsにおける組織に固有の事情を どのように整理するべきか
 
VMwareユーザのためのdocker入門 ~Re:Virtualization Night #1~
VMwareユーザのためのdocker入門 ~Re:Virtualization Night #1~VMwareユーザのためのdocker入門 ~Re:Virtualization Night #1~
VMwareユーザのためのdocker入門 ~Re:Virtualization Night #1~
 
Dockerの仕組みとIIJ社内での利用例
Dockerの仕組みとIIJ社内での利用例Dockerの仕組みとIIJ社内での利用例
Dockerの仕組みとIIJ社内での利用例
 
DockerをRed Hatはどのように見ているのか
DockerをRed Hatはどのように見ているのかDockerをRed Hatはどのように見ているのか
DockerをRed Hatはどのように見ているのか
 
Docker 基本のおさらい
Docker 基本のおさらいDocker 基本のおさらい
Docker 基本のおさらい
 
JAWS-UG コンテナ支部 Docker入門 ハンズオン
JAWS-UG コンテナ支部 Docker入門 ハンズオンJAWS-UG コンテナ支部 Docker入門 ハンズオン
JAWS-UG コンテナ支部 Docker入門 ハンズオン
 
Docker入門 - 基礎編 いまから始めるDocker管理
Docker入門 - 基礎編 いまから始めるDocker管理Docker入門 - 基礎編 いまから始めるDocker管理
Docker入門 - 基礎編 いまから始めるDocker管理
 
【18-E-3】クラウド・ネイティブ時代の2016年だから始める Docker 基礎講座
【18-E-3】クラウド・ネイティブ時代の2016年だから始める Docker 基礎講座【18-E-3】クラウド・ネイティブ時代の2016年だから始める Docker 基礎講座
【18-E-3】クラウド・ネイティブ時代の2016年だから始める Docker 基礎講座
 

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

クラウド開発に役立つ OSS あれこれ
クラウド開発に役立つ OSS あれこれクラウド開発に役立つ OSS あれこれ
クラウド開発に役立つ OSS あれこれ
Masataka MIZUNO
 
Google Compute EngineとPipe API
Google Compute EngineとPipe APIGoogle Compute EngineとPipe API
Google Compute EngineとPipe API
maruyama097
 
Google Compute EngineとGAE Pipeline API
Google Compute EngineとGAE Pipeline APIGoogle Compute EngineとGAE Pipeline API
Google Compute EngineとGAE Pipeline API
maruyama097
 
AWSマイスターシリーズReloaded(AWS Beanstalk)
AWSマイスターシリーズReloaded(AWS Beanstalk)AWSマイスターシリーズReloaded(AWS Beanstalk)
AWSマイスターシリーズReloaded(AWS Beanstalk)
Akio Katayama
 
20120416 aws meister-reloaded-aws-elasticbeanstalk-public
20120416 aws meister-reloaded-aws-elasticbeanstalk-public20120416 aws meister-reloaded-aws-elasticbeanstalk-public
20120416 aws meister-reloaded-aws-elasticbeanstalk-public
Amazon Web Services Japan
 

Ähnlich wie 試して学べるクラウド技術! OpenShift (20)

実践 Web App for Containers! ~コンテナ開発の基礎からDevOps環境の構築まで~
実践 Web App for Containers! ~コンテナ開発の基礎からDevOps環境の構築まで~実践 Web App for Containers! ~コンテナ開発の基礎からDevOps環境の構築まで~
実践 Web App for Containers! ~コンテナ開発の基礎からDevOps環境の構築まで~
 
はじめてのAzure Web App for Containers! -コンテナの基礎から DevOps 環境の構築まで-
はじめてのAzure Web App for Containers! -コンテナの基礎から DevOps 環境の構築まで-はじめてのAzure Web App for Containers! -コンテナの基礎から DevOps 環境の構築まで-
はじめてのAzure Web App for Containers! -コンテナの基礎から DevOps 環境の構築まで-
 
Azure Antenna AI 概要
Azure Antenna AI 概要Azure Antenna AI 概要
Azure Antenna AI 概要
 
.NET Core と Docker コンテナー、そして Azure を使用したマイクロサービスのアーキテクチャ
.NET Core と Docker コンテナー、そして Azure を使用したマイクロサービスのアーキテクチャ.NET Core と Docker コンテナー、そして Azure を使用したマイクロサービスのアーキテクチャ
.NET Core と Docker コンテナー、そして Azure を使用したマイクロサービスのアーキテクチャ
 
これからのクラウドネイティブアプリケーションの話をしよう
これからのクラウドネイティブアプリケーションの話をしようこれからのクラウドネイティブアプリケーションの話をしよう
これからのクラウドネイティブアプリケーションの話をしよう
 
.NETアプリケーションのクラウド最適化
.NETアプリケーションのクラウド最適化.NETアプリケーションのクラウド最適化
.NETアプリケーションのクラウド最適化
 
同じサービスを ECSとOpsWorksで 運用してみた
同じサービスをECSとOpsWorksで運用してみた同じサービスをECSとOpsWorksで運用してみた
同じサービスを ECSとOpsWorksで 運用してみた
 
はてなにおける継続的デプロイメントの現状と Docker の導入
はてなにおける継続的デプロイメントの現状と Docker の導入はてなにおける継続的デプロイメントの現状と Docker の導入
はてなにおける継続的デプロイメントの現状と Docker の導入
 
Linux & Mac OS でも動く! ~ オープンソース & クロスプラットフォーム .NET の歩き方 ~
Linux & Mac OS でも動く! ~ オープンソース & クロスプラットフォーム .NET の歩き方 ~Linux & Mac OS でも動く! ~ オープンソース & クロスプラットフォーム .NET の歩き方 ~
Linux & Mac OS でも動く! ~ オープンソース & クロスプラットフォーム .NET の歩き方 ~
 
Amazon EC2 Container Service Deep dive
Amazon EC2 Container Service Deep diveAmazon EC2 Container Service Deep dive
Amazon EC2 Container Service Deep dive
 
PHP on Cloud
PHP on CloudPHP on Cloud
PHP on Cloud
 
クラウド開発に役立つ OSS あれこれ
クラウド開発に役立つ OSS あれこれクラウド開発に役立つ OSS あれこれ
クラウド開発に役立つ OSS あれこれ
 
INF-015_そこのコンテナ、うまく積めてるね! ~Windows アプリケーション コンテナの展開と運用~
INF-015_そこのコンテナ、うまく積めてるね! ~Windows アプリケーション コンテナの展開と運用~INF-015_そこのコンテナ、うまく積めてるね! ~Windows アプリケーション コンテナの展開と運用~
INF-015_そこのコンテナ、うまく積めてるね! ~Windows アプリケーション コンテナの展開と運用~
 
20190201 Cloud Native Kansai AKS Azure
20190201 Cloud Native Kansai AKS Azure20190201 Cloud Native Kansai AKS Azure
20190201 Cloud Native Kansai AKS Azure
 
Application Deployment on AWS
Application Deployment on AWSApplication Deployment on AWS
Application Deployment on AWS
 
Introduction to extensions and other useful features for developing apps usin...
Introduction to extensions and other useful features for developing apps usin...Introduction to extensions and other useful features for developing apps usin...
Introduction to extensions and other useful features for developing apps usin...
 
Google Compute EngineとPipe API
Google Compute EngineとPipe APIGoogle Compute EngineとPipe API
Google Compute EngineとPipe API
 
Google Compute EngineとGAE Pipeline API
Google Compute EngineとGAE Pipeline APIGoogle Compute EngineとGAE Pipeline API
Google Compute EngineとGAE Pipeline API
 
AWSマイスターシリーズReloaded(AWS Beanstalk)
AWSマイスターシリーズReloaded(AWS Beanstalk)AWSマイスターシリーズReloaded(AWS Beanstalk)
AWSマイスターシリーズReloaded(AWS Beanstalk)
 
20120416 aws meister-reloaded-aws-elasticbeanstalk-public
20120416 aws meister-reloaded-aws-elasticbeanstalk-public20120416 aws meister-reloaded-aws-elasticbeanstalk-public
20120416 aws meister-reloaded-aws-elasticbeanstalk-public
 

Mehr von Etsuji Nakai

TensorFlowプログラミングと分類アルゴリズムの基礎
TensorFlowプログラミングと分類アルゴリズムの基礎TensorFlowプログラミングと分類アルゴリズムの基礎
TensorFlowプログラミングと分類アルゴリズムの基礎
Etsuji Nakai
 

Mehr von Etsuji Nakai (20)

PRML11.2-11.3
PRML11.2-11.3PRML11.2-11.3
PRML11.2-11.3
 
「ITエンジニアリングの本質」を考える
「ITエンジニアリングの本質」を考える「ITエンジニアリングの本質」を考える
「ITエンジニアリングの本質」を考える
 
Googleのインフラ技術に見る基盤標準化とDevOpsの真実
Googleのインフラ技術に見る基盤標準化とDevOpsの真実Googleのインフラ技術に見る基盤標準化とDevOpsの真実
Googleのインフラ技術に見る基盤標準化とDevOpsの真実
 
Introducton to Convolutional Nerural Network with TensorFlow
Introducton to Convolutional Nerural Network with TensorFlowIntroducton to Convolutional Nerural Network with TensorFlow
Introducton to Convolutional Nerural Network with TensorFlow
 
Googleにおける機械学習の活用とクラウドサービス
Googleにおける機械学習の活用とクラウドサービスGoogleにおける機械学習の活用とクラウドサービス
Googleにおける機械学習の活用とクラウドサービス
 
Spannerに関する技術メモ
Spannerに関する技術メモSpannerに関する技術メモ
Spannerに関する技術メモ
 
Googleのインフラ技術から考える理想のDevOps
Googleのインフラ技術から考える理想のDevOpsGoogleのインフラ技術から考える理想のDevOps
Googleのインフラ技術から考える理想のDevOps
 
A Brief History of My English Learning
A Brief History of My English LearningA Brief History of My English Learning
A Brief History of My English Learning
 
TensorFlowプログラミングと分類アルゴリズムの基礎
TensorFlowプログラミングと分類アルゴリズムの基礎TensorFlowプログラミングと分類アルゴリズムの基礎
TensorFlowプログラミングと分類アルゴリズムの基礎
 
TensorFlowによるニューラルネットワーク入門
TensorFlowによるニューラルネットワーク入門TensorFlowによるニューラルネットワーク入門
TensorFlowによるニューラルネットワーク入門
 
Using Kubernetes on Google Container Engine
Using Kubernetes on Google Container EngineUsing Kubernetes on Google Container Engine
Using Kubernetes on Google Container Engine
 
Lecture note on PRML 8.2
Lecture note on PRML 8.2Lecture note on PRML 8.2
Lecture note on PRML 8.2
 
Machine Learning Basics for Web Application Developers
Machine Learning Basics for Web Application DevelopersMachine Learning Basics for Web Application Developers
Machine Learning Basics for Web Application Developers
 
Your first TensorFlow programming with Jupyter
Your first TensorFlow programming with JupyterYour first TensorFlow programming with Jupyter
Your first TensorFlow programming with Jupyter
 
Deep Q-Network for beginners
Deep Q-Network for beginnersDeep Q-Network for beginners
Deep Q-Network for beginners
 
Life with jupyter
Life with jupyterLife with jupyter
Life with jupyter
 
TensorFlowで学ぶDQN
TensorFlowで学ぶDQNTensorFlowで学ぶDQN
TensorFlowで学ぶDQN
 
PRML7.2
PRML7.2PRML7.2
PRML7.2
 
インタークラウドを実現する技術 〜 デファクトスタンダードからの視点 〜
インタークラウドを実現する技術 〜 デファクトスタンダードからの視点 〜インタークラウドを実現する技術 〜 デファクトスタンダードからの視点 〜
インタークラウドを実現する技術 〜 デファクトスタンダードからの視点 〜
 
「TensorFlow Tutorialの数学的背景」 クイックツアー(パート1)
「TensorFlow Tutorialの数学的背景」 クイックツアー(パート1)「TensorFlow Tutorialの数学的背景」 クイックツアー(パート1)
「TensorFlow Tutorialの数学的背景」 クイックツアー(パート1)
 

試して学べるクラウド技術! 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