LINEのプライベートクラウド「Verda」のDevOpsを支えるPagerDutyによるインシデント管理
LINEが2016年から運用しているプライベートクラウド「Verda」には、同社がサービスを提供するにあたって必要なシステム基盤が展開されている。およそ80名の開発者がVerda上でさまざまなサービスを開発しており、インシデントの対応も開発者が担う。インシデント対応の効率化のために「PagerDuty」を利用しており、Slackなど他のアプリケーションと連携したインシデント対応の割り当てやエスカレーションなどを実現している。Verda Reliability Engineeringチームの萬治 渉氏に、PagerDutyの活用方法を聞いた。
LINEのプライベートクラウド「Verda」のインシデント対応の体制
LINE株式会社が提供するサービスは、2011年に登場したコミュニケーションアプリ「LINE」が有名だ。しかし、前身時代を含めると20年以上の歴史のある企業である。そのサービスの基盤となるインフラは物理サーバーや仮想マシンが混在しており非効率だったことから、2016年よりプライベートクラウド「Verda(ベルダ)」の構築が始まった。
「最初はOpenStackベースの仮想マシンとベアメタルサーバーを管理する基盤としてプロトタイプができ、その後ロードバランサーやDNSなど、サービスインフラに必要な機能が追加されていていきました。今は基本的な計算資源からそれを抽象化するようなサービス、ネットワーク機能、データベースなど、パブリッククラウドのようにさまざまな機能を拡張してきました」と語るのは、VerdaのSREを担うVerda Reliability Engineeringチームのメンバーである萬治 渉氏。
現在のVerdaは物理サーバー5万台弱、仮想サーバーは約10万台、データストアやロードバランシングなどのインスタンスが2万弱ほど稼働している。LINEが展開するビジネスに必要な各種サービスが展開されているが、パブリッククラウドのように外部ユーザーが利用できるように公開されているわけではない。そしてこのVerda上の各サービスを開発するメンバーは80名ほどで、Verdaの開発と運用を一貫して担っている。萬治氏のようにSREを担当するメンバーは5名。なお、萬治氏自身もYAMLなどのコードを書くインフラエンジニアである。
Verdaの各サービスを利用するユーザーの困りごとや障害発生時の対応、情報共有も開発者が行っている。PagerDuty導入以前のVerdaのインシデント対応フローは、Slackの専用チャンネルに投稿されるアラートを開発者が見て、気づいたメンバーが自発的に対応するといったものであった。しかし、アラートが増えると重要度の判断が難しく、誰が対応すべきかが明らかでないことから、即時対応ができないこともあった。
そうした課題を背景に、萬治氏は、上司のすすめもあってPagerDutyを試用して導入を決定する。インシデント対応を外部のMSP(マネージドサービスプロバイダ)企業に依頼するといった選択肢もあるが、そうはしなかった。「外部に頼むには、インシデントを検知してから担当者に通知するまでを文書でマニュアル化しなければなりません。それならコードを書いたほうが圧倒的に速いのでPagerDutyを使うことにしました」(萬治氏)
萬治氏は、Verdaのインシデント対応の改善のためPagerDutyやその他アプリの設定だけでなく、各チームとの調整や、オンコール対応などの整備にも関わった。その背景について「Verdaの規模が大きくなるにつれ、緊急対応の割合が増えてきたため、インシデント対応のスピードを速くするために重要なアラートが開発者に届く仕組みを作りたかったのです」と語った。
現在は、緊急対応が必要なインシデントに24時間体制で対応するオンコール対応を、それぞれのサービス開発チームで体制を組んで実現している。チームごとに1週間あたり2人のエンジニアがつく体制で、アラートが発生したときに担当者に電話をかけたりアラート音で通知したりしている。担当となる頻度はチームの規模によって異なり、月に1回〜2回巡ってくる体制となっている。
なお、Slackに専用チャンネルを設け、PagerDutyからの通知を受けたタイミングで、サポート担当者のスケジュールからその時点の担当者のメールアドレスを返すAPIを使って、メンションする担当者を自動的に割り当てる試みも実施している。対応内容は別途課題管理アプリケーションとも連携してチケット化する。これによって、チーム内で誰がどのインシデントに対応していることや、進捗状況もわかりやすくなった。
この記事は参考になりましたか?
- 話題のあのサービスのインフラ運用に迫る! インシデント管理ツール「PagerDuty」活用連載記事一覧
-
- LINEのプライベートクラウド「Verda」のDevOpsを支えるPagerDutyによる...
- オンプレミスにもPagerDutyを活用! MSPからの移行でMTTA短縮化とコスト削減を...
- PagerDutyでオンコールの負担を大きく軽減!エンジニア横断で対応するココナラのインシ...
- この記事の著者
-
森 英信(モリ ヒデノブ)
就職情報誌やMac雑誌の編集業務、モバイルコンテンツ制作会社勤務を経て、2005年に編集プロダクション業務やWebシステム開発事業を展開する会社・アンジーを創業。編集プロダクション業務においては、IT・HR関連の事例取材に加え、英語での海外スタートアップ取材などを手がける。独自開発のAI文字起こし・...
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
-
関口 達朗(セキグチ タツロウ)
フリーカメラマン 1985年生まれ。東京工芸大学卒業後、2009年に小学館スクウェア写真事業部入社。2011年に朝日新聞出版写真部入社。2014から独立し、政治家やアーティストなどのポートレート、物イメージカットなどジャンルを問わず撮影。2児の父。旧姓結束。趣味アウトドア。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
-
CodeZine編集部(コードジンヘンシュウブ)
CodeZineは、株式会社翔泳社が運営する開発者のための情報メディアです。日々の開発に取り組むエンジニアやテクノロジーを学びたい方に向けて、プログラミングやAI活用、開発ツール、エンジニアの学びとキャリアに関する記事をお届けしています。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社
この記事は参考になりましたか?
この記事をシェア
