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

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

nezumisannn
January 29, 2020

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

nezumisannn

January 29, 2020
Tweet

More Decks by nezumisannn

Other Decks in Technology

Transcript

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

    View Slide

  2. 自己紹介
    resource “my_profile” “nezumisannn” {
    name = “Yuki.Teraoka”
    nickname = “ねずみさん家。”
    company = “beyond”
    job = “Site Reliability Engineer”
    twitter = “@yktr_sre”
    skills = [“terraform”,”packer”]
    }

    View Slide

  3. このセッションで話すこと
    ● Dockerとコンテナの概要
    ○ 使ったことがないから使ってみようへシフト
    ● コンテナマインドセット
    ○ 使い始めるときに必要な考え方

    View Slide

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

    View Slide

  5. Docker is 何?

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  10. Dockerが注目される理由

    View Slide

  11. Dockerが注目される理由
    ● コンテナ管理のための優れた機能が実装されている
    ○ コンテナに必要な要素を イメージ化 (Docker Image)
    ○ イメージの共有 (DockerHub)
    ○ コードによるコンテナの実行 (Dockerfile / Docker Compose)
    Write Build and Share Run
    なぜコンテナ化するのか

    View Slide

  12. コンテナの価値

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  16. コンテナ化の罠

    View Slide

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

    View Slide

  18. コンテナ化の目的

    View Slide

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

    View Slide

  20. クラウドネイティブ

    View Slide

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

    View Slide

  22. つまり?
    ● Dockerを活かせばクラウドネイティブにおける価値を提供できる
    ○ リードタイム(コードのコミットから本番稼働までの所要時間 )の削減
    ○ デプロイ頻度の増加
    ○ MTTR(平均修復時間)の短縮
    ○ 変更失敗率の低減
    4つをまとめてデリバリーパフォーマンスと呼ばれる

    View Slide

  23. クラウドネイティブの構成要素
    ● アプリケーションのアーキテクチャ
    ○ マイクロサービス
    ● コンテナオーケストレーション
    ○ Kubernetes
    ● Dockerと合わせて学習する必要がある
    Kubernetes is 何?を語るために必要な基礎知識
    20191120_ビヨンド勉強会__21_Kubernetes_is_何_を語るために必要な基礎知識 .pdf

    View Slide

  24. まとめ

    View Slide

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

    View Slide

  26. 終わり

    View Slide