-------------------------------------------- | |
Automate all of the things | |
2018.01.08 13:09:50 CET | |
-------------------------------------------- | |
Happy New Year to all readers! | |
For some unknown reason, I started this year with an unusual amount | |
of energy and motivation towards reaching my yearly goals. Last | |
week I planned my first quarter and started implementing my plans. | |
One of my professional concerns for some time is how locked-in I feel | |
with the tools, practices and technology we use at work. It's no | |
mystery, after 10 years in the same company it's expected one would | |
develop a deep understanding of the "internal" matters. | |
Unfortunately, I feel the downside to this knowledge (which is | |
definitely useful; don't get me wrong, I'm not complaining about | |
having it) is the disconnect with the outside world and practices. | |
So I decided to look outside and start applying the ideas and | |
principles we have at work on my personal life. This aligned very | |
well with one of my previous posts - when I remember how tiresome it | |
can be to manage your own infrastructure. | |
The first idea I implemented this week was to automate all of my | |
personal projects. I've always done the responsible thing and used | |
source control for my projects, but I left integration testing and | |
deployment as manual tasks. For example: the code for my blog lives | |
in a Git repository. I used to build it with Hugo and then deploy it | |
to my server manually. | |
This week I implemented Continuous Integration and Deployment for all | |
of my personal projects. Of course the time savings from this | |
automation is small, but that was not my goal. My objective is to | |
learn what tools other developers are using for CI and CD. | |
I really enjoy the result: now all my interface with these servers is | |
through my VCS: I can make changes locally and once tested | |
individually locally all I have to do is check them in. The | |
automation takes care of running any integration tests, building, | |
deploying and testing a canary and, if successful, deploy to | |
production. | |
Another side-effect of this reduced contact interface with the | |
services is the simplification of my workstation setup: for normal | |
and usual changes, all I need is the VCS tool and a compiler for | |
example. | |
One item on my quarter objectives done. | |
I hope all of you had a great start of 2018 too! | |