For the past few years I’ve been kept away from lower-level coding and ops through being employed to fulfill quite different functions. It’s all part of a wider career ambition, so I can’t fault the fact I’ve not been down and dirty with the code – but coming back to it has been quite a shock (in a good way).
I left full time SysAdmining towards the end of 2011, with puppet becoming mainstream, and containers becoming a thing (but with OpenVZ, rather than docker at that stage) – at least for me.
In the current brave new world I’ve been introduced to terraform. It’s definitely firmly towards the ‘dev’ end of the DevOps spectrum; with a fairly low barrier to entry, but an obvious need for structure, design and adherence to best practices. Kudos to those guys publishing their modules and sharing their ideas, especially the modules already up on the terraform registry. It’s also quite fun to be working on something pre V1.0.0 (love SemVer!) and with progress really yet to be made on tooling.
Two things have really helped me get up to speed quickly with it, and a big shout out has to goto GruntWork.io for their part.
Here’s my learning so far:
1) Follow the Getting Started guide and get some stuff up. Did this in my personal account, on the free tier – then pulled it all down. Neat!
2) Did a few bits of hacking, and put together a module for an Airflow service.
3) Got into work early one morning to get 45 minutes to properly watch this awesome video on reusable terraform modules. It’s wonderfully articulated, and the guy presenting has a great and relaxed style. . (cheers Jim!)
4) Did a bit more hacking and discovered
terraform env is deprecated. Hmmm.
5) Lastly, (and only tonight) I bought “Terraform, up and running.” for my kindle and read it cover to cover (despite the fact I only had three hours sleep last night). Though it’s a little bit out of date already (v.0.8, whereas we’re now on v0.10), it covers off some really good concepts, and shares some best practices around working in larger teams. Hopefully soon I’ll be posting on what new concepts introduced since v0.8 I’m finding useful.
Let me know if you’re using terraform, and any tips or problems you’ve faced.