分散システムとポエム

Weekly Selection 2021-02-26

Slackbot開発

Slackで動くBotを実装した.メッセージに日付が含まれる場合に,Googleカレンダへの予定追加を半自動で出来るようにした.開発にはSlackの提供するBoltのPython SDKを使った.

Slack | Bolt for Python

Boltはサンプルが豊富であり,実装しやすい.一方でAPIで返されるレスポンスに含まれる値を取り出すときに,どんな構造で返されるか把握しにくく不便だった.以下の記事が役に立った.

Slack Interactive Messageリファレンス – Qiita

Slack ペイロードに含まれる response_url を完全に理解する – Qiita

Prototype

ソースコードは以下に置いておく.

cdsl-research/slackbot: オリジナルなSlackbotを開発するぞ!

scriptタグのasync属性とdefer属性

以下の記事を読んでいるときに見つけた.並行でダウンロードすることでレンダリング完了までにかかる時間を短くできそう.

Eliminate render-blocking resources

Qiitaの以下の記事が図解つきで分かりやすい.

タグに async / defer を付けた場合のタイミング – Qiita</a></p>

メルカリの無意識バイアス研修の資料

メルカリが無意識バイアスの研修資料を公開していた.kayoreenaさんのPodcastできいて知った.グローバル化を見据えた組織づくりには,こうした言語化されていない課題に向き合うことが大切だと感じた.個人的にはメルカリは好きでも嫌いでもないが,こうした資料の公開や取り組みは素晴らしいものだと思う.

メルカリ、「無意識(アンコンシャス)バイアス ワークショップ」の社内研修資料を無償公開 | 株式会社メルカリ

MTBFとMTTR,システムの信頼性

システムの信頼性について調べてみた.MTBF(Mean Time Between Failure)とMTTR(Mean Time To Recovery)は有名な指標として知られている.

https://gihyo.jp/assets/files/book/2011/978-4-7741-4559-4/9784774145594-01.pdf

信頼性工学の領域では,システムの信頼性を向上するために障害発生への対処が定義されていた.

システムの信頼性

  • 待機システム→故障が発生したときにシステムを切り替えるシステムのこと.ホットスタンバイとコールドスタンバイがある.
  • ホットスタンバイ方式→常に予備システムも電源ON
  • コールドスタンバイ方式→通常,予備システムは電源OFFで非常時に電源ON

障害対処の捉え方も2つあった.

  • フォールトアポイダンス→あらかじめ個々のコンポーネントの信頼性を高め,障害を発生しないようにする.
  • フォールトトレラント→先に見越して発生しても継続的に動作を行うようにする.

フォールトトレラントを実現する方法として次があった.

  • フェイルセーフ→安全な状態に倒すこと.例えば地震が起きるとエレベータが停止する.
  • フェイルソフト→故障したコンポーネントを切り離して,別のコンポーネントに切り替えることで,動作を継続する.例えば,停電が発生した場合にバッテリ電源に切り替えて動作を続ける.
  • フェイルルーフ→ミスによる誤作動を防止する.例えば非常停止ボタンのカバーや削除確認のダイアログがある.

余談

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です