
2025.02.12
職員一人あたり52時間の残業削減に成功 kintone導入がもたらした富士吉田市の自治体DX“変革”ハウツー
LINE PlatformのSRE(全1記事)
提供:LINE株式会社
リンクをコピー
記事をブックマーク
加藤亙貴氏:LINE Platform Development Center1 Messaging Platform Development室 Z Partチーム HBase Unitの加藤亙貴です。このセッションでは、分散ストレージリライアビリティエンジニアというポジションにおける、LINEプラットフォームのSREについて紹介します。よろしくお願いします。
今日はこのようなアジェンダに沿ってお話しします。始めに、LINE Messaging Platformや私の所属するZ Part HBase Unitの紹介。次にHBase Unitの技術スタックや実践しているReliability Engineeringについて紹介します。最後にまとめとして、今私たちが直面している問題、そしてチームにジョインしていただいた際、どのような問題を私たちと一緒に解いていくのかについてお話しします。
さて、LINEアプリのバックエンド、LINE Messaging Platformは概ねこのような構成になっています。左側のline-serverというグループの中に、メッセージングの中核であるtalk-server、talk-decatonといったコンポーネントが存在します。また、関連するアプリケーションとして、Bot関連の処理や認証、ユーザー設定の管理を行うものなども存在します。
そして、このプラットフォームを支える重要なストレージが、Redis、HBase、Kafkaという3つのミドルウェアです。私たちは、Z PartまたはIMF Partというチームにおいて、これらのミドルウェアの管理や、関連するプラットフォームアプリケーションにおける開発業務を行っています。
私たちが管理するLINE Messaging Platformのストレージは、主要4ヶ国において1億7,100万人に上るユーザーのために、1日約2.7兆のリクエストを高いパフォーマンス、そして高い信頼性を維持して処理しなければなりません。そのためにLINE Messaging Platformおよびそのストレージは、およそ9,000台の物理マシン、または仮想マシンによって構成されています。
私が所属するZ Part HBase Unitは、先ほどの3つのストレージのうち、HBaseクラスタの開発・運用を行っています。HBaseはMessaging Platformにおける主要な永続分散ストレージです。主な業務として、継続的な監視・調査・改善によってHBaseクラスタの信頼性やパフォーマンスを高めたり、操作や監視ツールの機能向上、他のチームの開発サポートなどが挙げられます。
私たちは「分散ストレージリライアビリティエンジニア」というポジションで、新しいメンバーを募集しています。
ここで、HBase Unitの監視のための技術スタックを紹介します。下にあるように、私たちは複数のHBaseクラスタを用途別に分けて運用しています。これらのログを分析するのは、左に示したパイプラインです。各ホストは、FilebeatによってログをLogstashに送ります。Logstashはログの内容、例えばGCのポーズタイムやHBaseのリカバリータイムなどの情報をパースし、Elasticsearchに保存します。そしてKibanaによる可視化、またElastalertによる通知を行っています。
次に紹介するのが、メトリクス分析のためのパイプラインです。各ホストはディスクI/OのレイテンシーやHBaseのレスポンスタイムなどのメトリクスを、エクスポーターを通じて公開します。このメトリクスは、クラスタごとにPrometheusが収集・保存し、Grafanaによる可視化や、Alertmanagerによるアラーティングに用いられます。
またメトリクスはPrometheusのフェデレーションインスタンスによって長期保存され、HBaseクラスタのキャパシティプランニングの際にも用いられます。さらにHBaseクラスタのログやメトリクスは、IMONという内製の監視ツールにも送信されています。これはログからの信頼性の高いアラーティングに用いられています。
HBase Unitでは一部を除き、これらを自分たちで運用および自動化を行っています。アプリケーションは物理マシンと、「Verda」というプライベートクラウドの仮想マシン上に構築され、その自動化にはAnsibleが用いられています。さらに一部のツールは、VKSと呼ばれるマネージドKubernetesクラスタにデプロイされています。
このような監視基盤をベースに、私たちはさまざまなReliability Engineeringを実践しています。その1つが、安全でスケーラブルなパフォーマンステスト環境の構築です。例として、テスト用のHBaseクラスタを準備し、ある設定やスペックを適用した際のパフォーマンスを評価するとします。
ここで、本番用のHBaseクラスタに送信されるRPCリクエストをインターセプトし、Kafkaを経由して、Replayerと呼ばれるアプリケーションに複製します。Replayerは受信したリクエストをフィルタまたは増幅し、テストクラスタに対して再現します。
これにより、テストクラスタの設定やスペックが本番環境と同様の負荷に耐え得るか、また、ニューイヤーバーストのような、急激なトラフィックの増加に耐え得るかを、安全かつ高い再現性を持ってテストできます。
この検証環境を用いてテストしたものの1つが、HBaseのHedged Readsです。Hedged Readsとは、Readリクエストをプライマリ以外のレプリカにも送信し、もっとも早く返ってきたレスポンスを採用する仕組みのことです。これにより、ディスクI/Oやネットワーク遅延によるレスポンスタイムへの影響の削減が期待できます。
不安定なディスクI/Oを再現するため、私たちはLD_PRELOADを用いてI/Oの不具合をテスト環境で再現し、Hedged Readsによってレスポンスタイムの改善が実現できることを確かめました。さらに、特定の状況によってデッドロックが発生し、リージョンサーバーがダウンする問題の発見、メトリクスの追加による可観測性の向上などを通じて、コミュニティに貢献しました。
もう1つ、私たちが取り組んでいる例として、HBaseクラスタのマイグレーションが挙げられます。あるHBaseクラスタにおけるテーブルを別の場所に移転しなければいけない状況を考えます。メジャーバージョンのアップグレード、スキーマの変更、マシンを配置するサーバールームの転換などによって、私たちは日々多くのマイグレーションを行っています。
LINEに求められる高い可用性から、これらの作業はすべてゼロダウンタイムで行っています。まずライトアヘッドログの送信やスナップショットのコピーなどによって、新しいクラスタにデータを複製します。次にアプリケーション側を新しいクラスタに対する読み取り、書き込みができるように変更します。
この時、Central DogmaというConfigurationサービスを通じて、プライマリとセカンダリクラスタの切り替えや、読み書きの単一または同時モードへの切り替えなどを動的に反映できるようにしています。これにより、読み取りの際にデータの不整合がないかを確認しながら新しいクラスタにスイッチできます。
さらにこれはマイグレーション作業に限りませんが、ベータ環境においてdestabilizerと呼ばれる、リクエストを一定の確率で失敗させるコンポーネントをHBaseに挟んでいます。これにより、障害発生時にもリトライ機能によってデータの整合性が保たれるかどうかをチェックしています。
ここまで、私たちの実践しているエンジニアリングについて紹介しました。しかし私たちにはまだ達成できていない問題がいくつか存在しています。例えばマルチデータセンター環境におけるアーキテクチャの改善、より信頼性の高いトランザクションやセカンダリーインデックスの実装、TiDBなどの新世代ストレージミドルウェアの検討や導入。そして、一つひとつ異なるrequirementを持ったクラスタへのSLOの導入と運用などが挙げられます。
詳しくは「LINE技術組織が抱える未解決課題」というサイトで紹介されているので、ぜひ読んでみてください。
LINEの分散ストレージリライアビリティエンジニアとしてジョインすると、LINE Messaging PlatformにおけるRedisやHBase、Kafkaといったストレージミドルウェアの開発に携わることになります。今回は、そのうちHBaseについて紹介しましたが、これら3つのユニットが取り組む問題には、2つの共通する特徴があると思っています。
まず、問題が非常に大きいトラフィックによってもたらされるということ。これはすなわち、その問題の解決が多くのユーザーに影響を与えるということでもあります。2つ目は、技術的な観点において、解決すべき問題が高いレイヤーから低いレイヤーまで非常に多岐に渡るということです。分散システムにありがちな一貫性の問題といったレイヤーの高いものから、ミドルウェアからJVM、Linux、ハードウェアに起因するような、いわゆる低レイヤーに属するものまで、日々多種多様な問題に取り組んでいます。
私たちは、このようなLINEの分散ストレージリライアビリティエンジニアならではの課題に、ともに楽しく取り組んでいけるメンバーを募集しています。ぜひ応募をご検討ください。最後になりますが、本セッションで紹介した事例はこのようなメディアを通じて、より詳しく解説されています。興味があればぜひご覧ください。本日はご参加いただき、ありがとうございました。
LINE株式会社
2025.02.06
すかいらーく創業者が、社長を辞めて75歳で再起業したわけ “あえて長居させるコーヒー店”の経営に込めるこだわり
PR | 2025.02.07
プロジェクトマネージャーは「無理ゲーを攻略するプレイヤー」 仕事を任せられない管理職のためのマネジメントの秘訣
2025.02.06
落合陽一氏や松尾豊氏の研究は社会に届いているか? ひろゆき氏が語るアカデミアの課題と展望
2025.02.05
「納得しないと動けない部下」を変える3つのステップとは マネージャーの悩みを解消する会話のテクニック
2025.01.07
1月から始めたい「日記」を書く習慣 ビジネスパーソンにおすすめな3つの理由
2025.02.10
A4用紙を持ち歩いて殴り書きでアウトプット コクヨのワークスタイルコンサルタントが語る、2種類のメモ術
2025.02.05
エンジニアとして成功するための秘訣とは? ひろゆき氏が語る、自由な働き方を叶えるアプリ開発とキャリア戦略
2025.02.04
日本企業にありがちな「生産性の低さ」の原因 メーカーの「ちょっとした改善」で勝負が決まる仕組みの落とし穴
2025.02.03
「昔は富豪的プログラミングなんてできなかった」 21歳で「2ちゃんねる」を生んだひろゆき氏が語る開発の裏側
PR | 2025.02.04
能登半島地震で自宅は全壊、「これでどうやってDXするねん」 被災したサイボウズ社員と支援者らが語る災害支援のノウハウ
【手放すTALK LIVE#45】人と組織のポテンシャルが継承されるソース原理 ~人と組織のポテンシャルが花開く「ソース原理」とは~
2024.12.09 - 2024.12.09
『これで採用はうまくいく』著者が語る、今こそ採用担当に届けたい「口説く」力のすべて
2024.11.29 - 2024.11.29
【著者来館】『成果を上げるプレイングマネジャーは「これ」をやらない』出版記念イベント!
2025.01.10 - 2025.01.10
片付けパパ対談【特別編】 整理術×行動術×メモ術で、仕事も人生も自在にデザイン!
2024.12.16 - 2024.12.16
日本を変える 中小企業リーダーズサミット2025
2025.01.30 - 2025.02.12