1月のアウトプット

年始の目標に毎月何か一つアウトプットをと宣言したが気づいたら1月31日だった。
焦って無理やりひねり出してみた。

https://github.com/en30/shishiodoshi

一定数メッセージが溜まるか、一定時間が経過するとflushするバッファのようなものを
HTTPで作れるすごい雑なSinatraアプリ。

そもそも何をしたかったのかというと

  • capistranoでのデプロイ終了時にHTTPでバッファのようなものを作る
  • unicornのpidをmonitで監視してpidの変化時にデプロイ時に作ったバッファにメッセージを追加する
  • 全appサーバからの再起動終了メッセージが来るか、一定時間が経過した時に状況をSlackに通知

疑問

今回は特に他のミドルウェアの設定などなしに立ち上げてサクッと使えるようにeventmachineを使ったけれども、もしこういう用途で信頼性が重要になってくる場合など、使用する技術をどのように選択すればいいのだろう。

自分の場合今のところ少ない台数しか扱わないのでクライアントサーバな発想になってしまうけれど、台数が増えてきた場合にこういうようなことをするには、自分自身のことを自分で面倒を見させるかグループを作って相互監視させたりするのだろうか。

所感

ソフトウェアの良さは、(できることの多さ/学習コスト)でざっくり測れるんじゃないかと思う。
今回作ったものも含め自分のgithubに置いてあるものはこの指標で図ると凄まじくクソ。個人的な小さな問題を解決してその結果を無理やり汎用化しようとすると、上の比率がものすごく悪いものができあがりがち。作ることに焦りすぎて抽象化するのが早すぎるのだと思う。

できたものはクソでもそれなりに勉強になった。