Category Archives: Back-End

LINE BOT & Beacon 開発者向けFAQ(随時更新)

はじめに

こんにちは、LINE の長谷部です。

LINE BOT AWARDS への締め切りがいよいよ迫ってまいりました。 本イベントに伴って、弊社では諸々ハッカソン/ハンズオン等のイベントをいくつか開催してきましたが、このイベント等でよく聞かれた質問とその回答を本エントリにてご紹介致します。LINE BOT AWARDS にむけて、みなさまの参考になれば幸いです。
※2017/02/13時点での内容となっています

LINE LIVE チャット機能を支えるアーキテクチャ

LINE株式会社のOklahomerです。
本記事では、LINE LIVEという動画配信サービスのチャット機能が、どのような構成で成り立っているのか紹介します。

チャットの紹介

LINE LIVEのiOS/Android アプリでは、配信中の動画を視聴しながらリアルタイムにコメント投稿できるチャット機能を提供しています。この機能の役割は、視聴者同士が対話を楽しむだけにとどまりません。配信者が視聴者のコメントに返答するという形で配信者と視聴者の接点として機能したり、また配信者がコメント内容に従って企画を進めるなど、配信者と視聴者が一体となって配信を作り上げていく上でも重要な機能となっています。

これが有名人による配信となれば当然視聴者数も多くなりますし、その配信中に視聴者からのコメントを募れば瞬発的に相当量のコメント流入があることは容易に想像できるでしょう。もちろんコメント流入が増えるということは、全視聴者へと中継すべきコメントの量も増えますから、それらをいかに高速に捌くかが常に課題となります。実際、一配信のみで分速1万件を超えるコメントが投稿されるようなこともあります。

そのためチャットでは、滝のように流れるコメントに耐えることを前提に開発が進められ、今では100台以上のサーバインスタンス上で稼働しています。

以下、その構成を説明いたします。

メッセージの安全性のさらなる強化:Letter Sealingの適用拡大

以前の記事「メッセージの安全性新時代:Letter Sealing」にて、LINEの1:1トークにエンドツーエンド暗号化(End-to-End Encryption、E2EE)を実装したことをお伝えしました。それ以降もLINEは、より多くの機能にLetter Sealingを適用拡大するために多大な努力を続けてきました。今回の記事では、これまでの取り組みをご紹介したいと思います。

内部データパイプラインへのKafka Streamsの適用

Kafka Streamsのご紹介

こんにちは。LINEでサーバ開発エンジニアとして働いているYuto Kawamuraです。主にHBase、KafkaといったLINEの中核的なストレージを開発・運営しています。

昨年下期からは、IMF(Internal Message FlowまたはFund)と呼ばれる新規プロジェクトも担当しています。このIMFプロジェクトの目的は大きく2つあります。

  • 内部システム間のevent deliveryを統一された方法で行うデータパイプラインの開発
  • LINEサーバシステムにおけるバックグラウンド処理を担当するコンポーネントの一つであるtalk-dispatcherの置き換え

チャネルゲートウェイへのCircuitBreakerの適用

はじめに

Circuit Breakerの紹介記事を先に読むことを推奨します。

チャネルゲートウェイにCircuitBreakerを適用する

チャネルゲートウェイサーバは、LINEの多様なサーバの機能をCP(Contents Provider)に提供する役割を担っています。そのため、チャネルゲートウェイサーバは接続されているサーバに大きく影響されます。なお、そうした影響はチャネルゲートウェイサーバ全体に容易に拡散します。

分散サービス環境へのCircuit Breakerの適用

LINEエンジニアのonoです。この記事では、LINEのサーバで実際に導入を始めているCircuit Breakerという仕組みについてご紹介します。

Circuit Breakerとは?

LINEをはじめとする昨今のWebやアプリのバックエンドサーバシステムは、お互いにAPIやRPCで接続された多数のサービスのネットワークとして構成されるようになってきました。

もしこのネットワークの中の1つが突然全く応答を返さなくなったらどうなるでしょうか? ダウンしたサービスに対するアクセスがタイムアウトするまでブロックすることにより、依存するサービスまでもが連鎖的にダウンしてしまう可能性があります。 もしネットワークの全容を誰も把握できていなかったら、根本の原因がどのサービスにあるのか発見するのに時間がかかってしまうでしょう。

LINE Trial Bot SDK ができるまで

はじめに

LINE株式会社の松野です。

先日、LINE BOT API Trial Accountが発表され、熱狂的に世界中のデベロッパーに迎えられました。今まで契約を締結した企業デベロッパーしか開発することができなかった LINEのBotアカウントを個人でも簡単に開発できるようになったからです。
そういった中で、なぜ我々がLINE BOT API Trial AccountのSDKを開発するに至ったのか、そしてどうやって1週間でリリースできたのか。その経緯について以下に解説させていただきます。

社内プロジェクト「Armeria」をオープンソース化するために行った6つのステップ

Armeriaは、Java 8およびNetty上に非同期RPC/APIクライアントサーバを実装したものです。LINEは昨年11月、ArmeriaをApache License 2.0のもと、オープンソースとして公開しました。Armeriaは、HTTP/2をセッションレイヤプロトコルとして使用する高性能の非同期Thriftクライアントサーバを構築するために立ち上げたプロジェクトですが、基本的にプロトコル非依存型で拡張性に優れています(例えば、HTTP/2によって静的ファイルを処理すると同時に、Java EE Webアプリケーションを起動することができます)。

今回の記事では、技術的な面にフォーカスするよりは、社内プロジェクトをオープンソース化する過程についてご紹介したいと思います。Armeriaの技術的な情報が知りたい方は、2月にLINE福岡オフィスにて開催された第14回LINE Developer Meetupで発表した資料をご参考ください。

メッセージの安全性新時代:Letter Sealing

こんにちは。LINEでセキュリティに関する調査、開発を担当しているJIです。

今回の記事では、メッセンジャーアプリにおけるセキュリティについて、中でもネットワークを通じたメッセージの送受信時に想定される問題と、その解決のためにLINE 5.3より追加されたLetter Sealing機能についてご紹介します。

メッセージを安全に渡す方法

秘密情報のやり取りは太古の昔からずっと行われてきたことであり、人々は人通りの少ない場所に隠れて密かに内緒話をしたり、仲間内だけで通じる暗号を使って他人には解読不能にしたりすることで、秘密が漏れないようにしてきました。

しかし、このような方法は相手が近い距離にいる場合に限って使えるものでした。インターネットのような遠距離通信手段が存在しなかった頃は、文字を書いた文書を封筒に入れ、受取人へ人づてに渡す方法しかありませんでした。ただし、人が配達する過程でも、封筒をこっそり開封して中身を盗み見てから元通りに封をしてそのまま届けるという問題が発生しました。また、文書の内容を修正・改ざんして違う内容のものを渡されていたとしても、それを差出人が確認できる方法はありませんでした。そのため、差出人が書いた内容を配達員から安全に守りながら伝達することはとても難しいことでした。

そこで、人々は新しい方法を思いつきました。内容の秘密保持ができないならば、少なくとも誰が文書を作成したのか、誰かが途中で封筒を開封していないか確認できる印をつけるべきだと思うようになったのです。こうして誕生したのがシーリングスタンプ(letter seal)です。これは、伝えたい内容を書いた文書にしっかり封をした後、蜜蝋(wax)のようなもので完全に封印する方法でした。配達員が中身を見るには封蝋を破らなければならないため、受取人は封の状態を見て配達中の盗み見や内容の改ざんの有無を確認することができました。そして、破いた封を元に戻せなくするために、固有の文様が刻印された印璽(シール)を押しました。    

True Delete機能のご紹介

こんにちは。LINEでアプリケーションのセキュリティを担当しているH2spiceです。今回の記事では、スマートフォンを紛失したときにユーザーが削除したトーク履歴が流出する仕組み、そしてそれを防止するためのLINEの新機能「True Delete」についてご紹介します。

はじめに

多くの人はスマートフォンを紛失したり、時には人通りの多い公共の場所にスマートフォンを放置したりします。もし紛失したスマートフォンを他人が拾った場合、スマートフォンに保存されているデータにアクセスして流出することができるので、かなり深刻な問題が起こる可能性があります。スマートフォンには通話履歴、メッセージ、電話帳、カレンダー、インターネット検索履歴、移動履歴、写真、メモなどたくさんの個人情報が詰まっているので、プライバシーの漏洩はもちろん、会社の業務上の機密が外部に流出する問題も発生しかねません。さらに、そのような情報を狙ってスマートフォンを盗む場合もあります。スマートフォンは便利な道具ですが、管理の不注意やちょっとした油断によって個人のプライバシーの侵害につながる危険な道具にもなり得ます。

LINEでは、このようなリスクからユーザーのプライバシーを保護するために、パスコードロックやデータの暗号化のような機能を追加するなど、さまざまな努力をしています。しかし、いくつかの問題のため、一部のリスクは依然として存在しています。「削除」という一般的なプログラム手法上の限界によって、削除されたデータを復元できてしまうことも問題の一つです。では、一般的な削除方法における問題点とそれを補うためにLINEが開発した「True Delete」機能をご紹介します。