Slide 1

Slide 1 text

飛び込もう Cloud Nativeの世界

Slide 2

Slide 2 text

『クラウドネイティブ』 出来てますか?

Slide 3

Slide 3 text

▶ 出来てない そもそもクラウドネイティブとは? ▶ 出来てる! 是非、これからの発表を聞いてください。 何かヒントが得られるかもしれません。 是非、これからも続けてください。 これからの発表は、クラウドネイティブの良さを他の人に 伝えるための『表現のひとつ』になるかも

Slide 4

Slide 4 text

KAZUTO KUSAMA @jacopen 4 Solutions Architect @

Slide 5

Slide 5 text

5

Slide 6

Slide 6 text

Cloud Native is... クラウドネイティブとは何でしょう?

Slide 7

Slide 7 text

Cloud Native is... クラウドネイティブとは、コンテナです。みな さん、Docker使ってますか?

Slide 8

Slide 8 text

Cloud Native is... 次に、Kubernetesです。コンテナをうまい ことスケジュールしていい感じに扱ってくれ ます。

Slide 9

Slide 9 text

Cloud Native is... あと、マイクロサービスにするのも大事です。 コンテナ・Kubernetes・マイクロサービスで作って いくこと。これがクラウドネイティブなのです。

Slide 10

Slide 10 text

っていう説明を読んだことありませんか?

Slide 11

Slide 11 text

間違ってはいない・・・のだけど 11 もしあなたがPHPやRuby on Railsで 小規模アプリを開発しているとして・・・ クラウドネイティブとはMicroservicesである と言われて、どう思うか?

Slide 12

Slide 12 text

間違ってはいない・・・のだけど 12 もしあなたがPHPやRuby on Railsで 小規模アプリを開発しているとして・・・ クラウドネイティブとはMicroservicesである と言われて、どう思うか? 俺には 関係ないや

Slide 13

Slide 13 text

クラウドネイティブは『大規模』でしか 必要が無いのだろうか?

Slide 14

Slide 14 text

伝えたいこと 14 クラウドネイティブは規模に関係なく 実践してくべき

Slide 15

Slide 15 text

Definition クラウドネイティブ技術は パブリッククラウド プライベートクラウド ハイブリッドクラウドなどの 近代的でダイナミックな環境において スケーラブルなアプリケーションを 構築および実行するための能力を 組織にもたらします。 https://github.com/cncf/toc/blob/master/DEFINITION.md より引用

Slide 16

Slide 16 text

Definition クラウドネイティブ技術は パブリッククラウド プライベートクラウド ハイブリッドクラウドなどの 近代的でダイナミックな環境において スケーラブルなアプリケーションを 構築および実行するための能力を 組織にもたらします。 https://github.com/cncf/toc/blob/master/DEFINITION.md より引用 要はクラウド

Slide 17

Slide 17 text

クラウドって何だっけ?

Slide 18

Slide 18 text

Definition オンデマンド・セルフサービス 幅広いネットワークアクセス リソースの共用 スピーディーな拡張性 計測可能なサービス NISTによるクラウドコンピューティングの定義 https://www.ipa.go.jp/files/000025366.pdf より抜粋

Slide 19

Slide 19 text

Benefit オンデマンド・セルフサービス 幅広いネットワークアクセス リソースの共用 スピーディーな拡張性 計測可能なサービス NISTによるクラウドコンピューティングの定義 https://www.ipa.go.jp/files/000025366.pdf より抜粋 使った分だけ 課金 初期費用が 少ない リソースの 調達が早い スケール しやすい 運用を 肩代わり

Slide 20

Slide 20 text

クラウド移行 クラウドファースト これらクラウドのメリットは魅力ですよね。なので、過去 10年に渡って、クラウド移行やクラウドファーストが持て はやされてきたのです。

Slide 21

Slide 21 text

使った分だけ 課金 初期費用が 少ない リソースの 調達が早い スケール しやすい 運用を 肩代わり クラウドの 本質? これってクラウドの本質って言えるんでしょう か? ・・・言えなくは無いんですが、一言でいう なら僕はこう言います。

Slide 22

Slide 22 text

クラウドは人間を 強化する

Slide 23

Slide 23 text

サーバーの調達 OS・ミドルウェアの 設定 ソフトウェアの デプロイ ストレージ・ ネットワークの 設定 その他いろいろ これまでの世界 クラウドファーストな世界 かつてはオンプレで、全て手作業でやってました。

Slide 24

Slide 24 text

サーバーの調達 OS・ミドルウェアの 設定 ソフトウェアの デプロイ ストレージ・ ネットワークの 設定 その他いろいろ これまでの世界 クラウドファーストな世界 クラウドになって、サーバーやネットワークなどインフラの 準備はだいぶ楽になりましたよね。

Slide 25

Slide 25 text

クラウドは人間を 強化する なので、クラウドという便利な道具で人間は強化されたわ けです。でも、僕はこう思ったんです。

Slide 26

Slide 26 text

サーバーの調達 OS・ミドルウェアの 設定 ソフトウェアの デプロイ ストレージ・ ネットワークの 設定 その他いろいろ これまでの世界 クラウドファーストな世界 ここには問題点がある

Slide 27

Slide 27 text

L1キャッシュ参照 分岐予測ミス L2キャッシュ参照 Mutexのlock/unlock メモリ参照 1KBをZIP圧縮 1Gbpsで1KB送る メモリから1MB連続で読む 同一のデータセンタ内のマシンと通信1往復 HDDシーク HDDから1MB読み出し カリフォルニアとオランダ間で通信1往復 0.5 ns 5 ns 7 ns 25 ns 100 ns 3,000 ns 10,000 ns 250,000 ns 500,000 ns 10,000,000 ns 20,000,000 ns 150,000,000 ns かかる時間 Latency Numbers Every Programmer Should Know https://gist.github.com/jboner/2841832 こういう数字があります。 言いたいのは、コンピュータ の世界はμs、msの単位で動 いているってこと。

Slide 28

Slide 28 text

L1キャッシュ参照 分岐予測ミス L2キャッシュ参照 Mutexのlock/unlock メモリ参照 1KBをZIP圧縮 1Gbpsで1KB送る メモリから1MB連続で読む 同一のデータセンタ内のマシンと通信1往復 HDDシーク HDDから1MB読み出し カリフォルニアとオランダ間で通信1往復 上司の許可取ってサーバー1台構築 0.5 ns 5 ns 7 ns 25 ns 100 ns 3,000 ns 10,000 ns 250,000 ns 500,000 ns 10,000,000 ns 20,000,000 ns 150,000,000 ns 259,200,000,000,000 ns かかる時間 Latency Numbers Every Programmer Should Know https://gist.github.com/jboner/2841832 ところが人間が関わった 瞬間、こうなっちゃう。 桁が違う。それも6桁。

Slide 29

Slide 29 text

サーバーの調達 OS・ミドルウェアの 設定 ソフトウェアの デプロイ ストレージ・ ネットワークの 設定 その他いろいろ これまでの世界 クラウドファーストな世界 ボトルネック

Slide 30

Slide 30 text

μs, msの世界で人間が介在すること自体が ボトルネック

Slide 31

Slide 31 text

サーバーの調達 OS・ミドルウェアの 設定 ソフトウェアの デプロイ ストレージ・ ネットワークの 設定 その他いろいろ これまでの世界 クラウドファーストな世界 『クラウドに置き換えて効率化』 という思考から脱却しなければ 根本的な変革にはならない

Slide 32

Slide 32 text

クラウドは人間を 強化する クラウドを便利な道具って考えちゃ駄目なんです。 クラウドの能力を、最大限に享受するのです。 なので、こうじゃなくて

Slide 33

Slide 33 text

クラウドは人間を 強化する Yoshizumi Endo https://www.flickr.com/photos/yendo0206/5041788308/ (CC BY-SA 2.0)

Slide 34

Slide 34 text

CLOUD これこそが、クラウドに

Slide 35

Slide 35 text

CLOUD NATIVE + これこそが、クラウドにネイティブになるってこと。 人間が最大限に強化されるために、 生身の人間の関与を減らすのがポイントです。

Slide 36

Slide 36 text

Coding Test Build Delivery Monitoring Analyze でも、モビルスーツのような未 来テクノロジーは必要ないん です。 サービスのライフサイクルで、 人間が関与しているところを 変えていけばいいんです。 そのためのアプローチを 紹介します。

Slide 37

Slide 37 text

37 Continuous Integration 繰り返し必要になるテストから人間を排除の関与を 無くす (排除っていうと治安が悪い感じになるんで、関与を 無くすって言いましょうか)

Slide 38

Slide 38 text

38 Continuous Delivery 繰り返し必要になるデリバリーから人間をの関与を 無くす

Slide 39

Slide 39 text

39 Infrastructure as Code インフラの構築から人間の関与を無くす

Slide 40

Slide 40 text

40 Orchestration ワークロード配分の作業から人間の関与を無くす

Slide 41

Slide 41 text

41 運用についてはどうか?

Slide 42

Slide 42 text

42 NoOps https://www.slideshare.net/hiromasaoka/noops-meetup-tokyo-2-opening

Slide 43

Slide 43 text

なぜ運用は “嬉しくない” のか 43 運用をしていると、沢山の問題が発生する - サーバーのダウン、NWの障害、ストレージの・・・ - 溢れ出るログへの対処 - 昼夜問わずの対応・・・

Slide 44

Slide 44 text

なぜ運用は “嬉しくない” のか 44 運用をしていると、沢山の問題が発生する - サーバーのダウン、NWの障害、ストレージの・・・ - 溢れ出るログへの対処 - 昼夜問わずの対応・・・ それを人が対応するから『嬉しくない』気持ちになる

Slide 45

Slide 45 text

“ボールを走らせろ。ボールは疲れない。” ヨハン・クライフ

Slide 46

Slide 46 text

クラウドを走らせろ。クラウドは疲れない。

Slide 47

Slide 47 text

47 復元力の高いプラットフォーム Self Healing In-Flight Renewing Adaptive Scale 『嬉しくない』ところを自動化=人間の関与を無くす

Slide 48

Slide 48 text

48 Continuous Integration Continuous Delivery Infrastructure as Code Orchestration Resiliency コンテナで高速に、 効率よくテスト コンテナイメージで 環境差分のないデプロイ Manifestで構成情報の 定義 コンテナオーケストレーターで高 速かつ高効率な配置 コンテナオーケストレーターで迅 速な回復性を持たせる

Slide 49

Slide 49 text

49 Continuous Integration Continuous Delivery Infrastructure as Code Orchestration Resiliency コンテナで高速に、 効率よくテスト コンテナイメージで 環境差分のないデプロイ Manifestで構成情報の 定義 コンテナオーケストレーターで高 速かつ高効率な配置 コンテナオーケストレーターで迅 速な回復性を持たせる

Slide 50

Slide 50 text

50 ● 確かに、Kubernetesが欲しい要素を上手く満たしている ● しかし目的は、人の関与を減らし出力を向上させること ○ Kubernetesに限る必要は無い ○ Serverless ○ PaaS ○ マネージドサービス ● Cloud Native = Kubernetes は誤解。規模に合わせて、 適したプラットフォームを選べば良い。

Slide 51

Slide 51 text

51 Microservicesは?

Slide 52

Slide 52 text

52 Microservices 人間がボトルネックになると言ってきたが 価値を生み出すのは人間にしか出来ない ⇒ よいサービスを生み出せるのは人間だけ ・・・しかし、ある程度の規模を超えると、システム的にも 組織的にもスケールしなくなってくる。 そこを乗り越える方法論がMicroservices

Slide 53

Slide 53 text

53 Microservices そしてそのMicroservicesを支えるために、Observabilityという概念 やService Mesh、分散トレーシングといったツールが注目されてい る 詳細はこの後に続くセッションで!

Slide 54

Slide 54 text

Microservices = クラウドネイティブではない 導入によってボトルネックが解消される ⇒クラウドで強化されるなら、やるべき 導入によってかえって手間が増えるの ならば、無理にやる必要は無い。 必要になったとき改めて試せば良い

Slide 55

Slide 55 text

重要なこと

Slide 56

Slide 56 text

56 Docker=クラウドネイティブ Kubernetes=クラウドネイティブ ではない。 ツールやプラットフォームの導入が クラウドネイティブになるわけじゃない クラウドによって最大限に強化されるという マインドセットを持つこと=クラウドネイティブ

Slide 57

Slide 57 text

57 『クラウドネイティブが注目されているから、うちも Kubernetesを取り入れてみる』 ⇒マインドセットが変わらない限り、ツールの置き換えで終 わってしまう 社内の承認プロセスでリリースが1週間出来ないとか アプリ書き換えの度に手動でdocker buildとか リリース作業を手動でkubectl applyでポチポチとか

Slide 58

Slide 58 text

58 マインドセットが重要 = 一朝一夕では得られない ちゃんとテストを書くこと ちゃんとCIすること 無駄な手作業はせず、常に自動化の意識を持つこと ⇒ クラウドのGUIでポチポチも無駄作業の一つ こういった、地に足のついた積み重ねがあって、 はじめてクラウドネイティブの恩恵が得られる

Slide 59

Slide 59 text

Cloud Native Trail Map https://github.com/cncf/trailmap CNCFがTrail Mapというものを出しています。 ひとつひとつ、クラウドネイティブになるための道しる べが示されています。

Slide 60

Slide 60 text

事例に学ぶのも大事です。先駆者達が拓いた道を辿ることで近道になるでしょ う。ただ、マインドセットを変えていく意識は忘れずに !

Slide 61

Slide 61 text

7/22-23のCloudNative Days Tokyo 2019でも、皆様の役に立つセッションを沢山 揃えてあります。是非お越しください!