SHOWROOMはGo言語を採用します。PerlからGo言語へ刷新。『GOD計画』始動。
PerlからGo言語へ
ライブ配信プラットフォーム「SHOWROOM」ではバックエンドシステムをプログラム言語のPerlで開発してきました。これを段階的にGo言語に置き換えていきシステムの刷新を図ります。
こんにちは。開発部の横山です。
現在、SHOWROOMのバックエンドシステムをGo言語に段階的に移行する計画を進めております。
どうしてPerlからGo言語に移行するの?
背景
現在、SHOWROOMはPerlで開発されています。元々DeNAの新規事業として立ち上がったSHOWROOMは、当時使用実績が豊富にあったPerlを採用して開発が進められ、今日に至ります。2013年のサービス開始以降、多くのお客様により楽しくご利用いただくために、多くの機能追加を行ってきました。
Perlでの課題
サービス開始以来、開発・運用をしながら月日が経つ中で、世間も様変わりしていきました。以前から社内でも「そろそろPerlの現行システムに機能追加を続けるのは厳しくなってきているのではないか?」という声が挙がるようになっていました。主に以下の理由からです。
かつては一世を風靡したPerlも、最近ではライブラリのメンテナンスが下火になってきており、今後の機能追加や保守開発に支障が出そう。
最近では「Perlを書きたい!」というエンジニアが減ってきており採用に困りそう。
Perl言語の特性上、既存コードを読解したり、改修時の影響範囲を特定したりすることが難しく、品質維持が難しくなってきている。そのため、お客様に安心してご利用いただいたり、ご要望にお応えした機能改修をしたりするのに支障が出てきそう。
こうした課題感から、バックエンドシステムをPerlからGo言語に切り替えてシステム刷新をすることになりました。
どうしてGo言語なの?
主に以下の理由から移行先の言語としてGo言語を採用しました。
既に社内に採用実績がある。
実は、smash.、SHOWROOM Meet、SHOWSTAGE といった他サービスのバックエンドシステムは既にGo言語で書かれている。
社内で言語統一を図ることでノウハウを共有できるようにする。
静的型付き言語で、コンパイルが必要な言語である。
コンパイル時に、明らかなミスに気付くことができる。
型宣言があるため既存コードの把握がしやすい。
シンプルな言語仕様で、みんなが同じ書き方になる。
『GOD計画』始動!
「Go Developed = GOD」
SHOWROOMは多くのお客様にご利用いただいており、多くの機能があります。Go言語版の新システム開発中であっても、既存システムでのサービス開発は並行して行う必要がありますので、一気に作りきって一度で切り替えることは無理と言えるでしょう。
社内ではGOD計画と呼ばれるGo言語へシステム刷新するプロジェクトが立ち上がり、段階的に切り替える計画を始めています。
長い道のりになるとは思いますが、安全に、地道に小さな運用実績を積み重ね、完遂していこうと思います。
具体的な計画や経過、つまづきポイントなどを今後書いていこうと思うのでご期待下さい。
SHOWROOM株式会社では、エンジニア職を絶賛募集中です。
・ライブ配信サービス「SHOWROOM」
・バーティカルシアターアプリ「smash.」
以下の求人内容をご確認の上、ご興味あればご応募ください。
心よりご応募お待ちしております。
■求人は以下になります
SHOWROOM株式会社採用情報
■その他SHOWROOM株式会社の情報
・ note(代表前田取材記事です!)
・ 社員インタビュー記事
・ SHOWROOM
・ smash.
・ SHOWROOM最新記事一覧(PRTimes)