「数年前はインフラ操作方法を開発担当者に知っておいてほしいと思っていたが、今は開発だけに集中するべきだと考えている」。そう話すのは、サイバーエージェントでインフラの運用を担当する須藤涼介マネージャーだ。

サイバーエージェントでインフラエンジニアを務める須藤涼介マネージャー
サイバーエージェントでインフラエンジニアを務める須藤涼介マネージャー
[画像のクリックで拡大表示]

 須藤氏の考えを変えたのはコンテナ技術の導入だ。サイバーエージェントは2016年4月から提供しているインターネットテレビ局「AbemaTV」の基盤に、米グーグルのコンテナ基盤「Google Container Engine(GKE)」を採用している。

 コンテナ技術は単一のハードウエア資源をあたかも複数の資源のように使うといった、仮想化技術の一つ。ミドルウエアやアプリケーションを一つのファイルにまとめた「コンテナ」と、コンテナ内のアプリを実行したり運用したりする「コンテナ基盤」からなる。GKEはコンテナ基盤を配備済みの仮想マシン(VM)が使えるサービスで、コンテナを配備するとスケールアウトや再起動といった運用を自動で実施する。

 運用だけでなく、アプリの開発でもコンテナを使う。開発者が自分のPC上にミドルウエアを導入したコンテナを用意し、その中で動くアプリを作る。開発者が手元のPCで動作を確認したコンテナをGKEにアップロードすれば、運用中のサービスを無停止で更新する。既存のコンテナを新しいコンテナに入れ替える更新作業は、コンテナ基盤が自動で実施する。

 データベース、Webサーバー、プログラムを実行するランタイムなど、システムに必要なミドルウエアはコンテナごと開発者のPC上からサービスの運用基盤に移動するため、「コンテナを使ったシステム運用では、インフラを構築するという概念が無い」と須藤マネージャーは話す。インフラを構築することがないなら、インフラの構築方法を習得する必要も無くなるのだ。コンテナを導入する以前は、運用担当者がインフラ構築作業をしていた。