IaC関連ツールまとめ
背景
広い意味でのIaC(Infrastructure as Code)って本当に色々ある。
Ansible/Terraform/Cloudformation/Helm/Kubernetesなど、
横並びにするにはレベル感もごちゃごちゃだし、どういう使い分けするの?
というふとした疑問からIaC関連ツールの全体像と関係性まとめてみた。
3つのレイヤに分けてみる
コンテナの隆盛がIaCの定義を広げたのと、CI/CDも、Jenkins2.0からJenkinsfileが出来てIaCの仲間入りした感がある。
- IaaSレイヤ(狭義のIaC)
- コンテナレイヤ
- CI/CDレイヤ
1つ目のレイヤ: IaaSレイヤ(狭義のIaC)
歴史と概要
ChefとPuppetの2つを覚えておけばOK。と思っていたら、時代が随分と進んできて、Ansibleではエージェントレスになったり、随分と便利になったなと。
Puppet(2005) -> Chef(2009) -> Ansible(2012) -> Terraform(2014)
https://employment.en-japan.com/engineerhub/entry/2019/04/12/103000
代表例1:Ansible
エージェントレスのIaCツール
漫画でわかるRed Hat Ansible Automation
代表例2:Terraform
10分で理解するTerraform
インフラストラクチャ定義ツール に分類されるツールで、クラウド上のリソースを定義ファイルの状態になるように生成・操作してくれます
Infrastructure as Codeに疲れたので、僕たちが本来やりたかったことを整理する
Terraform Registry
誰かが作ったmoduleを再利用できる
代表例3:AWSやOpenStack用のツール
個別ツール専用のIaCもかなり流行ってきている。
* CloudFormation:AWSの構築自動化
* OpensStack Heat: OpenStackの構築自動化
2つ目のレイヤ: コンテナレイヤ
このレイヤは更に3層に分けます。やっぱりオーケストレーションのオーケストレーションが出て来たのがポイントかなと。
2-1 コンテナ/仮想
- Docker
- VMWare
2-2 コンテナオーケストレーション(仮想含む)
- Docker Compose
- Kubernetes(EKS/IKS/GKE)
- ECS
- Vagrant
2-3 コンテナオーケストレーションのオーケストレーション
- Helm
Helm
Kubernetes上のアプリケーションを一括管理する仕組み。yumやaptなどのパッケージ管理ツールのようなもの
helmを使ってKubernetesを楽にする
KubernetesでつらいYAML地獄を脱却するYAML生成ツール
3つ目のレイヤ: CI/CDレイヤ
Jenkinsを覚えておけばOKという時代は終わったなと。まずはビルドフローをYAMLで書くっていうイメージを持っておく感じ。
Kubernetes系
Kubernetes前提のCI/CDフレームワーク
Tekton
JenkinsX
ArgoCD
Not Kubernetes?系
Spinnaker
マルチクラウドCDツール
* 「継続的デリバリ」(CD)を実現できるコンテナクラスタ管理ツール「Spinnaker」
* Immutable Infrastructureを強制する
ビルドパイプライン
StepFunctions
その他
- SCCM
- クライアント系ツールの配布
まとめ(ここまで書いておきながら逆のことを言う、、、)
- クライアント系ツールの配布
というか、所感だけど、この手のツールってレイヤ分けしたとしても、相互のレイヤに機能追加で染み出してきている。
レイヤ分けはあくまで源流や得意レイヤがどこかという程度にすぎない。
なので、どれ使えばいいの?っていうのは個別具体の事例を参考に、自分に合っていると思うものを選ぶべきかなと。
あとは、自分が使ってみたい!って思えるツールと心中するのがいいかな。
ツールがいけてなくても、ツールへの愛情があれば努力と根性で何とかなる(はず)。
Author And Source
この問題について(IaC関連ツールまとめ), 我々は、より多くの情報をここで見つけました https://qiita.com/kounan13/items/57adfbf3a5f209afa586著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .