LINEサービスに対してインフラを提供するITサービスセンター

小笹哲哉氏:ITサービスセンターシステム室の小笹といいます。よろしくお願いします。まずは、ITサービスセンターとはどういった組織なのかを簡単に説明いたします。

LINEでは「LINEアプリ」「LINE マンガ」「LINE MUSIC」「LINE LIVE」といったサービスに加えて、FinTechなどのサービスも提供しています。ITサービスセンターは、これらLINEに関わるすべてのサービスに対して、インフラサービスを提供しています。

ここにさまざまなアイコンが載っていますが、すべてのサービスに対して私たちは関わっています。

これは、ほかの部署との関わり合いを視点にした図ですが、私たちLINEのインフラエンジニアは、LINEアプリ、LINEのファミリーサービス、広告のプラットフォームなどに関わる開発者たちに対して、インフラを提供しています。

そのため、LINEの開発者が開発するものに対して、安定したインフラサービスを迅速提供するのがとても重要になってきます。

ITサービスセンターの3つのミッション

ITサービスセンターのミッションとしては、この3つがあります。「インフラサービスを通じて、ビジネス課題を根本レベルで解決すること」。私たちは、LINEで働く人々のことを「LINER」と呼んでいるのですが、「LINERが仕事に専念できる環境を提供する、インフラサービスの業務を最適化する」というところを目指しています。

また、安定的で信頼性のあるインフラサービスを提供して、LINEのユーザーとLINEのサービスの距離を縮めるということがミッションになっています。

2021年現在(※発表当時)のLINEのインフラの規模感ですが、物理サーバーで56,000台以上、仮想サーバーで85,000台以上、ユーザートラフィックで、3Tbps以上となっています。

LINEインフラエンジニアの技術スコープ

これは、LINEのインフラエンジニアがどういったものを技術スコープとしているかを説明している図です。技術スタックには、データセンター、ネットワークハードウェア、サーバーハードウェア、インフラストラクチャープラットフォームという土台があって、さらにその上に、VM、ベアメタル、OSといったものがあります。

私たちITサービスセンターは、DatacenterからOperating System の層までを提供しています。これに加えて、データベースやストレージの提供もしています。

サーバーハードウェア、VM、ベアメタル、OSを担当するシステム室

担当している領域によって、いくつかの部署に分かれています。これから、システム、ネットワーク、データベース、プライベートクラウドであるVerda Platformの4つの部署からマネージャーが組織の説明をいたします。

私はシステム室に属するチームのマネージャーなので、システム室の紹介をいたします。システム室は、サーバーハードウェア、VM、ベアメタル、OSといったところを担当しています。これに加えて、ストレージも一部提供しています。

システム室の中でもチームが3つあって、それぞれ仕事内容が細分化されています。具体的には、システムエンジニアリングチーム、システムソリューションチームと、システムデベロップメントチームの3つのチームがあります。

システムエンジニアリングチームは、OS、サーバーハードウェアの設定、導入検証といったさまざまな管理を行っています。

システムソリューションチームは、ソリューションアーキテクトというかたちで、FinTech向けのインフラ環境構築や支援を行っています。また、各サービスで使用率の低いサーバーを使っていた場合は、その可視化を行い、改善を促すということもやっています。

最後にシステムデベロップメントチームですが、こちらは、インフラの構成管理や、サーバー運営の効率化のためのツール開発、運用の自動化に関する開発を担当しています。

部署との関わり合いになりますが、システム室は、ネットワーク、プライベートクラウド、データベース、それぞれの部署と適宜連携をしています。

例えば、ネットワークとの関わりであれば、データセンターの中にサーバーを置きたいという要望があった時に、「データセンターはどれぐらいのサーバーを置けるのか」とか、「どういったネットワークを使用できるのか」といったところで連携をしなければいけません。

また、プライベートクラウドの場合でも、サーバーが必要になるので、そのサーバーの調達やOSの設定の面で相談をしつつ連携しています。

また、データベースに関しても、「ストレージIOや容量が最適なスペックのサーバーをください」という要望を受けたりします。データベース室も大量のサーバーを抱えているので、各々のサーバーに対してではなくて、もっと全体的な設定変更やハードウェアのコンサルティングができないかというところで相談をしています。

システム室で使われる技術スタック

システム室で使っている技術スタックは、もちろんサーバーハードウェアの知識も必要ですが、自動化をするうえでPythonや、MySQLやNode.jsも使っています。

スライドに書いてあるものは、開発を通して使っている言語をまとめたものなので、実際はこの技術を利用している人だけではなくて、サーバーのOSの設定などに詳しい人がたくさんいると思ってもらえればと思います。

サーバーコストの削減、ソフトウェアの改修、サーバーのリプレイスなどが課題

システム室の現在の課題についてお話しします。今、サーバーの台数がどんどん増えています。サーバー台数が増えれば、金銭面でのコストが肥大化しますし、オペレーションの数も増えてくるため、それらが問題になっています。この問題に対して、購入や、オペレーションのコスト削減が課題です。

また、管理しているソフトウェアについても状況に応じた改修していく必要があるので、そこも課題になります。

ほかにも、サーバーハードウェアは年々新しいものが出てくるので、そういったものの継承もしなければなりません。また、このあとに説明をいたしますが、インフラプラットフォームとして提供している「Verda」の仕組みに、どんどん移行していきましょうという促進だったり、古いサーバーのリプレイスのサポート、ほかにも最近だと、ガバナンスの遵守が課題としてあります。

システム室の説明は以上です。このあとは、ネットワーク室の鈴木さんにバトンタッチします。鈴木さん、お願いします。

ネットワーク室の技術スコープ

鈴木雄一郎氏:ネットワーク室のサービスネットワークチームで、マネージャーをしている鈴木と申します。よろしくお願いします。私からは、ネットワーク室の組織およびサービスネットワークチームについて紹介したいと思います。

まず、技術スコープについてです。先ほど少し紹介がありましたが、ネットワーク室では、ハードウェアのネットワーク機器とデータセンターのファシリティが技術スコープになっています。ここでは表現しきれていませんが、システムやツールの開発に関する業務もあります。

ネットワーク室を構成する4つのチームとその役割

続いて、ネットワーク室の各チームの役割を説明していきます。ネットワーク室は4つのチームで構成されています。

私が所属しているサービスネットワークチームでは、商用サービス向けのネットワークの企画・設計・構築を担当しています。

エンタープライズネットワークチームでは、国内外のオフィスネットワークの企画・設計・構築を担当しています。

ネットワークオペレーションチームでは、サービスネットワーク、オフィスネットワーク両方のネットワークインフラの維持・運用・業務自動化・効率化業務を担当しています。最後にデータセンターチームですが、データセンターの選定や構築・運用業務を担当しています。

今日は、新卒のメンバーを募集しているサービスネットワークチームについて、説明していきます。

ネットワーク室のミッションと業務内容

まずサービスネットワークチームのミッション、仕事内容、体制についてです。チームのミッションは、LINEの既存サービスの拡大や、新規サービスローンチのために、アプリケーション開発者に安定したネットワークインフラをタイムリーに提供することです。 タイムリーにインフラを提供するためにPJ進行や技術面においてsyncが必要でシステム室やVerda室と連携して仕事を進めております。

続いて、主な仕事を紹介します。LINEでは「Verda」と呼ばれるプライベートクラウドを構築・運用しています。サービスネットワークチームは、Verda向けのIP Closネットワークの設計・構築を担当しています。

また、インターネット向けの接続であったり、インターネットトラフィックコントロールに関する業務にも対応しています。デイリーのトラフィックのピーク値は約800GB、CDNでは2.2Tbpsのトラフィックを吐いています。

右下に図がありますが、LINEでは複数のデータセンターでサーバーファームを運営しており、データセンター間にはサーバー間通信が発生します。そのトラフィックを運ぶために、データセンター間を結ぶMPLSネットワークの設計・構築をしています。

また、私たちは基本的にVerdaという自社クラウドを利用していますが、特殊な要件でどうしても「AWS」や「Azure」などのパブリッククラウドが必要なケースがあります。そのようなケースでパブリッククラウドのネットワーク周りの設計・構築にも対応しています。

ほかにもネットワーク構築を効率よく進めるために、ネットワークの設計・構築ツールの開発を行っています。

通信キャリアやISP事業者であれば、複数のチームで実施している業務を1チームで担当するため、さまざまな領域のネットワークに携わることができます。

続いて、メンバーに関してですが、現在11人のメンバーで業務を実施しています。2022年4月に新卒社員が2名入社予定で、2020年と2021年にも1名ずつ新卒社員が入社したので、みなさんと近い年代のメンバーも在籍しています。

ネットワーク室の技術スタック

利用している機器や技術に関する紹介です。利用している機器のメーカーはとても一般的で、ルータースイッチは、Cisco、Jiniper、Arista、Mellanoxを使っています。ロードバランサーに関しては、Citrixをメインに使用しています。

利用技術ですが、データセンター間のMPLSネットワークでは、ospf、iBGP、eBGP、MPLS、Segment Routing、EoMPLSなどを使用しており、現在はSR-TEを導入すべく検討を進めています。

また、データセンター内のネットワークでは、RFC5549のeBGPや、ospf、MCLAGなどの技術を使用しています。

障害発生時もサービスを止めない「Multi-AZ構築プロジェクト」を進行中

最後に、現在進行中の「Multi-AZ構築プロジェクト」を紹介します。このプロジェクトでは、サーバールームの電源障害や、集約ネットワーク機器の多重故障が発生した場合でも、重要なアプリケーションが止まらないように、お互いに故障・不具合の影響を受けない3つのAvailability Zoneの構築を進めています。

1つのデータセンターが、丸ごと落ちるような障害は今まで経験したことがありませんが、LINEは日本を含め、複数の国でインフラのようにご利用いただいているため、サービスを止めないことを目指して、このようなプロジェクトを進めています。

続いて、Multi-AZ ネットワークの構成概要です。東京近郊のエリアにある3つのデータセンターに、サーバーファームをそれぞれ構築しています。データセンターごとに電源や集約ネットワーク機器が分かれているため、同時に落ちることはありません。そのため、それぞれをAZ(Availability Zone)と呼んでいます。

このAZ間および、AZとネットワークPoP間をフルメッシュで接続することで、AZやネットワークPoPが丸ごと落ちた場合でも、サービスを継続することができます。

プライベートクラウドを運用している会社は日本の中で数社ありますが、このMulti-AZを採用するのは、おそらく日本ではLINEが初になると思います。

図を見ると非常にシンプルで簡単に構築できるように思えるかもしれませんが、巨大なネットワークがすでに存在する中で、このような構成に移行することは簡単ではありません。設計フェーズや移行手順の検討で非常に多くの時間を費やしました。現在は実際に、データセンターの構築やネットワークの構成変更を進めています。

サービスネットワークチームではさまざまな種類のネットワークを扱っているため、多くの経験を積めることが約束できます。ご興味がある方はぜひ応募をよろしくお願いします。ご清聴ありがとうございました。

MySQLを管理するデータベース室MySQLチーム

北川健太郎氏:では、データベース室の紹介をしたいと思います。私は、データベース室MySQL1チームの北川といいます。よろしくお願いします。

データベース室ですが、ITサービスセンターの配下にあります。先ほど説明があったとおり、システム室やネットワーク室と同じ配下にデータベース室があります。

データベース室の下では、MySQLチーム、MongoDBチーム、HBaseチーム、Oracleチーム、Redisチームというように各プロダクトごとにチームが分かれています。

MySQLには、1チームと2チームがあって、1チームは主に日本向けのサービスのMySQLを管理しています。2チームはグローバルサービスのMySQLの管理をしています。

サポートしているDBMSは先ほどのチームになっているものと、それ以外に「Microsoft SQL Server」や「CUBRID」というオープンソースのデータベースの管理をしています。

データベース室には、現在30名ほどが在籍しています。サービスを横断して、データベースの管理・運用をしているので、LINE内のほとんどのサービスのデータベースはデータベース室で運用・管理しています。

コンサルティング業務やDBA業務を担当

業務内容は、主にコンサルティング業務やDBA業務です。また、コンサルティング業務とDBA業務を自動化するための運用ツールを開発しています。開発言語で一番使われているのはGoですね。ほかにもPython、PHPを使っています。

また、新ソリューションのリサーチや導入検証も行っています。最近は、「TiDB」の検証を開始していこうと思っています。

先ほどお話しした、コンサルティング業務とDBA業務はどういったことをしているのかというと、コンサルティング業務はテーブルなどの設計レビューです。サービスをリリースする前に、サービスの開発者からテーブル設計をもらってレビューしたり、クエリのレビューをしたりします。

また、マイグレーションをサポートしたり、パラメータのレビューもしたりします。ほかにもサービスのイベントやリリースするタイミングで、リアルタイムでモニタリングをしたりします。

DBA業務は、データベースの構築やHAの管理、スキーマ/ACL管理、バックアップ・リカバリ、トラブルシューティング、バージョンアップ、モニタリングシステムの構築などを行っています。

チーム間の協業ですが、データベース室はサービス開発者とのやり取りが一番多いです。サービス開発者にはコンサルティング業務を提供したり、DBA業務としてのツールを提供したりしています。

システム室やVerdaチームやネットワーク室にもいろいろ支援を依頼しています。サーバーが壊れたらシステム室に依頼しますし、データベースのネットワーク周りで不具合があれば、ネットワーク室に確認したりします。

次に、LINEにおけるMySQLの環境について簡単に紹介したいと思います。インスタンス数でいうと、年間1,000台規模で増えていて、2021年には5,500台近くのMySQLが動いています。なので、LINEでは大規模なMySQL環境を経験できると思います。5.6と5.7と8.0のバージョンが今私たちが管理しているMySQLで動いています。

「Automatic Operation」「MySQL Upgrade」「Self-Management」が今後の目標

今後の展望として、私たちMySQL1チームの目標を紹介したいと思います。まず「Automatic Operation」ということで、運用の自動化ですね。ツールを開発して、手作業でしていた運用をすべて自動化しようという考えがあります。

ほかには、「MySQL Upgrade」。先ほど説明したとおり、MySQLの5.6がまだ残っているので、これらをアップグレードしていくことを考えています。

また、「Verda Self-Management」として、先ほど説明したDBA業務やコンサルティング業務というのは、DBAが対応しなければいけません。なので、こういったものをツールに落として、開発者自身で実施してもらえるように、運用を開発者に任せるためのプロジェクトを進めています。そういった意味で「Self-Management」と呼ばれていて、今プロジェクトが進行しています。

データベース室からは以上になります。

日本でも最大規模のクラウドプラットフォーム「Verda」

市原裕史氏:市原裕史といいます。クラウドプラットフォーム「Verda」の企画・開発・運用を担う組織の中にあるネットワーク開発チームのマネージャーをしています。今日はVerda全体の話をみなさんにご紹介します。

「Verdaとは何なんですか?」というところですね。先んじて、いろいろ話がありましたが、LINEが持っているプライベートクラウドプラットフォームです。

そういう意味では、LINEは他社とは違っていて、パブリッククラウドを使っていません。ほとんどのサービスはLINEのデータセンターのインフラを使っていて、その中でも、Verdaと私たちが呼んでいるプライベートクラウドプラットフォームを使っています。

規模感ですが、バーチャルマシンで、74,000台。Verdaとしてベアメタルサーバーも管理していて、それが30,000台です。このバーチャルマシンをホストしているハイパーバイザーは4,000台です。

おそらく日本で1番か2番の規模になっていますし、1つのクラスターで面倒を見ているという意味では、日本でも最大規模なのかなと考えています。

クラウドを提供するに当たっては、やはりパブリッククラウドと比較されることが多いのですが、パブリッククラウドで提供されているもので、サービス上、LINEのデベロッパーが必要なものに関しては、私たちのプライベートクラウドでも基本的に提供しているので、かなりのサービスがVerdaの中で提供されています。

Verda Platform室を構成するさまざまなチーム

チームですが、Verda Platform室はさらにいくつかのチームに分かれていて、私は上から3番目にNetwork Devと書いてある、ネットワーク開発チームのマネージャーをしています。

ネットワーク開発チームでは、LBaaSサービス、DNSaaSサービス、NAT as a Serviceなど、いろいろなネットワークに関する開発・運用をしています。

例えば、ほかのチームだと、Verdaプラットフォーム開発IチームはIaaSプラットフォームの開発・運用を提供していて、Verdaプラットフォーム開発Kチームは、「Kubernetes」のKaasを提供しています。また、Cloud Storageチームはストレージを提供しています。

ほかにもVerda全体のSREを担当しているVerda Reliability Engineeringチームがあるなど、Verdaの中でもチームがかなりたくさんあって、全員を合わせれば、だいたい60人以上のエンジニアでVerdaは作られています。

技術コンポーネントと技術スタック

こちらが技術コンポーネントで、基本的にIaaS部分は、オープンソースのIaaSである「OpenStack」を利用しています。ストレージの部分は「Ceph」を使っていて、オリジナルの部分として、ベアメタルやロードバランサーやNATなどを独自で作っています。

その上にマネージドサービスとして、KubernetesやDB系のサービスが乗っかっていて、Verdaとして提供しています。さらにその上のPaaSレイヤーですね。Function as a Serviceや、CI/CDを含めたPaaSを提供する「PIPE」も、私たち独自で開発して提供しています。

どういう技術スタックを私たちが使っているのかですが、正直たくさん使い過ぎていて、ここには並べ切れません。スライドには、私たちネットワーク開発チームが主に使っている技術スタックを挙げていて、ほかのチームではもっと多くの技術スタックが使われています。

例えばロードバランサーでいえば、Linuxの「eBPF/XDP」と言われる機能を使っているので、かなりLinuxのネットワークスタックを見ることもあります。一方、上のレイヤーではOpenStackを使っていたり、さらにその上のレイヤーではKubernetesを使っていたりします。

デプロイやCI/CDでは、「Argo」や「Jenkins」を使っていて、監視では「Prometheus」や「Grafana」を使っています。これらに書き切れないほどのものを使って、私たちはプライベートクラウドを提供しています。

なぜプライベートクラウドを使うのか

ここで1つ、「なんでプライベートクラウドを使っているの? パブリッククラウド使えばいいじゃん」という意見があるかと思います。スライドの一番左側がLINEユーザーで、いわゆるLINEアプリであったり、いろいろなサービスを受けていて、それを開発するアプリケーションデベロッパーというのが、LINEの中にいます。

アプリケーションデベロッパーが、Verdaの上で開発したり、サービスを提供しているのですが、ここでポイントになるのは、私たちとVerdaのデベロッパーとアプリケーションデベロッパーは、同じ社内にいるので密にコミュニケーションができるという点です。

なので、私たちはアプリケーションデベロッパーから直接インフラへの要望を受け取って、パブリッククラウドよりも早いスピードで開発して、提供することができます。

アプリケーションデベロッパーはLINEユーザーのリクエストを受けて、Verdaのデベロッパーはアプリケーションデベロッパーの要望を受けて、開発にフォーカスできる。これが私たちプライベートクラウドの強みなのかなと考えています。

現在進行中のプロジェクト

プライベートクラウドの全体的な話は以上にして、今進行しているプロジェクトについて軽く説明します。

一番上の「Large scale issue」ですが、今の私たちのハイパーバイザーの規模感は、すでに利用しているOpenStackが想定する規模感をはるかに超えていて、いろいろな問題が起きています。

すでに、OpenStackのコミュニティとも連携してやっているのですが、それでも賄いきれないので、このスケール問題を解決するためにいろいろな策を打って、プロジェクトを進めています。

また、今すべてのLINEのサービスがVerdaを使えているわけではなく、特別なサービスがいくつかあるので、そういったサービスにもVerdaを使ってもらえるようにサポートをするというプロジェクトを進めています。

私からの説明は以上です。