2024.12.03
セキュリティ製品を入れても検出されず…被害事例から見る最新の攻撃トレンド 不正侵入・悪用を回避するポイント
LINEにおけるCI/CDとMonitoring(全1記事)
提供:パーソルイノベーション株式会社
リンクをコピー
記事をブックマーク
黒木亮太氏(以下、黒木):「LINEにおけるCI/CDとMonitoring」というお話をさせていただこうかなと思ってます。
まずは私のプロフィールです。私は黒木亮太と言います。2019年にLINE Growth Technologyに移って、LINE Growth Technology株式会社の東京開発室の室長をやっています。
もともとWeb系の会社にずっといて、こういう業界にはけっこう長くいることもあり、さまざまな視点から見ているので、LINEの特殊なところがなんとなくわかっています。今日は「LINEならでは」のツールをどうやって使っているかを情報共有できたらなと思ってます。
今日のアジェンダなんですけど、まずはLINE Growth Technologyという会社自体をご存知の方はなかなかまだ少ないと思うので、最初にその紹介をさせていただいて、そのあとはCI/CDと、モニタリング・アラートについて大きく2つ紹介させていただきます。
まず最初のアジェンダにいきます。ちなみにLINE Growth Technologyを知っている方はどのくらいいますかね?
(会場挙手)
少ないですね。
実は今、会社説明会をしていて、Twitter Adでたまに見る人がいるかもしれないんですが、LINE Growth TechnologyはLINEの100パーセント子会社ですね。その中で開発組織として動いている立ち位置となっております。
LINEとどう違うのかは、会社名にある通りGrowthをテクノロジーで解決するところがミッションです。
ミッションとしては大きく2つですね。LINEのさまざまなサービスの成長と、それに関わる人の成長を我々はミッションとして置いています。
我々は「Growth開発」と呼んでいるのですが、なかなかこのGrowth開発は一般的な言葉ではないので補足させていただきます。
よく上がる質問としては「LINE側のサービスに関わる運用部分を担当するのではないか?」「Growth Hack専門のチームなのではないか?」と質問されるんですけど、ちょっと違います。
Growth Technologyは、LINEのサービスの成長を担う開発組織となっていて、LINEのいち開発組織の立ち位置で開発を行っていきます。
領域としては大きく2つ持っていて、いわゆるエンドユーザが使うサービスについて、UI/UX含めてサービスの満足度や認知度の改善に貢献するような開発を行っています。
もう1つの領域としては、運営改善です。Webサービスはリリースして終わりじゃなくて、そこから何年も運用・運営をしていくので、そういうところでしっかり運営の品質を向上させることが、すごく大事なミッションです。
例えば、サービスをリリースしてユーザー拡大をしているときに、運営フローなどの問題で詰まってしまってはせっかくのプロモーションも最大限の効果を得られません。そのような事が起きないように、運営フローやそれに関わるシステムの改善や開発をしています。
まとめると、1つはLINEのいち開発組織であることと、使っている技術はLINEと同水準で開発を行っています。これは技術、言語もそうですし、今のLINEだとインフラは社内のプライベートクラウドで成り立っているんですけど、そういったインフラや、その上に乗っているアーキテクチャ、ミドルウェアも同じような水準で使っています。
その中でGrowth開発を専門領域とするチームだと認識していただければなと思います。ぜひとも一人でも多くの方にLINE Growth Technologyを知っていただきたいです。
今日のこれ以降のプレゼンは一応LINE Growth Technologyの業務軸での話となっています。LINEはグループ全体でさまざまな組織とさまざまなサービスを運営しているので、必ずしも同様ではないことだけ最初にお伝えいたします。
ここからは、CI/CDやモニタリング、アラートがどう成り立っているのかをお話させていただきます。
まずはCI/CDからですね。CI/CDのツールでいうと、みなさんもいろいろ使われていると思うんですけど、代表的なものを列挙しました。JenkinsやCircleCIなど、最近だとDroneを使っている会社さんも多いかなと思います。一番下にPMCと書かれているんですけど、こちらはLINE内製のCI/CDを行うツールです。このあたりは独特なので後述させていただきます。
今日は基本的にはこの下の2つについてお話しします。なぜPMCを作っているかというと、一言でいうと標準化です。PMCでは操作ログなどをLINEで定めた基準で蓄積しています。それにより、例えば「このサービスはログが残ってない」「必要なときに見れない」ということを解決しています。
そのため、LINEではデプロイ時にPMCを利用しているサービスが多いです。
パターンで言うと、スライド左側はみなさんもよく使われているおじさんですね。Jenkinsを使って、ビルドした生成ファイルを社内のリポジトリに入れて、あとはデプロイするときに先ほどのPMCを使って、そこの履歴管理を行いつつCDを行っているのが1つのパターンです。
そのPMCの課題は、やはり最近コンテナの利用が多くなってくる中で、その対応が必要になってきます。先ほどのツールはまだ実はコンテナ対応できてなかったりするので、その対応が必要です。あとはそもそもそのPMCに頼らないで他の代替手段を使う検討も始めないといけないですね。
そこで、我々が次にどういう技術を使っていこうかと話したときに、Droneというアイデアが出ました。今は実用化に向けた試みを実施中で、まだプロダクションで利用はしてはないんですけど、検証段階です。
なぜDroneを利用するのかと言うと、まず1つはDockerネイティブであるところと、あとはスケールメリットですね。コンテナなので、そこの並列処理とかで高速に実行可能です。ビルドとかテストが高速にできるというのと、あとは実は社内に全社が使えるDrone環境が用意されていて、それで導入ハードルが下がっているのが1つあります。
今やっているところで言うと、先ほどJenkinsを置いていたところにとりあえず置き換えることによって、テストとかビルドを高速化する動きですね。置き換えることでけっこう簡単にできるので動いています。Droneを使ってプライベートリポジトリはHarborを使って、そこに入っているファイルをPMCでサービスにデプロイする。
ただ、これだと先ほどの課題が解決されないので、ここからCDの部分をどうしていくかみたいなところを考えています。例えば、Argo CDとKubernetesを連携させてデプロイするとか。このへんは今後一般的になっていくと思うので、その取り組みも内部で行っています。ただ、やはり先ほどのLINEで定めた基準などをクリアする必要はあり、まだいくつかのハードルを乗り越えてやっと使える感じですね。なので、このへんはまた次の機会にでも詳しく共有できたらなと思っています。
次がモニタリングの話になるんですが、次のアジェンダに行く前に職種の話を少しさせていただければなと思います。
LINE Growth Technologyではエンジニアの職種が3つあって、サーバーサイドとフロントエンドと開発支援というロールがあります。この開発支援はいわゆるサービス開発における支援ツールの開発などと、SREのような動きをするチームになっています。
職種とカバー範囲を図にしてみました。インフラはVerdaと呼ばれるプライベートクラウドを使っていて、インフラチームが管理しています。その上に乗っているアプリケーション・ミドルウェアが我々アプリケーションエンジニアの範囲になるんですけど、その中でもサーバーサイドとフロントエンドエンジニアは、アプリケーションの部分とミドルウェアですね。
開発支援はミドルウェアのチューニングなどでサポートしてくれたり、あとは開発を効率よく行うために必要するための支援ツールにフォーカスしたチームになっています。モニタリングでいうと、ここの開発支援ツールがうちの社内で重要になってきているので、そこの紹介をさせていただこうと思っています。
モニタリングとアラートですね。モニタリングに関しては先ほどヤプリさんのところでDatadogもあったと思いますが、他にも例えばZabbixやPrometheusを使っています。今日は多くは触れませんが、モニタリングツールについても一番下は内製のものです。
今日は我々もよく使っているPrometheusというツールを深掘って話そうと思います。
LINEでは、モニタリングのところでPrometheusを多く使っています。その下にPromgenという文字がありますが、これはLINEでオープンソースで公開しているツールになります。
Promgenは、Prometheusをアプリケーションエンジニアが利用しやすくすることが目的のツールです。機能としてはPrometheusの設定ファイルの作成と管理、あとはアラートの通知と構成管理などができます。もし近いようなことを考えてる方がいらっしゃればぜひGithubで見ていただければと思っています。
また、LINEのEngineering Blogで書いていたり、あとは2015年のLINE DEVELOPER DAYの資料がWebにあるので興味ある人は見てください。
Promgenがどういうことをやっているかをご紹介します。Demo Serviceというサンプルを持ってきているんですけど、基本的な構成はRulesとSenderと、Projectsに大きく切られています。
Rulesはモニタリングのルールを設定するところです。基本最低限のルールはデフォルトで用意はされているものの、用途によって変更可能です。例えば、Hadoopクラスタを持っていたりすると、CPUの細かい監視を切りたいこともあると思います。他にもサービス特性によってモニタリングをする・しないのはもちろんあると思うので、そういうところはサービス側でカスタマイズする方針です。
モニタリングをする・しないのOn/Offもそうですし、閾値やルール自体のオーバーライドみたいなところもこの設定で行うことができます。
Senderは通知の設定ですね。先ほどのモニタリングのところで閾値とか、どういうものを監視するかを決めるんですが、それらが閾値を超えた場合にアラートをどこに通知するかをここで設定しています。
利用できる通知の種類もいくつか用意されています。LINE社内ではSlackに連携することが多いですが、他にも、メールやLINE、Webhookを利用して他のツールと連携させるところもカスタマイズできるようになっています。
最後にProjectsはいわゆるグループの設定ですね。例えばWebサーバーであったりとか、APIサーバーやバッチサーバーみたいなそういう役割があると思うので、それらをこのプロジェクト単位で切ってもらって、Webサーバーに必要なエクスポーターなどの監視の閾値をグループ単位で設定することができます。
こういったものを作ることによって何がうれしいかと言うと、Prometheusをそのまま使うとなると、先ほどのアプリケーションエンジニアだと設定のハードルが高かったりするので、そういうところを補うために作っているツールになります。
なので基本的にはアプリケーションエンジニアがこの辺の設定をして、監視、モニタリング、アラートの設定までは簡単にできるようなサポートツールとして開発支援のメンバーが動いているというかたちですね。
ここまでがPromgenの説明なんですけど、他に先ほどのチームがけっこう便利なツールとして作っているものがいくつかあるので、その考え方とかこういうものを作ってますよみたいな紹介です。
1つ目は、リポジトリ管理です。社内用のAnsible Galaxy用のリポジトリを用意しています。管理の対象としてはPrometheusを利用する際のエクスポーターや各種ミドルウェアです。
これらをAnsibleのアプリケーション側で設定することによって、さきほど標準的なところがデフォルトで入るので、あとはそのサービス特性に応じたカスタマイズはアプリケーション側で実施するかたちですね。
もう1つが、アラートの詳細情報をSlackに通知してくれるBotです。
アラートが来て「どこが原因なんだ?」みたいなところを探るときに、実際のモニタリングツールにログインして確認、というのがけっこう多いと思うんですが、そうするとコミュニケーションがその場で完結しなかったり、見るところが人によって違ったりするので、最低限見るべきところをある程度アラートのタイミングでBotで連携しています。
このツールで特徴的なのは、情報がSlackに来るのもそうなんですが、「これは別にいいよ」というものはSlack上でサイレンス設定にすることができるところです。また、スレッド内にモニタリンググラフをキャプチャで貼っていってくれるので、ある程度どのへんが原因でこのアラートが起きているかをSlackのコミュニティ上で完結できるのも1つの特徴ですね。
このような支援は、我々のところだと明確なロールがありますが、そのような事もアプリケーション開発を効率に行うための1つの手段かなと思っています。
あとは最後に、我々も設立して1年半ですが、まだまだ一緒に開発チームとして活躍してくれるメンバーを募集しているので、もし興味があれば声を掛けてください。
ご清聴ありがとうございました。
司会者:ありがとうございました! 黒木さんありがとうございます!
(会場拍手)
パーソルイノベーション株式会社
2024.11.26
タスクの伝え方が部下のモチベーションを左右する マッキンゼー流、メンバーが動き出す仕事の振り方
2024.11.27
何もせず月収1,000万円超…オンラインゲームにハマって起こした事業 大学中退し4社立ち上げ・2社売却した起業家人生
2024.11.29
「明日までにお願いできますか?」ちょっとカチンとくる一言 頭がいい人に見える上品な言い方に変えるコツ
2024.11.28
管理職の「疲弊感」がメンバーに伝わるリスク 部下の「働きがい」を育む6つのポイント
2024.11.25
仕事はできるのに、なぜか尊敬されない人が使いがちな言葉5選 老害化を防ぐために大切な心構えとは
2024.11.27
部下に残業させられず、自分の負担ばかり増える管理職 組織成長のカギを握る「ミドル層」が抱える課題
2024.11.27
仕事中の「今ちょっといいですか」が苦痛… いしかわゆき氏が語る、ADHD気質にマッチした働き方のヒント
2024.11.25
論理的に「詰める」マネジメントでは本質的な解決にならない マッキンゼー流、メンバーの理解と納得を得る接し方
2024.11.28
“新規事業が生まれない組織”に足りていないもの 「PoC貧乏」に陥らず、アイデアを形にするためのヒント
PR | 2024.11.29
検知が難しいサイバー攻撃が増加中 サイバーセキュリティの専門家を唸らせた脅威アクターの実例
長期投資の衝撃の真実!20年投資しても年率1.9%しか増えない!?
2024.10.04 - 2024.10.04
第1076回 ペライチ書評『みんなのフィードバック大全』
2023.06.06 - 2023.06.06
第765回 トレンド経営学『顧客に謝る基準とは?』
2022.04.18 - 2022.04.18
不機嫌な自分をやめるために!認知行動療法の専門家 中島美鈴先生新刊『脱イライラ習慣! あなたの怒り取扱説明書』発売記念【無料オンラインイベント】
2024.10.25 - 2024.10.25
ログミーBusiness リニューアル記念イベント開催
2024.11.29 - 2024.11.29