11万社以上が導入する企業向けチャットサービス「チャットワーク」。運営するChatWorkが取り組んでいるのが、AWS(アマゾン・ウェブ・サービス)で稼働するシステム運用の効率化だ。ユーザー数の増加に応じて仮想マシンの台数が増え、運用の負荷も膨れ上がった。少人数で事業を成長させるには、運用を効率化して開発に注力できるようにする必要があった。

 「理想は、運用に張り付くインフラエンジニアをゼロにすること。そのために、できるだけ運用作業を自動化することにした」。ChatWork CTO室の九岡佑介氏はこう話す(写真)。「インフラ構築」「監視」という二つのテーマで自動化を進めた。

写真●サービス運用の自動化に取り組む、ChatWork CTO室の九岡佑介氏
写真●サービス運用の自動化に取り組む、ChatWork CTO室の九岡佑介氏
[画像のクリックで拡大表示]

 インフラ構築の自動化では、まず軽量コンテナの「Docker」を採用し、その管理のために、米グーグルがオープンソースとして公開する「Kubernetes」を導入した。「コンテナの数が増えると管理が大変になる。大量のコンテナ一つひとつを、多数ある仮想マシンのどれに配置するか。これを管理し、配置作業を自動化する仕組みが必要だった」(九岡氏)。同種のソフトはほかにもあるが、コンテナ間の依存関係を管理しやすいことや、複数コンテナの配置を自動化しやすいことなどからKubernetesを選んだ。

 インフラ構築の自動化のため、米ピボタル・ソフトウエアが公開するオープンソースのCI(継続的インテグレーション)ツール「Concourse」も導入した。別のオープンソースCIツール「Jenkins」「Travis CI」を使ってきたが、「使い勝手を重視して」(九岡氏)、Concourseへの乗り換えを進めている。

 KubernetesやConcourseによって、「アプリケーションエンジニアが、プログラミングと同じような感覚でインフラ設定のコードを書くようになった」(九岡氏)。その分、インフラエンジニアの負荷を減らせたという。