見出し画像

SHOWROOMの4層システム大刷新を実施中[AWS/Go/Nuxt/Unityを採用]

4つの層でシステム刷新中

いつもライブ配信プラットフォーム『SHOWROOM』をご利用いただきありがとうございます。現在、SHOWROOMの裏側では4つのシステム刷新を行っています。いずれもユーザの皆様への影響はありません。今後のシステムの開発を持続可能にするために重要であると考え取り組んでいます。

こんにちは、開発部の横山です。4つのシステム刷新について紹介したいと思います。4つのシステム刷新は以下の通りです。なんとインフラ・バックエンド・フロントウェブ・スマートフォンアプリの4つの層それぞれで刷新を図っています。

  • インフラ

    • DeNA独自技術から脱却し、パブリッククラウド(AWS)に移行

  • バックエンドサーバ・アプリケーション

    • PerlからGo言語に置き換えて刷新

  • フロントエンドウェブ

    • フロントエンドを切り離して、Nuxt.jsで刷新

  • スマートフォンアプリ

    • フレームワークをCocos-2dxからUnityに刷新

以下、それぞれの層の刷新について掘り下げていきます。

インフラの刷新[AWS・マネージド]

インフラ層では、元々DeNAのオンプレで稼働していたサーバ群を次の2段階を経てAWSで稼働する刷新を行いました。(SHOWROOMは元々DeNA社の新規事業の1つであったため、DeNA社のインフラを利用していました。)

  1. DeNAのオンプレサーバからAWSのEC2サーバに移設

  2. AWSのマネージド・サービスを適切に利用した構成

第一段階では、DeNAオンプレ上のサーバ構成をそのままAWSのEC2インスタンスを使った移設を行いました。この段階では、例えばMySQLはマネージドサービスではなく、EC2サーバのLinuxマシンにインストールしていました。第二段階では、MySQLをAuroraDBに移行するなどマネージドサービスを適切に利用した構成にすることで運用保守等の改善を図りました。

このインフラ刷新は完了しています。この刷新を経て、現在はAWS上でEC2サーバと各種マネージドサービスを利用しながら稼働しております。

この刷新の経過については、下記記事もぜひご覧下さい。

バックエンドサーバ・アプリケーションの刷新[Go言語]

SHOWROOMのバックエンドはPerlで書かれたサーバアプリケーションで稼働しています。しかしながらPerlで書かれた現行システムに機能追加・改修を続けるのは厳しくなってきていると判断し、Go言語で刷新することにしました。

一気に入れ替えることは不可能と判断し、現行のPerlアプリケーションとGo言語アプリケーションを並行稼働させ得て、エンドポイント単位で段階的に入れ替えを行うことにしました。今後は新規機能追加をGo言語で記述しつつ、既存機能もGo言語に書き換えていきます。

この刷新については、下記記事もぜひご覧下さい。

現在は、現行のPerlアプリケーションとGo言語アプリケーション間で互換性を保つためにPerlアプリケーション側に改修を入れ、後述するフロントエンドウェブの刷新と連携して、Go言語アプリケーションの開発を進めています。

フロントエンドウェブの刷新[Nuxt.js]

SHOWROOMのモノリシックなサーバアプリケーションからフロントエンドを切り離し、Nuxt.jsを採用したウェブ画面への刷新をしています。

  • フロントエンド・ウェブの切り離し

  • Nuxt.js(Vue.jsのサーバサイドレンダリング)を使った刷新

SHOWROOMのウェブページは、元々Perlで書かれたサーバアプリケーションがHTMLを出力して提供していました。従ってバックエンドとフロントエンドが一体化したモノリシックな構成でした。また、JavaScriptのフレームワークはBackbone.jsでした。

ライブ配信を視聴するルーム画面をはじめ、複雑なウェブを軽量に、そして高速に開発を進めるにはフロントエンドを切り離す必要があると判断しました。また持続可能性を維持するためにフレームワークをBackbone.jsからVue.jsに移行し、TypeScriptを採用する判断もしました。高速リリースができるフロントエンドの新しいエコシステムを構築することでユーザ体験の向上に貢献するためです。

現在は、バックエンドサーバにウェブAPIを作成しつつ、Nuxtを使ったウェブ画面の開発を進めています。既にルーム画面をはじめいくつかのページはNuxt化して提供しております。引き続きNuxt化を進めていきます。

スマートフォンアプリの刷新[Unity]

iOS, Androidのスマートフォンアプリでは、フレームワークとしてCocos-2dxを使って開発をしてきましたが、Unityを使ったアプリに刷新を進めています。今後の開発の持続可能性を維持しつつ、お客様により良い体験をしていただくためです。

まとめ

インフラ・バックエンド・フロントウェブ・スマートフォンアプリの各層でシステムの刷新に順次取り組んでいます。

SHOWROOMはサービス開始からちょうど10年目を迎えます。サービスを支えるシステムも第二創業をして今後の持続可能性を高める時期にあると考えています。

なお、これらの刷新は内部システムのメンテナンスであり、お客様には変わらずSHOWROOMをお楽しみいただけますのでご安心ください。


SHOWROOM株式会社では、エンジニア職を絶賛募集中です。
・ライブ配信サービス「SHOWROOM
・バーティカルシアターアプリ「smash.

以下の求人内容をご確認の上、ご興味あればご応募ください。
心よりご応募お待ちしております。

■求人は以下になります
SHOWROOM株式会社採用情報

■その他SHOWROOM株式会社の情報
note(代表前田取材記事です!)
社員インタビュー記事
SHOWROOM
smash.
SHOWROOM最新記事一覧(PRTimes)

いいなと思ったら応援しよう!