動画ストリーミングサーバーの実装

モノづくり塾のITテーマの一つです。教材なのでプログラムはなるべくシンプルに書いています。サーバー側はNodeJS、クライアント側はReactを使っています。

動画を送信するバックエンドのサーバーと動画を再生するフロントエンドのアプリケーションのセットを作って、Docker Composeでサーバーにデプロイするというところまで。

これがDocker Composeファイルです。

このプロジェクトを塾のサーバーのGitLabにコミット/プッシュして、塾のサーバーでプロジェクトをクローンし、プロジェクトディレクトリに移動して

docker compose up -d

を実行すればデプロイ完了です。

動いているのをサーバーのPortainerで確認しているところ。vstreamer_serverとvstreamer_frontendが動いています。

アプリケーションにブラウザからアクセスすると動画の一覧が表示されます。動画のサムネールはサーバーが自動的に生成しています。

サムネイルをクリックすると動画の再生が始まります。

デプロイができたところで、サーバーのダッシュボードにこのアプリケーションを追加。「Experiment」の列の3つめに「VStreamer」として追加しています。

「資料館」に行けばそれぞれの学習テーマについての解説を読めます。「GitLab」に行けばソースコードが見られます。実際に動くところも見ることができます。

塾のサーバーは64GBのRAMと1TBの起動ディスク、6TBの共有ディスクと6TBのバックアップディスクを搭載しています。64GBのRAMで当分足りると思っていますが、このようなアプリケーションをたくさん動かしたら足りなくなるかもしれません。その場合はサーバーをクラスター化して対応することになります。

最終的にはアプリケーションサーバーはKubernetesクラスターとして、GitLabのCI/CD機能を使い自動的にビルド・デプロイができるようにすることになるんでしょう。そこまでやれば、ソフトウェア開発、システム管理、クラスター、CI/CDと一通りの工程を実践する環境になります。

コメントする