Slide 1

Slide 1 text

予測できない時代に学ぶ 「クラウドネイティブ」 にまつわる誤解と本質

Slide 2

Slide 2 text

Kazuto Kusama @jacopen Senior Solutions Engineer @HashiCorp Japan Co-Chair @CloudNative Days

Slide 3

Slide 3 text

今日はなにを目的に参加されましたか?

Slide 4

Slide 4 text

今日のは何を目的に参加されましたか? ● クラウドネイティブに興味があるから ● 既にクラウドネイティブ技術を活用していて効果が出ている ⇒ 是非、続けてください

Slide 5

Slide 5 text

今日のは何を目的に参加されましたか? ● クラウドネイティブに興味があるから ● 既にクラウドネイティブ技術を活用していて効果が出ている ⇒ 是非、続けてください ● 流行っているから ● そろそろうちもクラウドネイティブとやらを検討しないといけないから ● これからはクラウドネイティブが主流になるんでしょ? ⇒ ちょっと気をつけたほうがいいかも

Slide 6

Slide 6 text

今日持ち帰って欲しいこと ● 既にクラウドネイティブを実践している人 ○ クラウドネイティブを社内に広めていくためのトーク材料 ○ 活動内容に自信をもつ裏付け ● これからクラウドネイティブを実践する人 ○ クラウドネイティブ技術を取り入れるにあたって、 『残念な採用』にならないための観点 ○ クラウドネイティブの本質に対する理解

Slide 7

Slide 7 text

何故、今日ここで話しているのか 2012 2014 2017 2019 2021 2015 2013 2016 2018 2020 国内の通信事業者で PaaSの開発を担当 6月 Kubernetes発表 9月 日本で最初の Kubernetes勉強会開催 11月 Kubernetes解説記事掲載 Docker登場。 PivotalのMatt Stine氏に よりクラウドネイティブの 概念が提唱される CNCF設立 国内最大のクラウドネイ ティブ技術カンファレン ス、CloudNative Daysの Co-Chairに就任 Pivotal入社。PaaSと クラウドネイティブ 技術の推進に携わる HashiCorp入社。IaCやゼ ロトラストセキュリティ の推進に携わる 今日はお呼ばれしてここで話しているんで すけど、自分はこれまで 10年以上クラウド やクラウドネイティブ技術に携わってきまし た。その知見を元にお話したいなと思いま す。

Slide 8

Slide 8 text

こういう質問をよく受けます うちはAWSオンリー なんだけど、 Kubernetes使った方が 良いの? コンテナのほうが 良いのかな・・・ VMじゃダメ? オンプレやめて全部 クラウドにしました。 これでクラウドネイティ ブだよね? ベンダーがクラウド ネイティブ製品売り込んで きてるんだけど、やっぱりそう いうの買った方がいい? そういう背景もあるので、よくこういう質問を うけます。

Slide 9

Slide 9 text

こういう質問をよく受けます うちはAWSオンリー なんだけど、 Kubernetes使った方が 良いの? コンテナのほうが 良いのかな・・・ VMじゃダメ? オンプレやめて全部 クラウドにしました。 これでクラウドネイティ ブだよね? ベンダーがクラウド ネイティブ製品売り込んで きてるんだけど、やっぱりそう いうの買った方がいい?

Slide 10

Slide 10 text

クラウド (パブリック・プライベート・ハイブリッド ) App App App これはクラウドネイティブ? オンプレ App App App

Slide 11

Slide 11 text

クラウド (パブリック・プライベート・ハイブリッド ) App App App これはクラウドネイティブ? オンプレ App App App Lift & Shift これはクラウドネイティブじゃないですよね。 Lift & Shiftって言ったりしますけど、その Lift をしたにすぎません。

Slide 12

Slide 12 text

CNCFによるクラウドネイティブの定義 クラウドネイティブ技術は、パブリッククラウド、プライベートクラウド、 ハイブリッドクラウドなどの近代的でダイナミックな環境において、スケー ラブルなアプリケーションを構築および実行するための能力を組織にもたら します。 このアプローチの代表例に、コンテナ、サービスメッシュ、マイク ロサービス、イミュータブルインフラストラクチャ、および宣言型APIがあり ます。 これらの手法により、回復性、管理力、および可観測性のある疎結合システ ムが実現します。 これらを堅牢な自動化と組み合わせることで、エンジニア はインパクトのある変更を最小限の労力で頻繁かつ予測どおりに行うことが できます。 https://github.com/cncf/toc/blob/main/DEFINITION.md クラウドネイティブ技術については、 CNCF が定義を公開しています。

Slide 13

Slide 13 text

クラウドネイティブ アーキテクチャ クラウドネイティブ アプリケーション クラウド (パブリック・プライベート・ハイブリッド ) App App App クラウドネイティブ○○ クラウドネイティブは形容詞なので、その後に「アプ リケーション」だったり「アーキテクチャ」という言葉 が続きます。 クラウドネイティブアプリケーションがあって、それを 構成する仕組みがクラウドネイティブアーキテクチャ という関係性です。

Slide 14

Slide 14 text

そもそもクラウドって何?

Slide 15

Slide 15 text

NISTによるクラウドコンピューティングの定義 クラウドの基本的な特徴 ● オンデマンド・セルフサービス ● 幅広いネットワークアクセス ● リソースの共用 ● スピーディな拡張性 ● サービスが計測可能であること https://www.ipa.go.jp/files/000025366.pdf ちょっと古いんですけど、 NISTというところ がクラウドコンピューティングの定義を公開 しています。

Slide 16

Slide 16 text

NISTによるクラウドコンピューティングの定義 クラウドの基本的な特徴 ● オンデマンド・セルフサービス ● 幅広いネットワークアクセス ● リソースの共用 ● スピーディな拡張性 ● サービスが計測可能であること https://www.ipa.go.jp/files/000025366.pdf 使った分だけ課金 低い初期費用 スケールしやすい 運用を肩代わり リソースの 調達が早い 表現を変えると、こういったものがクラウド のメリットといえるでしょう。

Slide 17

Slide 17 text

NISTによるクラウドコンピューティングの定義 クラウドの基本的な特徴 ● オンデマンド・セルフサービス ● 幅広いネットワークアクセス ● リソースの共用 ● スピーディな拡張性 ● サービスが計測可能であること https://www.ipa.go.jp/files/000025366.pdf 使った分だけ課金 低い初期費用 スケールしやすい 運用を肩代わり リソースの 調達が早い APIでコントロール出 来る ただそれよりも何よりも、 APIでコントロール できるというのがクラウドの最大の特徴だと 思っています。

Slide 18

Slide 18 text

こういう質問をよく受けます うちはAWSオンリー なんだけど、 Kubernetes使った方が 良いの? コンテナのほうが 良いのかな・・・ VMじゃダメ? オンプレやめて全部 クラウドにしました。 これでクラウドネイティ ブだよね? ベンダーがクラウド ネイティブ製品売り込んで きてるんだけど、やっぱりそう いうの買った方がいい?

Slide 19

Slide 19 text

クラウドネイティブ技術 クラウドネイティブ アーキテクチャ クラウドネイティブ アプリケーション クラウド (パブリック・プライベート・ハイブリッド ) App App App クラウドネイティブ○○ コンテナ、サービスメッシュ、マイクロサービス、 イミュータブルインフラストラクチャ、etc… さっきの例で言うと、クラウドネイティブアプリケー ションやアーキテクチャを実現するために、クラウ ドネイティブ技術が存在するわけですね。

Slide 20

Slide 20 text

CNCFによるクラウドネイティブの定義 クラウドネイティブ技術は、パブリッククラウド、プライベートクラウド、 ハイブリッドクラウドなどの近代的でダイナミックな環境において、スケー ラブルなアプリケーションを構築および実行するための能力を組織にもたら します。 このアプローチの代表例に、コンテナ、サービスメッシュ、マイク ロサービス、イミュータブルインフラストラクチャ、および宣言型APIがあり ます。 これらの手法により、回復性、管理力、および可観測性のある疎結合システ ムが実現します。 これらを堅牢な自動化と組み合わせることで、エンジニア はインパクトのある変更を最小限の労力で頻繁かつ予測どおりに行うことが できます。 https://github.com/cncf/toc/blob/main/DEFINITION.md CNCFの定義は、クラウドネイティブ技術に ついて述べたものです。

Slide 21

Slide 21 text

もし、あなたのモチベーションが・・・ 『クラウドネイティブ技術を触りたい』 であれば ● 好きに色んなものを試すといい ● コンテナだけがクラウドネイティブ ではないので、OSSやベン ダーのサービスなどを幅広く試してみるのをお勧め ● 『検討』を進めるよりは、とにかく手を動かしていくことが重要 https://www.ipa.go.jp/files/000025366.pdf

Slide 22

Slide 22 text

もし、あなたのモチベーションが・・・ 『クラウドネイティブによりシステムを良くしていきたい』 であれば ● このあとの説明を聞いて下さい https://www.ipa.go.jp/files/000025366.pdf

Slide 23

Slide 23 text

何故クラウドネイティブが必要なのか

Slide 24

Slide 24 text

Software is eating the world ソフトウェアの力により世の中がものすごく 変わりつつあります。

Slide 25

Slide 25 text

想像を超えるテクノロジーの進化 Midjourney DALL-E Stable Diffusion NovelAI 一見本物と区別が付かないような写真やイラストを生成できるように 特に最近AI周りがホットですよね。ここ 半年で、信じられないプロダクトが次々 に登場しました。権利周りの問題はあ れど、技術面ではちょっと前まで想像 出来なかった世界が実現しつつありま す。

Slide 26

Slide 26 text

ChatGPT 対話に特化した言語モデル。 テキストで質問するとAIが回答 を表示する。 一見人間と見分けが付かないほ どの自然な文章を生成できる。 左の動画はクラウドネイティブ 技術による影響や、取り組み方 について質問してみた例。 本公演の僅か1週間前にリリー スされた この講演は2022年の12月上旬でしたが、直前に ChatGPTが登場して度肝を抜かれました。技術的な質問 を投げかけてみて、正確なレスポンスが返ってくることをデ モしました。 クラウドネイティブについて、自分なんかの話を聞くよりも ChatGPTに聞いて見たほうが早いんじゃないですかね () 画像生成AIに対しては『すごい時代がきたもんだ』と対岸 の火事のような感覚でしたが、 ChatGPTは『ひょっとすると 数年後に自分の仕事は不要になっているかもしれない』と 考えてしまうほど、インパクトのあるものでした。

Slide 27

Slide 27 text

予測できない世の中 AIに限らず、ありとあらゆる分野でデジタルによる変革が進んでいる。ほん の数日前までは想像すら出来なかったものが、突然実現される世の中になっ ている。 加えて政治も社会も経済は、不安定な状況が続く。 まさにVUCA時代

Slide 28

Slide 28 text

どうやって生き残っていくべきか この世界の流れに逆らうことはできない。 個人においても、企業においても 自らも素早く変化していき、適応し、流れをうまく利用する以外に道はない

Slide 29

Slide 29 text

CNCFによるクラウドネイティブの定義 クラウドネイティブ技術は、パブリッククラウド、プライベートクラウド、 ハイブリッドクラウドなどの近代的でダイナミックな環境において、スケー ラブルなアプリケーションを構築および実行するための能力を組織にもたら します。 このアプローチの代表例に、コンテナ、サービスメッシュ、マイク ロサービス、イミュータブルインフラストラクチャ、および宣言型APIがあり ます。 これらの手法により、回復性、管理力、および可観測性のある疎結合システ ムが実現します。 これらを堅牢な自動化と組み合わせることで、エンジニア はインパクトのある変更を最小限の労力で頻繁かつ予測どおりに行うことが できます。 https://github.com/cncf/toc/blob/main/DEFINITION.md

Slide 30

Slide 30 text

コンピューティングリソースの量が全てを決める 機械学習、AI、ビッグデータ、ブロックチェーン、etc… 世界を変えつつある新技術は、従来では考えられない規模のコンピューティ ングリソースを大量に消費することで成り立っている。 人間が直接サーバーを管理してどうにかなる次元では無くなっている。 ではどうするか? ⇒ クラウドを使おう なんでこんなことが出来るようになったか。技術革 新が進んだというのもありますけど、単純に膨大 なコンピューティングリソースを素早く調達してぶ ん回せるようになったという要素が大きいと考えて います。 それを実現するキーが、クラウドなわけです。

Slide 31

Slide 31 text

クラウドで 高速化したよ 数分で 環境作れるよ 数msで 処理終わるよ 前の処理が 終わったら 自動で動くよ クラウドであれば大量のリソースを素早く作れま す。・・・本当に?

Slide 32

Slide 32 text

Latency Numbers Every Programmer Should Know https://gist.github.com/jboner/2841832 『プログラマーが知っておくべき数字』としてこうい う情報があるのですが https://colin-scott.github.io/personal_website/research/interactive_latency.html

Slide 33

Slide 33 text

Latency Numbers Every Programmer Should Know https://gist.github.com/jboner/2841832 上司の許可取ってサーバー 1台構築 259,200,000,000,000 ns もしあなたが上司の許可を取ってクラウドにサー バーを構築する場合、このくらい時間がかかるわ けです。文字通り、桁が違う。

Slide 34

Slide 34 text

クラウドで 高速化したよ 数分で 環境作れるよ 数msで 処理終わるよ 前の処理が 終わったら 自動で動くよ

Slide 35

Slide 35 text

承認待ち 3日 他チームの 返事待ち6時間 稟議○週間 意思決定 3時間 人間が一連のプロセスに関わることによって、これ だけ時間がかかっちゃうわけですね。

Slide 36

Slide 36 text

承認待ち 3日 他チームの 返事待ち6時間 稟議○週間 意思決定 3時間 VUCAの時代においては、人間の存在自体がボトルネック

Slide 37

Slide 37 text

設定ミス 伝達漏れ 見落とし 機密情報を 間違って コミットする しかも人間はミスをするんです。 まったく、ロクなことしないですね人間

Slide 38

Slide 38 text

設定ミス 伝達漏れ 見落とし 機密情報を 間違って コミットする あなたが居ない方が、仕事は早く回る

Slide 39

Slide 39 text

人間を挟まない 仕組み作り API API API API API API API API API API じゃあどうすればいいかというと、人間の関与を無 くせばいいわけです。そうすると、コンピューターの タイムスケールで物事が進むようになります。

Slide 40

Slide 40 text

CNCFによるクラウドネイティブの定義 クラウドネイティブ技術は、パブリッククラウド、プライベートクラウド、ハイブ リッドクラウドなどの近代的でダイナミックな環境において、スケーラブルなアプ リケーションを構築および実行するための能力を組織にもたらします。 このアプ ローチの代表例に、コンテナ、サービスメッシュ、マイクロサービス、イミュータ ブルインフラストラクチャ、および宣言型APIがあります。 これらの手法により、回復性、管理力、および可観測性のある疎結合システムが実 現します。 これらを堅牢な自動化と組み合わせることで、エンジニアはインパク トのある変更を最小限の労力で頻繁かつ予測どおりに行うことができます。 https://github.com/cncf/toc/blob/main/DEFINITION.md この前提にたって、クラウドネイティブ技術の定義 を読んでみると、また違った読み方ができます。 例えばこの近代的でダイナミックな環境とは

Slide 41

Slide 41 text

CNCFによるクラウドネイティブの定義 クラウドネイティブ技術は、パブリッククラウド、プライベートクラウド、ハイブ リッドクラウドなどの近代的でダイナミックな環境において、スケーラブルなアプ リケーションを構築および実行するための能力を組織にもたらします。 このアプ ローチの代表例に、コンテナ、サービスメッシュ、マイクロサービス、イミュータ ブルインフラストラクチャ、および宣言型APIがあります。 これらの手法により、回復性、管理力、および可観測性のある疎結合システムが実 現します。 これらを堅牢な自動化と組み合わせることで、エンジニアはインパク トのある変更を最小限の労力で頻繁かつ予測どおりに行うことができます。 https://github.com/cncf/toc/blob/main/DEFINITION.md APIでコントロール出来る環境

Slide 42

Slide 42 text

CNCFによるクラウドネイティブの定義 クラウドネイティブ技術は、パブリッククラウド、プライベートクラウド、ハイブ リッドクラウドなどの近代的でダイナミックな環境において、スケーラブルなアプ リケーションを構築および実行するための能力を組織にもたらします。 このアプ ローチの代表例に、コンテナ、サービスメッシュ、マイクロサービス、イミュータ ブルインフラストラクチャ、および宣言型APIがあります。 これらの手法により、回復性、管理力、および可観測性のある疎結合システムが実 現します。 これらを堅牢な自動化と組み合わせることで、エンジニアはインパク トのある変更を最小限の労力で頻繁かつ予測どおりに行うことができます。 https://github.com/cncf/toc/blob/main/DEFINITION.md スケーラブルなアプリケーションを構築および実行 するための能力とは

Slide 43

Slide 43 text

CNCFによるクラウドネイティブの定義 クラウドネイティブ技術は、パブリッククラウド、プライベートクラウド、ハイブ リッドクラウドなどの近代的でダイナミックな環境において、スケーラブルなアプ リケーションを構築および実行するための能力を組織にもたらします。 このアプ ローチの代表例に、コンテナ、サービスメッシュ、マイクロサービス、イミュータ ブルインフラストラクチャ、および宣言型APIがあります。 これらの手法により、回復性、管理力、および可観測性のある疎結合システムが実 現します。 これらを堅牢な自動化と組み合わせることで、エンジニアはインパク トのある変更を最小限の労力で頻繁かつ予測どおりに行うことができます。 https://github.com/cncf/toc/blob/main/DFINITION.md APIを活用して、人間の関与を減らし つつ、大量のリソースを自動化でき る仕組み作り

Slide 44

Slide 44 text

つまり、クラウドネイティブの本質とは 全ての活動において 『コンピュータの力でコンピュータを動かす』 『人間の関与を無くす』 を実践していくこと。 https://github.com/cncf/toc/blob/main/DEFINITION.md

Slide 45

Slide 45 text

つまり、クラウドネイティブの本質とは 全ての活動において 『コンピュータの力でコンピュータを動かす』 『人間の関与を無くす』 を実践していくこと。 技術に限らず適用できる考え方なので、 私は『クラウドネイティブ思考』もしくは 『クラウドネイティブマインドセット』と呼んでいます

Slide 46

Slide 46 text

こういう質問をよく受けます うちはAWSオンリー なんだけど、 Kubernetes使った方が 良いの? コンテナのほうが 良いのかな・・・ VMじゃダメ? オンプレやめて全部 クラウドにしました。 これでクラウドネイティ ブだよね? ベンダーがクラウド ネイティブ製品売り込んで きてるんだけど、やっぱりそう いうの買った方がいい? そう考えると、よく言われるこれらの質問は

Slide 47

Slide 47 text

こういう質問をよく受けます うちはAWSオンリー なんだけど、 Kubernetes使った方が 良いの? コンテナのほうが 良いのかな・・・ VMじゃダメ? オンプレやめて全部 クラウドにしました。 これでクラウドネイティ ブだよね? ベンダーがクラウド ネイティブ製品売り込んで きてるんだけど、やっぱりそう いうの買った方がいい? 些末な問題

Slide 48

Slide 48 text

人を挟まない仕組みを作れるかどうかが全て コンテナを使っても、人が挟まったらメリットは消え去る docker build docker push mvn package kubectl apply VMを使っても、クラウドネイティブは実現出来る git push

Slide 49

Slide 49 text

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

Slide 50

Slide 50 text

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

Slide 51

Slide 51 text

Value Stream Mapping アイディア 分析 リリース 設計 リリース 判定会議 品質判定 会議 テスト UAT コード レビュー Production デプロイ 開発 Staging デプロイ パフォーマ ンステスト LT: 2d / PT: 1d LT: 3d / PT: 2d LT: 4d / PT: 3d LT: 1d / PT: 4h LT: 1d / PT: 2h LT: 1d / PT: 6h LT: 7d / PT: 1h LT: 1d / PT: 2h LT: 1d / PT: 6h LT: 10d / PT: 1h LT(リードタイム): 31日 PT(プロセスタイム): 8.75日 Value Stream Mappingを描いてみるといいでしょう。成果 を出すための一連のプロセスで、それぞれどれだけ時間 がかかっているかを書き出します。 PT=実際に手を動かし ている時間、LT=待ち時間含めて要した時間

Slide 52

Slide 52 text

Value Stream Mapping アイディア 分析 リリース 設計 リリース 判定会議 品質判定 会議 テスト UAT コード レビュー Production デプロイ 開発 Staging デプロイ パフォーマ ンステスト LT: 2d / PT: 1d LT: 3d / PT: 2d LT: 4d / PT: 3d LT: 1d / PT: 4h LT: 1h / PT: 0.1h LT: 1d / PT: 6h LT: 7d / PT: 1h LT: 1h / PT: 0.1h LT: 1d / PT: 6h LT: 10d / PT: 1h LT(リードタイム): 31日⇒29日 PT(プロセスタイム): 8.75日⇒8.25日 コンテナ技術を導入することによって、これらのフェーズの LTとPTを削減できました。 累計のLTは2日、PTは0.5日短縮できました。 ・・・なんかしょぼくない? どうして? よく見ると、もっとなんとかすべき項目がありそうです。

Slide 53

Slide 53 text

Value Stream Mapping アイディア 分析 リリース 設計 リリース 判定会議 品質判定 会議 テスト UAT コード レビュー Production デプロイ 開発 Staging デプロイ パフォーマ ンステスト LT: 2d / PT: 1d LT: 3d / PT: 2d LT: 4d / PT: 3d LT: 1d / PT: 4h LT: 1h / PT: 0.1h LT: 1d / PT: 6h LT: 7d / PT: 1h LT: 1h / PT: 0.1h LT: 1d / PT: 6h LT: 10d / PT: 1h LT(リードタイム): 31日⇒29日 PT(プロセスタイム): 8.75日⇒8.25日 クラウドネイティブ技術より、 会議をなんとかすべきでは?

Slide 54

Slide 54 text

クラウドネイティブの本質とは 全ての活動において 『コンピュータの力でコンピュータを動かす』 『人間の関与を無くす』 を実践していくこと。 https://github.com/cncf/toc/blob/main/DEFINITION.md

Slide 55

Slide 55 text

その会議、本当に必要? ● 品質の判定が必要ならば、会議で話し合うのではなく テストを充実させて自動で判断させては? ● リリースの判定は、『テストが全て通っていること』を基準にして みては? ● トラブルが起きたら速やかに切り戻せるようにすれば、 人間による判定は要らないのでは? (システムの重要度による) ● ビジネス視点ではなく、内向き視点の会議ではないか?問題が起き た際の責任の所在を曖昧にする目的で合議制にしていないか?

Slide 56

Slide 56 text

Value Stream Mapping アイディア 分析 リリース 設計 テスト UAT コード レビュー Production デプロイ 開発 Staging デプロイ パフォーマ ンステスト LT: 2d / PT: 1d LT: 3d / PT: 2d LT: 4d / PT: 3d LT: 1d / PT: 4h LT: 1h / PT: 0.1h LT: 1d / PT: 6h LT: 1h / PT: 0.1h LT: 1d / PT: 6h LT(リードタイム): 31日⇒14日 PT(プロセスタイム): 8.75日⇒8.5日 要らない会議を無くすことで、 LTを17日も短縮することが できました。半分以下! まさに劇的な効果

Slide 57

Slide 57 text

DX デジタイゼーション 会議 リモート 会議 『デジタル化』と一言でいうのではなく、デジタイゼーション・デジタライ ゼーション・デジタルフォーメーションに分けて考えるべきと言われます。 対面の会議をリモート会議にすることを『デジタイゼーション』とすると

Slide 58

Slide 58 text

DX デジタイゼーション 会議 リモート 会議 デジタルトランスフォーメーション 会議 リモート 会議 クラウドネイティブ思考 クラウドネイティブ思考に則り、人間の関与を無くすためにそもそもの会 議を無くすこと。これこそが、 真のデジタルトランスフォーメーション といえ るのではないかと。

Slide 59

Slide 59 text

まとめ ● クラウドネイティブの本質は2点 ○ 『コンピュータの力でコンピュータを動かす』 ○ 『人間の関与を無くす』 ● クラウドはAPIにより全てを自動化するポテンシャルを備えており、 それをフル活用するための技術がクラウドネイティブ技術 ● クラウドネイティブ思考は技術に限らず全ての人に適用できる。 全ての人が意識することで、デジタルトランスフォーメーションが 達成できる

Slide 60

Slide 60 text

全ての人に、クラウドネイティブを