Slide 1

Slide 1 text

Copyright 2019 FUJITSU LIMITED Cloud Native ~予測不能な世界と戦う~ 亀澤 寛之 富士通株式会社 @hiro_kamezawa 0 JEITAソフトウェアエンジニアリング技術ワークショップ2019

Slide 2

Slide 2 text

自己紹介  名前:亀澤 寛之  職歴:  2003年: 富士通に入社  2003年~2009年:Linux Kernelのメモリ管理開発  2008年~2012年:Linux Kernel / cgroup開発  2012年~2018年:コンテナ開発 • CNCFのボードメンバー等  2018年~ サービス開発(PO)  好きな言葉  Plan is nothing, but planning is everything.  Ideas are cheap; execution is everything  枯れた技術の水平思考 Copyright 2019 FUJITSU LIMITED 1

Slide 3

Slide 3 text

Copyright 2019 FUJITSU LIMITED  本稿は執筆者本人の意見の表明であり、富士通株式会社とは関係はありません。  実践的な話は後のスピーカーに。  技術っぽくないのでごめんなさい。 Disclaimer 2

Slide 4

Slide 4 text

Cloud Native ? Copyright 2019 FUJITSU LIMITED 3

Slide 5

Slide 5 text

CNCFによる定義 Copyright 2019 FUJITSU LIMITED  クラウドネイティブ技術は、パブリッククラウド、プライベートクラウド、ハイブリッドクラウ ドなどの近代的でダイナミックな環境において、スケーラブルなアプリケーションを構築および 実行するための能力を組織にもたらします。 このアプローチの代表例に、コンテナ、サービス メッシュ、マイクロサービス、イミュータブルインフラストラクチャ、および宣言型APIがあり ます。  これらの手法により、回復性、管理力、および可観測性のある疎結合システムが実現します。 これらを堅牢な自動化と組み合わせることで、エンジニアはインパクトのある変更を最小限の労 力で頻繁かつ予測どおりに行うことができます。  Cloud Native Computing Foundationは、オープンソースでベンダー中立プロジェクトのエコシ ステムを育成・維持して、このパラダイムの採用を促進したいと考えてます。 私たちは最先端 のパターンを民主化し、これらのイノベーションを誰もが利用できるようにします。 https://github.com/cncf/toc/blob/master/DEFINITION.md 4

Slide 6

Slide 6 text

Cloud Native Landscape Copyright 2019 FUJITSU LIMITED https://landscape.cncf.io/ 1,271 1,914,921 $14.21T $63.13B projects stars market funds 5

Slide 7

Slide 7 text

何のために?どう使う? Copyright 2019 FUJITSU LIMITED 6

Slide 8

Slide 8 text

VUCAの時代 Volatility(変動性) Uncertainty(不確実性) Complexity(複雑性) Ambiguity(曖昧性) Copyright 2019 FUJITSU LIMITED 7

Slide 9

Slide 9 text

ありえないことは起こる Copyright 2019 FUJITSU LIMITED 大震災 サブプライム問題 Meltdown/Spectre問題 スマップ解散 8

Slide 10

Slide 10 text

Copyright 2019 FUJITSU LIMITED 昨年の我々の10の予測は2つ当たった これは素晴らしい成果である どこかの調査会社 9

Slide 11

Slide 11 text

Copyright 2019 FUJITSU LIMITED 「この人に飼われてから毎日餌ももらえるし 毎日洗ってくれる。 僕は大事にされてるなぁ」 どこかの七面鳥 10

Slide 12

Slide 12 text

Copyright 2019 FUJITSU LIMITED Cloud Nativeで 予測不能な世界と戦う 今日のお題 11

Slide 13

Slide 13 text

本日の目標 普段クラウドネイティブの話の中で語られるような 技術や取り組み方が “不確実性”との闘いの中でどう位置付けられるのか なんとなくわかる Copyright 2019 FUJITSU LIMITED 12

Slide 14

Slide 14 text

Copyright 2019 FUJITSU LIMITED 「わが社の中期計画は3カ月です 長期計画?1年ですね。 3ヵ年計画?それはdreamと呼びます」 どこかの会社 不確実性に備える人たち① 13

Slide 15

Slide 15 text

Copyright 2019 FUJITSU LIMITED “Plans are nothing, Planning is everything.” Dwight D Eisenhower (1890-1969) 不確実性に備える人たち② 14

Slide 16

Slide 16 text

Copyright 2019 FUJITSU LIMITED 制作委員会方式 日本のアニメ制作 不確実性に備える人たち③ 15

Slide 17

Slide 17 text

予測不能な世界と戦う Copyright 2019 FUJITSU LIMITED 機敏になる 常に選択肢を持つ 失敗を味方にする 16

Slide 18

Slide 18 text

Copyright 2019 FUJITSU LIMITED “予測不能”と戦う三つのポイント Lv.1 機敏になる Lv.2 選択肢を持つ Lv.3 予測に頼らない 17

Slide 19

Slide 19 text

Copyright 2019 FUJITSU LIMITED Lv.1 機敏になる Lv.2 選択肢を持つ Lv.3 予測に頼らない 18

Slide 20

Slide 20 text

機敏さで不確かさと戦う Copyright 2019 FUJITSU LIMITED 軍隊 スポーツチーム スタートアップ 小売業 19

Slide 21

Slide 21 text

機敏さのために Copyright 2019 FUJITSU LIMITED ミッションコマンド アプリケーションファースト テスト戦略 20

Slide 22

Slide 22 text

アプリケーションファースト Copyright 2019 FUJITSU LIMITED App MW Runtime OS VM 従来型=積み上げ App MW Runtime OS VM クラウド型=呼び出し リソースは呼べば出てくる。ユーザーは“利益を生むこと” に集中する システムに乗って“設計”するものを減らす 21

Slide 23

Slide 23 text

アプリケーションファーストにおけるコンテナの意味 Copyright 2019 FUJITSU LIMITED App MW Runtime OS VM コンテナ アプリ+MW+Runtime をパッケージ コンテナイメージ 共通化されたインタフェース (Kubernetes+OCI+Linux) 様々なインフラ提供者 22

Slide 24

Slide 24 text

アプリケーションファーストとSaaS Copyright 2019 FUJITSU LIMITED 何をするにしても“設計”が一番時間がかかる もちろん自前主義も悪くはないがSaaSをちゃんと使おう オープンな技術で代替手段があるかどうかも(たぶん)ポイント 注力領域 コストメリットの低い領域 23

Slide 25

Slide 25 text

テスト戦略 Copyright 2019 FUJITSU LIMITED ありがちな従来型基幹システム レグレッション 再発防止テスト システムテスト ユニット テスト 際限なく増える 早さを目指すサービス 厚みのある 自動ユニットテスト 自動 E2Eテスト 最終 テスト 増えないよう監視 実装はCI/CDがカギだが “テストを追加してもよいか?”監視とルールが必要 並列化 24

Slide 26

Slide 26 text

Copyright 2019 FUJITSU LIMITED 品質を犠牲にしてスピードを出せというわけではないので注意 (参考)https://speakerdeck.com/twada/quality-and-speed 25

Slide 27

Slide 27 text

ミッションコマンド Copyright 2019 FUJITSU LIMITED ナポレオン Command and Control 消耗戦 現代の軍 Mission Command 機略戦 ミッションの徹底的な共有 優秀な現場判断 強力な情報見える化ネットワーク (参考) http://www.yasuhiro-tanaka.com/activity/images/32085_kaisetuzennbunn.pdf 26

Slide 28

Slide 28 text

人間の行動(O-O-D-A) Copyright 2019 FUJITSU LIMITED 観測 Observe 方針検討 Orient 行動 Act 決断 Decide O - O - D - A O-O-D-A Loopを速く回す 27

Slide 29

Slide 29 text

文化を変える Copyright 2019 FUJITSU LIMITED O-O-Dを遅くするもの • 優柔不断なリーダー • 情報の非共有 • 属人性 • 各種儀式 • 見えない仕事/突発的な仕事 • ミスと手戻り 単にクラウドを使っていても早くなったりはしない “消耗戦”をやめよう こちらに投資するのが先かもしれない。 小人数+カンバン+権限移譲から 志あれば意外といける Observe-Orient-Decideを早くしないとActが早くても仕方ない 28

Slide 30

Slide 30 text

Copyright 2019 FUJITSU LIMITED Lv.1 機敏になる Lv.2 選択肢を持つ Lv.3 予測に頼らない 29

Slide 31

Slide 31 text

未来に対する選択肢を持つことから利益が得られること Copyright 2019 FUJITSU LIMITED 賃貸物件 株式投資のポートフォリオ 無料お試し アイドルグループ オプション性 30

Slide 32

Slide 32 text

ITに選択肢をもたらすもの Copyright 2019 FUJITSU LIMITED 自由なプラットフォーム 多様性と直観 小さな停止コスト 31

Slide 33

Slide 33 text

自由なプラットフォーム Copyright 2019 FUJITSU LIMITED オープンソース AWS, Azure, GCP, VMWare…. 互換性確保の枠組み 32

Slide 34

Slide 34 text

小さな“停止”コスト Copyright 2019 FUJITSU LIMITED 疎結合 持たない 判断する 作りすぎない 誤解を恐れずに言うと アジャイルな開発プロセス モジュール化 Cloud Native SaaS利用 は”決断”を助ける大きな力になる 後から会社を縛りかねないルールは社長決裁にしないこと… 33

Slide 35

Slide 35 text

失敗を小さくする Copyright 2019 FUJITSU LIMITED 作り込み 時間 CHECK! リリース単位を細かくして確認するのが一つのやり方 34

Slide 36

Slide 36 text

顧客が本当に必要だったもの Copyright 2019 FUJITSU LIMITED 顧客視点の 情報が必要 + 途中で見せろ 35

Slide 37

Slide 37 text

失敗を小さくするリリース戦略 Copyright 2019 FUJITSU LIMITED 選択性のあるリリースプロセス ロールバック カナリアリリース Blue/Green 36

Slide 38

Slide 38 text

多様性と直観 Copyright 2019 FUJITSU LIMITED ちょっとやってみたんですけど、見てもらえますか? ○○さんが一晩でやってくれました! 遊びと直観 37

Slide 39

Slide 39 text

ミッションと計画 Copyright 2019 FUJITSU LIMITED 当初の計画 New Idea Start Goal 計画の順守 v.s. アイデア ⇒現場裁量+影響範囲の見切り 38

Slide 40

Slide 40 text

おまけ:自由度の枠 Copyright 2019 FUJITSU LIMITED 共通技術 チーム裁量 V.S. 人の教育に関するコストや共有知の蓄積を考えると ある程度“話が通じる共通の技術基盤”を持つべき… マイクロサービスって各チームが独立して…なんでしょ?? 39

Slide 41

Slide 41 text

Copyright 2019 FUJITSU LIMITED Lv.1 機敏になる Lv.2 選択肢を持つ Lv.3 予測に頼らない 40

Slide 42

Slide 42 text

リスクと脆さ Copyright 2019 FUJITSU LIMITED 例えば、「崖崩れが起きる可能性」は判らなくても 「崖崩れが起きたときの被害」は予測できる。 ○○が起きる確率に期待せず 起きても対処できるように投資する。 不確実な世界の基本的な考え方として 41

Slide 43

Slide 43 text

脆さと付き合う Copyright 2019 FUJITSU LIMITED ヒューマンエラーの取り扱い Black Boxをうまく扱う カオスエンジニアリング 42

Slide 44

Slide 44 text

ヒューマンエラーの取り扱い  https://aws.amazon.com/jp/message/41926/ Copyright 2019 FUJITSU LIMITED 適切に権限を与えられたS3チームメンバーが確立された手順に従い、S3 の請求システムが利用するS3サブ システムを構成する少数のサーバを削除するコマンドを実行いたしましたが、その際、コマンドへの入力が 不適切であったため、想定よりも多くのサーバが削除される結果となりました。 今回のケースはキャパシティ削除がキーとなるオペレーションであったことから、ツールが短期間の間に多 くのキャパシティを削除することが許可されておりました。当該ツールを改修し、キャパシティ削除をより 時間をかけて実施するように変更するとともに、サブシステムが必要とするキャパシティレベルを下回らな いようキャパシティ低下を予防するセーフガードを設けております。 ヒューマンエラーを人間でなんとかしようとしない 43

Slide 45

Slide 45 text

(脱線)責任の話 Copyright 2019 FUJITSU LIMITED (原因) オペレーションミスです (対策) コマンドを修正します 報告書 脆さで判断 政治で決めちゃダメ 44

Slide 46

Slide 46 text

Black Boxをうまく扱う Copyright 2019 FUJITSU LIMITED ? 予測や期待をせず “現象”と“脆さ”に対策する 入力には寛容に、出力は厳密に どいつもこいつも信用できない! そういうエンジニアリングができるか? (例えばCircuit Breaker) 45

Slide 47

Slide 47 text

Black Boxと付き合う Copyright 2019 FUJITSU LIMITED 他人の モジュール 直観とヒューリスティック リスクヘッジ・影響範囲の限定 46

Slide 48

Slide 48 text

Black Boxとヒューリスティクス  ヒューリスティクス 発見的(手法)とは、必ず正しい答えを導けるわけではないが、ある程度のレベ ルで正解に近い解を得ることができる方法である。発見的手法では、答えの精度 が保証されない代わりに、回答に至るまでの時間が少ないという特徴がある。 (Wikipedia) Copyright 2019 FUJITSU LIMITED 最終的に“正確さ”に時間をかけてよい。 リスクヘッジする仕掛けを利用者側で持つ 素早く作っていくときに、直観とヒューリスティック リスクは大きさをみる 人間の知恵が必要 47

Slide 49

Slide 49 text

カオスエンジニアリング ITの避難訓練 「起きない事」を実際に起こ し、影響を観測 “起きるかどうか不明”なもの を人為的に起こし、対策する Copyright 2019 FUJITSU LIMITED 48

Slide 50

Slide 50 text

CHAOS ENGINEERING FOR PEOPLE SYSTEMS https://speakerdeck.com/chaosconf/keynote-chaos-engineering-for-people-systems Copyright 2019 FUJITSU LIMITED 人に関する避難訓練 ランダムに選んだ人間を一週間業務禁止にする ランダムに選んだ人間が確率的に嘘を教える 会社なんて誰か一人いなくても回るようになってんだよ…… ………実際にやって確認する 49

Slide 51

Slide 51 text

Copyright 2019 FUJITSU LIMITED 心に留めたいこと 50

Slide 52

Slide 52 text

Cloud Nativeを活かした戦い方 Copyright 2019 FUJITSU LIMITED 選択と集中 巧緻拙速とリスクヘッジ 知恵と技術で失敗をハンドル 51

Slide 53

Slide 53 text

Cloud Nativeの先で:Amazon vs. Walmart  実際何が起きているのか?  ヴァーチャルな世界での戦い(EC) で互角に戦うと リアルな実装(倉庫と物流網)が勝 負の趨勢を決めるように見える Copyright 2019 FUJITSU LIMITED https://forbesjapan.com/articles/detail/29147 アマゾンの「制約なき成長」の時期は過ぎ た? 最大手が形勢逆転(’19/08) 実際のところ、IT Systemは業務の一部に過ぎないのだから “実装”であるリアル業務が勝負(当たり前だが) ヴァーチャルな世界での戦いを互角に持ちこみつつどうするか? どこから手をつけるか? 52

Slide 54

Slide 54 text

手段のコモディティ化 Copyright 2019 FUJITSU LIMITED クラウド+OSS 使える武器はみんな同じ 53

Slide 55

Slide 55 text

xOps DevOps DataOps DesignOps BizOps BizDevOps BizSecOps CustomerOps RevenueOps ……….. Copyright 2019 FUJITSU LIMITED (参考)https://www.slideshare.net/takaumada/xops 世界はHACKできる エンジニアリングがビジネスを作る 54

Slide 56

Slide 56 text

まとめ Copyright 2019 FUJITSU LIMITED “武器はアイデアと愛嬌” 完 新しい地図のBland Movieより 55

Slide 57

Slide 57 text

No content