Edited at

最近のインフラ系ツールが多すぎて何が何だかわからない!からの卒業

More than 5 years have passed since last update.

Docker ? Packer ? 何が違うの?と個人的にわけがわからなくなっていたのでまとめてみた


インフラ系技術の 3 つのレイヤー


  • Orchestration


    • アプリケーションのデプロイ

    • Capistrano



  • Configuration


    • ミドルウェアレベルの設定

    • Chef, Puppet




  • Bootstrapping


    • OS のインストールにあたる領域

    • Docker, Vagrant, Packer



  • 今回は、Configuration ツールと Bootstrapping ツールの違いをまとめる



Bootstrapping Tool


Docker

Docker 公式ページ


  • Linux コンテナの内部でアプリケーションを動作させるためのツール

  • Go 言語で記述されている

  • 環境構築は Dockerfile と呼ばれるファイルでコード化できる

  • コンテナ型仮想化を提供するツール


    • イメージの作成から実行まで



  • AWS の AMI に相当


    • ただし、AMI は AWS 上でのみ動かせるが、 Docker イメージは Docker が動く Linux マシンならどこでも動作する



  • 個人的に使ってみた時のまとめ




Packer

Packer 公式ページ


  • VM のイメージを作成するツール

  • Docker に近い


    • ただし、Docker は Docker 用のイメージを作成するのに対し、 Packer は Docker を含め、Amazon AMI や Vagrant Box, Virtualbox など複数のプラットフォームに対応できる




Vagrant

Vagrant 公式ページ


  • 仮想マシンの作成、環境設定を自動化するツール

  • 仮想マシンのイメージ(Vagrant Box) はすでに用意しているのを前提に、マシンを立ち上げるのに特化している

  • 個人的に使ってみた時のまとめ




Configurarion Management Tool


Chef

Chef 公式ページ


  • サーバの設定やソフトウェアのインストールを自動化する管理ツール

  • Recipe と呼ばれる設定ファイルは Ruby スクリプトになっている

  • 個人的に使ってみた時のまとめ




Puppet

Puppet 公式ページ


  • サーバの設定やソフトウェアのインストールを自動化する管理ツール

  • Chef に近い

  • Chef より歴史は古い


Ansible

Ansible 公式ページ


  • Chef や Puppet に近い

  • Python 製

  • Push 型 : ホスト側にのみインストールすればよい (Chef では、ゲスト側にもインストールする必要がある)

  • Chef と比較して構成がシンプル


参考ページ