OpenStackとDockerの未来像

627
-1

Published on

レッドハット 朝活セミナー(1/15, 2/18)の下記セッションでの発表予定資料です。
「Red Hat Enterprise Linux OpenStack Platform環境でのDocker活用テクニック」
https://www.redhat.com/ja/about/events/red-hat-asakatsu-seminar-2016

Published in: Technology
0 Comments
10 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
627
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
5
Comments
0
Likes
10
Embeds 0
No embeds

No notes for slide

OpenStackとDockerの未来像

  1. 1. OpenStackとDockerの未来像 〜 インフラ運用とアプリケーションアーキテクチャーの進化 レッドハット株式会社 中井悦司 / Etsuji Nakai Senior Solution Architect and Cloud Evangelist v1.2 2016/01/12
  2. 2. 2 OpenStackとDockerの未来像〜インフラ運用とアプリケーションアーキテクチャーの進化 Contents  OpenStackのメリットのその限界  Dockerの概要  OpenStackとDockerを組み合わせるメリット(運用視点のアプローチ)  OpenShiftによるマイクロサービス化(アプリケーション視点のアプローチ)  今後の方向性
  3. 3. OpenStackのメリットとその限界
  4. 4. 4 OpenStackとDockerの未来像〜インフラ運用とアプリケーションアーキテクチャーの進化 OpenStackが提供するコンピューティングリソース  OpenStackのユーザは、Webコンソール/APIを利用して、 次のようなコンピューティングリソースを利用します。 – 仮想ネットワーク – 仮想マシンインスタンス – ブロックボリューム データ領域 ブロックボリューム 仮想ルータ 仮想スイッチ 外部ネットワーク プロジェクト環境 OpenStackユーザ OS領域  インフラの構成要素を抽象化してコン ポーネント化することで、セルフサー ビスによる迅速な環境構築を実現。 仮想マシンインスタンス
  5. 5. 5 OpenStackとDockerの未来像〜インフラ運用とアプリケーションアーキテクチャーの進化 「企業文化の変革」に挑戦するOpenStack導入企業  TD Bank – 金融市場の変化に応じた事業拡大に向けて積極 的に企業買収を実施 – システム基盤が統合されず「Vender Centric」 なサイロシステムが乱立 – 社内に高い専門性を有する「エンジニアリング センター」を設立して、エンジニアの教育を含 めた「User Centric」な基盤統合を推進 https://www.openstack.org/summit/vancouver-2015/summit-videos/presentation/architecting-organizational-change-at-td-bank https://www.openstack.org/summit/vancouver-2015/summit-videos/presentation/changing-culture-at-time-warner-cable  Time Warner Cable – 「安定」が最重要の企業文化(決まった時間に 決まった番組を確実に配信することが使命) – ハードウェア中心のソリューションでシステム 構築はベンダーにお任せ – 「オンデマンド時代」に対応する苦しみの中、 アプリケーションの内製化を進めるために新し いツールとプロセスを導入
  6. 6. 6 OpenStackとDockerの未来像〜インフラ運用とアプリケーションアーキテクチャーの進化 OpenStackの価値は「Fast/Fast/Fast」  Walt Disney Company – 社内ITインフラとしてOpenStackを導入 – コンシューマー向けITサービスと同じスピード感で 社内ITサービスを提供 https://youtube.googleapis.com/v/SREEnNQ6zqg よくある誤解 OpenStackが必要だった 本当の理由
  7. 7. 7 OpenStackとDockerの未来像〜インフラ運用とアプリケーションアーキテクチャーの進化 OpenStackを含むIaaSの課題はアプリケーションデプロイ  OpenStack/IaaSの機能的な限界 – OpenStackにより、仮想化インフラ(サーバー、ストレージ、ネットワーク)の構築は ほぼ完全な自動化が可能 – その一方で仮想マシン上へのアプリケーションのデプロイは、OpenStackの守備範囲外 – 従来のアプローチは、ゴールデンイメージ、もしくは、動的デプロイ  ゴールデンイメージ方式 – アプリケーションをインストール済みのテンプレートイメージを作成して配布 – アプリケーションを含めたテンプレートイメージ作成の自動化方法、効率的な保守管理 手法は未だに確立していない – クラウド間でのテンプレートの移行手法が標準化されておらず、環境移行が困難  動的デプロイ方式 – 最小構成OSのテンプレートから仮想マシンを起動して、Chefなどの構成管理ツールで 動的にアプリケーションをデプロイ – テンプレートのOS構成への依存性を完全に排除できず、テンプレートの変更によるデプ ロイ失敗のリスク – 「構成管理ツールの設定(レシピファイル)管理」という新たな管理負担
  8. 8. Dockerの概要
  9. 9. 9 OpenStackとDockerの未来像〜インフラ運用とアプリケーションアーキテクチャーの進化 Dockerが提供する基本機能 Dockerfile ① Dockerイメージを自動作成 OSイメージ アプリケーション ライブラリー アプリケーション フレームワーク イメージの 作成手順を記載 Docker イメージ OS上にインストール可能な ものはすべてイメージ化可能 ② Dockerイメージを保存・公開 ③ Dockerサーバーに  イメージを配布・実行
  10. 10. 10 OpenStackとDockerの未来像〜インフラ運用とアプリケーションアーキテクチャーの進化 Linuxコンテナーの仕組み コンテナー 物理サーバー/仮想マシン Linuxカーネル アプリケーション アプリケーション ・・・ 物理サーバー/仮想マシン Linuxカーネル ・・・ コンテナー 通常のLinux環境 コンテナーで分割した環境 コンテナーごとに 見える環境が異なる すべてのアプリケーション から同じ環境が見える  「Linuxコンテナー」は、プロセスグループごとに独立したOS環境を見せる技術 – ローカルディスクの内容(ディレクトリー内のファイル) – ネットワーク環境(NIC、IPアドレス) – CPU、メモリー割り当て ※ Dockerよりもずっと古くから存在する技術です。 アプリケーション アプリケーション
  11. 11. 11 OpenStackとDockerの未来像〜インフラ運用とアプリケーションアーキテクチャーの進化 Dockerとコンテナーの関係 コンテナー アプリケーション ディレクトリーツリー Linux上にマウント ルートディレクトリー として割り当て  「Dockerイメージ」の実体は、コンテナーに 割り当てるディスクイメージに、ネットワー ク設定などの環境情報を付与したものにすぎ ません。  Dockerの真の価値は、次のような「イメージ 管理機能」にあります。 – Dockerfile: Dockerイメージを自動作成する仕組み – Docker Hub: Dockerイメージを共有・配布する仕組み Dockerイメージ
  12. 12. OpenStackとDockerを 組み合わせるメリット (運用視点のアプローチ)
  13. 13. 13 OpenStackとDockerの未来像〜インフラ運用とアプリケーションアーキテクチャーの進化 OpenStackによる自動化(オーケストレーション)手法  Dockerが無かった時代は・・・ – 仮想マシン、ストレージ、ネットワークなどのインフラは、OpenStackで自動構成 – ゲストOS上のアプリはChef/Ansible/Puppetなどの構成管理ツールで自動構成  ゲストOSとアプリの管理が別れているため「Immutable」な運用が困難! – ゲストOSのテンプレートはOpenStack側で管理 – 仮想マシン起動時に動的にアプリの導入・設定を実施 「第14章 Dockerを利用したアプリケーション展開」より引用 ゲストOSの変更に起因する アプリ導入の失敗が発生
  14. 14. 14 OpenStackとDockerの未来像〜インフラ運用とアプリケーションアーキテクチャーの進化 OpenStackとDockerの組み合わせ手法  Dockerを用いた運用だと・・・ – OpenStackは、「インフラ+DockerホストOS」の提供に専念 – アプリの実行環境は、Dockerイメージで作成・管理・デプロイ  インフラとアプリの管理を分離することで「Immutable」な運用が容易に! – ゲストOSのテンプレートはDockerの稼働環境を提供 – 事前作成済みのDockerイメージを配布してアプリを起動 「第14章 Dockerを利用したアプリケーション展開」より引用 アプリの導入・管理を OpenStackから分離可能
  15. 15. 15 OpenStackとDockerの未来像〜インフラ運用とアプリケーションアーキテクチャーの進化 「1VM - 1コンテナ」方式でのDocker活用メリット  仮想マシン上のアプリケーションをコンテナイメージ化することで、アプリケー ションのデプロイを安全/簡単にします。 – 「1仮想マシンに1アプリケーション」という配置はあえて変更しないことで、運用方 法やアプリケーションのデザインへの影響を最小限に留めます。 – 外部からアプリケーションに接続するユーザー/外部システムは、アプリケーションが コンテナ化されていることを意識する必要がありません。 OpenStack/仮想化基盤 仮想マシン (ゲストOS) アプリA ・・・ ・・・ これまでの環境 アプリケーションの コンテナイメージ化 OpenStack/仮想化基盤 仮想マシン (Dockerホスト) アプリA (コンテナ  イメージ) 仮想マシン (Dockerホスト) アプリB (コンテナ  イメージ) ・・・ ・・・ 仮想マシン (ゲストOS) アプリB
  16. 16. 16 OpenStackとDockerの未来像〜インフラ運用とアプリケーションアーキテクチャーの進化 Ansibleによる複数インスタンス環境のオーケストレーション 永続データ 領域 OS領域 コンテナ (MySQL) /data コンテナ イメージ Dockerデーモン /var/lib/mysql フローティングIP OS領域 コンテナ (node.jsアプリ) コンテナ イメージ Dockerデーモン フローティングIP フローティングIPにアクセス フローティングIPにアクセス 接続先DBのIP/ポートは 環境変数で参照  Ansibleを利用すると、OpenStack APIによる仮想インフラの構成とDockerによるアプリ ケーション配布のワークフローをまとめて自動化も可能に アプリケーション利用者
  17. 17. 17 OpenStackとDockerの未来像〜インフラ運用とアプリケーションアーキテクチャーの進化 (参考)Ansibleのプレイブック構成  インフラ構築に関連する個々の作業を「サブルーチン化」したプレイブックを組み合わせ ることで、作業全体をまとめて自動化します。 – このデモで使用するプレイブックは、下記で公開しています。 • https://github.com/enakai00/ansible_eplite - include: lib/prep_tenant.yml - include: lib/create_instances.yml vars: servers: - name: epmysql meta: "managed=yes" - name: eplite meta: "managed=yes" - include: lib/attach_volumes.yml vars: volumes: - name: mysql_volume volsize: 2 server: epmysql - include: lib/check_reachable.yml vars: servers: - epmysql - eplite - include: lib/mount_volume.yml vars: server: epmysql - include: lib/deploy_eplite.yml OpenStackのテナント環境を初期設定 仮想マシンインスタンスを起動 ブロックボリュームを作成して接続 ゲストOSの起動を確認 ブロックボリュームをフォーマットしてマウント Dockerイメージを配信してアプリケーションを起動
  18. 18. OpenShiftによるマイクロサービス化 (アプリケーション視点のアプローチ)
  19. 19. 19 OpenStackとDockerの未来像〜インフラ運用とアプリケーションアーキテクチャーの進化 Kubernetes:複数ホストのDockerを管理する仕組みを提供 http://jp.techcrunch.com/2014/07/11/20140710google-microsoft-ibm-and-others-collaborate-to-make-managing-docker-containers-easier/
  20. 20. 20 OpenStackとDockerの未来像〜インフラ運用とアプリケーションアーキテクチャーの進化 サーバーの境界を意識しないアプリケーションデプロイ  コンテナーの配置先を自動的に振り分ける仕組みを用いて、複数ホストを「1つ のコンピューティングリソース」として活用します。  アプリケーションを機能単位に分割してコンテナ化することで、さらなるメリッ トが得られます。 – 必要な機能を負荷に応じてオートスケールします。 – 機能単位でコンテナーを入れ替えることにより、稼働中のアプリケーションの動的な機 能変更が可能になります。 Dockerホスト Dockerホスト Dockerホスト ・・・ 複数ホストを束ねて「1つのコンピュータ」として活用 マイクロサービス化 アプリケーション
  21. 21. 21 OpenStackとDockerの未来像〜インフラ運用とアプリケーションアーキテクチャーの進化 OpenShift 仮想マシン/ ベアメタルサーバー Docker Kubernetes 実行リソース提供 複数サーバーに跨る オーケストレーション ・・・ ・・・ コンテナ化 アプリケーション 仮想マシン/ ベアメタルサーバー Docker OpenShift:Dockerによるマイクロサービス管理を実現  OpenShiftは、Docker/Kubernetesをコアコンポーネントとして、次のような機能 拡張を提供します。 – CIシステムと連携したコンテナーイメージの自動作成 – コンテナーのオートスケール – 稼動中のコンテナーの動的な入れ替え
  22. 22. 22 OpenStackとDockerの未来像〜インフラ運用とアプリケーションアーキテクチャーの進化 マルチテナント機能を利用したDevOpsの実現  開発/テストとサービス用でプロジェクトを分割することで、OpenShift上でのDevOps環境 が実現できます。 内部レジストリー ImageStream BuildConfig Deployment Config Route Service Service エイリアス テスト済みイメージを エイリアスで参照 Deployment Config 開発/テスト プロジェクト サービス用 プロジェクト イメージの 実体を保存アプリケーションの元ネタ (Dockerfile/ソースコード) を保存 Route RHEL7 MyApp MyApp
  23. 23. 23 OpenStackとDockerの未来像〜インフラ運用とアプリケーションアーキテクチャーの進化 テンプレートとGUIの組み合わせによるPaaSの提供  OpenShiftのテンプレート機能とGUIを組み合わせることで、いわゆる「PaaS」環境を提供 することも可能です。
  24. 24. 今後の方向性
  25. 25. 25 OpenStackとDockerの未来像〜インフラ運用とアプリケーションアーキテクチャーの進化 今後の方向性  コンテナ化とマイクロサービス化は、アプリケーションの特性に応じた併用が可 能だと考えます。 – 複数サービスの共通機能(ある程度固定化した機能)は、コンテナ化でSaaS的に提供 – サービス特有の機能(頻繁な変更が求められる部分)は、マイクロサービス化して OpenShiftで開発・実行 – いずれの場合もアプリケーションとインフラ環境の分離性を高めることで、クラウド間 での環境移行は圧倒的に容易 OpenStack 仮想 マシン ・・・ ・・・ アプリケーションのコンテナ化で 本番デプロイを安全・迅速に OpenStack ベアメタル サーバー ベアメタル サーバー ・・・ アプリケーションのマイクロサービス化 でオートスケール、動的機能拡張を実現 仮想 マシン 仮想 マシン Dockerによるコンテナ化 OpenShiftによるマイクロサービス化
  26. 26. EMPOWER PEOPLE, EMPOWER ENTERPRISE, OPEN INNOVATION.
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×