Upgrade to Pro — share decks privately, control downloads, hide ads and more …

20200129_ビヨンド勉強会__22_関西の駆け出しDocker職人に贈るコンテナサマリー.pdf

2e2c49f6f3fa33b8f5aad5841774c211?s=47 nezumisannn
January 29, 2020

 20200129_ビヨンド勉強会__22_関西の駆け出しDocker職人に贈るコンテナサマリー.pdf

2e2c49f6f3fa33b8f5aad5841774c211?s=128

nezumisannn

January 29, 2020
Tweet

Transcript

  1. 関西の駆け出しDocker職人に 贈るコンテナサマリー ビヨンド勉強会 #22 2020/01/29 株式会社ビヨンド 寺岡 佑樹

  2. 自己紹介 resource “my_profile” “nezumisannn” { name = “Yuki.Teraoka” nickname =

    “ねずみさん家。” company = “beyond” job = “Site Reliability Engineer” twitter = “@yktr_sre” skills = [“terraform”,”packer”] }
  3. このセッションで話すこと • Dockerとコンテナの概要 ◦ 使ったことがないから使ってみようへシフト • コンテナマインドセット ◦ 使い始めるときに必要な考え方

  4. このセッションで話さないこと • Dockerの使い方・コマンド ◦ 次のセッションにご期待ください

  5. Docker is 何?

  6. このクジラの名前は? ↑ Dockerと呼ぶらしい

  7. Docker is 何? • コンテナと呼ばれる仮想環境を提供するOSS • 開発はdotCloud社(現Docker社) • 仮想化という部分では同じだがハイパーバイザー型とは異なる ←上に乗ってるこれ

  8. コンテナ is 何? • アプリケーション及び依存関係をパッケージ化して抽象化したもの • 複数のコンテナを同じマシン上で実行してOSのカーネルを共有できる • 各コンテナはユーザー空間で独立したプロセスとして実行される

  9. つまり? コンテナ型 ハイパーバイザー型 https://www.docker.com/resources/what-container

  10. Dockerが注目される理由

  11. Dockerが注目される理由 • コンテナ管理のための優れた機能が実装されている ◦ コンテナに必要な要素を イメージ化 (Docker Image) ◦ イメージの共有

    (DockerHub) ◦ コードによるコンテナの実行 (Dockerfile / Docker Compose) Write Build and Share Run なぜコンテナ化するのか
  12. コンテナの価値

  13. コンテナの価値 • Agility (敏捷性) • Portability (可搬性)

  14. Agility • コンテナはゲストOSがなくホストOSのカーネルを共有している • オーバーヘッドが少なく起動はもちろんビルドやデプロイも早い • 要求に応じて必要なリソースを迅速に展開できる

  15. Portability • イメージの仕様をDockerfileでコード化できる • コンテナイメージを用意すればどの環境でも同様に実行できる • アプリケーションが動作するための環境の再現性が非常に高い

  16. コンテナ化の罠

  17. コンテナ化の罠 • アプリケーションをコンテナ化することが目的になっていませんか? • コンテナ化は手段であって目的ではない • それコンテナにする必要あんの?は絶対言われる

  18. コンテナ化の目的

  19. コンテナ化の目的 • アプリケーションを迅速に展開して開発スピードを上げること • 特定の環境への依存を減らして運用負荷を下げていくこと • クラウドネイティブなアプリケーションの開発 ユーザーエクスペリエンスの向上

  20. クラウドネイティブ

  21. クラウドネイティブ • 回復性・管理力、及び可観測性のある疎結合システムと、堅牢な自動化を組み合 わせることにより、システム変更を最小限の労力で、頻繁かつ予測通りに行う設計 思想 書籍:Kubernetes実践ガイドより引用 ユーザーが期待するアプリケーションを スピードや品質といったビジネス価値として提供すること

  22. つまり? • Dockerを活かせばクラウドネイティブにおける価値を提供できる ◦ リードタイム(コードのコミットから本番稼働までの所要時間 )の削減 ◦ デプロイ頻度の増加 ◦ MTTR(平均修復時間)の短縮

    ◦ 変更失敗率の低減 4つをまとめてデリバリーパフォーマンスと呼ばれる
  23. クラウドネイティブの構成要素 • アプリケーションのアーキテクチャ ◦ マイクロサービス • コンテナオーケストレーション ◦ Kubernetes •

    Dockerと合わせて学習する必要がある Kubernetes is 何?を語るために必要な基礎知識 20191120_ビヨンド勉強会__21_Kubernetes_is_何_を語るために必要な基礎知識 .pdf
  24. まとめ

  25. まとめ • Dockerはコンテナと呼ばれる仮想環境を提供するOSS • コンテナの価値を見極め目的を見失わないようにしよう • Dockerがある程度理解できたら周辺知識も学習しよう

  26. 終わり