I saw a great Terraform presentation last week at a Devops meetup. Terraform is a configuration management tool for virtual infrastructure. You can define your AWS or similar environment using a descriptive language.
If you are looking for my Perl cheatsheet, it's over here. Lots of interesting stuff in that repo.
I used to power my site with Movable Type, but that was removed from Debian. I have another site that is powered by Wordpress, but maintaining it is costly. I have to constantly be on top of security issues, and the built in editor is tedious for a console cowboy like me. I do not use hosting services, because doing it myself helps keep my skills sharp.
Your hosts are named after your data centre. Now you must move hundreds of hosts to another data centre. Do you rename them or abandon the naming convention?
A client of mine is facing this challenge. I've discussed host naming before.. Host are not static. They change functions and locations. Think ahead before naming them.
Variables in CFEngine can be confusing at times. Here are some examples of variable references. References are not strictly required, but they are good practice like using the strict module in Perl.