Masteries

技術的なことや仕事に関することを書いていきます.

僕とReactio

...まず予め断っておきますと, この記事は今日リリースしたReactioという自社サービスの, ある種のガチマーケティング的な記事です.
そういうのがお嫌いな方は, 読まない方がいいのではないかと思います.

※以下はGaiaXやReactioチームの公式見解ではなく, あくまで1ユーザとしての個人的な意見です

Reactio

というわけで, 前述しました通り, Reactioの正式版が本日リリースされました!
プレスリリースとかも出ていて, なんだかここまで来たんだなー, という感じです.
自分は3月末あたりから, 4月入社の新人エンジニア達向けの新人研修(詳細はYAPC::Asiaのトークで!?)の準備と研修実施の傍ら, Reactio正式版に向けた機能追加の実装を担当していました.

...で, このReactioというサービス, 正直「使ってみないと良さがわからない」サービスだなあ, と思います.
実際自分も, 入社した時にReactio(当時はTwinkRingという名前でした)の紹介を受けた時に, 「これHipChatでいいやん?」とか思ったりしていました.
ただ, インフラエンジニア(見習い)として業務の中でTwinkRingを使っている中で, その良さが徐々にわかってきました.
というわけで, 今回は開発者ではなく, TwinkRing... いや, Reactioのいち利用者として, このサービスのオススメポイントを紹介したいと思います.

※以下, 面倒なので社内サービスとして運用していた(現在はReactioに統合されました)TwinkRingも, 「Reactio」として書いていくことにします.

対応履歴をまとめるのが簡単

そもそもとして, 障害は起こらないにこしたことはないですが, 起きる時は起きるものです.
そして一度起きた障害は, 不幸にも再度発生してしまった時に役立てられるよう, 記録として残しておくのが理想だと思います.
これが例えば, HipChatで障害対応をする場合, そのままだと履歴が流れていってしまいますし, 「インフラ作業部屋」のようなチャットルームで対応を行う場合, 途中で障害対応以外の発言が紛れ込んでしまい, 後でまとめるのが非常に面倒になります.
また, 異なる障害が同時に発生してしまった場合, それらの対応の為の会話がごっちゃになり, 場合によっては更なる障害(混乱)に繋がってしまう場合もあり得るでしょう.

これのようになってしまうのは, 一般的なチャットツールは, 「インフラチーム」や「XXX事業チーム」のような, 「グループ単位」で部屋を作るように作られているからだと思っています.
これに対してReactioは「イベントベース」で部屋(インシデント)を作るチャットツールになっているので, 1つのインシデントの中に, インシデントに関係ない話題が混ざりにくいです.
また, 同時に異なる複数の障害が発生した場合でも, その分のインシデントを(複数)作成すればいいので, それらの話題が混ざることはありません.

そして, 障害発生 = インシデント作成, 対応完了 = インシデントのクローズ, という形になるので, インシデントの履歴がすなわち障害対応の初動から集結までの履歴にそのままなってくれます. 後で発言をまとめて, 社内Wikiにまとめる... といった作業が必要なくなりますし, 仮にまとめる必要があったとしても, Reactioを利用していれば「まとめやすい形」で対応を進めることが出来るでしょう.

更に, Reactioでは, 1つのインシデントの中で, 更に「トピック」という単位で発言をグルーピングすることが出来ます.
これが便利で, 1つの障害の中で更に同時に異なる作業をする場合(例えば, 「営業チームへの対応」と「サーバの再起動」など)でも発言が混じりませんし, 後で見返す時もトピックごとに確認することができ, 非常にスマートです.

対応履歴を追うのが簡単

「対応履歴をまとめるのが簡単」と対になりますが, Reactioではインシデントにタイトルを付けることができ, それによって過去の障害を探すことが出来ます.
これによって, 過去に類似した障害が発生した場合でも, その対応時のログを探しだし, それを参考にして対応することが可能になります.

これを痛感したのが, 少し前に深夜のオフィスで趣味のコードを書いている時に突如障害が発生して, その初動対応をしなければならなかった時です.
その障害は, ちょうどその頃会社で多発していて, 「なんとかしなきゃ...!」と思っていた矢先の出来事でした.
オフィスであたふたしている間に, ご自宅から爆速で上司が飛んできて, サーバルームに入って一緒に障害対応を始めたのですが, その時に飛んできた指示は「ReactioのXXXXのインシデントを見て, YYYYのトピックでやってるコマンドをZZZZサーバで叩いといて!」で終わり.

自分はその障害への対処方法を一切把握出来ていなかったのですが, 上司の言う通りにReactioのログを検索して, そのトピックに書いてある通りの対応をして, 無事解決に向けてお手伝いをすることができました.
障害対応をする上で, 過去に起きた類似の障害の情報はとても役立つものだと感じましたし, それらをお手軽にまとめ, 閲覧できるようにしてくれるReactioマジ便利! と思った出来事でした.

通知機能が充実

もう1つ, Reactioの良い所は, メンバーへの通知機能が非常に充実している点です.
現時点では, メールアドレスとimkayac, そしてTwilioを利用した電話架電に対応しています.
例えば深夜の障害対応時, 対応出来る人がいるかどうか調べる為に全員に電話をかける... というのは非常に面倒です.
Reactioを使えば, ボタン1つでチームメンバーに電話をかけることが出来るので, 対応メンバーを招集する時間を, まるまる障害対応の初動に充てることができます.

Reactioが活きる場面

これは個人的な意見ではありますが, Reactioは「独立したインフラチーム」があり, かつ「3事業以上運用している」会社であれば, かなり有意義に利用できるのではないかと思います.
大抵の場合, 独立したインフラチームがあり, かつ複数事業が動いている会社では, チャットツールに「XXX事業インフラ部屋」のような部屋が用意されていて, そこにインフラメンバーと事業のメンバーが集まっている, という形になっているのではないでしょうか.
Reactioを利用すれば, それらのチャットルームを全てReactioに集約することが出来ますし, その上先程述べた「対応履歴をまとめるのが簡単」, 「対応履歴を追うのが簡単」, 「メンバーへの通知が簡単」というメリットを享受することが出来ます.

Reactioは, 「障害対応時のアラート」 -> 「障害対応のためのコミュニケーション」 -> 「障害対応記録のストレージ」といった, 障害対応に必要な一連の流れを集約し, まるっと担ってくれる, まさに「障害対応の救世主」と言えるツールです.
30日無料のトライアルも用意されているので, この記事を読んで興味を持っていただけたら是非応募して頂けると... とても嬉しいです!