0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

アーキテクチャConference Sam Newman氏のそもそも「レジリエンス」とは何か?を聞いて

Posted at

これは何?

アーキテクチャカンファレンス2025のクロージングノートを聞いてきたのでふりかえりメモ程度ですが、記事にしあmした。

私はレジリエンスの専門家ではなく、英語も怪しいところがあるので誤解している部分があればコメントなどで突っ込んでいただけると幸いです。


レジリエンスにはグラデーションがある

bitのようにオンオフがあるわけではない。

A system is said to perform in a manner that is resilient when it sustains required operations under both expected and unexpected conditions by adjusting its functioning prior to, during, or following events (changes, disturbances, and opportunities). Erik Hollnagel

レジリエンス(回復力のある振る舞い)をしているとは、
予想される状況と予想外の状況両方に対してその機能を調整することで要求される運用を維持する。

つまり、レジリエンスとはトレードオフを選択することである。


Wood's four concepts for resilienceによるとレジリエンスは4種類に分類される

Four concepts for resilience and the implications for the future of resilience engineeringから引用していた。

(1) resilience as rebound from trauma and return to equilibrium;

問題の後に正常な状態に戻す能力

(2) resilience as a synonym for robustness;

ロバストネス: 予期できる問題への対応力

(3) resilience as the opposite of brittleness, i.e., as graceful extensibility when surprise challenges boundaries;

優雅な拡張性: 予期しない自体に人がどの程度対応できるか。

(4) resilience as network architectures that can sustain the ability to adapt to future surprises as conditions evolve.

継続的な適応性: 学びをシステムに反映する


Dickerson's hierarchy of service reliabilityについて

Google SREに記載のある

  • Product
  • Development: 障害に対応できるように作る
  • Capacity Planning: どうやって障害に対応するかプランを決める
  • Testing + Release procedures: デプロイとリリースをわけることが重要。本番環境にデプロイはどんどんしてみよう。
  • Postmortem: インシデントの振り返り
  • Incident Response
  • Monitoring: 何が起きるか監視できるようにする

の7段階に分類されるらしく、心理的安全性担保されていることが重要だと述べていた。

O'REILLYのサイトリライアビリティエンジニアリングもオススメらしい。


Hexagonal model for sociotechnical systemsで問題を捉える。問題の原因となった作業員を糾弾する文化はやめよう

Telestraの全土ダウンでは、ヒューマンエラーが発生する大事故が発生した際、COOは原因となったオペレーションを責めるような声明を出してしまった。

Hexagonal modelを使い、

  • 1人でオペレーションを実施していた
  • マニュアルに問題はないか
    など本当に何があったのかを検討することの大切さについて述べており、そのためにはblame cultureをやめるべきだと述べていた。

Ask the Speaker

せっかくなのでなにか爪痕を残してやろうと思い、Ask the Speakerにも参加した。通訳の方が訳してくれるので安心(本当にありがとうございます)。

Q. レジリエンスのあるシステムをAIで作らせるにあたり、うまく言語化することが難しいと思われる。Haskellのような言語を使う場合、レジリエンスのあるシステムを作りやすい等あるのでしょうか。

A. 関数型言語を使うことで間違いのないコードを書けるのは一つ有用ではある。だが、プログラミング言語が占める部分はわずかである。ネットワークやDB等もっと広い視点でシステムについて考える必要があるので銀の弾丸にはなりえない。
重要なのは

  • タイムアウト
  • リトライ
  • 冪統制
    などをきちんと作り込むことになる。

感想: レジリエンスという分野への興味が個人的に湧いた

レジリエンスの高いシステムを作るためには、何が重要であり、何を維持しないといけないかをきちんと定義することが重要だと今回の公演で理解した。
この先、AIがシステムのほとんどすべてを作ってくれるようになったとしても、

  • レジリエンスの観点には人間の選択が介在すること
  • システムにより、何を重要にするべきかやどの程度のレジリエンスが必要なのかは異なること
  • 広い視野が必要
    • セキュリティだとシステムへの入力部分の安全性に注目しがちだが、考慮事項はもっと多いと思われる

と言った観点で人間の選択が不可欠であり、これが競争優位性になり得ると感じた。

また、前回の開発生産性ConferenceでのKent Beck氏の公演でも登場したシステムシンキングに近い話があり、問題に対して安直な原因を探すのではなく、広い視点での問題の発見とプロセス(システム)への適用していくことができれば、長期スケールでかなり効いてくると思われる。

O'REILLYでSam Newman氏のレジリエンスの本を売っているみたいなので読んでみたい。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?