MySQLエキスパートyoku0825が目指す、DBAとしての未来像

LINEで働くエンジニアに色々と話を聞いていく「LINE Engineer Insights」。LINEの技術組織で働く人々に、何を重視して技術者としてのキャリアを歩んでいるのか、今LINEで何に取り組んでいるのか、今後実現していきたいことなどを聞いていきます。 

今回登場するのは、MySQLエキスパートとして広く名を知られる田中翼(@yoku0825) 。日本人として3人目のMySQL分野のOracle ACEであり、2015年には「default_password_lifetime」の功績でMySQL 5.7 Community Contributor Awardに選出された田中は、2021年6月よりLINEのITSC DB室 MySQL1チームでDBA(Database Administrator)として働いています。  

「自分を鍛えられる環境で新たなチャレンジをしてみたかった」と語る彼に、MySQLにかける思いやDBAとして目指すことを聞きました。

日本で一番うまくMySQLを使い倒すチームになりたい

──田中さんがMySQLに興味を持ち始めたきっかけを教えてください。 

 もともと私は非エンジニアとしてキャリアをスタートしましたが、あることがきっかけでプログラミングに興味を持ち始めたんですよ。そこで未経験でもプログラミングに挑戦できる会社を探して転職し、某企業の保守窓口のチームで仕事をするようになりました。 

そのチームはVisual BasicとMicrosoft Access、IIS(Internet Information Services)で構築された、イントラネットで使われるシステムを担当していました。ですが、Accessがパフォーマンスのボトルネックになっていたため、別のデータベースに変えることになって。SQL ServerやPostgreSQL、MySQLが候補に挙がった結果、MySQLを使うことになりました。 

MySQLの運用に携わってパーティショニングの機能を使い始めたことをきっかけに、RDBの魅力に気づきました。クエリの応答速度が1秒くらいかかっていたものが、少し設定を変えるだけで100ミリ秒とか10ミリ秒くらいに劇的に高速化する。それが本当に面白くて。「工夫次第でこんなに処理が改善するのか!」と驚きました。 

よりMySQLを専門的に扱いたくなって、MySQLの代理店をしている企業に転職しました。その後、ユーザー企業のDBAとして直接MySQLを扱いたくて前職のGMOメディアに移りました。当時の業務内容はdb tech showcase Tokyo 2017で発表した「MySQLを割と一人で300台管理する技術」などで解説しています。 

8年間くらいGMOメディアにいて、MySQLインスタンスを管理・構築するための仕事をしていましたが、6〜7年目くらいの段階で標準化・運用効率化のための基盤を一通り作りきってしまったんです。MySQLに関連するすべての設定や各種パラメータの意味を自分が把握している状態になって、知らないことが何もなくなってしまった。そろそろ、自分の知らないMySQLを見たいと思ったのが転職を考えたきっかけでした。 

「数百台のMySQLインスタンス運用は経験したので、次は数千台でしょう」と思って企業の候補を考えているうち、LINEが良さそうだと思いました。もともと知人だったLINEの北川健太郎さん( @keny_lala)に、「DBAのポジションを募集していますか? 北川さんはまだLINEにいますか?」と質問すると「まだLINEにいますよ。そしてDBAを募集しているのはウチのチームです」と言ってくれて。そこで、まずはカジュアル面談を設定してもらいました。  

カジュアル面談では現在LINEで一緒に働いているチームメンバーと話をしました。メンバーの北川さんや大塚(@ tom__bo)さんは、db tech showcaseというカンファレンスや日本MySQLユーザ会などのコミュニティ活動を通して、レベルの高いDBAだと知っていました。面談というか、一緒に議論してめちゃくちゃ楽しかったですね。 

──例えばどのような話をしましたか? 

 「インストールされたばかりのMySQLがあるとして、特定テーブルに1件のレコードを最初にINSERTした場合、アクセスが発生するファイルとその理由をすべて教えてください」と質問されたのを覚えています。 

具体的にどのような理由でどのファイルにアクセスするか、一連の流れを片っ端から答えていくと、彼らがすごく楽しそうにしてくれて。「そうか、LINEの環境だと○○の設定が最初から○○になっているので、そのファイルへのアクセスは考えていなかったです。確かにそれもありますね」などと答えてくれました。 

会話を続けていく中で、彼らは私の知らなかったことをいくつも教えてくれました。前職時代は、自分が社内で一番MySQLに詳しかったので、誰かの発言にハッとすることや、自分の知らないことを教えてもらう機会はほとんどなくて。でも、LINEで彼らと一緒に働けば、新しいことを学べるチャンスがある。「この環境なら、自分のレベルをさらに高められるな」と思いました。 

カジュアル面談の中で北川さんが「日本で一番うまくMySQLを使い倒すチームになろうと思っているので、縁があったらぜひ来てください」と言ってくれたことが決め手になり、LINEの選考を受けることを決めました。 

 

Verda」をLINEの開発者にとって最高のプライベートクラウドに 

──田中さんは採用時の最終面接で、LINEのプライベートクラウドである「Verda(ベルダ)」の話を聞いたことをきっかけに、非常に興味を持ったそうですね。 

 ITSCセンター長の朴永熙(パク・ヨンヒ)さんとデータベース室 室長の金鍾均(キム・ジョンギュン)さんの2人と最終面接で話をしたんです。そのとき「プライベートクラウドを管理・運用したことがありますか?」とか「『Verda』の上でMySQLを動かすとしたら、田中さんならばどのような方法を用いますか?」などの質問を受けたことをきっかけに「Verda」を知りました。 

2人に「『Verda』は将来的に世界一のプライベートクラウドになりますか?」と質問してみると「規模では世界一を目指していないですね。もちろん、AWSGCPと競うつもりもありません」と答えが返ってきました。 

 さらに「けれど、LINEの開発者にとって世界で一番役に立つプライベートクラウドにはなりますよね?」と質問したら2人とも「はい」と言ってくれて。すごく良いなと思っていました。私は前職時代から長い間DBAとして働いてきて、社内のエンジニアが自分にとっての“ユーザー”だったので、「社内で働くエンジニアたちに、より良いインフラを届けること=自分にとってのユーザーファースト」という考え方で仕事をしてきたんです。 

 Verda」の改善に携わることはそのマインドにもマッチしていると感じました。今後はLINE社内で使われているMySQLインスタンスを徐々に「Verda」へと移行していく方針らしいので、自分もその取り組みを支えていきたい。最終面接を終えてから「Verda」をより良くしていきたい気持ちが強くなっていきました。 

 余談ですが、面接後に調べてみると「Verda」はエスペラント語で「緑」を意味していることを知りました。名前がお洒落でいいですよね。LINEのカラーだし、発音も格好いい。 

 

 目指すのは遊撃手のような働き方 

──田中さんが所属しているITSC DB MySQL1チームの、仕事の進め方の特徴について教えてください。 

 MySQL1チームの全員が自律的に動いていることや、仕事が速いことにびっくりしました。みんなすごい勢いでタスクをBacklog上で起票して、どんどん消化していくんですよ。 

MySQLに関わる運用業務ならば、私も同等くらいに作業は速いと思います。けれど、MySQL1チームのメンバーがすごいのはデータベース運用関連の作業だけではなく開発系タスクの作業スピードも速いことです。DevOps改善のためにツールやAPIを開発することがあって、運用業務と開発業務を両立している。優秀なメンバーたちだなと感じました。 

 特に開発スキルがすごいなと思うのは、原地(@yy_harachi)さんというメンバーですね。めちゃくちゃ綺麗なコードを書くんですよ。私はアプリケーションのコードを書くエンジニアとしてはほとんどキャリアを積んでいないので、スキルの高い人のコードを読めて非常に勉強になっています。 

MySQL1チームが作成するツールやAPIなので、MySQLの運用・管理に関連するものがほとんどです。そのため、アプリケーション内で私の知っているSQLやコマンドが用いられていることが多いので、そうした情報をメンバーとの共通言語にしつつ、コードの書き方について全員で議論できます。そういう瞬間は、このチームに入ってよかったなと思いますし、本当に面白いですね。  

──どのような業務を担当しているときに、充実感がありますか? 

私は仕事をしているとき、野球の遊撃手*のような役回りをするのが好きなんです。埼玉西武ライオンズの源田壮亮という選手を知っていますか? すごく優秀な遊撃手なんですが、まさにあんな感じの動きをしたくて。 

 *…野球において二塁と三塁の中間を守る内野手。他の守備ポジションと比較すると担うべき役割の幅が広く、汎用性の高い動きが求められる。 

 私がいま注力しているのは「LINEマンガ」というサービスです。そして、MySQL1チームにおける「LINEマンガ」の主担当者は先ほど話に出てきた大塚さんです。現在は、大塚さんが取りこぼしたタスクを拾ったり、MySQL絡みの障害が起きたときに私が対処したり、大塚さんが多忙なときに他のメンバーやチームとのコミュニケーションハブになったりという遊撃手的な動きができていて、すごく充実感を覚えています。  

──田中さんが遊撃手的な価値を発揮できた具体的な事例を伺いたいです。 

 私が「LINEマンガ」のプロジェクトに参加したばかりの頃、大塚さんから「これから田中さんに手伝ってもらいたいので、私が溜めてしまっているSQLのクエリレビューをまずは読んでおいてください」と連絡を受けたんですよ。 

 でも、クエリの数がなんと100近くもあって。「溜めたなー!」という感じでした(笑)。大塚さんがメンテナンスの準備で忙しくて、23日ほどレビューに手がつけられない状態になっていたんです。SQLクエリのレビューなら自分が持ち味を発揮できる部分だなと思って、100件を1日で捌いて、すべてレビュー依頼者に返しました。  

──凄まじいスピード感ですね! 

 MySQL1チームは今もすごく良い体制ですが、自律的であるがゆえに「自分の抱えている仕事を誰かにお願いする」という動きがやや少ないように感じています。メンバー同士が連携し合って、もっとお互いに仕事を融通していくと、より良いチームになるのかなあと。 

 そのためにはサポートに入る誰かが必要になります。だからこそ、私がどんどんLINEの業務をキャッチアップして、他の人々のタスクを受け取れるようになりたいです。自分自身のパフォーマンスをさらに上げて、抱えるタスクの量も増やして、チーム内で良い動きができるようになっていきたい。メンバーと互いにコラボレーションできたら嬉しいなと思っています。 

 

MySQLに触れることがひたすら楽しい 

──今後、DBAとして目指している目標はありますか? 

 そろそろMySQLのソースコードを全部読みたいです。部分的には読んだことがあるものの、まだ全部は読んだことがないんですよ。日本のMySQL界隈の人たちの中には、特定の領域にものすごく強い人たちがいます。例えば、InnoDBに強い人、プロトコルに強い人、文字コードに強い人、というように。私は特定領域ではその人たちにかなわないですが、その代わりに彼らよりも守備範囲を広くしたいと思っています。 

 これからも積極的にチャレンジと学習を続けて、たくさんのクエリやログを読んで、エンジニアたちとコミュニケーションを取りながら、自分の力にしていきたいです。 

──どのような人にMySQL1チームのメンバーとして加わってもらいたいですか? 

 データベースのことを心から好きになれる人ならば、その気持ちだけ持って私たちのチームに来てくれればいいと思います。ここはどう考えても成長するのにうってつけの環境ですから。現在のスキルや年齢はそれほど大きな問題ではないと思っています。私自身、30歳で初めてMySQLに触れて、来年で40歳になりますが、10年間でそれなりのところに行けましたから。  

──田中さんは一般的なエンジニアと比較すると遅咲きだったわけですが、そこから日本トップレベルと言えるほどMySQLに詳しい人になれたのは、どのようなマインドでデータベースと向き合ってきたからだと思われますか? 

 知らないことを知るのがひたすらに楽しかったんです。私がMySQLを最初に触ったのがバージョン5.6でしたが、数多くの新機能が登場したバージョンなので本当にワクワクして。毎日、そうした機能を知ることも、どうやって使おうか考えるのも楽しかったんですよ。それをひたすらくり返していたら、いつの間にかこうなっていました。今もその気持ちは変わっていないですね。MySQLはやっぱり面白いです。

 

採用情報

LINE株式会社では一緒に働くエンジニアを募集しています!
今回のインタビューと関連する募集ポジションはこちらです、ご応募お待ちしております。