Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

第37回「Dockerのユースケースと将来」(2014/10/30 on しすなま!)

1,688 views

Published on

下記のしすなま!録画と併せてご覧ください。資料・録画の内容は生放送時点のものです。
第37回「Dockerのユースケースと将来」(2014/10/30)
<出演①> 中井悦司様 レッドハット(株) シニアソリューションアーキテクト&クラウドエバンジェリスト
<出演②> 東根作成英 Lenovo サーバー・エバンジェリスト
http://www.ustream.tv/recorded/54681645

Published in: Technology

第37回「Dockerのユースケースと将来」(2014/10/30 on しすなま!)

  1. 1. "Docker is NOT Container." ~ Dockerとコンテナ技術、PaaSの関係を理解する レッドハット株式会社 中井悦司 / Etsuji Nakai Senior Solution Architect and Cloud Evangelist v1.1 2014/11/12
  2. 2. "Docker is NOT Container." ~ Dockerとコンテナ技術、PaaSの関係を理解する 自己紹介  中井悦司(なかいえつじ) 2 – Twitter @enakai00  日々の仕事 – Senior Solution Architect and Cloud Evangelist at Red Hat K.K. 企業システムでオープンソースの活用を希望される お客様を全力でご支援させていただきます。  昔とった杵柄 – 素粒子論の研究(超弦理論とか) – 予備校講師(物理担当) – インフラエンジニア(Unix/Linux専門) 好評発売中
  3. 3. "Docker is NOT Container." ~ Dockerとコンテナ技術、PaaSの関係を理解する Contents  Dockerが生まれた背景  Dockerが実現するアプリケーション開発の世界  Dockerを本番サービスに適用するメリット  今後の発展 3
  4. 4. Dockerが生まれた背景
  5. 5. "Docker is NOT Container." ~ Dockerとコンテナ技術、PaaSの関係を理解する History  2011年 米dotCloud社がパブリックのPaaSサービスを提供開始  2013年 dotCloudのコア技術を「Docker」として公開  2014年 dotCloud社は、Docker, Inc.に社名を変更して、Dockerを      活用したサービス、製品にビジネスを切り替えることを表明 (*) 5 (*) dotCloudのPaaSサービスは、米cloudControl社が事業を引き継いでサービスを提供中   https://www.dotcloud.com/about.html
  6. 6. "Docker is NOT Container." ~ Dockerとコンテナ技術、PaaSの関係を理解する Dockerに対するRed Hatの貢献  Red Hatの開発協力により、RHEL対応とさらなる機能拡張を継続 6 – RHEL7での正式サポート – RHELのThin Provisioning機能対応(ディスク性能の向上) – RHEL7のプロセス管理機能(systemd)との統合
  7. 7. "Docker is NOT Container." ~ Dockerとコンテナ技術、PaaSの関係を理解する クラウドサービスとしてのPaaS環境の課題 (1)  PaaSのメリット ⇒ 実行環境の構築・管理に手間をかけず、アプリケーション開発に集中 7 アプリケーション実行環境 (フレームワーク/ライブラリー) サーバー/OS 開発したコードを クラウドにデプロイ アプリケーション プログラム
  8. 8. "Docker is NOT Container." ~ Dockerとコンテナ技術、PaaSの関係を理解する クラウドサービスとしてのPaaS環境の課題 (2) アプリケーションのコードと実行環境は、多くの場合、密結合しており、 「ありもの」の実行環境だけでは、不便が生じることも多い 8 アプリケーション プログラム アプリケーション実行環境 (フレームワーク/ライブラリー) サーバー/OS 「悪魔は細部に宿る」 ・使いたいフレームワークが無い ・必要なライブラリーが不足 ・ライブラリーバージョンの不整合 ・etc...
  9. 9. "Docker is NOT Container." ~ Dockerとコンテナ技術、PaaSの関係を理解する dotCloudが実行環境のメンテナンスに用意した仕組み  dotCloudは、クラウド内部の仕組みとして、アプリケーションの実行環 境を自動構築して「Dockerイメージ」に固める技術を開発 9 –さらに、クラウド以外の環境でも利用できるようにオープンソースとして公開 アプリケーション プログラム Dockerサービス サーバー/OS さまざまな実行環境を Dockerイメージとして 作成・メンテナンス Docker イメージ
  10. 10. "Docker is NOT Container." ~ Dockerとコンテナ技術、PaaSの関係を理解する (参考)Linuxコンテナーの仕組み  「Linuxコンテナー」は、プロセスグループごとに独立したOS環境を見せる技術 – ローカルディスクの内容(ディレクトリー内のファイル) – ネットワーク環境(NIC、IPアドレス) – CPU、メモリー割り当て ※ Dockerよりもずっと古くから存在する技術です。 10 通常のLinux環境コンテナーで分割した環境 コンテナー アプリケーション ・・・ Linuxカーネル アプリケーション 物理サーバー/仮想マシン Linuxカーネル ・・・ コンテナー 物理サーバー/仮想マシン コンテナーごとに 見える環境が異なる すべてのアプリケーション から同じ環境が見える アプリケーション アプリケーション
  11. 11. "Docker is NOT Container." ~ Dockerとコンテナ技術、PaaSの関係を理解する Dockerとコンテナの関係 11 コンテナー アプリケーション ルートディレクトリー ディレクトリーツリー として割り当て Linux上にマウント  「Dockerイメージ」の実体は、コンテナーに 割り当てるディスクイメージに、ネットワー ク設定などの環境情報を付与したものにすぎ ません。  Dockerの真の価値は、次のような「イメージ 管理機能」にあります。 – Dockerfile: Dockerイメージを自動作成する仕組み – Docker Hub: Dockerイメージを共有・配布する仕組み Dockerイメージ
  12. 12. "Docker is NOT Container." ~ Dockerとコンテナ技術、PaaSの関係を理解する Dockerが提供する基本機能 12 ① Dockerイメージを自動作成 Dockerfile アプリケーション フレームワーク アプリケーション ライブラリー OSイメージ イメージの 作成手順を記載 Docker イメージ OS上にインストール可能な ものはすべてイメージ化可能 ② Dockerイメージを保存・公開 ③ Dockerサーバーに  イメージを配布・実行
  13. 13. Dockerが実現する アプリケーション開発の世界
  14. 14. "Docker is NOT Container." ~ Dockerとコンテナ技術、PaaSの関係を理解する Dockerを活用したアプリケーション開発の世界  ローカルの開発環境を利用しながら、多数の開発者に同一の開発環境を提供。 14 – テストサーバーにも同じ環境を提供することで、「環境差異による問題発生」を防止  Dockerfileからイメージを自動作成するので、イメージの修正・変更・再配布が容易 – 開発コードのように、実行環境を「バージョン管理」可能に フレームワーク データベース Dockerイメージを 自動作成 Dockerfile 開発・テスト環境に Dockerイメージを配布 CIツールにより インテグレーション テストを自動実行 開発コードを コードリポジトリー にプッシュ
  15. 15. "Docker is NOT Container." ~ Dockerとコンテナ技術、PaaSの関係を理解する ちょっと脱線:ソフトウェアの変更要求が高まる背景  ビジネス要件の変化と技術の進歩に開発速度が追いつかない現状 15 要件定義設計  コーディングテスト運用 要件定義の際に決めたシステムが・・・ 運用開始時は既に時代遅れに!
  16. 16. "Docker is NOT Container." ~ Dockerとコンテナ技術、PaaSの関係を理解する ちょっと脱線:ソフトウェアの変更要求が高まる背景 16 設計 要件定義 テスト 運用 開発期間の短縮 設計 要件定義 継続的なアップデート テスト 設計 要件定義 テスト 開発期間の短縮と継続的なアップデートが必要に。 「継続的インテグレーション」 (CI) の適用 「継続的デリバリー」 の実践 コ ディング ー コ ディング ー コ ディング ー
  17. 17. "Docker is NOT Container." ~ Dockerとコンテナ技術、PaaSの関係を理解する ちょっと脱線:CIツールによる継続的インテグレーション 17 ビルドとテストの自動実行マシンの世界 人間の世界 結果レポートの作成 テスト結果、コード分析結果 カバレッジの推移など コード コミット 開発者 レポートのフィードバック コード リポジトリ CIツール マシンと人間の役割を明確に 分離したプロセスがCIの肝 このようなCI環境もDockerを 利用すると簡単に準備が可能
  18. 18. Dockerを本番サービスに 適用するメリット
  19. 19. "Docker is NOT Container." ~ Dockerとコンテナ技術、PaaSの関係を理解する Container Usage at Google 19 We start over 2billion containers per week. https://speakerdeck.com/jbeda/containers-at-scale
  20. 20. "Docker is NOT Container." ~ Dockerとコンテナ技術、PaaSの関係を理解する  テストが実施された「確実動くアプリケーション」をそのままDockerイメージに 固めて、本番環境に自動デプロイするという運用を想像してみましょう・・・。 20 フレームワーク データベース アプリケーション フレームワーク ライブラリー Dockerイメージを 本番環境に展開! サービス環境へのDocker適用のメリット
  21. 21. "Docker is NOT Container." ~ Dockerとコンテナ技術、PaaSの関係を理解する Dockerによる自動デプロイのメリット 「Immutable Infrastructre」を実現して 構成管理を容易に! Immutable Infrastructureとは? –アプリケーションの設定変更、バージョンアップなどは、稼働中の本番環境を 21 いじるのではなく、大元のコードを変更して再テストした後に、本番環境を新 規構築してそっくり置き換えるという運用手法。 –運用中の環境変更するリスク(想定外の不具合)を回避して、常にテスト済み の環境を本番提供可能に。 –同一構成のサーバーを大量に並べるスケールアウト環境で、多数のサーバーの 構成を常に同一に保ち続ける。  Dockerイメージによる自動デプロイにより、これまで実現困難と言われていた 「Immutable Infrastructre」がついに実現可能になります。
  22. 22. 今後の発展
  23. 23. "Docker is NOT Container." ~ Dockerとコンテナ技術、PaaSの関係を理解する Kubernetes:Dockerをより高度に管理する仕組みを提供 今後は、Kubernetesを利用した PaaS基盤が開発されていきます http://jp.techcrunch.com/2014/07/11/20140710google-microsoft-ibm-and-others-collaborate-to-make-managing-docker-containers-easier/ 23
  24. 24. "Docker is NOT Container." ~ Dockerとコンテナ技術、PaaSの関係を理解する (参考)Kubernetesの基本機能  Kubernetesの役割は、複数の物理サーバーを統合して1つの「Docker サーバー」に見せること 24 – 開発計画中の機能の例 • Dockerイメージの自動配置 • コンテナーを配置するサーバーの最適化 • コンテナー間のネットワーク通信経路の確保 • 負荷に応じてコンテナーを増減するオートスケール • サーバー障害時のコンテナー再配置 • など・・・ ・・・ ・・・
  25. 25. EMPOWER PEOPLE, EMPOWER ENTERPRISE, OPEN INNOVATION.

×