第1回第2回で解説したように、FiNCアプリではマイクロサービスを採用しています。事業の多角化を急速に進める上で、マイクロサービスは不可欠なアーキテクチャーでした。

 ただ、マイクロサービスに基づくアプリケーション開発は決して容易ではありません。第3回となる今回は、FiNCでSite Reliability Engineering(以下、SRE)に携わる立場から見たマイクロサービスの課題や、解決策である「Docker」の活用について紹介します。

 SREとは、Webアプリケーション開発/運用の分野で最近使われる言葉です。Webサイトの信頼性向上のためのエンジニアリングを意味し、具体的にはアプリケーションのパフォーマンスや可用性、セキュリティなどを確保するためのインフラ構築/運用を指します。

 FiNCにおけるSREの業務は多岐にわたっています。サーバーの構築から始まり、冗長構成やバックアップ体制の強化、アプリケーションのパフォーマンスの計測、デプロイ(展開)の設計や、セキュリティ関連作業などがあります。パフォーマンス管理に関しては実際にアプリケーションのコードをさわることもありますし、認証システムのようなサービス全体に関わる横断的なシステムについては、開発もしています。

 SREの業務をこなす中でFiNCのマイクロサービス化が進み、マイクロサービスの数や大きさが成長していきました。その過程で、いくつかの問題にぶつかりました。解決するために、仮想化ソフトウエアであるDockerの利用にたどり着きました。

サービス数が増え、管理コストが増大

 筆者がFiNCのサーバー構築/運用に携わり始めた2015年の2月は、サービスの数が5個でした。それが2016年の5月には、16個にまで増えています。