How about terraforming your IT infrastructure?
What is Terraform?
For those more aware of the lastest Marvel than devops tools, here's a quick note:
Terrform is developped by Hashicorp and it's an awesome piece of software that will allow you to code you infrastructure and apply it in your prefered provider (AWS, Azure, GCE, …).
For example, if I have an app with one frontend, one backend, two databases, we can reserve two servers for the frontend & backend and a cluster of three more servers to host the two databases. Usually you go and click in your provider's web UI to reserve all this. For the most adbanced users, you may use an API and you scripted the reservations. With Terraform you will do otherwise. You will describe your wanted infrastructure (servers, networks, load balances, IPs, …) and then you magically use terraform apply
so that it reserves everything as described.
However, everything is not magic. The description is tightly connected to your provider and you can only use terraform for providers available (official list: https://www.terraform.io/docs/providers/index.html, more unofficial exists across the internet)
Why using Terraform?
Terraform main asset lays in its philosophy. You will no longer ask a tool to do actions, instead will you describe the expected result. The way Terraform manages to do it is not our problem.
What are the benefits?
First is idem-potency. You can run your script hundreds of times without fear, your provider won't charge you for 200 reserved servers :)
Second is that you usually version the infrastructure description, it can then be edited collaboratively like any of your projects. You will also keep track of past infrastructures with your version control (how many servers did you have one year ago) and thus better plan for the future.
Third is that your infrastructure gets documentation while you code terraform. It is described like never before in terraform files. You are done with the forgotten service hidden far in your cloud which knocks only at the end of the year, bill in hand.
Fourth is the ability to easily replicate your production environnement with subtle changes (number of servers, some services not started…). Very useful to deploy a production env, qa env, dev env, pre-production env, beta env, whatever env I want!
Last but not least, you will feel the power when creating clusters in a few minutes. One command line and your production is born again!
For real, how long does it take to migrate?
A migration to Terraform can take quite a bit of time. For now (september 2019), Terraform can import an existing architecture to manage it (in its state file) but it can't generated the decription files yet. However it's planned in the future and some unofficial tools are trying to do it (e.g terraformer).
If you don't use tools, you will have to write all resources descriptions (servers, volumes, load balancers, …) by hand, and check that it matches with the imported Terraform state.
If you use a tool (if any is available for you provider), you will only need to match imported state because your tool might lack some resources translations, or properties, etc…
To match the imported state you launch terraform plan
where you wrote your resources files and you check what Terraform wants to changes. That's the differences between the Terraform imported state and your resources descriptions (missing description will result in Terraform planning to destroy it for example).
This migration is a bit cubersome but the benefits for future evolutions are great (in time to setup, confidence when deploying, ease to scale…)
Give it a try :)
To listen to the audio version of this article click on the play image.

Brought to you by @tts. If you find it useful please consider upvoting this reply.
Congratulations @blatinier! You have completed the following achievement on the Steem blockchain and have been rewarded with new badge(s) :
You can view your badges on your Steem Board and compare to others on the Steem Ranking
If you no longer want to receive notifications, reply to this comment with the word
STOP
Do not miss the last post from @steemitboard:
Vote for @Steemitboard as a witness to get one more award and increased upvotes!