Share
Embed
予測できない時代に学ぶ「クラウドネイティブ」にまつわる誤解と本質
2022年12月8日に開催された、ITmedia Cloud Native Week 2022 冬の基調講演でお話した資料です。
Kazuto Kusama
February 09, 2023
Transcript
60 slides
-
今日のは何を目的に参加されましたか? • クラウドネイティブに興味があるから • 既にクラウドネイティブ技術を活用していて効果が出ている ⇒ 是非、続けてください • 流行っているから •
そろそろうちもクラウドネイティブとやらを検討しないといけないから • これからはクラウドネイティブが主流になるんでしょ? ⇒ ちょっと気をつけたほうがいいかも -
今日持ち帰って欲しいこと • 既にクラウドネイティブを実践している人 ◦ クラウドネイティブを社内に広めていくためのトーク材料 ◦ 活動内容に自信をもつ裏付け • これからクラウドネイティブを実践する人 ◦
クラウドネイティブ技術を取り入れるにあたって、 『残念な採用』にならないための観点 ◦ クラウドネイティブの本質に対する理解 -
何故、今日ここで話しているのか 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年以上クラウド やクラウドネイティブ技術に携わってきまし た。その知見を元にお話したいなと思いま す。 -
こういう質問をよく受けます うちはAWSオンリー なんだけど、 Kubernetes使った方が 良いの? コンテナのほうが 良いのかな・・・ VMじゃダメ? オンプレやめて全部 クラウドにしました。
これでクラウドネイティ ブだよね? ベンダーがクラウド ネイティブ製品売り込んで きてるんだけど、やっぱりそう いうの買った方がいい? そういう背景もあるので、よくこういう質問を うけます。 -
こういう質問をよく受けます うちはAWSオンリー なんだけど、 Kubernetes使った方が 良いの? コンテナのほうが 良いのかな・・・ VMじゃダメ? オンプレやめて全部 クラウドにしました。
これでクラウドネイティ ブだよね? ベンダーがクラウド ネイティブ製品売り込んで きてるんだけど、やっぱりそう いうの買った方がいい? -
クラウド (パブリック・プライベート・ハイブリッド ) App App App これはクラウドネイティブ? オンプレ App App
App Lift & Shift これはクラウドネイティブじゃないですよね。 Lift & Shiftって言ったりしますけど、その Lift をしたにすぎません。 -
CNCFによるクラウドネイティブの定義 クラウドネイティブ技術は、パブリッククラウド、プライベートクラウド、 ハイブリッドクラウドなどの近代的でダイナミックな環境において、スケー ラブルなアプリケーションを構築および実行するための能力を組織にもたら します。 このアプローチの代表例に、コンテナ、サービスメッシュ、マイク ロサービス、イミュータブルインフラストラクチャ、および宣言型APIがあり ます。 これらの手法により、回復性、管理力、および可観測性のある疎結合システ ムが実現します。
これらを堅牢な自動化と組み合わせることで、エンジニア はインパクトのある変更を最小限の労力で頻繁かつ予測どおりに行うことが できます。 https://github.com/cncf/toc/blob/main/DEFINITION.md クラウドネイティブ技術については、 CNCF が定義を公開しています。 -
クラウドネイティブ アーキテクチャ クラウドネイティブ アプリケーション クラウド (パブリック・プライベート・ハイブリッド ) App App App
クラウドネイティブ◦◦ クラウドネイティブは形容詞なので、その後に「アプ リケーション」だったり「アーキテクチャ」という言葉 が続きます。 クラウドネイティブアプリケーションがあって、それを 構成する仕組みがクラウドネイティブアーキテクチャ という関係性です。 -
NISTによるクラウドコンピューティングの定義 クラウドの基本的な特徴 • オンデマンド・セルフサービス • 幅広いネットワークアクセス • リソースの共用 • スピーディな拡張性
• サービスが計測可能であること https://www.ipa.go.jp/files/000025366.pdf ちょっと古いんですけど、 NISTというところ がクラウドコンピューティングの定義を公開 しています。 -
NISTによるクラウドコンピューティングの定義 クラウドの基本的な特徴 • オンデマンド・セルフサービス • 幅広いネットワークアクセス • リソースの共用 • スピーディな拡張性
• サービスが計測可能であること https://www.ipa.go.jp/files/000025366.pdf 使った分だけ課金 低い初期費用 スケールしやすい 運用を肩代わり リソースの 調達が早い 表現を変えると、こういったものがクラウド のメリットといえるでしょう。 -
NISTによるクラウドコンピューティングの定義 クラウドの基本的な特徴 • オンデマンド・セルフサービス • 幅広いネットワークアクセス • リソースの共用 • スピーディな拡張性
• サービスが計測可能であること https://www.ipa.go.jp/files/000025366.pdf 使った分だけ課金 低い初期費用 スケールしやすい 運用を肩代わり リソースの 調達が早い APIでコントロール出 来る ただそれよりも何よりも、 APIでコントロール できるというのがクラウドの最大の特徴だと 思っています。 -
こういう質問をよく受けます うちはAWSオンリー なんだけど、 Kubernetes使った方が 良いの? コンテナのほうが 良いのかな・・・ VMじゃダメ? オンプレやめて全部 クラウドにしました。
これでクラウドネイティ ブだよね? ベンダーがクラウド ネイティブ製品売り込んで きてるんだけど、やっぱりそう いうの買った方がいい? -
クラウドネイティブ技術 クラウドネイティブ アーキテクチャ クラウドネイティブ アプリケーション クラウド (パブリック・プライベート・ハイブリッド ) App App
App クラウドネイティブ◦◦ コンテナ、サービスメッシュ、マイクロサービス、 イミュータブルインフラストラクチャ、etc… さっきの例で言うと、クラウドネイティブアプリケー ションやアーキテクチャを実現するために、クラウ ドネイティブ技術が存在するわけですね。 -
CNCFによるクラウドネイティブの定義 クラウドネイティブ技術は、パブリッククラウド、プライベートクラウド、 ハイブリッドクラウドなどの近代的でダイナミックな環境において、スケー ラブルなアプリケーションを構築および実行するための能力を組織にもたら します。 このアプローチの代表例に、コンテナ、サービスメッシュ、マイク ロサービス、イミュータブルインフラストラクチャ、および宣言型APIがあり ます。 これらの手法により、回復性、管理力、および可観測性のある疎結合システ ムが実現します。
これらを堅牢な自動化と組み合わせることで、エンジニア はインパクトのある変更を最小限の労力で頻繁かつ予測どおりに行うことが できます。 https://github.com/cncf/toc/blob/main/DEFINITION.md CNCFの定義は、クラウドネイティブ技術に ついて述べたものです。 -
もし、あなたのモチベーションが・・・ 『クラウドネイティブ技術を触りたい』 であれば • 好きに色んなものを試すといい • コンテナだけがクラウドネイティブ ではないので、OSSやベン ダーのサービスなどを幅広く試してみるのをお勧め •
『検討』を進めるよりは、とにかく手を動かしていくことが重要 https://www.ipa.go.jp/files/000025366.pdf -
想像を超えるテクノロジーの進化 Midjourney DALL-E Stable Diffusion NovelAI 一見本物と区別が付かないような写真やイラストを生成できるように 特に最近AI周りがホットですよね。ここ 半年で、信じられないプロダクトが次々 に登場しました。権利周りの問題はあ
れど、技術面ではちょっと前まで想像 出来なかった世界が実現しつつありま す。 -
ChatGPT 対話に特化した言語モデル。 テキストで質問するとAIが回答 を表示する。 一見人間と見分けが付かないほ どの自然な文章を生成できる。 左の動画はクラウドネイティブ 技術による影響や、取り組み方 について質問してみた例。 本公演の僅か1週間前にリリー
スされた この講演は2022年の12月上旬でしたが、直前に ChatGPTが登場して度肝を抜かれました。技術的な質問 を投げかけてみて、正確なレスポンスが返ってくることをデ モしました。 クラウドネイティブについて、自分なんかの話を聞くよりも ChatGPTに聞いて見たほうが早いんじゃないですかね () 画像生成AIに対しては『すごい時代がきたもんだ』と対岸 の火事のような感覚でしたが、 ChatGPTは『ひょっとすると 数年後に自分の仕事は不要になっているかもしれない』と 考えてしまうほど、インパクトのあるものでした。 -
CNCFによるクラウドネイティブの定義 クラウドネイティブ技術は、パブリッククラウド、プライベートクラウド、 ハイブリッドクラウドなどの近代的でダイナミックな環境において、スケー ラブルなアプリケーションを構築および実行するための能力を組織にもたら します。 このアプローチの代表例に、コンテナ、サービスメッシュ、マイク ロサービス、イミュータブルインフラストラクチャ、および宣言型APIがあり ます。 これらの手法により、回復性、管理力、および可観測性のある疎結合システ ムが実現します。
これらを堅牢な自動化と組み合わせることで、エンジニア はインパクトのある変更を最小限の労力で頻繁かつ予測どおりに行うことが できます。 https://github.com/cncf/toc/blob/main/DEFINITION.md -
コンピューティングリソースの量が全てを決める 機械学習、AI、ビッグデータ、ブロックチェーン、etc… 世界を変えつつある新技術は、従来では考えられない規模のコンピューティ ングリソースを大量に消費することで成り立っている。 人間が直接サーバーを管理してどうにかなる次元では無くなっている。 ではどうするか? ⇒ クラウドを使おう なんでこんなことが出来るようになったか。技術革 新が進んだというのもありますけど、単純に膨大
なコンピューティングリソースを素早く調達してぶ ん回せるようになったという要素が大きいと考えて います。 それを実現するキーが、クラウドなわけです。 -
Latency Numbers Every Programmer Should Know https://gist.github.com/jboner/2841832 上司の許可取ってサーバー 1台構築 259,200,000,000,000 ns
もしあなたが上司の許可を取ってクラウドにサー バーを構築する場合、このくらい時間がかかるわ けです。文字通り、桁が違う。 -
人間を挟まない 仕組み作り API API API API API API API API
API API じゃあどうすればいいかというと、人間の関与を無 くせばいいわけです。そうすると、コンピューターの タイムスケールで物事が進むようになります。 -
CNCFによるクラウドネイティブの定義 クラウドネイティブ技術は、パブリッククラウド、プライベートクラウド、ハイブ リッドクラウドなどの近代的でダイナミックな環境において、スケーラブルなアプ リケーションを構築および実行するための能力を組織にもたらします。 このアプ ローチの代表例に、コンテナ、サービスメッシュ、マイクロサービス、イミュータ ブルインフラストラクチャ、および宣言型APIがあります。 これらの手法により、回復性、管理力、および可観測性のある疎結合システムが実 現します。 これらを堅牢な自動化と組み合わせることで、エンジニアはインパク
トのある変更を最小限の労力で頻繁かつ予測どおりに行うことができます。 https://github.com/cncf/toc/blob/main/DEFINITION.md この前提にたって、クラウドネイティブ技術の定義 を読んでみると、また違った読み方ができます。 例えばこの近代的でダイナミックな環境とは -
CNCFによるクラウドネイティブの定義 クラウドネイティブ技術は、パブリッククラウド、プライベートクラウド、ハイブ リッドクラウドなどの近代的でダイナミックな環境において、スケーラブルなアプ リケーションを構築および実行するための能力を組織にもたらします。 このアプ ローチの代表例に、コンテナ、サービスメッシュ、マイクロサービス、イミュータ ブルインフラストラクチャ、および宣言型APIがあります。 これらの手法により、回復性、管理力、および可観測性のある疎結合システムが実 現します。 これらを堅牢な自動化と組み合わせることで、エンジニアはインパク
トのある変更を最小限の労力で頻繁かつ予測どおりに行うことができます。 https://github.com/cncf/toc/blob/main/DEFINITION.md APIでコントロール出来る環境 -
CNCFによるクラウドネイティブの定義 クラウドネイティブ技術は、パブリッククラウド、プライベートクラウド、ハイブ リッドクラウドなどの近代的でダイナミックな環境において、スケーラブルなアプ リケーションを構築および実行するための能力を組織にもたらします。 このアプ ローチの代表例に、コンテナ、サービスメッシュ、マイクロサービス、イミュータ ブルインフラストラクチャ、および宣言型APIがあります。 これらの手法により、回復性、管理力、および可観測性のある疎結合システムが実 現します。 これらを堅牢な自動化と組み合わせることで、エンジニアはインパク
トのある変更を最小限の労力で頻繁かつ予測どおりに行うことができます。 https://github.com/cncf/toc/blob/main/DEFINITION.md スケーラブルなアプリケーションを構築および実行 するための能力とは -
CNCFによるクラウドネイティブの定義 クラウドネイティブ技術は、パブリッククラウド、プライベートクラウド、ハイブ リッドクラウドなどの近代的でダイナミックな環境において、スケーラブルなアプ リケーションを構築および実行するための能力を組織にもたらします。 このアプ ローチの代表例に、コンテナ、サービスメッシュ、マイクロサービス、イミュータ ブルインフラストラクチャ、および宣言型APIがあります。 これらの手法により、回復性、管理力、および可観測性のある疎結合システムが実 現します。 これらを堅牢な自動化と組み合わせることで、エンジニアはインパク
トのある変更を最小限の労力で頻繁かつ予測どおりに行うことができます。 https://github.com/cncf/toc/blob/main/DFINITION.md APIを活用して、人間の関与を減らし つつ、大量のリソースを自動化でき る仕組み作り -
こういう質問をよく受けます うちはAWSオンリー なんだけど、 Kubernetes使った方が 良いの? コンテナのほうが 良いのかな・・・ VMじゃダメ? オンプレやめて全部 クラウドにしました。
これでクラウドネイティ ブだよね? ベンダーがクラウド ネイティブ製品売り込んで きてるんだけど、やっぱりそう いうの買った方がいい? そう考えると、よく言われるこれらの質問は -
こういう質問をよく受けます うちはAWSオンリー なんだけど、 Kubernetes使った方が 良いの? コンテナのほうが 良いのかな・・・ VMじゃダメ? オンプレやめて全部 クラウドにしました。
これでクラウドネイティ ブだよね? ベンダーがクラウド ネイティブ製品売り込んで きてるんだけど、やっぱりそう いうの買った方がいい? 些末な問題 -
人を挟まない仕組みを作れるかどうかが全て コンテナを使っても、人が挟まったらメリットは消え去る docker build docker push mvn package kubectl apply
VMを使っても、クラウドネイティブは実現出来る git push -
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=待ち時間含めて要した時間 -
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日短縮できました。 ・・・なんかしょぼくない? どうして? よく見ると、もっとなんとかすべき項目がありそうです。 -
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日 クラウドネイティブ技術より、 会議をなんとかすべきでは? -
その会議、本当に必要? • 品質の判定が必要ならば、会議で話し合うのではなく テストを充実させて自動で判断させては? • リリースの判定は、『テストが全て通っていること』を基準にして みては? • トラブルが起きたら速やかに切り戻せるようにすれば、 人間による判定は要らないのでは?
(システムの重要度による) • ビジネス視点ではなく、内向き視点の会議ではないか?問題が起き た際の責任の所在を曖昧にする目的で合議制にしていないか? -
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日も短縮することが できました。半分以下! まさに劇的な効果 -
DX デジタイゼーション 会議 リモート 会議 デジタルトランスフォーメーション 会議 リモート 会議 クラウドネイティブ思考
クラウドネイティブ思考に則り、人間の関与を無くすためにそもそもの会 議を無くすこと。これこそが、 真のデジタルトランスフォーメーション といえ るのではないかと。 -
まとめ • クラウドネイティブの本質は2点 ◦ 『コンピュータの力でコンピュータを動かす』 ◦ 『人間の関与を無くす』 • クラウドはAPIにより全てを自動化するポテンシャルを備えており、 それをフル活用するための技術がクラウドネイティブ技術
• クラウドネイティブ思考は技術に限らず全ての人に適用できる。 全ての人が意識することで、デジタルトランスフォーメーションが 達成できる