IaC Technologies
IaC tools can be broadly categorized into following
- Declarative IaC tools - Provisioning - defines the desired state of the Infrastructure, and the tool itself figures out the way to provision/accomplish it. E.g. Terraform, CloudFormation from AWS, Azure Resource Manager(ARM) templates.
- Imperative IaC tools - Provisioning
- Configuration management - Install and manage software with standard structure and version control
- Orchestration/server templating tools
- Policy as Code tools
- Platform specific IaC tools
- Terraform - uses it's own domain-specific language (DSL) called HCL (Hashicorp Configuration Language)
- ARM - Azure Resource Manager - uses Templates
- Chef - uses Recipes and Cookbooks via Ruby based language to deploy for configuration management. Used in CI/CD space. Takes Procedural approach to configuration management and is Cloud agnostic. Chef is for Developers
- Puppet - uses Ruby based DSL. Takes Declarative approach to configuration management meaning we will declare how environment should look like and Puppet figures outs how to make that happen. Puppet is for system administrators.
- Saltstack - takes Infra as Data approach via Python. Supports remote execution of commands
- Ansible - Infra automation tool from Red Hat. Code written in YAML and is called as Playbooks. Needs no agents
- Docker - package the code and dependencies together called Containers. Uses YAML
- JuJu from Canonical which also develops Ubuntu
- Vagrant
- Pallet
- (R)?ex
- CFEngine - oldest IaC tool
No comments:
Post a Comment