After you've mastered cloud computing and can manually operate on any cloud platform, the next step is to get started with [Infrastructure as code or configuration]. (https://learn.hashicorp.com/tutorials/terraform/infrastructure-as-code)
To master this phase, you can choose from a variety of programmatic or declarative languages/tools.
It is suggested that you understand the declarative language provided by the cloud platform on which you work (eg: ARM for azure, cloudformation for AWS, Google cloud deployment manager). Then begin using Terraform (as the most popular and widely used across all clouds)
There are numerous players with various purpose-built Declarative/programmatic languages that will require learning for various usecases. The guides on this page will exclusively cover opensource/commodity tools and technologies. Aside from that, there are numerous SaaS providers who enable continuous infrastructure through code with their own proprietary code. DSL (Domain specific language)
Categories include
The following is the bare essentials to learn for infrastructure as code and automation. This is needed for cloud provisioning and lifecycle management. You could choose a learning path of any one.
- Terraform
- Pulumi
- Azure Resource manager templates and Azure Bicep (Only for Microsoft Azure Cloud)
- AWS Cloud-formation (only for AWS Cloud)
- GCP cloud deployment manager templates (only for GCP)
Other low adoption tools exist as well, which is more just fun to experiment with rather than used full-fledge at production scale
There are also tools that can be used for more advanced approaches (eg: IaC GitOps through kubernetes crossplane).
A relatively more-wider and greyer scoped set of tools that will aid in system administration of large scale cloud setups. From managing servers, server configurations, application configurations and deployments.
The most widely adopted are the following
There are lots of other configuration management tools, that can range from simple (eg: cloudinit to more expansive), but which is comparably much lesser adopted than the above 4.
TBD
- Expert in provisioning and managing infrastructure in any of the cloud platforms using Terraform
- Creation, publishing and usage of modules in terraform
- Manage multi-stack, multi-region, multi-environment setup in the cloud using terraform
- Backend state management
Recommended Time:
- Starting from scratch to basic operational knowledge : 1 weeks (at 4 hours per day)
complexity | Material |
---|---|
standard-path |
hashicorp learn |
- Try to complete the same usecase ony using terraform
- Develop modules for Network, databases, storage and compute separately
- Assemble the modules to deploy the full stack
- Provision and manage terraform state using a block storage (eg: blob or S3 buckets)