HappyDebugging-IDE

障害の調査と対応をお願いします

私ももちろん仕事なのでやりますが、どうしても身構えていないと面倒だと今でも思ってしまいます。しかし、ソースコードを読むのは好きですし、何故そのようなことが起こってしまうのかアルゴリズムを読み解くのも好きです。では、私が障害対応で身構えてしまうのは何故なのか。

本記事ではこの障害対応で身構えてしまうポイントを3つご紹介いたします。その上で、それをNew Relic CodeStreamの機能でどう解決できるのかを紹介したいと思います。

障害対応で身構えてしまうポイントBest3

1, 新人や他のメンバーが調査を開始できる状態を作るのが面倒

DevOpsを実践しているようなチームにおいてユーザーに影響のある障害が発生している場合、多くの場合CICD/デプロイバージョンやコードに詳しい幅広く活躍できるメンバーが問題をキャッチしやすいことがありました。「本当は重要な課題対応中なので、新人メンバー等に調査をお願いしたい」と思っていても、どこから調査を開始すれば良いのかや環境準備などサポートしないといけないことがたくさんあります。急いで対応しないといけないのに、1から環境準備のサポートをしないといけないとなるとなかなか骨の折れる作業となってしまいます。

2, 確認作業を行う環境準備が面倒

サービスの開発/運用が、一つのサービス・一つのコード・一つの環境、であれば困ることは少ないかもしれませんが、サービス・コード・環境がそれぞれ複数になってくると、調査を行う前の準備に時間がかかってしまいます。

例えば準備なしでGit系のサービスをWebブラウザで使うこともできるのですが、特定のブランチで検索しないといけないことやコードを移動したりということを考えると、どうしてもローカルにクローンした方が作業が捗ります。

加えて、ローカルで検索をすることを選んだ場合でも、今作業をしているファイルを保存したり、作業に影響がないように新しくクローンしたり、といつの間にかさまざまなところに作業履歴が残ってしまい管理をするのも大変な状態となってしまいます。

3, 有識者を巻き込む

自分で行った調査の結果、もっと詳しいチームメンバーや元々開発をしていた玄人メンバーにも意見を聞かないといけない場合があります。その際、どのような調査を行なったのか、どのバージョンのどのコードに課題を感じているのかなど、作業してきた内容を伝えないとうまくコミュニケーションが取れません。チケット管理ツールを使ってコミュニーケーションをしている場合にはそのチケットに情報を添付すれば良いのですが、情報を追加していくにも作業時間がかかります。

New Relic CodeStreamでの解決方法

1, 動いているサービスのソースコードを1クリックで間違いなく開くことができる

「1, 新人や他のメンバーが調査を開始できる状態を作るのが面倒」という課題の一つの解決になる機能です。New Relic にリビジョンやリリースタグの情報を連携するとエラートレースにも自動的にそのリビジョン/タグ情報が追加されます。それに加えて、New Relic の 「Open in IDE」ボタンをクリックするだけでトレースの上位にあるソースコードの動いているリビジョンと同じリビジョンのファイルが開きます。Gitフロー、CICDパイプライン、フォルダ構造・・・いろいろなものを教えなくても「とりあえずこのエラーを見ておいて」というだけでも正確に調査を開始できるようになります。

HappyDebugging-RevisionIntegration

 

2, ローカル環境でIDE上の変更を残したまま障害対応ができる

「2, 確認作業を行う環境準備が面倒」という課題の一つの解決になる機能です。ローカルにリポジトリをクローンしていることが前提となりますが、ローカル環境でファイルを修正するなど作業をしていても、その作業を残しておいたまま、障害対応できるようになります。煩わしいローカル環境整理をする必要なく、IDEの高度な機能を使いながら障害対応ができるようになります。

HappyDebugging-DebugIsolation

 

3, IDE上でソースコードへのメンションやディスカッション履歴を残すことができる

「3, 有識者を巻き込む」の際の一つの解決になる機能です。ソースコードを選択してコメントとして利用することができます。調査の記録をソースコードと一緒にその場でサクッと残し、経緯全体を有識者と共有できるので、有識者を巻き込む際もあらためて共有資料などを作成しなくてもスムーズに協力してもらえるような環境を整えることができみます。

HappyDebugging-SourceCodeComment

 

 

まとめ

本記事では障害対応になぜ気分が乗らないかの課題とその解決としてのNew Relic CodeStreamの利用方法をご紹介しました。

プログラムが好きなら、障害対応だって楽しくできると思っています。

障害対応が好きじゃないのではなく準備など生産性のない作業が嫌い。そんな開発者にこそ使っていただきたい機能です。より良いソフトウエア、サービスを生み出していくために、是非ご活用ください。