前提
フロントエンジニア(いろんなことやりすぎてフロントエンジニアかどうかも怪しいがw)の自分が最近インフラを触る機会があったので、そのときに出てきたワードに関する超初心者キーワードメモ
間違い等あると思いますので、ご指摘いただけるとありがたいです。
Terraform
https://www.terraform.io/
HashiCorp社のオープンソースのプロダクト
Terraform is a tool for building, changing, and versioning infrastructure safely and efficiently. Terraform can manage existing and popular service providers as well as custom in-house solutions.
インフラ環境の構築、設定などをコードを使って自動化するためのツールで、複数のサービス・プロバイダが提供しているサービスの管理が可能(AWSとかGCPとか)
Packer
https://www.packer.io/
これもHashiCorp社オープンソースのプロダクト
Packer is a tool for creating machine and container images for multiple platforms from a single source configuration.
一つの設定ファイルで複数の環境に同時にマシンイメージを作成することができるツール
クラウドやローカルの開発環境などに同じ設定のイメージを作成できる
イメージを手で作ると後から何が入っているものなのかわかりにくくなるから、それを設定ファイルで定義していてそれからイメージが作れるって感じらしい。
ansible
Deploy apps. Manage systems. Crush complexity.
Ansible helps you build a strong foundation for DevOps.
構成管理ツール
Packerとの違いは?
参考: http://dev.classmethod.jp/server-side/ansible/build_ami_with_packer_using_ansible/
Packerはマシンイメージを作成することに重きをおいているツールで複雑な構成管理をしようとするとシェルスクリプト地獄になってしまうらしい。
そこでその複雑な構成はAnsibleとかが得意とするところらしい。
設定の仕方とかはまた今度
Docker
Docker is the world’s leading software containerization platform
ソフトウェアコンテナ内のアプリケーションのデプロイメントを自動化するオープンソース・ソフトウェア
↑うーんとどういうこと?w
仮想化にはコンテナ型仮想化とハイパーバイザー型仮想化などがあるらしい。
ハイパーバイザー型は複数のOS(ユーザー)が一台のハードウェアに乗せることが可能。ホストOSとゲストOS(仮想化されたコンピュータのこと)が別々に存在、ハイパーバイザーというそのためプロセッサーやメモリ使用時間、ストレージの容量などは分割される