見出し画像

「レジリエンスプログラミング」の6つのデザインパターン


先日、42 Tokyoの協賛企業である株式会社ドリーム・アーツのイベントが開かれた。

イベント名は「実例で学ぶレジリエンスプログラミング教室」で、ドリーム・アーツ 社CTO石田氏による「レジリエンスプログラミング」の勉強会だった。

CTO石田氏はドリームアーツ社入社以来、企業向けのソリューション提案や、製品企画を担当され、数多くのプロジェクトを成功に導いた人物だ。

場所は42 Tokyoのキャンパスでも開催されていたが、自分はオンラインで参加した。

ドリームアーツ社とは

ドリームアーツ社はSaaS企業で、ソフトウェアをインターネット経由で、サブスク契約で使ってもらうビジネスを手がけている。

SaaSという言葉はいままで知らなかったのだが、「Software as a Service」の略だ。

Saasの市場規模は全世界で11兆円で、市場は拡大傾向にあるとのこと。

大変失礼ながらドリームアーツ社についてはイベント前には何も知らず、イベントに参加するまで映画会社のドリームワークス社と勘違いをしており、思い込みは恐ろさを感じた。

レジリエンスプログラミングとは

サービスダウンが発生する一番の原因は「想定外のトラフィック」だという。

小さな綻びが全体へと波及し、システム全体が機能停止に陥ってしまう。

これに対する処方箋が「レジリエンスプログラミング」だ。

レジリエンスとは、復元力や回復力といった意味がある。

そして「レジリエンスプログラミング」は、大企業を顧客に抱えるドリーム・アーツ社がSaaS運用を実践する中でまとめ、SaaSを安定稼働させるためのコツのようなものだ。

石田氏より、システムを安定的に稼働させるための以下6つのデザインパターンが紹介された。

・サーキットブレーカー
・リトライ&フォールバック
・レートリミッター
・タイムリミッター(タイムアウト)
・バルクヘッド
・キャッシュ

感想

CTO自らによるハンズオンでコードをいじりながらレジリエンスプログラミングについて講義してくださったのだが、正直なところ全くついて行けなかった。

直近の「Born2beRoot」という課題でローカルサーバーを立ち上げるまでは経験したが、サーバーの運用をしたこともなく、イベントで使用された言語もJavaとGoで、自分が一度も触れたことがない言語だった。

自分の知識と経験値が足らず、イベントにあまりにもついていけなかったため、継続して聴講しても残念ながら学ぶことは少ないと思い、情けないが講義の途中で退散した。

オンラインでは途中でイベントを抜けても、登壇者の方へ失礼に当たらない(おそらくだが。。。)のがいい。

実際のイベントにオフラインで参加すると、こういったことはできないだろう。

自身がサーバーを運用するようになったら、イベントで学んだ個々のデザインパターンについて詳し調べてみたいと思う。

また、イベントの中で石田氏が「レジリエンスプログラミング」の発想のきっかけとなった本として紹介していた『Release It! 本番用ソフトウェア製品の設計とデプロイのために』を読んでみたいと思う。


コメントお待ちしています~☕ mondでは匿名の質問・メッセージを募集しています。なんでも送ってね👍 https://mond.how/ja/hovinci_jp