Upgrade to Pro — share decks privately, control downloads, hide ads and more …

30分でわかる 「クラウドアプリケーション10の設計原則」

Toru Makabe
May 15, 2024
1k

30分でわかる 「クラウドアプリケーション10の設計原則」

※リンクを効かせたい場合はダウンロードしてください

インフラエンジニアBooks 企画
https://infra-eng-books.connpass.com/event/312410/

Toru Makabe

May 15, 2024
Tweet

Transcript

  1. About me • 真壁 徹(まかべ とおる) • 日本マイクロソフト株式会社 • シニア

    クラウドソリューションアーキテクト(App Innovation) • アプリケーションとプラットフォームの間にあるグレーゾーンを得意とする • 国立 北陸先端科学技術大学院大学 修了 修士(情報科学) • 分散コンピューティングの学びなおし/研究のため、社会人コースへ • 研究: 分散コンピューティング基盤における宣言的構成管理(2021年 情報処理学会 山下記念研究賞) • 主な著書 • しくみがわかる Kubernetes(翔泳社) • クラウドアプリケーション 10の設計原則(インプレス)
  2. ベストプラクティスの「負の側面」  特定の環境、条件下での「ベスト」である  いまのあなたとチームにとってベストかは、わからない  複数のベストプラクティスが衝突、矛盾することもある(例: A製品とB製品のベストプラクティスが矛盾)  変化する

     製品はフィードバックを受けて変化する  使い手の環境も変化する  合わせて、ベストプラクティスも変化する  たとえば、そのベストプラクティスが半年後にベストかは、わからない  鵜呑みにしてしまう  自分の頭で考えなくなってしまう
  3. とはいえ、すべてを吟味してもいられない ベスト プラクティスA ベスト プラクティスB ベスト プラクティスC ベスト プラクティスD 言わんとすること

    を理解し 他のベストプラクティスとの一 貫性を確認し 内容に変化がないか定期的 に確認し 自分たちの環境や条件 に合うか議論し
  4. いいドキュメントがある、しかし  全体的に端折り気味  読み手の知識に期待している  翻訳がやや惜しい  もっと具体例がほしい 

    エピソードやサンプルコードなど  クラウド中立にできそう  Azureに限らない話が多い Azure アプリケーションの設計原則 - Azure Architecture Center | Microsoft Learn
  5. この本は筆者の越境の物語でもある  筆者はアプリケーション開発者として技術者のキャリアをはじめたが、ここ数年は インフラ技術者として仕事をしていた  「インフラ野郎」のキャラ設定をしていた時期もある  しかしクラウドでは「インフラだけでは解決が難しい」課題に度々ぶつかるように  そこで異動し、仕事の軸足をアプリケーションに移した

     インフラ技術者の仕事がなくなるとは思っておらず、クラウドでも引き続き重要 (たとえば、全社ネットワークの設計をアプリケーション開発者がやるべきとは思わない)  しかし、アプリケーション担当の帽子をかぶったほうがやりやすいことがある  そのような経験や想いを本書に込めた
  6. 概要 • 自己復旧がなぜ重要か • 自己復旧の基本的なアプローチ • 推奨事項 • 失敗した操作を再試行する •

    リモートサービスを保護する(サーキットブレーカー) • リソースの消費や障害を閉じ込める (バルクヘッド) • キューで負荷を平準化する • 失敗したトランザクションを補正する • 実行時間の長い処理にチェックポイントを設ける • 潔く機能を停止する、減らす • クライアントを制限する • など
  7. 分散コンピューティングの「落とし穴」 • ネットワークは信頼できる。 • レイテンシはゼロである。 • 帯域幅は無限である。 • ネットワークはセキュアである。 •

    ネットワーク構成は変化せず一定である。 • 管理者は1人である。 • トランスポートコストはゼロである。 • ネットワークは均質である。 分散コンピューティングの落とし穴 - Wikipedia サン・マイクロシステムズのピー ター・ドイチュらが提唱した、初 めて分散アプリケーションを開 発するプログラマが想定してし まいがちな、「誤った前提」を集 めたもの