システム室の役割

カーンフィロズ氏(以下、カーン):LINEのインフラのシステム室を担当しているカーンといいます。よろしくお願いします。システム室の大きなミッションと役割について、これから詳細を説明します。

簡単に言いますと、基本的にサーバーとハードウェアとOSの評価・運用・管理、あとはシステムインテグレーション、それと全般的なインフラにかかわる開発を行っている部署です。

こちらはサーバー、OSの規模感です。8月時点でホストの数でいうと、約14万を超過しています。その中で物理サーバーが56,000台を超過しています。

システム室では、この物理サーバーの全般的な運用・構築・管理を行っています。仮想サーバーは85,000台を超えていて、ホストベースでいうと、毎年3万台以上増加しています。

割合的なところでいうと、14万台のホスト中、物理サーバーが37パーセントを占めていて、VMが約58パーセントです。この85,000台のVMの中で、約85パーセント以上が、「Verda」というプライベートクラウドで構築されています。

残りの15パーセントぐらいは、VMが基盤となっていて、VM基盤のものは、先ほどあったプライベートゾーンや金融サービス、Fintechなどで、多くの仮想基盤として構築されています。

OSはLinuxディストリビューションがメジャーとなっていまして、基本的には「CentOS」が98パーセントを占めています。残りは「Windows」や「Red Had」も、サービスに応じて提供しています。

システム室の4つの大きなミッション

これから、4つぐらいありますが、システム室の大きなミッションを簡単に紹介したいと思います。

まず1つ目、オールクラウド化です。プライベートクラウド「Verda」で物理レイヤーはすべて提供しています。一部、プライベートクラウドでもできない、例えば海外の事業展開、急速な事業展開など、アプリケーションの開発のニーズによって、どうしても「AWS」や「GCP」が求められる場合は、システム室で、LINEの標準のOSで提供したりしています。

2つ目、急速に増え続けているLINEインフラのハードウェア。これを標準化したり、コストを最適化したり、近年でいうと「OCP」といった最新のテクノロジーを使って、費用プラス運用の最適化を図っています。

3つ目のミッションは、システム開発ですね。大きくいうと、すごく大規模なインフラの監視システムの開発を自前で行っています。それから資産管理やチケットシステムなども、自分たちでシステムを開発していて、LINEならではの最適化ができるようなシステムを構築しています。

それと同時に、今増え続けているサーバーやホストの、日々の運用の自動化をしていて、そこのツール開発もしています。

最後に、システムインテグレーションとソリューションアーキテクトですね。これはどちらかというと、事業側から新しいサービスを立ち上げた時に、インフラのソリューショニングであったり、どうあるべきかというところのコンサルティングであったり、アーキテクティングであったりします。

一部、例としては、Fintechや銀行など、そういったもう少しプライベートなサービスに特化した、特殊なシステムのソリューションもしています。

また、インフラがどんどん増え続けているので、最適化やコストの管理も。それもボトムアップ方式で、システム室でコストの最適化を行っています。

システム室は3つのチームで構成

チーム構成なんですが、システム室は3つのチームで構成されています。1つ目はシステムエンジニアリングチーム。もう1つはシステムデベロップメントチーム。3つ目がシステムソリューションチームです。

私がシステムソリューションチームのマネージャーもやっていますので、ここからはシステムソリューションチームの説明をしたいと思います。システムエンジニアリングチームとシステムデベロップメントチームに関しては、のちほどマネージャーから詳細説明があると思います。

先ほど説明しましたシステム室のミッションですね。これは、この3つのチームに分配されて、それぞれのチームでミッションを扱っています。

システムソリューションチームについては、業務内容の中で大きく4つぐらいがメインの業務になっています。その中で50パーセント以上を占めているのが、Fintechのサービスです。

のちほどもう少し詳細を説明しますが、基本的にLINEのFintechサービスにおけるインフラ部分の取りまとめを行っています。技術レイヤーでいうと、サーバー、OS、ネットワークの知識を持って、適切なサービスの構築、インフラの構築と運用を行っています。

仮想基盤はVMware基盤となっていて、近年は「NSX」であったり「vSAN」であったりといった新しい技術を取り入れて、なるべく自動化しています。あとはAWSです。先ほどもあったように、LINEの標準インフラで提供できないインフラのニーズがあった場合、AWSの環境でインフラのソリューションを行っています。

そのほかにも定期的なプロジェクトがいくつかありまして、LINEのインフラが増え続けていて、サーバーのリソースが適切に使用されていない、未使用で低使用率のサーバーをけっこう定期的にチェックしています。

そちらを適切な、例えば、物理サーバーがオーバースペックの場合はVMに移動してもらったり、VMで適切なリソースを使っていない場合は、もう少しダウンサイジングしてもらったりとか。

また、どういった課題があってリソースが適切に使用できていないかなど、そういったレベルのヒアリングを取りまとめしていて、最終的に全体としてレポーティングする、というプロジェクトを行っています。

それから技術がどんどん進歩してネットワーク構成も変化している中で、IDCが古くなっています。そうすると、IDCの部屋単位でリノベーションのプロジェクトがあります。こちらの大規模なサーバーのリプレイスのプロジェクトも行っています。

こういったことが主なシステムソリューションチームの役割となっていまして、メンバーがこのようなプロジェクトに取り組んでいます。

システム室に必要なスキルセット

スキルセットでいうと、VMwareでは「vSphere 6」以上のバージョンについて運用経験が1年以上ある方、AWSではソリューションアーキテクト、もしくはソリューションアソシエイトのような資格を保有している方。あと、ストレージなどのレイヤーでは、ネットワークであったり、「PowerMax」や、「compillent 」などenterprise storage製品の運用経験のある方が、マッチしているのかなと思っています。

また、システムソリューションチームでは少しプロジェクトマネジメントの役割を求められる部分もあって、割合的には5:5くらいです。これももちろん、メンバーのスキルセットによって多少変化します。

例えば資格的なところでいうと、PMPであったり、「CPAM」であったり、スクラムなどのリテラシーを理解している方が歓迎されます。

システム室とFintechの関わり合い

Fintechではどういった組織やどういったサービスにかかわることになるかというと、ここのイメージで理解できるかなと思っています。

大きくいうと、仮想組織にFintechカンパニーがありまして、そこの配下に各法人が存在しています。

LVC株式会社、LINE Pay株式会社、LINE Financial株式会社。この各法人の配下にさまざまなFintechサービスがあります。みなさんの馴染みがあるかもしれませんが、こういったサービスのインフラの構築、運用、あとインフラの課題の改善の業務にかかわることになると思います。

代表的なところでは「LINE Pay」であったり、「BITMAX」であったり、「LINE証券」であったり、こういったサービスのインフラの運用と構築の役割になります。

私からは簡単ですが、いったんここまでといたします。ここからはシステムデベロップメントチームの小笹さんから、チームの説明になります。小笹さん、よろしくお願いします。

システムデベロップメントチーム

小笹哲哉氏(以下、小笹):システムデベロップメントチームのマネージャーの小笹です。よろしくお願いします。私たちのチームは、システム室全体ではもちろんサーバーを見ているというところはありますが、募集している職種では、サーバーに関するソフトウェア開発の部分を担当しています。

内容として、いくつか例を挙げますと、例えばインフラ資産の構成管理システムの開発で、IDCに存在しているサーバーのスペックだったり、インストールされているOSであったり、どういうハードウェアを使っているかだったりなど、サーバーの情報を管理しているシステムについて開発を行っています。

また、サーバーの監視を担当しているシステムの開発であったり、ソリューションチームで使っている低使用率サーバーのコスト管理だったり、それを検知するシステムの開発なども担当しています。

あとは、IDCに置かれているサーバーに対して障害運用もやっていかないといけませんので、そちらのマニュアルの管理であったり、インシデントの管理のシステムを開発していたりしています。

また、運用自動化というところでシステム室が行っている運用でも、けっこう自動化していく部分がたくさんあるので、そちらについてもツールの開発も私たちのチームで請け負っています。

システムデベロップメントチームの技術スタック

利用している技術については、Webフロント側とバックエンドの両方を担当していて、フロント側であれば、Vue.jsだったりTypeScriptだったりを使っています。バックエンド開発であれば、メインはNode.jsですが、GolangやPythonも使って開発をしています。

なので、知識として「GitOps」だったり「Kubernetes」の知識があるといいかなと思っています。あと、こういった運用ツールだったりとかを開発していく上で、サーバー運用の知識を持っていると、とても助かるなと思っています。

実際に作ったものについては、これはスクリーンショットしかありませんが、こういったものを作っていて、フロントエンドであればどちらのツールもVue.jsを使っていて、バックエンドは障害運用マニュアルであればGolang、データベースはMySQLを使っています。

低使用率サーバーコストの管理システムであれば、Pythonでバックエンドを書いていて、データベースはMySQLを使ったツールを作っています。

私のチームの紹介は短いですが、以上となります。次はシステムエンジニアリングチームの木村さん、よろしくお願いします。

システムエンジニアリングチーム

木村智洋氏(以下、木村):システムエンジニアリングチーム マネージャーの木村です。よろしくお願いします。

システムエンジニアリングチームは一言で言うと、LINEの物理サーバーの「サーバーの一生」を全部やっている、ところになります。

一生というのは、最初に新しいサーバーのモデルやCPUが出た時には、サーバーの評価をやっています。そこは性能評価であったり、あとはファームウェアの検証とかもありますし、最近だとGPUもたくさん使っていたりするので、そういうもののパーツの選定やベンチマークを取って評価をしています。

それでどういうスペックのサーバーを買いましょうかというところを検証したり、導入しています。それで決まったサーバーを、じゃあ何台買うかというところのコントロールもしています。

実際にサーバーがデータセンターに入ってきた時には、OSをインストールする役割もありまして、エンジニアリングチームとしては、OSのインストーラーを開発したりしています。

インストーラーの開発は、オープンソースを使うのではなく、LINE社内で作ったインストーラーで行っています。これは、LINEにはプライベートクラウドとして「Verda」があって、その中はVMだけではなく、物理サーバーも開発者が自由にデプロイして使用できる環境を整えているので、そこで使用したりしています。

インフラに携わった人はわかると思いますが、その環境の中ではIPMIなども使って、物理サーバーをコントロールしていたりします。あとは全台のサーバーで、一番簡単なところでいうと、Ping監視、死活監視なんかもやっていたり、あとは、3万台、4万台っていうサーバーがあるので、物が壊れた時にそれを修理して、直すというところもやっています。

実際は、そこはアウトソーシングをしていて、実際にメモリを交換するということはしないんですが、そこのパーツの故障の検知だったりをツールを使って、そこの運用の評価、最適化もやっています。

最後に、古いサーバーを廃棄するというところまでを全部やっています。

あとは、OSの標準化もやっていて、メインはCentOSですが、そこでLINE全体として一番最適、というか標準的なところで設定したり、チューニングした上でインストーラーを作って、標準化したOSをデプロイすることをやっています。

システムエンジニアリングチームに必要なスキルセット

そのへんもいっぱいやったりするので、技術者として必要なのは、Linuxの深い知識です。カーネルであったり、OSのインストーラーも作っていたりするので、そのへんに必要になるLinuxの知識が必要です。

また、OSの標準化もやっているので、一番簡単に言うと、etc配下のファイルの設定をどうするかも考えていったりするので、そのへんの一番基本的なシスアドミンとしての知識だったり経験が必要になっています。

あとは、たくさんサーバーを買っていると、1台、2台しか使っていないところで遭遇しないハードウェア故障だったり、かなり変な故障が起こったり、ロット不良とかもあったりするので、x86の知識であったり、そういうところは必要になります。

さらに評価もやっているので、ベンチマーク経験なんかもあったりすると、すごくいいかなと思います。

また、プログラミング言語のところも相当必要にはなっているので、日々のオペレーションの中で、例えば13万ノードのVMと物理サーバーに対して、なにかをしようと思った時に、全部手で打ってすることは不可能なので、そのへんの自動化など、プログラミング言語の知識も必要になっています。

業務イメージで、図示するとこんな感じになっています。一番下のラック管理は、サーバールームの中で、1ラックにどういうサーバーを何台入れていきましょうかだとか、というコントロール。電力の問題もありますし、あとは電力だったり、納品の納期のタイミングだったり、そういうところもコントロールしています。

システム室全体でやっているところではありますが、いろいろなオペレーションにかかわる業務効率化もやっています。

ハードウェア選定もやって、OSの標準化もやっていますね。あとは、大規模案件、先ほどソリューションチームは、Fintechなどすごく特化したところはありますが、大規模案件などのサーバーのデプロイメントも役割としてやっています。

システムエンジニアリングチームの最近の仕事事例

先ほどのソリューションチームのところは、Fintechサービス用のインフラの構築というものをやっていました。あと、低使用率サーバーの可視化だったり、そういうところの話も先ほどあったと思います。

運用プロセスも、これはシステム室全体でやっていて、主にデベロップメントチームがこのへんの自動化だったり、チケットを自動発行化するのをやっていたりしています。

あとは最新のサーバーの検証では、OCPというキーワードもありましたし、1年ごととか2年ごとに新しいCPUが出てくるので、それに対して、どういうパフォーマンスがあるのだろうかをコストも含めて検証して、OKだったら購入につなぐことをやっています。

また、GPUの検証も最近はやっていますし、それに対するモニタリングもやっています。

さらに、一番下のZTP。ZTPは、Zero Touch Provisioningの略なのですが、たくさんサーバーが、簡単に言うと1ヶ月とかで1万台納品された時に、どうやってそれをデプロイしていくかというところを考えて、ある程度自動化をしていかなくてはいけません。

簡単に言うと、サーバーに電源ケーブルやEtherケーブルを差しただけで、先ほどの資産を管理しているデータベースに自動的にデータが登録されたり、OSのインストールまで走ったりなど、そういうところの自動化を、人がなにもタッチせずに進むように自動化しているところです。

システム室で求めている人材像は、先ほどのITサービスセンター全体とほぼほぼ一緒ではありますが、エンジニア技術的なところではあるので、技術的になにかすごく得意な領域が1つあるとやりやすくなるかなとは思います。

あとは、LINE社として、ITサービスセンターとして、問題解決は1つのミッションではあるので、最後までやり遂げられる人を求めています。

システム室からは、以上となります。