

LINEマンガだからできる「SREエンジニア」の仕事
「LINEマンガ」は、スマートフォンやタブレットで気軽にマンガ作品が楽しめる電子コミックサービス。2013年に日本國內でサービスを開始し、現在約112萬點以上の作品を配信。LINEマンガでしか読めないオリジナル作品や獨占?先行配信作品も取り揃え、モバイルアプリ収益ランキング世界9位※にランクインするなど人気を博している。
※出展:2021年上半期 非ゲーム「世界モバイルアプリ」収益ランキング / SensorTower
人気サービスだけあって、「LINEマンガ」は1日12億リクエスト※と高いトラフィックを誇る。サービスの明暗を分ける “安定稼働”へ向けたエンジニアの戦いも、アツいものがある?!窵INEマンガ」を運営するLINE Digital Frontier株式會社(以下LDF)では「SRE (Site Reliability Engineering)」の手法を導入し、サービスの安定稼働と品質改善に努めている。
※2022年6月時點
近年、大規模なサービスの現場で耳にする「SRE」とは、どんな手法なのか? LDFで「LINEマンガ」のバックエンド開発に攜わるエンジニアに話を聞いた。


Index
1. 開発と運用をドッキング。純粋なエンジニアリングが楽しめる「SRE」
2. 高トラフィックに耐えるRedis Issueへの獨自のアプローチ
3. エンジニア主導で問題解決。自由に提案?実行できる企業カルチャー

純粋なエンジニアリングが楽しめる「SRE」
——「LINEマンガ」の運用に活用されている「SRE」とは、どんな開発?運用手法なのですか?
SRE は Site Reliability Engineering の略で、インフラや運用の現場で発生する問題に、ソフトウェア工學を適用して、ソフトウェアエンジニア自身が解決していこうという問題の解決法です。またそのような業務に攜わるエンジニア自體を指すこともあります。2000年代初頭に、Googleがこのやり方を開発し、現在では業界に広く取り入れられています。
2000年代までは、システム開発の世界では、開発と運用は別のチーム、場合によれば別の會社が擔當することも多かったと思います。いかにも“モノづくり”といった華がある開発に比べて、運用業務は地味な作業が多く、どちらかというと出來上がったものを押しつけられる退屈な業務になってしまいがちでした。実際には運用が重要なことを、現場のエンジニアはみんな感じているにもかかわらずです。
2000年以前のIT業界は「to B向け」の業務システムが開発の主體で、納品がゴール。インフラやシステムの安定運用に関しては契約に含まれていませんでした。亂暴な言い方をしてしまうなら「安定性や使いやすさはお金にならない」ということです。SIの世界では今でも、開発と運用が明確に分かれていますよね。
一方、「LINEマンガ」のようなサービスは、作った物をユーザーに長く使ってもらい、そこから収益を得るビジネスモデルです。新しい機能の追加は、ゴールではなくスタート。その機能を24時間安定してユーザーに屆けられるかが重要になります。
——開発エンジニアが、SRE に特化する魅力やメリットはありますか?
機能開発とは別の視點から、ピュアなエンジニアリングを楽しむことができます。クライアントエンジニアやディレクターと一緒に開発するのも楽しいですが、その後の安定化?パフォーマンス改善はサービス內容に関係ない、純粋なエンジニアリングの世界です。それでいて、ユーザー體験に直結する仕事だから責任も重大で、売り上げを左右することもあります。エンジニアリングが価値を生む現場で働くのは、やりがいを感じます。
ダッシュボードでサービスのトラフィックを見える化しているため、サービスの成長を技術的な數値として捉えられるところも楽しさの一つです。グラフや數値を材料にボトルネックになっている箇所を見つけて、改善できればグラフが変化するのが一目瞭然。自分の仕事が數字で見えるのはおもしろいです。
ログ?データ可視化には「Grafana」や Elasticsearch, Presto, 內製の Yanagishima等のツールを使っています。Grafana ではサーバーが受け取るリクエスト數?レスポンスにかかっている時間?CPUやメモリの利用率などを取得してリアルタイムに確認できるようにしています。見ているだけでも楽しいです。
SRE は実際にコードを書いてサービスの內部挙動を変えていきます。パフォーマンス計測のためのコードを追加することはもちろん、悪い部分がみつかれば実際のロジックも最適な形に書き換えていきます。SRE がパフォーマンス計測や改善のインフラを提供する事で、機能開発メンバーは新機能をシンプルに実現することに安心して取り組めます。
——どのような體制で、開発に取り組んでいるのですか?
サービス開発エンジニアはLDF所屬ですが、インフラおよびそれを運営するメンバーはLDF含むLINE グループ全體で共通の體制となっています。複數のデータセンター上に多數のサーバーをもち、それをプライベートクラウドとして利用しています。大きな會社でありがちな稟議などを無しに、100臺規模のサーバーの追加がいつでも可能です。ネットワーク?データベースには専門部署があり、物理レイヤーの設計やハードウェア選定など、サービス開発エンジニアがリソースとして使えるような狀況を用意してくれます。サービスの運用で実際に発生するパフォーマンス上の問題に関しても、非常に専門的な知識をもっており、サービス開発エンジニアは、彼らと協力して一つのプロダクトを作り上げていきます。
我々はデータベースとして、MySQLを使っています。MySQL について高度な知識を持った DBAはいますが、最低限基本的な知識は開発チームでももったうえで、より専門的な內容についてコンサルテーションやオペレーションを擔當してもらいます。MySQLもクラウドプラットフォームを通じたセルフサービス化が構築されており、新規作成やレプリカ追加はサービス開発エンジニアが WebUI から操作します。一般的なテーブル設計や事前のindex作成についても、開発チームの責任で実施しています。


擔當ライターから
業務システムとWeb/モバイルサービスの開発は、似て非なるものなのかもしれない。ウォーターフォールモデルで要件定義から設計、開発、テストまで、開発の全工程を事前にがっちりと組み上げる業務システムの開発に比べ、Web/モバイルサービスの開発はユーザーのフィードバックを反映させながらブラッシュアップを続けるアジャイルモデル。運用においても安定稼働させるだけではなく、処理速度も求められる。
LINEマンガのようなコンシューマー向けサービスの場合、たった3秒のロードタイムでもユーザーの離脫につながる。その意味では、日々の安定的な運用とパフォーマンスの継続的な改善こそビジネスの根幹を握っており、サービスのクオリティを決定する。SREの仕事こそ、実はサービス開発の“花形ポジション”なのではないだろうか。
Redis Issueへの獨自のアプローチ
——SREエンジニアとして働くなかで、高トラフィックサービスならではの楽しさや苦労はありますか?
LDFのバックエンドチームでは、サーバーの負荷に関して、今まさに処理中のリクエスト數を「Inflight」と呼んで、最も注目すべき指標の1つに設定しています。LINEマンガでは、このInflightsがピーク時には1000を越えます。API のResponse Timeは平均すると100ms以下ですが、リクエスト數が膨大なので、ピーク時には1000個の処理を並行処理中ということになります。こういった高トラフィックを扱えることが LDF で SRE 業務を行う魅力だと思います。
華々しい開発のポジションに比べ、運用は地味なイメージがあるかもしれないですが、LINEマンガの場合、SRE はサービスを根底で支える重要な役割で、サービスのクオリティが手に取るようにわかります。新機能の開発は楽しいですが、エンジニアリングの観點からすると、そこまで難しいものではありません。作ったものをどれだけ速くできるか、これは非常に難易度が高い仕事です。
SRE業界では、多くの代表的なMetricsがあります。4 Golden Signal、USE Metrics、RED Metricsなどです。しかし、実際にサービスを運用していると、どのMetricsを使っても結局項目が多すぎてなにを見ればよいのか解らない?伝えきれないという苦しさもありました?,F在は「Inflights」をまず確認する KPI に置いています。SREというと「レイテンシ?Response Percentile」「QPS」それぞれを取得するケースが多く、特にレイテンシはユーザーの體験に直結する値として我々も重視しています。これらの指標はクールに見えるかもしれませんが、一方で直接サーバーの負荷や待ち時間の合計を示しません。
Inflights というのは、例えば「移動」について議論したいとき、「かかった時間」や「速度」ではなくて「距離」に著目するのと似ています?!弗辚戛`ス後から急に遅くなった」「夜間に負荷がシステムの許容値を超えた」といったケースでは「Inflights」が狀況をストレートに反映します。
次のキャリアとして、SREを念頭に置くエンジニアは多いと思います。SREを支えているのは「サービスは安定して使われてこそ意味がある」という価値観です。サービスの規模が小さい場合、たとえ安定したパフォーマンスでも多くのユーザーに使われていないならあまり意味を成さない。LINEマンガはユーザー數が多くて、SRE として楽しく働けると思います。
ユーザーから厳しいレビューを貰う事もありますが、エンジニアとしての技術力が問われていると思っています(笑)LINEマンガは、ピーク時にはAPI 呼び出し數が秒間3萬を超えます。シンプルなベンチマークでは驚くような數字ではありませんが、LINEマンガの場合はこれが実際のサービスリクエスト數で、その中には1秒を超える処理時間が必要な呼び出しも含まれるため膨大な量です。
ーー問題を見逃さぬように、何か工夫していることはありますか。
Metricsをもとにしたダッシュボードによるモニタリングや、その値が想定値を超えた場合の自動通知を実施しています。モニタリングの目的は2つあって、1つは、予想外のトラフィック増加やハードウェア故障といった外部起因の問題に気付けることです?;镜膜摔?、故障については自動的にサービスアウトされるように設計していますが、まれにパフォーマンスが低いままオンラインにとどまってしまうこともあります。いずれの場合においても、検出さえすれば対応はそんなに難しくはありません。もう1つが SREにとって非常にありがたいことなのですが、內部起因であるアプリケーションの性能的な不具合に早く気付けることです。
LINEマンガでは、毎週さまざまな機能改善がリリースされます。リリース前にコードレビューやCI、実際の Query の実行計畫を本番DBで確認する作業を行っています。とはいえ、エラーは起こりうるものです。エラーを完全になくすよりも、エラーに早く気がついてリカバーする方がコストパフォーマンスにすぐれています。99%と100%の間には、大きなコストの差があります。それなら、99%のまま、1%の事態に備えた體制を構築する方が、ビジネスの現場では合理的でもあります。
ーーSREが主體となって、運用の課題解決をしている事例を教えてください。
最近の事例として「Redis」を使ったキャッシュの Hot Key への対応をあげさせてください。Redisはメモリ上でデータを管理するKVSです。MySQL のようにデータを構造化して保存することはできない反面、シンプルな put/get に対して非常に高いパフォーマンスを発揮します。
Redisを使ったキャッシュは、中規模から大規模なサービスでよく活用されています。LINEマンガでもRedisを導入してサーバーのレスポンス速度を上げようとしましたが、ある特定のキーにアクセスが集中してしまうことで、Redisでも処理しきれなくなる事態に直面しました。Redisもデータベースと同じく分散処理すると高負荷を乗り切れますが、同じキーにアクセスが集中すると分散処理ができません。例えば、LINEマンガのアプリ內にあるコンテンツの人気順を表した「ランキング」。データの種類も1種類なので、誰がリクエストしても同じキー、同じ Redis インスタンスが処理を擔當する事になります。
アクセスが集中してしまうキーを「Hot Key」と呼んで、Redis ではこれは避けなければなりません。Hot Key が存在してしまうと Skew と呼ばれるリクエストの偏りが発生してしまい、アクセスが偏るということは、サーバーを追加してもサービスがスケールしなくなってしまうからです。
LINE マンガでも Skew により Redis の特定ノードが過負荷になり、サービスの全體障害に繋がるという事を何回か経験していました。
Redis は非常に性能が良いソフトウェアなので、中規模サイトであれば Skew があっても障害に繋がることは無いと思います。しかし、LINE マンガのような秒間數萬リクエストの世界では、多數のサーバーで処理を分散するスケーラビリティが安定稼働の前提になります。Skew の発生はその前提を壊してしまいます。
Skew は障害の原因にもなるわけですが、実はパフォーマンス改善の大きなヒントでもあります。なぜなら、Skew が発生しているということは多數のリクエストで同じ Key を必要としているということであり、Cache が効果的なデータであることを証明してくれているからです。
Cache が効果的な場面でも、リクエストが特定の項目に集中しすぎていると Redis だけでは負荷に耐えられないということがわかってきました?,F在の私たちは、ローカルキャッシュとRedisキャッシュを両方使う二段構えの「ハイブリッドキャッシュ」を導入しています。ユーザーのリクエストに際して、まずはAPIサーバー內のローカルキャッシュで対応する。ローカルキャッシュに無ければ Redis に問い合わせ、そこにもデータがなかったときに始めて MySQL にアクセスします。
APIサーバーのローカルキャッシュは、有効期限が短くすぐに消えます。消えてもRedisキャッシュがあれば MySQL にアクセスしなくて済みます。ローカルキャッシュでも対応したことで、Redisキャッシュへの高負荷は改善されました。
毎回 MySQL にアクセスしていたらサービスが成り立ちません。更に、 LINEマンガでは毎回 Redis にアクセスしても障害になることがあるとわかりました?,F在、この部分は99% のケースで Redisにすらアクセスせずにユーザーからのリクエストに応えています。


擔當ライターから
秒間3萬リクエストのトラフィックをさばく経験は、LINEマンガならではだと思われる。しかも、無料で利用しているユーザーだけでなく、マンガを購入した課金ユーザーは、アプリケーション上でマンガを所有している身であり、サービスが重くなるとストレスを感じる。一般的なECサイトならアクセスが集中しても、ユーザーの購入が終わればあとは問題ない。LINEマンガの場合、マンガが売れれば売れるほど、その後もサイトにアクセスするユーザーが増えることになる。日々の運用を擔當するエンジニアは、常にサービスの最適化を迫られる。
LDFでは、ローカルキャッシュでユーザーのリクエストに応えていた。アクセス數が増えたことで「Redis」を導入した。それでもリクエストが一部のデータに集中したため、ローカルキャッシュとRedisキャッシュを併用する「ハイブリッドキャッシュ」を編み出した。こうしてサイト運営の最適化を常に行って、サイトの安定稼働を維持するのが、SREの仕事なのだ。
自由に提案?実行できる企業カルチャー
——LDFのサーバーサイドエンジニアの組織はどんな體制になっていますか?
社員とパートナーのエンジニアをあわせて、おおよそ30名ほどのチームで開発と運用を行っています。以前は、全員でワンチームとして動いていましたが、コミュニケーションがうまくいかず、現在は6人前後のサブチームを作って、コミュニケーションを活発にし、開発しています。
サーバーサイドのなかでも、カイルはアプリの新機能に関連した開発と実裝を擔當しています。私は、SRE業務やCS(カスタマーサポート)のイシュー、キャンペーンのオペレーションなどをもう一人のリーダーと共に擔當しています。その他に商品マスタ関係のシステムの開発を擔當するチームなどもあります。メンバーは一つのチームに所屬しますが、本人の希望でチーム異動もできます。エンジニアにはいろんなことを経験してほしいです。
役割は異なっても、みんな同じサービスを開発している仲間。仕事を効率よく進めるためにチームを分けていますが、勉強會をひらくなどコミュニケーションはチームの垣根を越えて実施しています。開発の進行はアジャイルを基本としています。私が所屬するサブチームは「スクラム開発」を取り入れています。開発チームがステークホルダーと一緒に機能開発の計畫を定期的に見直すこと、開発チームが一丸となって計畫を進めることを大事にしているためこの手法を選びました。
私が所屬するサブチームでも、アジャイルではありますが、業務の性質上、スクラムは合わなかったので廃止しました?!笚仕鞲纳啤埂窻edis利用方法の改善」「ローカル開発體験の改善」などの大きなテーマがあって、必要に応じてメンバー同士でディスカッションなどをしながら、最終的には各メンバーがオーナーシップをもってやっていくという形です。大學の研究室のような仕事の仕方をしていければと思っています。あえて分類するならアジャイルの中でもXPとよばれるものに近いと思います。屬人化を避けるために、ある程度區切りが付いたタイミングでドキュメント化して、On-call體制に移行し、當番制にして、その日の擔當者が確認する形にしたいです。
スクラムでも、そうでなくても、全體としてJIRAやConfluenceを使ったタスクの整理や情報共有が活発です。LDFのサーバーサイドエンジニアが所屬する部署は、多様性のある組織で、検索技術が得意な人、クライアントアプリの開発からサーバーサイドに移ってきた人、アルゴリズムに興味がある人など、それぞれ得意な領域をもっています。サービスを開発?運用するには、この多様性が大事。開発を進めるに當たって、組織內に誰か詳しい人がいるのは強みだと思っています。
ーー大切にしているカルチャーや価値観は?
自由に提案?実行できるカルチャーは大切にし、「怒られない障害報告會」「専門家を擔當者とするさまざまな勉強會」などに取り組んでいます。
「怒られない障害報告會」は、いい取り組みですよね。
この話をするとびっくりされることも多いんですよ。障害報告しても怒られないのはどういうこと? みたいな。
自由に提案?実行できるカルチャーは、実感しています。ダッシュボードによるモニタリング、Redisとローカルキャッシュを併用したハイブリッドキャッシュなど、どれもエンジニアの発案。やりたいことを提案すればチャレンジさせてくれる環境があります。
エンジニアはオーナーシップをもって仕事に臨んでいます。ユーザー視點を大切にして、ユーザー體験の最大化を意識した動きを、會社は求めています。どんな方法で実現するかは、エンジニアに任せられているので、エンジニアはスキルを生かして働けます。SI業界の業務システム開発と大きく違うのは、上から降りてきた仕事を時間內に終える意識ではなく、自ら考えてベストなプロダクトを作り上げるマインドが必要な點です。
開発ももちろん好きですが、自分が4?5年前から興味をもっているのは、開発手法やプロジェクトマネジメント。LINEマンガでは「開発」と「企畫」のチーム間のコミュニケーションが非常に重要なので、複數のチームをまたいで新しい機能を実裝できるとやりがいを感じます。
プロダクトに興味があって、「エンジニアリングで改善したい」という思いをもっていれば、悪い結果にはならないと信じています。もちろん失敗することもあるでしょうが、次につなげられれば「経験」になります。失敗はマネジャーやリーダーが何とかすればいい話で、エンジニアには失敗を恐れずにどんどんチャレンジしてほしいと願っています。


擔當ライターから
サービス開発?運用だけでなく、組織のビルドアップでも、トライ&エラーで作り上げるマインドを、LDFは持っている。30名規模のエンジニア組織になると、コミュニケーションをスムーズにするのが難しいが、サブチームに分けて密なコミュニケーションがとれるように工夫している。
自由に提案?実行できるカルチャーを大切にし「怒られない障害報告會」を開くなど、対人関係もロジカルに組み上げている點は、エンジニア組織ならではだと感じた。SREにチャレンジした人材でも、希望すれば機能開発などに攜わることも可能。失敗を恐れず果敢にチャレンジする人材が成果を上げられる會社だといえるのだろう。

LINE Digital Frontier 株式會社資本金100百萬円(2019年12月末時點)設立年月日2018年07月従業員數200人
電子コミックサービス「LINEマンガ」の開発?運営
この企業が募集している求人
【擔當するサービス】 電子コミックサービス「LINEマンガ」のサーバーサイド開発業務に攜わっていただきます。 「LINEマンガ」は2013年にリリースされて以降、右肩上がりで成長してきました。 サービス規模が大きいため、高トラフィックな狀況でもユーザーにサービスを提供し続けることは簡単ではありませんが、技術的に非常にチャレンジングで、ユーザーの反応が直接的に見えるためやりがいも大き...
【擔當するサービス】 電子コミックサービス「LINEマンガ」のサーバーサイド開発業務に攜わっていただきます。 「LINEマンガ」は2013年にリリースされて以降、右肩上がりで成長してきました。 サービス規模が大きいため、高トラフィックな狀況でもユーザーにサービスを提供し続けることは簡単ではありませんが、技術的に非常にチャレンジングで、ユーザーの反応が直接的に見えるためやりがいも大き...
電子コミックサービス「LINEマンガ」の品質保証業務の遂行と課題分析や業務フロー改善を擔っていただきます。 「LINEマンガ」は2013年にリリースされて以降、右肩上がりで成長してきました。 ?。贾苯螌g績> ?2021年 國內アプリ消費支出ランキング2位(2022年1月時點/出展:App Annie) ?非ゲーム 世界モバイルアプリ収益ランキング9位(2021年6月時點/出...
電子コミックサービス「LINEマンガ」のクライアント開発業務に攜わっていただきます。 「LINEマンガ」は2013年にリリースされて以降、右肩上がりで成長してきました。 ?。贾苯螌g績> ?2021年 國內アプリ消費支出ランキング2位(2022年1月時點/出展:App Annie) ?非ゲーム 世界モバイルアプリ収益ランキング9位(2021年6月時點/出展:Sensortow...
電子コミックサービス「LINEマンガ」の事業/サービス課題を解決するためのデータ分析業務に攜わっていただきます。 裁量が大きく、ビジネスに近いところで分析ができるため、事業/サービスの成長に直接貢獻できるやりがいのあるポジションです。 「LINEマンガ」は2013年にリリースされて以降、右肩上がりで成長してきました。 ?。贾苯螌g績> ?2021年 國內アプリ消費支出ランキ...
LINEマンガにてインディーズ(注1)にまつわる企畫業務を擔當する方を募集します。 たくさんの作家と素晴らしい作品を集めることを目的に、企畫の立ち上げからリリース後の運用まで、全ての工程に攜わることができます。 読者を楽しませたい、作家を応援したいというマインドセットを重視します。 (注1)オリジナル作品なら誰もが投稿できる、LINEマンガ新人作家発掘のためのプラットフォームです。
電子コミックサービス「LINEマンガ」のクライアント開発業務に攜わっていただきます。 「LINEマンガ」は2013年にリリースされて以降、右肩上がりで成長してきました。 ?。贾苯螌g績> ?2021年 國內アプリ消費支出ランキング2位(2022年1月時點/出展:App Annie) ?非ゲーム 世界モバイルアプリ収益ランキング9位(2021年6月時點/出展:Sensortow...
電子コミックサービス「LINEマンガ」の情報セキュリティ?プライバシー擔當をお任せいたします。 「LINEマンガ」は2013年にリリースされて以降、右肩上がりで成長してきました。 1日に億単位のリクエストがある大規模サービスであるため、セキュリティにおける責任も大きく、その分やりがいも大きく感じていただけるポジションです。
LINEマンガは3300萬DLを超える國內最大級のマンガ配信プラットフォームです。 電子コミック市場は今後もより成長が期待されており、グループ企業であるNAVER WEBTOON社と連攜しながら、サービスのさらなる成長とグローバル展開を目指します。 本ポジションでは「LINEマンガ」の運営會社であるLINE Digital FrontierのContent Designチームでグラフ...
LINEマンガにてインディーズ(注1)作品に関する運用?作品編集業務を擔當する方を募集します。 読者を楽しませたい?作家を応援したいという熱意を重視し、編集業務未経験の方も歓迎します。
【擔當するサービス】 電子コミックサービス「LINEマンガ」のフロントエンド開発業務に攜わっていただきます。 「LINEマンガ」は2013年にリリースされて以降、右肩上がりで成長してきました。 ?。贾苯螌g績> ?2021年 國內アプリ消費支出ランキング2位(2022年1月時點/出展:App Annie) ?非ゲーム 世界モバイルアプリ収益ランキング9位(2021年6月時點...