ガジェット通信 GetNews

見たことのないものを見に行こう

体験を伝える―『ガジェット通信』の考え方

面白いものを探しにいこう 本物を体験し体感しよう 会いたい人に会いに行こう 見たことのないものを見に行こう そしてそれをやわらかくみんなに伝えよう [→ガジェ通についてもっと詳しく] [→ガジェット通信フロアについて]
ガジェ通制作ライブ
→ガジェ通制作生放送一覧

「地味だけど、面白い!」―LINE・NTTエンジニアが語る、日本を支える大規模JVM運用の舞台裏

一般的な社内向けシステムだと、業務アプリケーションの特性上アクセスが一気に増えるとか変わるとかいうことはあまりないので、メンテナンス期間を設けて1ヶ月に1回落とすような方法も取ったりしていました。いろいろな方法がありますが、LINEさんはどういうやり方なんですか?

鶴原:メインのアプリケーションサーバはTomcatで動いていて、デプロイのためにほぼ毎日再起動はしています。過去にGCが問題になったときはタイミングを見計らってリスタートといったことも、したような記憶があります。HBaseの場合はデータストアなので難しいところはあるんですけど……。

久保田:データベースの仕組みのなかには落とせない部分がありますもんね。

鶴原:Elasticsearchとかもそうだと思うんですけど、データベースをJavaで書くっていうとやっぱりGC問題が最後に立ちはだかるんですよね。

久保田:HBaseのトラブルはどんなものがありました?

鶴原:CMS GCの頃なんですけど、HBaseが内部的にすごく大きいオブジェクトを繰り返しつくってしまって、Full GCが走って止まってしまうってことがありました。

そのときはHBaseのパラメータを調整して解決しましたが、アプリケーション側でHBaseが得意ではない形のデータを作ってしまっているなど、そもそもの原因がアプリケーション側にあるということも多かったですね。

久保田:運用を重ねていくと、どういうオブジェクトが苦手だとか傾向がだんだんわかってきますよね。アプリケーション側の開発者とのノウハウの共有はどうやっていますか?

鶴原:私たちはHBaseを運用するチームがHBaseを使うアプリケーション側の開発も担当しているので、実は同じ人が書いているんです。なのでお互いコードレビューベースで「この形は危なそう」と共有する形ですね。

久保田:それはいいですね。

社内を横断する技術共有の仕組み

久保田:メトリクス(※)の監視なんかはどういう方法でやっていますか?

※メトリクス…データを収集して管理に使えるよう計算や分析を加えた評価指標

鶴原:アプリケーションサーバ内で発生するいろいろなメトリクスは、内製のモニタリングツールを使って監視しています。例えば「毎秒このくらいメッセージが送られている」とか「このAPIが何回コールされている」とかは、ライブラリを組み込んでAPIを呼んでおけば勝手にカウントしてサーバで呼んでグラフで見れる、という風になっています。

HBaseプロセスそのものの監視もいろいろやっていて、プロセスメモリの使用量、書き込みリクエストの秒間量などの監視にPrometheusを使っています。HBase自体がJMX(Java Management Extensions)でメトリクスをエクスポートしているので、PrometheusでJMXを読みにいって集めて、Grafanaで表示するようになっています。

久保田:Prometheusといえば、LINEエンジニアの湯川さんがブログで紹介したりPrometheus Casual Talksというイベントを開催したりしていますよね。

鶴原:そうなんです。実は湯川さんにPrometheusを紹介したのは僕なんですよ(笑)社内Wikiに書いたら湯川さんが興味を持って、あっという間に広めていてすごいなーと。

久保田:インフラのプロセス監視は全てPrometheusで統一しているんですか?

鶴原:全然、全社的な統一ではないです。LINEゲームアプリのバックエンドチームや統計解析専用のチームなど、他のHBaseを使っているチームでもそれぞれ違うモニタリングシステムを持っている状態です。

久保田:HBaseを担当しているチームがいくつかあるんですね。サービス、製品ごとにチームが分かれていて、それぞれにたまたまHBaseを選択したということですか?

鶴原:そうですね。ただ現状だと共有できていなくて無駄な部分もあるので、横断的に使えるように社内クラウドのようなものを整備しています。まだ完成していないんですが、いつかみんな共通の使い方でHBase対応にしたいなーという夢を抱いてます。

チャレンジを続けるための課題

久保田:社内でHBaseを広めていく過程で、現状課題だと思っているのはどんなことですか?

鶴原:大きくいうと2つあって、1つはやはり人手が足りないという問題と、もう1つはHBaseのバージョン問題ですね。2017年のLINE DEVELOPER DAYでも発表したんですけど、まだHBaseの古いバージョンを使っている部分があって、これまでのノウハウはそちらに偏ってしまっているんですよ。

前のページ 1 2 3次のページ
CodeIQ MAGAZINEの記事一覧をみる
  • 誤字を発見した方はこちらからご連絡ください。
  • ガジェット通信編集部への情報提供はこちらから
  • 記事内の筆者見解は明示のない限りガジェット通信を代表するものではありません。
スマホゲーム タラコたたき