ITILってなに?
皆さんの会社は開発プロセスをしっかり作られてますか?
歴史が長い大手企業やメガベンチャーであれば様々なプロセスが確立しているとは思いますが、スタートアップのような会社では決まったプロセスがなくてチームごとにバラバラだったりしますよね。またある程度プロセスを作っていても本当に十分なのか不安に思っている方も多いのではないでしょうか。
弊社も開発プロセスに自信を持っているわけではないです。最初の頃はGitの運用フローを決めてCI/CDを用意したからOKみたいな感じで開発してたんですが、提供サービスの数が増え、エンジニアが増え、開発チームが増えてくると、共通した開発プロセスが必要になってきます。特にユーザーが増え始めてくると作るだけではなく運用のプロセスも重要です。
そこで、開発・運用プロセスの見直しの参考にしたのがITILです。
Information Technology Infrastructure Library(ITIL)とは、ITサービスマネジメントにおけるベストプラクティス(成功事例)をまとめた書籍群。1989年にイギリス政府のCCTA[によって公表された。ITILの読み方は「アイティル」、「アイティーアイエル」などがある。ITサービス全体においてデファクトスタンダードとなりつつあり、重要な位置付けとなっている。
引用元:ITIL - Wikipedia
簡単にいうとサービスの開発・運用に必要なプロセス集でありフレームワークです。フレームワークというとエンジニアには取っ付きやすいはず。
このフレームワークに乗っかることで網羅的にプロセスを把握することができるので、自分達に何が足りないのか、何をやれば良いのかという指針になります。
ITILはITIL 4が最新のバージョンとなり、サービスの開発・運用に必要なプロセスを34個のプラクティスとして定義しています。
ITILをどう使ったの?
弊社では下記の手順で開発プロセスをITILをベースに見直してみました。
- ITILのプラクティスをリストアップ
- プラクティスに該当する既存のプロセスを紐付け
- 現時点で自分たちの課題にどのプラクティスが必要か優先度づけ
- 優先度が高いプラクティスから実践していく(既存プロセスがある場合はブラッシュアップ、ない場合はゼロから作る)
実際に実践したプラクティス=プロセスをいくつかご紹介します。
リリース管理
リリース管理は開発した機能を利用できるようにするためのプロセスです。
リリース判定・リリース周知・リリース作業のプロセスを作成し、リリースに必要なテスト・リリース手順・切り戻し手順などのチェックシートを用意して、Slackのリリースチャンネルでチェックシートを共有したり、Googleカレンダーにリリースカレンダーを作ってリリース計画を共有したりしています。
インシデント管理
サービスに障害が発生した時の対応プロセスです。
障害対応時に誰が何をするかというフローを作成しました。Slackの障害共有用のチャンネルを作ったりインシデントをJiraでチケット管理したりしています。インシデント管理についてはJiraやConfluenceを提供しているAtlassianが具体的なプロセスを紹介しているのでこちらを参考にしました。
モニタリング・イベント管理
サービスの状態監視です。死活監視や性能監視、ログの管理などになります。
弊社では、監視基盤をGrafanaとPrometheusで構築、SLI/SLO監視をSlothとPromitorで構築しました。またログの管理ルールを決めたりもしています。
最近ではログ管理にSentryを導入することにもしました。
この辺りはこちらの記事が詳しいです。
可用性管理・サービスレベル管理
サービスの可用性や品質を定義するプロセスです。
まずSLOの整理から始めました。経済産業省が提供するSaaS向けSLAガイドラインをベースにSLOを作成しました。
ただ、サービスの稼働時間などは計測していなかったため、前述したインシデント管理で障害発生時間を記録するようにし、この情報をもとに可用性目標を見直せるようにしています。
サービスデスク
ユーザーからの問い合わせなどのコミュニケーションの窓口になります。
元々問い合わせの管理にHubSpotを導入していたので、HubSpotでユーザー向けのFAQを作ったりメール配信の仕組みを作ったりしています。
ナレッジ管理
社内のナレッジ管理ですね。
弊社はナレッジ管理にConfluenceを使っていて、Confluenceに埋もれている社内のナレッジにアクセスしやすいようにポータルページを作りました。
その他取り組み
この他にも取り組み中のプロセスがあったり、ITILが挙げていないプロセスも追加して作ったりしています。また弊社はISMSも運用しているので、情報セキュリティ管理やサービス継続性管理はISMS委員会と連携して実施ています。
まとめ
ここで紹介したプロセスはサービス管理プロジェクトとして会社横断のプロジェクトを立ち上げて各プロセスを管理・運用しています。ITILのプラクティスはサービスの開発と運用に関わる全ての部署や職種が対象になるため、会社全体で取り組んでいます。
ITILは一見複雑で重厚そうなフレームワークに見えるのでスタートアップには不向きな雰囲気があるのですが、自分たちに必要な物をピックアップしてカジュアルに実践していくという使い方がスタートアップに向いていると思います。
開発プロセスが未熟なスタートアップはITILのフレームワークに乗っかる事で何が必要か考える時間をショートカットできるので、ぜひ参考にしてみてください。