"Docker is NOT Container." ~ Dockerとコンテナ技術、PaaSの関係を理解する
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share

"Docker is NOT Container." ~ Dockerとコンテナ技術、PaaSの関係を理解する

  • 0 views
Uploaded on

 

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment

Views

Total Views
0
On Slideshare
0
From Embeds
0
Number of Embeds
1

Actions

Shares
Downloads
0
Comments
0
Likes
1

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

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