Diese Präsentation wurde erfolgreich gemeldet.
Die SlideShare-Präsentation wird heruntergeladen. ×

Exploring the Philosophy behind Docker/Kubernetes/OpenShift

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Nächste SlideShare
RHEL Atomic Hostのご紹介
RHEL Atomic Hostのご紹介
Wird geladen in …3
×

Hier ansehen

1 von 24 Anzeige
Anzeige

Weitere Verwandte Inhalte

Diashows für Sie (20)

Anzeige

Ähnlich wie Exploring the Philosophy behind Docker/Kubernetes/OpenShift (20)

Weitere von Etsuji Nakai (20)

Anzeige

Aktuellste (20)

Exploring the Philosophy behind Docker/Kubernetes/OpenShift

  1. 1. Exploring the Philosophy behind Docker/Kubernetes/OpenShift 〜Docker/Kubernetes/OpenShiftの「心」を考えてみる レッドハット株式会社 中井悦司 / Etsuji Nakai Senior Solution Architect and Cloud Evangelist v1.1 2016/05/10
  2. 2. 2 Exploring the Philosophy behindDocker/Kubernetes/OpenShift Contents  Dockerが生まれた背景から読み解くDockerの「心」  Googleの公開文書から読み解くKubernetesの「心」  PaaSのユースケースから読み解くOpenShiftの「心」  まとめ
  3. 3. Dockerが生まれた背景から読み解く Dockerの「心」
  4. 4. 4 Exploring the Philosophy behindDocker/Kubernetes/OpenShift Dockerが提供する基本機能 Dockerfile ① Dockerイメージを自動作成 OSイメージ アプリケーション ライブラリー アプリケーション フレームワーク イメージの 作成手順を記載 Docker イメージ OS上にインストール可能な ものはすべてイメージ化可能 ② Dockerイメージを保存・公開 ③ Dockerサーバーに  イメージを配布・実行
  5. 5. 5 Exploring the Philosophy behindDocker/Kubernetes/OpenShift History  2011年 米dotCloud社がパブリックのPaaSサービスを提供開始  2013年 dotCloudのコア技術を「Docker」として公開  2014年 dotCloud社は、Docker, Inc.に社名を変更して、Dockerを      活用したサービス、製品にビジネスを切り替えることを表明 (*) (*) dotCloudのPaaSサービスは、米cloudControl社が事業を引き継いでサービスを提供中   https://www.dotcloud.com/about.html
  6. 6. 6 Exploring the Philosophy behindDocker/Kubernetes/OpenShift クラウドサービスとしてのPaaS環境の課題 (1)  PaaSのメリット ⇒ 実行環境の構築・管理に手間をかけず、アプリケーション開発に集中 アプリケーション実行環境 (フレームワーク/ライブラリー) サーバー/OS 開発したコードを クラウドにデプロイ アプリケーション プログラム
  7. 7. 7 Exploring the Philosophy behindDocker/Kubernetes/OpenShift アプリケーション実行環境 (フレームワーク/ライブラリー) サーバー/OS アプリケーション プログラム クラウドサービスとしてのPaaS環境の課題 (2)  アプリケーションのコードと実行環境は、多くの場合、密結合しており、 「ありもの」の実行環境だけでは、不便が生じることも多い 「悪魔は細部に宿る」 ・使いたいフレームワークが無い ・必要なライブラリーが不足 ・ライブラリーバージョンの不整合 ・etc...
  8. 8. 8 Exploring the Philosophy behindDocker/Kubernetes/OpenShift dotCloudが実行環境のメンテナンスに用意した仕組み  dotCloudは、クラウド内部の仕組みとして、アプリケーションの実行環 境を自動構築して「Dockerイメージ」に固める技術を開発 – さらに、クラウド以外の環境でも利用できるようにオープンソースとして公開 Dockerサービス サーバー/OS アプリケーション プログラム さまざまな実行環境を Dockerイメージとして 作成・メンテナンス Docker イメージ
  9. 9. 9 Exploring the Philosophy behindDocker/Kubernetes/OpenShift DevOpsの課題は開発と運用の「プロセスの断絶」 運用 変化が激しくて 内容を伝えきれない 受け入れテストの 時間が足りない 内容が分からないから 運用手順書が更新できない サービスを止めずに 更新する方法が分からない 開発環境と本番環境の違いが 不明でデプロイ時に 何がおきるが分からない 「越えられない壁?」 設 計 要 件 定 義 テ ス ト コ   デ ィ ン グ ー
  10. 10. 10 Exploring the Philosophy behindDocker/Kubernetes/OpenShift Dockerの「心」とは?  アプリケーション実行環境のイメージ化 – アプリケーション開発者が責任を持って「確実に動く環境」を用意する – 本番環境へのデプロイを別手順で実施しない  アプリケーションのポータビリティ – Dockerデーモンがある環境ならどこでも実行可能 – アプリケーションに合わせたサーバー/OS環境の準備を個別に実施しない Dev(アプリ)とOps(インフラ)の境界を明確にすることでDevOpsを よりスムーズに実現 Dev視点 Ops視点
  11. 11. Googleの公開文書から読み解く Kubernetesの「心」
  12. 12. 12 Exploring the Philosophy behindDocker/Kubernetes/OpenShift 元ネタ  Large-scale cluster management at Google with Borg – http://research.google.com/pubs/pub43438.html  Borg, Omega, and Kubernetes – http://research.google.com/pubs/pub44843.html おすすめ
  13. 13. 13 Exploring the Philosophy behindDocker/Kubernetes/OpenShift Application Oriented Infrastructure  「コンテナによる隔離と依存性の最小化は、グーグル社内で非常 に効果的であることがわかったので、グーグルの社内インフラで は、唯一コンテナだけを利用できるようにした」  「個々のサーバーではなく、コンテナを管理するAPIを用意することで、データセ ンターの『プライマリーキー』をサーバーからアプリケーションへ変化させた」 – アプリケーション開発者、および、運用担当者は、個々のサーバーやOSの設定を気にす る必要がなくなった。 – インフラチームは、実行中のアプリケーション、あるいは、その開発者に大きな影響を 与えることなくハードウェアやOSの更新を実施できるようになった。 – リソースのモニタリングをサーバーではなく、アプリケーション単位で実施するように 変わり、アプリケーション監視や問題判別の精度が向上した。 ⇒ 個々のハードウェアやOSの違いをアプリケーション開発者に意識させず、    「1つのコンピューターであるかのように利用可能にした」
  14. 14. 14 Exploring the Philosophy behindDocker/Kubernetes/OpenShift サーバーの境界を意識しないアプリケーションデプロイ  コンテナの配置先を自動的に振り分ける仕組みを用いて、複数ホストを「1つの コンピューティングリソース」として活用します。  アプリケーションを機能単位に分割してコンテナ化することで、さらなるメリッ トが得られます。 – 必要な機能を負荷に応じてオートスケールします。 – 機能単位でコンテナを入れ替えることにより、稼働中のアプリケーションの動的な機能 変更が可能になります。 Dockerホスト Dockerホスト Dockerホスト ・・・ 複数ホストを束ねて「1つのコンピュータ」として活用 マイクロサービス化 アプリケーション
  15. 15. PaaSのユースケースから読み解く OpenShiftの「心」
  16. 16. 16 Exploring the Philosophy behindDocker/Kubernetes/OpenShift サーバー/仮想マシン Docker サーバー/仮想マシン Docker Kubernetes DevOps環境 ・・・ 実行リソース提供 コンテナー管理 複数サーバーに跨る オーケストレーション UI、モニタリング、 イメージ作成ワークフロー etc. RHEL7 OpenShift v3 OpenShift v3:DockerによるDevOps環境を実現 ・・・ ・・・  OpenShift v3は、Docker/Kubernetesをコアコンポーネントとして、インテグレートされた DevOps環境を提供します。
  17. 17. 17 Exploring the Philosophy behindDocker/Kubernetes/OpenShift OpenShiftが提供する主な追加機能  Dockerイメージのバージョン管理 – イメージストリームとイメージビルドシステム – 「開発環境」そのものを開発可能に  同一の開発環境のクラウド上への配布 – テンプレート機能 – それぞれの開発者に「自分専用」の開発/検証環境を提供  マルチテナントでの利用 – プロジェクト単位でのネームスペースの分割 – 開発機能(ブランチ)単位で独立した開発/検証環境を提供  サーバーの境界を意識しないコンテナのデプロイ – Kubernetesによるコンテナのオーケストレーション – マイクロサービス型アプリケーションのDevOps環境を実現
  18. 18. 18 Exploring the Philosophy behindDocker/Kubernetes/OpenShift 従来のPaaSの利用形態 アプリ開発者 開発環境 テンプレート 新しいコードをPushすると 開発・テスト環境に展開してビルド 開発したコードの 稼働確認
  19. 19. 19 Exploring the Philosophy behindDocker/Kubernetes/OpenShift 従来のPaaSの利用形態 アプリ開発者 開発環境 テンプレートテンプレートそのものの メンテナンスはどうする? 開発中に開発環境の アップデートは可能? 開発が終わったアプリは どうやって本番展開する?
  20. 20. 20 Exploring the Philosophy behindDocker/Kubernetes/OpenShift OpenShiftにおける役割分担 アプリ開発者 開発環境 構成テンプレート テンプレート管理者 公式RHEL イメージ Dockerfile テスト担当者 開発環境 イメージ テスト環境 構成テンプレート 開発中 アプリイメージ ソースコード 動作確認 コード開発 テスト用 デプロイ環境 動作確認 本番環境 構成テンプレート 開発用デプロイ環境 本番用 デプロイ環境 開発済み アプリイメージ テスト済み アプリイメージ リリース担当者
  21. 21. 21 Exploring the Philosophy behindDocker/Kubernetes/OpenShift テンプレートとGUIの組み合わせによるPaaSの提供  テンプレート機能とGUIを組み合わせることで、アプリケーション開発者には、従来型の 「PaaS」環境として見せることができます。 アプリケーション開発者は コードの開発のみに集中
  22. 22. まとめ
  23. 23. 23 Exploring the Philosophy behindDocker/Kubernetes/OpenShift 今後の方向性  コンテナ化とマイクロサービス化は、アプリケーションの特性に応じた併用が可 能だと考えます。 – 複数サービスの共通機能(ある程度固定化した機能)は、コンテナ化でSaaS的に提供 – サービス特有の機能(頻繁な変更が求められる部分)は、マイクロサービス化して OpenShiftで開発・実行 – いずれの場合もアプリケーションとインフラ環境の分離性を高めることで、クラウド間 での環境移行は圧倒的に容易 OpenStack 仮想 マシン ・・・ ・・・ アプリケーションのコンテナ化で 本番デプロイを安全・迅速に OpenStack ベアメタル サーバー ベアメタル サーバー ・・・ アプリケーションのマイクロサービス化 でオートスケール、動的機能拡張を実現 仮想 マシン 仮想 マシン Dockerによるコンテナ化 OpenShiftによるマイクロサービス化
  24. 24. EMPOWER PEOPLE, EMPOWER ENTERPRISE, OPEN INNOVATION.

×