LINE Engineering
Blog

  • Prometheusをサービスとして提供する
    Paul Traylor 2017.12.25

    現在、開発者向けの便利なサーバーモニタリングシステムと通知システムの構築に携わっています。

    こんにちは。LINE Fukuoka開発チームのPaul Traylorです。LINEファミリーアプリを支えるたくさんのサーバーのモニタリングを担当しています。この記事はLINE Advent Calendar 2017の25日目の記事です。

    ほとんどの開発者にとって興味深いことといえば、コード作成や新機能の追加ではないかと思います。しかし機能が正常に動作しないときは、原因がわかれば役に立ちますよね。とはいえ、開発者が自分自身でモニタリングの設定を行うのは、そう簡単ではないときもあります。そこで私は、最高のパフォーマンスのためあらゆるサービスをモニタリングできるように、モニタリングの設定管理を簡単にすることに取り組んでいます。その一環として開発されたのが、Prometheusの設定を管理するためのツールであるPromgenです。これを利用すれば、モニタリングターゲットを簡単に登録したり、担当サービスのアラートを購読したりできます。

    モニタリングの設定

    ほとんどのサービスは導入時にはシンプルで小規模なものですが、時間が経つにつれ、数百台のサーバーにまたがる数十ものコンポーネントで構成されるようになります。そうした中でモニタリングを設定するのは容易なことではありません。そこでPromgenは、あらゆる設定を1箇所でまとめて行い、一目で確認できるように開発されました。

    targets

    Prometheus Promgen

    もっと見る

  • レイテンシーを計算する技術の話
    Do Xuanhuy 2017.12.20

    こんにちは、LINEメッセンジャーのサーバーサイドとモニタリングプラットフォームの開発を担当しているフィ(@dxhuy)です。この記事はLINE Advent Calendar 2017の20日目の記事です。

    今日は、モニタリングシステムでよく使うレイテンシーやその計算方法などについて紹介したいと思います。LINEでは、日々ユーザが楽しくメッセージを送れるように、システムの安定性を第一に考えています。安定したシステムを保つためにたくさんの指標を見守る必要がありますが、その指標の1つが「レイテンシー」です。

    ウィキペディアでは、レイテンシーは以下のように定義されています。

    デバイスに対してデータ転送などを要求してから、その結果が返送されるまでの不顕性の高い遅延時間のこと

    インターネットサービスにおいては、レイテンシーは基本的に「レスポンスタイム」のことです。つまり、リクエストを受けてからレスポンスを返すまでにかかる時間がレイテンシーです。

    AdventCalendar

    もっと見る

  • Redis Lua scriptingをatomicな処理とcache stampede対策に使った話
    Kagaya Hokuto 2017.12.18

    2016年入社。LINE GAME プラットフォームのチームにおいてサーバサイドの開発に従事。

    こんにちは。LINEでゲームプラットフォーム開発をしているKagayaです。この記事はLINE Advent Calendar 2017の18日目の記事になります。昨年新卒入社1年目で執筆した「マイクロサービスのためのプロジェクト生成ツールLazybonesを使ってみた」に引き続き、今年もAdvent Calendarの記事を書くことになりました。よろしくお願いします。

    はじめに—RedisとLINE GAMEプラットフォーム

    LINE GAMEプラットフォームでは、インメモリNoSQLデータベースであるRedisをメインデータベースの1つとして利用しています。キャッシュとしての利用が多く、例えば、LINEやFacebookなどのアカウントで認証を行っているユーザのソーシャルデータ(プロフィールや友だちリストなど)のキャッシュに利用しています。基本的にはRedis Clusterとして利用しており、開発環境では共通のクラスタを、本番環境ではゲームごとに独立のクラスタを組んで運用しています。

    AdventCalendar

    もっと見る

  • LINE STOREにおけるテスト自動化の取り組み
    Kazushi Hirai 2017.12.07

    LINE Fukuoka所属。LINE STOREのサーバーサイド開発をしています。

    この記事はLINE Advent Calendar 2017の7日目の記事です。

    こんにちは、LINE FukuokaでLINE STOREのサーバーサイド開発をしているHiraiです。本日は、LINE STOREにおけるテスト自動化の取り組みを紹介したいと思います。

    LINE STOREとは

    LINE STOREというサービスをまだご存じでない方もいらっしゃると思いますので、まずはその紹介から。

    LINE STOREは、LINEのスタンプや着せかえ、ゲームやファミリーサービス(LINEプレイ、LINEマンガ、LINE占い、LINE LIVEなど)の通貨を購入できるウェブのサービスです。購入したスタンプや着せかえをLINEの友だちにプレゼントできたり、クレジットカード以外(キャリア決済、LINEプリペイドカードなど)の決済手段を使用できたりなど、LINE STORE独自の機能もあります。

    今年になって、公式アカウントを友だち追加したり無料スタンプが取得したりできる機能も追加されました。日々コンテンツが充実してきていますので、ぜひ一度アクセスしてみてください。

    LINE STORE

    AdventCalendar

    もっと見る

  • RxJava 2とArmeriaでマイクロサービスを非同期化してみた
    Hirotaka Kawata 2017.12.02

    こんにちは、LINEメッセンジャーのサーバーサイド開発チームに所属してスタンプや着せかえに関連する開発を担当している川田(@hktechno)です。この記事はLINE Advent Calendar 2017の2日目の記事です。

    私が所属しているチームは、数年前からマイクロサービス化されたサービスのRPC(Remote Procedure Call)やDBアクセスを非同期化し、レイテンシの削減やサーバーリソースの省力化に勤しんできました。最近は、LINE内部で開発しているRPCサーバーArmeriaRxJava 2を使って、“Javaにしては”なかなかイケている内部構成になってきました。この記事では、そんな私達のチームで開発しているスタンプ・着せかえ関連サーバーの裏側についてご紹介したいと思います。

    LINE Shop Architecture

    AdventCalendar rxjava reactivestreams Armeria async microservices line-shop

    もっと見る