はじめまして。朝日ネット 開発部のfyrewoodです。
はじめに
開発部は社内システムの開発や維持保守、改善を担当しており、今回は特定プログラムの運用変更とその変更に対応する開発を行なった話をします。
背景
朝日ネットのシステム部門の中では、ネットワーク、サービスの監視や管理を24時間365日行っているNetwork Operation Center(以下、NOC)が設置されています。 APIやウェブ系インタフェースのヘルスチェックやサーバー・ネットワークの負荷監視、バッチプログラム(以下、バッチ)の処理遅延・異常終了など多様の監視があり、有事の際NOCのオペレータは手順に沿って対応を行います。ただし、手順によっては担当部署へ対応を求める通知する運用もあり、開発部が開発したプログラムは担当部署である開発部の対応が求められます。 NOCチームの改善活動の一環としてその対応の工数を減らすというテーマがあり、開発部の対応として頻発していたバッチをリストアップし、それぞれの原因や仕組みを確認、手順を書き直したり、バッチの見直しを行いました。
この記事は、既存の対応フローから新しいフローへ変更を行い、コミュニケーションツールのAPIを用いて依頼チケット作成や通知を自動化し人間のタスクを減らした話をしようと思います。
課題となったバッチ
弊社システムで動いているバッチの中で、保存している1日分の特定データ集計を行い、集計結果が閾値を超えている場合は人間に確認を求めるバッチがあります。その時間帯に何か機器に不調があったのかの注意喚起を求めるようなものです。 即ち、このバッチはデータ集計やその通知を行うものであり、朝日ネットのサービス提供に影響があるものではありません。ただし、運用フローにより必ずNOCの対応が必要となり、その分の工数が発生していました。
改善活動の流れ
スケジュール
前述しましたが、NOCチームの改善活動の一環のため、開発部の稼働は依頼を受けた後の対応となります。 開発部の対応期間はおおよそ2カ月に収まるよう計画しました。
時期 | 担当 | 内容 |
---|---|---|
2020年 5月 | NOC | 対象バッチリストアップ: 改善対象の一覧化・優先順位付け |
2020年 5月-6月 | NOC | 個別調査・対応検討: 検討結果、開発部へ個別バッチの対応の依頼 |
2020年 6月 中旬 | 開発 | 調査: 対応可否を確認 |
2020年 7月 初旬 | 開発 | 改修案作成・影響調査: 対応案を検討、対応による影響を確認 |
2020年 7月 中旬 | 開発 | 実装・テスト: プログラム改修とテスト実施 |
2020年 8月 初旬 | 開発 | リリース準備: 手順の見直し・NOCチームへ手順の受入れを依頼 |
2020年 8月 中旬 | 開発 | リリース・見守り |
自動化の検討
手順の見直しを検討しましたが、工数が発生しないことを目指すと、人間の作業を機械により自動に処理されるよう変更するのが一番効果があるでしょう。 運用フローで人間が行っている部分をプログラムに入れ、開発部への通知を自動化するよう見直しをしました。
プログラム改修
社内システムの様々な場所で、コミュニケーションツール(Slack, Redmine)への自動投稿やbotを利用しています。 SlackやRedmineなどを楽に利用できるようなライブラリが世の中では提供されていますが、社内システムの不要な部分まで影響しないように、JavaでAPIを叩く仕組みを実装しました。 また、この改修はプログラムの仕組みが変わり自動化テストにも影響するため、テストコードも一緒に改修しないといけません。
リリースまでの流れ
プログラム改修が終わっても、運用フローが変わるまでは依頼元のNOCチームへの報告と調整が必要となります。手順を見直して依頼元のNOCチームへの受入れ依頼をしないと運用フローの改善には至りません。 手順の受入れ・NOCチーム内の周知が終わった後、リリース日程が決められバッチのリリースと手順の更新を行います。 また、リリース後の一定期間、見守りしながら問題ないかを確認しました。
おわりに
この記事の改善からはもう3年経ちました。集計結果の閾値超えはリリース後にも1か月あたり2回の頻度で発生しており、大きい工数ではないですがNOCチームの作業が減っています。また、他の処理でも同様のフローを導入したことがあり、続けて改善しております。
簡単な改善タスクだったと思いますが、振り返ってみると「システムに人間の手を使うところが多すぎではないか」「自動化できる作業で限られたNOCの時間を消費してしまうのはもったいない」という当たり前のことを忘れていないか、をもう一回考えることになりました。 また、依頼のバッチがJavaだったのでJavaで開発してしまい、他の言語には対応できなくなっています。 この対応を行った時期には社内システムにわからなかった点が多かったためと思いますが、機会があればほかの言語からも使えるように改善したいと思います。
以上、簡単な改善タスクの自分なりの対応をまとめました。こういう仕事もあるなぁーな感じで読んでいただけますと幸いです。
採用情報
朝日ネットでは新卒採用・キャリア採用を行っております。