フレームワークのサポート切れをきっかけに新技術導入へ
続いて導入の経緯とその過程を見ていこう。そもそもコロプラで新技術に挑戦することになった最大の理由は、フレームワークのサポート切れだった。
その際言語は、社内に書ける人が多いことからPHPを選択した。いくつかのフレームワークを検証した結果、ロングタイムサポートのあるLaravelを採用することに決定。当時開発していた新タイトルをLaravelで開発したところ、特に大きな問題が起きることもなく2017年10月に無事ローンチを果たしている。
これと並行してGCPへの全面的な移行を会社として決定していた。ライブマイグレーションをはじめとするGoogleのテクノロジーをフルで使いたいからだ。その過程で、これまで使ってこなかったマネージドサービスを積極的に活用していく方針も決まった。
Laravelを使った初のタイトルをローンチする直前にGoogle Cloud Spannerが発表された。これは、データベースを含めてできる限りメンテナンスはしないという、コロプラのニーズに非常にマッチしていたため、Spannerを導入するためのサーバー基盤チームが結成された。
廣本氏がチームメンバーとしてアサインしたのは、次の5人のメンバーだ。
- サーバーエンジニア マネージャー(運用に詳しい)
- サーバーエンジニア メンバー(Laravelの拡張をやっていた人)
- サーバーエンジニア 新卒3年目
- インフラエンジニア リーダー 新卒4年目
- インフラエンジニア 新卒3年目
導入のターゲットは、半年後にローンチされるタイトルと決めた。作業が進むうちに、運用ツールの開発や負荷試験の準備をするために、次の3人を増員した。
- サーバーエンジニア 中途(スカウトで入社)
- サーバーエンジニア 新卒1年目
- インフラエンジニア 新卒4年目
「もともとGKEを入れることは計画に入っていなかったが、ローンチ2カ月前にSpannerの導入がほぼ完了し、次にSpannerを導入するタイトルの状況を考えると、どうしてもGKE化もしたい欲が出た」と話す廣本氏。
「GKEの導入を試せないだろうか」とインフラメンバーにお願いして実現したが、のちにメンバーが社外発表で「ローンチ2カ月前にGKEを導入させられた(笑)」と話しているのを聞き、「自分としては強引に言ったつもりはなかったけれど、自分の立場を考えると伝え方はもう少し気をつけなければといけなかったと反省しています…」と当時を振り返った。
その後、ローンチ前に細かい問題はありつつも、Spanner +GKEの構成で問題なくローンチに成功したのが2018年8月。同年10月に控えていた次のタイトルもSpanner +GKE化した。
新技術導入において大切にしたい5つのこと
一連の新技術導入の体験から得た気づきとして、廣本氏は次の5つのポイントを挙げた。
1.若い人にチャレンジしてもらおう
学生時代にインフォメーションテクノロジーを学んでいる最近の新卒はかなり優秀で、授業やインターンではやりの技術を学んでいるケースも多い。若い人は新しい技術を吸収するのが速く、やる気もある。シニア層が一緒にいて気づかされることも多く、チームに活気をもたらす。経験者だけでチームを構成すれば成功の確率は上がるかもしれないが、将来的には組織として弱くなるはず。少しずつでも若い人をチームに入れて、チャレンジさせてあげることが大切だ。
2.事業における課題からテクノロジーを選定しよう
興味だけで採用したテクノロジーをプロダクトに導入すると泣きを見ることになる。今回のSpannerに関しては、事業課題にかなりフィットしていた。新たにテクノロジーを追いかけ、興味があるものを触りつつも、プロダクトで使うときは事業課題にフィットしているものを選定すべきだ。選定基準は会社のポリシーや文化など、多様な要因から考える必要がある。
3.小さい変化を積み重ねて大きな変化につなげよう
フレームワークの変更といった、あまり大きなリスクのないところをきっかけに新しいテクノロジーへ挑戦した後、プラットフォームの移行という中規模な改革を経て、マネージドサービスを利用する流れだった。小さな成果を確実に出すことで、大きな変更を認めてもらいやすくなった気がしている。データベースの移行はかなり不安が大きかったが、いけると思ったときには意識的に前のめりになって、強めにアクセルを踏んだことが良かったと思う。
4.最終目標を常に共有しよう
新技術の導入はエンジニアリングとして面白いところだが、実際に導入するとなると、細かい問題が出てきて疲弊したり、本当にこのテクノロジーを入れるべきだったのかと、途中で迷いが生じてしまったりすることもある。最終的にどういったアーキテクチャーにしたいのか、導入するメリットなどについて、雑談レベルでもいいので定期的にみんなで共有することが大事。
5.足元の課題に注力しすぎて、未来の課題をないがしろにしないようにしよう
おそらくエンジニアが余っている企業はほとんどないだろう。マネージャーは既存の業務に目がいきがちで、その状況を知っているがゆえに、そちらの優先度を上げてしまう。ダイナミックなことをやろうとすると、どうしても目の前の人たちに我慢してもらう必要が出てくる。しかし、今のままでは未来はもっと悪くなると考えて、勇気を持って慎重に人を動かさなければならないと感じた。マネジメントする人のマインドチェンジが必要。
最後に廣本氏は、今後コロプラで挑戦したいことについて、次のように語った。
「コロプラはたくさんのゲームを作っていて、開発のスピードアップやコストダウンのために、再利用性の高いマイクロサービスを作りたいと思っています。また、長く運用しているタイトルが増えてきて、定常的にやることが増えているので、やることを減らして新基盤のチームを大きくしていきたい。そしてコロプラは、GoogleのCREによるワークショップを受けたアジア初の会社として、SREの取り組みを始めているので、ゲーム開発におけるSREをしっかりとやれる会社にしていきたいです」
お問い合わせ
株式会社コロプラ