関西の駆け出しDocker職人に贈るコンテナサマリービヨンド勉強会 #222020/01/29 株式会社ビヨンド 寺岡 佑樹
View Slide
自己紹介resource “my_profile” “nezumisannn” {name = “Yuki.Teraoka”nickname = “ねずみさん家。”company = “beyond”job = “Site Reliability Engineer”twitter = “@yktr_sre”skills = [“terraform”,”packer”]}
このセッションで話すこと● Dockerとコンテナの概要○ 使ったことがないから使ってみようへシフト● コンテナマインドセット○ 使い始めるときに必要な考え方
このセッションで話さないこと● Dockerの使い方・コマンド○ 次のセッションにご期待ください
Docker is 何?
このクジラの名前は?↑ Dockerと呼ぶらしい
Docker is 何?● コンテナと呼ばれる仮想環境を提供するOSS● 開発はdotCloud社(現Docker社)● 仮想化という部分では同じだがハイパーバイザー型とは異なる←上に乗ってるこれ
コンテナ is 何?● アプリケーション及び依存関係をパッケージ化して抽象化したもの● 複数のコンテナを同じマシン上で実行してOSのカーネルを共有できる● 各コンテナはユーザー空間で独立したプロセスとして実行される
つまり?コンテナ型 ハイパーバイザー型https://www.docker.com/resources/what-container
Dockerが注目される理由
Dockerが注目される理由● コンテナ管理のための優れた機能が実装されている○ コンテナに必要な要素を イメージ化 (Docker Image)○ イメージの共有 (DockerHub)○ コードによるコンテナの実行 (Dockerfile / Docker Compose)Write Build and Share Runなぜコンテナ化するのか
コンテナの価値
コンテナの価値● Agility (敏捷性)● Portability (可搬性)
Agility● コンテナはゲストOSがなくホストOSのカーネルを共有している● オーバーヘッドが少なく起動はもちろんビルドやデプロイも早い● 要求に応じて必要なリソースを迅速に展開できる
Portability● イメージの仕様をDockerfileでコード化できる● コンテナイメージを用意すればどの環境でも同様に実行できる● アプリケーションが動作するための環境の再現性が非常に高い
コンテナ化の罠
コンテナ化の罠● アプリケーションをコンテナ化することが目的になっていませんか?● コンテナ化は手段であって目的ではない● それコンテナにする必要あんの?は絶対言われる
コンテナ化の目的
コンテナ化の目的● アプリケーションを迅速に展開して開発スピードを上げること● 特定の環境への依存を減らして運用負荷を下げていくこと● クラウドネイティブなアプリケーションの開発ユーザーエクスペリエンスの向上
クラウドネイティブ
クラウドネイティブ● 回復性・管理力、及び可観測性のある疎結合システムと、堅牢な自動化を組み合わせることにより、システム変更を最小限の労力で、頻繁かつ予測通りに行う設計思想書籍:Kubernetes実践ガイドより引用ユーザーが期待するアプリケーションをスピードや品質といったビジネス価値として提供すること
つまり?● Dockerを活かせばクラウドネイティブにおける価値を提供できる○ リードタイム(コードのコミットから本番稼働までの所要時間 )の削減○ デプロイ頻度の増加○ MTTR(平均修復時間)の短縮○ 変更失敗率の低減4つをまとめてデリバリーパフォーマンスと呼ばれる
クラウドネイティブの構成要素● アプリケーションのアーキテクチャ○ マイクロサービス● コンテナオーケストレーション○ Kubernetes● Dockerと合わせて学習する必要があるKubernetes is 何?を語るために必要な基礎知識20191120_ビヨンド勉強会__21_Kubernetes_is_何_を語るために必要な基礎知識 .pdf
まとめ
まとめ● Dockerはコンテナと呼ばれる仮想環境を提供するOSS● コンテナの価値を見極め目的を見失わないようにしよう● Dockerがある程度理解できたら周辺知識も学習しよう
終わり