Web解析ツールの開発を支える3つのサービス | SiTest (サイテスト) ブログ

メニューボタン閉じるボタン

Web解析ツールの開発を支える3つのサービス

過去の2つの記事「Web解析ツール開発に利用している5つのサービス」「Web解析ツールの開発を加速させる3つのサービス連携」で弊社のエンジニアチームがどのようななツールを使用して開発や管理業務を行っているかをお伝え出来たと思います。今回は実際に SiTest を動かすためのインフラ関係のサービスをご紹介させていただきたいと思います。

Docker

large_h-trans

Docker社が開発しているオープンソースのコンテナ管理ソフトウェアの1つです。Webサーバーなどのアプリケーション実行環境(イメージ)を作っておくと、コンテナという単位で起動することができます。VMwareなどの完全仮想化とくらべてディスク容量が少なく、インスタンス作成やインスタンス起動が速く、性能劣化がほとんどないというメリットがあります。コンテナ間の結びつきは起動時に指定することができるので、環境構築時にはより抽象的に構築することができます。
個人的にDockerを導入することで感じたメリットは

  • ・Dockerイメージさえあればどこでも同じ環境が使える
  • ・開発、テスト、本番で同じ環境を使える
  • ・Log管理を一元化できる
  • ・マイクロサービス化の加速
  • ・これまで手を出せていなかったCI/CDやChatOpsも進めやすくなる
  • ・マイクロ化により機能単位で別の言語に挑戦できたりする

等があります。
中でもマイクロサービス化が加速した影響が大きく、クラスタリング化や様々な言語への挑戦等、エンジニアとして面白い取り組みが取れるようになってきたと実感しています。
今では社内で運用しているシステムのうちDockerで動作していないのはJenkinsだけになりました。JenkinsはDockerのビルド環境も担っているので、できればDockerのホストOS側で起動させておきたいと考えての構成です。

docker hub

Dockerのイメージを保存・共有するサービスです。gitに対するgithubみたいなサービスですね。世界中のエンジニアがDockerイメージを作成して公開しており、そのイメージを基にして自分達が必要な環境のイメージを作ることが可能です。LinuxやRuby、Java、MySQLやPostgreSQL等の公式のイメージを基に環境を構築することも可能ですが、JenkinsやRedmine等のOSSのDockerイメージも公開されています。
有料プランでは非公開イメージもPUSHしておくことができるので、企業での活用がどんどん増えそうですね。
弊社ではサーバーへのデプロイもdockerhub経由で行っており、デプロイ作業がかなり効率化できています。

Microsoft Azure

Windows_Azure_logo

Microsoft Azure(以下Azure)は、マイクロソフトのクラウド プラットフォーム (PaaS/IaaS) です。
AzureのVirtualMachineにCoreOSというLinuxのディストリビューションを選択しており、その中でDockerが動作しております。CoreOSはDockerコンテナをどうさせるのに特化したOSで、fleet・etcdと組み合わせてクラスタリング構成を組み、監視、冗長化させています。解説をすると長くなってしまいますので、別の機会にご紹介させていただきたいと思います。
SiTest はサービスイン直後はAmazon Web Service 上で稼働していたのですが、2015年秋にAzureへ移行しました。その際に大活躍したのが前述のDockerで、アプリケーションの実行環境をDockerイメージにまとめていたので、そのイメージを新しい環境(Azure上のCoreOS)上で取得し、Dockerを実行するだけで移行完了です。簡単すぎます!まさにコンテナ型仮想化のメリットを体感した瞬間で、その簡単さに感動してしまいました。
Azureにはブラウザで操作する管理画面の他にCUIで操作するAzure CLIが提供されております。Windowsをお使いであればPowerShellでも専用のコマンドが提供されていますので、エンジニアであれば不満なく活用出来るのではないでしょうか。

まとめ

今回は SiTest が稼働する上で縁の下の力持ち的な役割を担っているサービスをご紹介させていただきました。クラウド環境やCI環境を提供するサービスの多くではDockerへの対応がどんどん進んでおり、アプリケーション開発では必須になりつつあると感じています。
エンジニアチームが活用しているサービスやツールの紹介を3回に渡ってご紹介させていただきました。弊社エンジニアは全員非常に挑戦的で、新しいサービスを試すのが大好きです。来月には新しいサービスを使っているかもしれませんので、その時にはまた紹介させていただければと思います。