On-site, ask to schedule
I. High-level overview
- Introduction to Terraform.
- Terraform's approach for delivering Infrastructure as Code.
- Differences between declarative and imperative approach.
- Introduction to HCL. The differences between HCL and HCL2.
- Differences between Terraform and its competitors such as Pulumi, AWS Cloud Development Kit and CloudFormation.
- Comparison between Terraform and other Infrastructure as Code tools such as Ansible, SaltStack or Chef.
- Use-case scenarios for Terraform, Ansible, SaltStack and Chef.
- Terraform installation. Workstation configuration. Managing Terraform versions remotely and locally.
- Execution backends. What is a local and remote backend? What is a remote operation?
- Overview of key Terraform data-structures. Getting started with provider, resource, data resource, variables and outputs.
- Terraform state description. Analysis of tfstate file. What is a state locking? Listing resources, importing existing resources, moving resources inside the state, removing resources from the state, tainting resources.
- Dependency handling within Terraform. How dependencies are built? How to force dependency between the resources?
- Using provisioners for managing a complete lifecycle of the infrastructure.
- What is a Terraform workspace? When you should use a workspace?
- Working with Terraform workspaces: creating a workspace, switching context. How does the Terraform state look like with workspaces?
IV. Code organization
- Managing Terraform code with version control systems.
- Ways of Terraform code organization.
- The comparison between UI/VCS, API and CLI driven runs.
- Managing multiple environments within version control systems.
- Avoiding spaghetti-code with large infrastructures.
- Role-based access in Terraform. Ways of controlling access to Terraform operations.
- Local applies versus pipeline driven applies.
- Cloud provider credentials handling for Terraform execution.
VI. Secrets management
- Storing sensitive data in Terraform.
- Managing secrets and secret information in Terraform.
- Working with sensitive outputs. How to mark the output as sensitive and what it means in reality.
- How resources and metadata are helpful to manage secrets securely
- The description and use-cases of Terraform modules.
- When you should create a module? What are the possible use cases for a module?
- How to use modules effectively?
- Module versioning and version pinning.
- What is a Terraform Registry?
VIII. Terraform with hybrid solutions
- How to use Terraform for multi-cloud deployments?
- How to use multiple providers efficiently?
- How to use multiple providers within a module?
- Importance of testing.
- What are the ways to create unit-tests for Terraform?
- Working with terratest - creating a unit test, running test suite, generating reports.
- Testing compliance in Terraform.
- What is HashiCorp Sentinel? How does HashiCorp Sentinel compare to open source projects such as terraform-compliance?
- Working with terraform-compliance - creating a compliance policy, validating your code against policies.
- Recommended linters and how to use them.
- Improving change management process and transparency of the infrastructure with Terraform.
- Efficient and fast single codebase collaboration. How to collaborate on a single codebase efficiently?
- Risk assessment and approval process.
XI. Best practices
- Naming resources and data resources properly.
- Variables validation.
- Performing a resource deep inspection and finding out errors before applying the code.
- Modules separation Race conditions and dependency hell avoidance.
- Structure of Terraform provider boilerplate
- How to develop your own Terraform provider?
- Core concepts of Terraform provider CRUD operations.
- Useful helpers within Terraform provider SDK.
- How to use your own Terraform Provider in your project?
A sample set of laboratories
- Analyze the code statically and achieve compliance.
- Write your own Terraform provider.
- Provisioning multi-cloud infrastructure with modules.
- Reading and analyzing the Terraform state.
- Importing existing resources into Terraform.
- Testing disaster recovery procedures with Terraform.
- Showing an acyclic graph of resources.
- A hybrid-cloud deployment.
"Terraform is one of the most popular infrastructure as code tools used nowadays. It gives you the ability to work with code that can be validated, tested and deployed in an automated manner within multiple environments. Working with infrastructure in such a manner improves team collaboration, gives an audit trail of changes and increases predictability of deployments. This training is an opportunity to gain deep technical understanding of Terraform, its internal structures, and to learn how to use this understanding in shaping a better, more efficient, secure infrastructure."
- Kamil Szczygieł
Trainer, CTO, Sysdogs
How to contact you?
Who is our training suitable for?
Will I be able to register for those as an individual?
Are those courses on-site, or available on-line?
Are there any requirements for participants?
"At every moment of our cooperation, our wishes and expectations were met and exceeded by the Sysdogs team. Thanks to their knowledge in the creation of our new cloud infrastructure, we have created a foundation for scalable and secure network applications. A pro-customer approach at every stage of implementation makes cooperation with Sysdogs a real pleasure."
- Tymoteusz Wisniowski
Manager, ROLV Group Sp. z o.o.
"Professionalism, partnership and high-quality. We can surely say, Sysdogs is one of the most experienced companies in Poland, when speaking about security, contenerization and Kubernetes. They are deeply integrated in development process, understand the business needs and really automate all the things. Anything in DevOps and DevSecOps areas - only sysdogs!"
- Maciej Gastol
Chief Executive Officer, Going. Sp. z o.o.
"Sysdogs has reduced the delivery time of the applications and has delivered high-quality infrastructures. The team creates solutions that are tailored for the business needs and requirements. Overall, their vast experience in DevOps ensures a successful ongoing partnership."
- Maciej Kurek
Chief Technology Officer, Library X
"sysdogs is not just an another software company which claims to do DevOps. They are a team of enthusiasts with many years of experience in the field of System Administration, Infrastructure, Network and Security that loves what they do. They are real professionals, act as a real partner who is ready to advise and is not afraid of pointing your mistakes. If you have any needs in DevOps area - they should be your first choice!"
- Karol Wiszowaty
Chief Operating Officer, Inspeerity
"Thanks to Sysdogs engagement, the production environment can expect to process four petabytes of data growing by 200-500 GB a day with consistency and productivity. The team has established multiple communication tools to provide progress updates. Their optimal solutions are impressive."
- Maciej Lach
Chief Technology Officer, big xyt
How to order?
We want to ensure you, that every incoming inquiry is important to us, treated with the highest level of care, and also guarantee, that you will receive a response within 48 hours or less.