Slide 1

Slide 1 text

なるほどわかった! Azure Kubernetes Service JAZUG札幌支部(きたあず)

Slide 2

Slide 2 text

撮影について • 一部を除いてOKです。 • 撮影NGな箇所は、都度お知らせします。 • 他の人が入り込む際にはご配慮をお願いします。

Slide 3

Slide 3 text

自己紹介 • 名前 • 不破 崇行(ふわ たかゆき) • JAZUG札幌(きたあず) / Azureもくもく会札幌の宴会係 • コメディアン • 仕事 • 昼は普通の正社員、夜は個人事業主 • 好きなAzureサービス • AppService / Monitor / Application Gateway • 最近の趣味 • AWS / Azure / 航空無線 / シメパフェ

Slide 4

Slide 4 text

4 JAZUG 札幌支部 ■正式名称 Japan Azure User Group 札幌支部 / 略称:きたあず ■活動概要 Cloudにちょっと興味のあるゆるふわな方から実ビジネスで 使用される方まで学べる勉強会を開催しています。 ■Webサイト https://kitaazu.azurewebsites.net/ きたあずちゃん (@kitaazu_chan)

Slide 5

Slide 5 text

5 JAZUGの紹介 JAZUG ⼥⼦部 学⽣部 札幌⽀部 (きたあず) ⻘森⽀部 仙台⽀部 福島⽀部 静岡⽀部 信州⽀部 名古屋⽀部(なごあず) 関⻄Azure研究会 福岡⽀部 (ふくあず) / ふくあず⼥⼦部 熊本⽀部 沖縄⽀部 http://r.jazug.jp/

Slide 6

Slide 6 text

ちょいちょい勉強会を開催しています • 2,3ヶ月ぐらいに1度、勉強会を開催し ています。 • 初心者大歓迎です。 • 「今日初めてAzure触るんです!」でも OK!

Slide 7

Slide 7 text

Azureもくもく会もあるよ • 「もくもく会」もやってます • 一心不乱にAzure CLIを叩いたり • ひたすらに雑談したり • 「困った!」について誰かに相談したり • ひたすらにお菓子を食べる • 月1で開催しています!

Slide 8

Slide 8 text

分からない事があれば • 「きたあず」のメンバーに聞いてみてください。 • 懇親会にもいるはずなので、是非捕まえてみて下さい!

Slide 9

Slide 9 text

今日のお話について

Slide 10

Slide 10 text

今日のおはなし • Azureの基礎知識 • 10分ぐらい • そもそも「コンテナ」とか「Docker」とか「Kubernetes」って何? • 15分ぐらい • Azure Kubernetes Serviceの紹介とデモ • 20分ぐらい

Slide 11

Slide 11 text

今日のゴール • なんとなくでいいので、「Kubernetesでこんなことが出来るんだ!」という事を 理解して欲しい! • 「ちょっとAzure使ってみたくなった!」って思ってもらう

Slide 12

Slide 12 text

こんな方を想定しています • Azureって名前は知ってるけど、実はあんまよくわかってない • Kubernetesって名前は知ってるけど、実はそこまで分かっていない • 「コンテナはいいぞ!」っていう声は聞くけど、イマイチよく分かっていない • 普段別のクラウドサービス(AWSとか)使っててAzureはよく分かっていない

Slide 13

Slide 13 text

そもそもAzureって何?

Slide 14

Slide 14 text

Azure(あじゅーる)とは • 正式名称「Microsoft Azure」 • イタリア語で「紺碧」(こんぺき) • 青空をイメージしてください • MSが提供しているパブリッククラウドサービス • 仮想マシンの構築やサーバレスアプリケーションの構築・機械学習系サービス まで、多種多彩なサービスを提供しています。

Slide 15

Slide 15 text

多種多様なサービスラインナップ

Slide 16

Slide 16 text

世界中に存在するリージョン

Slide 17

Slide 17 text

実際に画面を見てみましょう • とりあえずデモしましょう!

Slide 18

Slide 18 text

コンテナ・Docker・Kubernetes

Slide 19

Slide 19 text

「仮想マシン」と「Dockerコンテナ」の違い • Azure VMやEC2に代表される「仮想マシン」とは大きく違う 引用:Docker初めての人向け説明メモ https://qiita.com/miyasakura_/items/87ccb6d4a52d4a00a999

Slide 20

Slide 20 text

「仮想マシン」 • VirtualboxやParallelsなど、 ハイパーバイザーを経由して OSから上をまるごと仮想的に OSを作り上げる • これが仮想マシン

Slide 21

Slide 21 text

Dockerコンテナ化 • LinuxカーネルまではホストOSのリソースを使用し、そこから先を仮想化する。 • Dockerの場合、Linuxの1プロセスとして扱うようなイメージで大丈夫です。

Slide 22

Slide 22 text

Dockerコンテナ化のメリット • 既存のLinuxカーネルを使うことで、ギリギリまでホストOSを使用するので、 立ち上げ速度が非常に早い • 仮想マシンの場合はOSブートから始まるので、数分ぐらいはかかる • コンテナの場合、大体数秒で起動完了 • 展開しやすい • 極力Linuxカーネルを使っているので、サイズが軽くなり、結果的に他の仮想マシンへの 展開速度が速くなる

Slide 23

Slide 23 text

Dockerとは • そんなコンテナ技術を簡単かつエンタープライズレベルに利用可能に使える エンジン • 米国Docker社が開発・サポートを行っている。 • 要するに、サクッとコンテナを扱えるツール・エンジンが「Docker」 • 世の中の「コンテナ」と言えば殆ど「Docker」と言っても過言ではない • Windows / Macでも動作できる

Slide 24

Slide 24 text

よくある質問 Docker for Windows / Mac 「DockerってLinuxカーネルを使ってるんでしょう?」 なんでWindowsやMacでも動くんですか?

Slide 25

Slide 25 text

Docker for Windows / Mac • Docker for Windows / Macをインストールすると、自動的にDockerに特化 したLinux仮想マシンがインストールされます。 • Windows版だと、Hyper-V上に自動的にLinuxマシンが立ち上がります • Mac版の場合、hyperkitというMacネイティブの仮想化環境で動いています • この仮想マシンでDockerを動かすことで、同じ動作をさせることが出来ます

Slide 26

Slide 26 text

Dockerの嬉しいメリット • Windows / Mac / Linux どのOSでも、同じコンテナを起動させることが出来 る • 「Windows用Dockerコンテナ」といったものは存在しない • ただしCPUアーキテクチャ単位での違いはあります • 「開発環境では動くんだけど、本番環境では動かない!」という開発現場で よくある事故を防ぐことが出来る • Dockerfileという、Makefileみたいなテキストファイルを記述するだけで コンテナを生成することが出来る • Dockerfileだけを開発者に配布し、そこから各自の環境にコンテナを立ち上げ るという技も一応可能

Slide 27

Slide 27 text

Dockerの嬉しいメリット • メモリのプロビジョニングを行わない ため、ホストOSのメモリを 無駄なく活用することが出来る • Dockerのコンテナ単位でメモリや CPUコア数の指定を行わない 引用:What Is Docker & Docker Container ? A Deep Dive Into Docker ! https://www.edureka.co/blog/what-is-docker-container

Slide 28

Slide 28 text

コンテナ化の例 • WordPressをDockerで構築する場合、 • Nginx + PHP-FPMコンテナ • MySQL(MariaDB)コンテナ • の2つを立ち上げる

Slide 29

Slide 29 text

Dockerでの運用の問題点 • Dockerコンテナはどんどん作成出来るため、数がジャンジャン増える コンテナ間の依存関係が分からない! あと、知らないうちにコンテナが落ちてし まっても気づけない!

Slide 30

Slide 30 text

一元管理するためのツールが 必要になってきた • Dockerコンテナによるサーバ運用が当たり前になりつつあるが、それに併せて 規模がデカくなってきてしまった! • 一々確認したり、立ち上げし直すのは 面倒! • 出来る事なら自動化したい!

Slide 31

Slide 31 text

No content

Slide 32

Slide 32 text

Kubernetesという名の救世主 • 「くーべねーてぃす」と呼びます • ギリシャ語で「航海長」・「パイロット」という意味 • Google製のツールで、現在はオープンソース • 複数台(数十台〜数百台)に跨がってコンテナを集中管理してくれるツール

Slide 33

Slide 33 text

Kubernetesで出来る事 • コンテナ化したアプリケーションのデプロイ・スケーリング管理 • アプリの健全性のチェック • ローリング・アップデート • 水平の自動スケーリングの利用 • などなど他にも機能は沢山あります

Slide 34

Slide 34 text

「Pod」という概念 • コンテナを「グループ化」するという概念 • ストレージ・リソース・IPアドレスをカプセル化 • IPアドレスを共有しながらグループ化出来るので、ポート衝突を考慮しなくて 良い • Podの中のコンテナは1つでも良いし、複数台でも良い 引用: https://qiita.com/MahoTakara/items/f5130bb6e9e493c46c6b

Slide 35

Slide 35 text

「Node」という概念 • 平たく言うと、仮想マシン1つ単位 引用: https://Kubernetes.io/ja/docs/tutorials/Kubernetes-basics/explore/explore-intro/

Slide 36

Slide 36 text

Kubernetesの仕組み Master Worker インターネット Worker Worker ・・・

Slide 37

Slide 37 text

我が家の例 (ビスケット1号) • 一家に一台Kubernetesクラスターの 時代ですよ! • ラズベリーパイ * 3 (+1あると踏み台サーバを作れる) • USB電源(1ポートで2A出せる) • LANスイッチ * 2 • 無線 <-> 有線アダプタ • ケーブル一式 • 多層型ラック * 2 • 手のひらサイズ • 持ち運び可能 • ラック以外は全てヨドバシカメラ札幌店で 買えます。

Slide 38

Slide 38 text

元ネタ https://developers.cyberagent.co.jp/blog/archives/14721/

Slide 39

Slide 39 text

Kubernetesの欠点 • 非常に便利なツールだが、インストールが非常に難しい • ビスケット1号もインストールだけで数日かかった • エンタープライズな環境だと設計も慎重に考える必要があり、更に難しい

Slide 40

Slide 40 text

Azure Kubernetes Service (AKS) ようやく出番がやってきた!

Slide 41

Slide 41 text

AKSで出来る事 • Kubernetesによるクラスタリング環境を全自動で構築することが出来る • Node管理やスケールアウト・スケールアップもAzureでやってくれる • ポータル画面かAzure CLIで操作出来る • つまり、アプリ開発に注力することが出来る

Slide 42

Slide 42 text

No content

Slide 43

Slide 43 text

No content

Slide 44

Slide 44 text

No content

Slide 45

Slide 45 text

No content

Slide 46

Slide 46 text

No content

Slide 47

Slide 47 text

No content

Slide 48

Slide 48 text

No content

Slide 49

Slide 49 text

No content

Slide 50

Slide 50 text

No content

Slide 51

Slide 51 text

AKSの構成例

Slide 52

Slide 52 text

既存のアプリケーションを移行させる 引用: https://azure.microsoft.com/ja-jp/services/Kubernetes-service/

Slide 53

Slide 53 text

GitHub + Azure DevOps + AKSによる DevOps的なスタイル 引用: https://azure.microsoft.com/ja-jp/services/Kubernetes-service/

Slide 54

Slide 54 text

仮想ノード(Virtual Node)を使用した超高速スケールアウト

Slide 55

Slide 55 text

TensorFlow / Kubeflowなど機械学習ツールを実行し、学習モデルを生成する

Slide 56

Slide 56 text

まとめ

Slide 57

Slide 57 text

世界は既にコンテナで動いている • 世界は既にコンテナ技術で回っている • 事実、Googleは地球規模でコンテナデプロイを繰り返している • Dockerを使って開発を進め、本番環境にデプロイする事は、 世界規模ではデファクトスタンダードになりつつある • 仮想マシンがダメだとは言わないが、有力な選択肢は増えたのは事実

Slide 58

Slide 58 text

開発や運用で抱える問題をツールやサービス で解決しよう • 「開発環境と本番環境で動きが違う!」 • Dockerコンテナで開発とデプロイをしよう • 「無停止リリースをしたい!」 • Kubernetesを使って楽しよう • 「運用・構築だけで時間を取られたくない!」 • Azure Kubernetes Services(AKS)を使って楽しよう • ツールとサービス(Azure)を駆使して、本質的な問題解決に取り組もう

Slide 59

Slide 59 text

Azureによる問題解決 • Azureの様々なサービスを使うと、「問題の本質」に取り組むことが出来る • 私たちの目的は「お客さんにサービスを提供すること」 であって、「サーバやサービスを 構築・インストール」するのが目的ではない • 難しい事や時間のかかることはAzure / Kubernetesに任せて、「本当に解決したい問 題」に取り組むことがこれから重要になる

Slide 60

Slide 60 text

続きは会場や懇親会で • 質問や感想、フィードバックは会場や懇親会で受け付けています。 • この顔にピン!と来たら私です!