It's been quite some time since my last post and as it turns out, the convenience of having a Ghost instance doesn't eliminate the effort required to start writing. As a wise co-worker recently reminded me "It's about impact, not efficiency". Reflecting on those words in the context of this blog I realise its inception was the perfect example of optimising under the belief that efficiency will eliminate the work. Unsurprisingly, a perfect production line still needs materials going through it to produce a product.
A few days ago I was listening to a podcast called Self-Hosted with a special guest TechoTim who recently started #100DaysOfHomeLab . Similar to the popular #100DaysOfCode, the intention is to set a technical goal and spend 1 hour per day for 100 days learning and building. Sharing progress via the hashtag on Twitter helps to add some nice elements of accountability and community.
Although I'm not convinced I'll get a perfectly uninterrupted 100-day run, I'm hopeful the exercise will still be valuable. For the sake of practicality, I'll bundle multiple days into regular summary posts and provide shorter daily updates via Twitter.
So what to focus on?
The podcast touched on the idea of GitOps. The concept of defining and configuring your infrastructure and applications via code. The benefit is that your environment is version controlled via Git and therefore easily reproducible. It's common to see this at tech companies, particularly those that rely heavily on public cloud providers (AWS, Azure, GCP) since most resources are just an API call away. It got me wondering how difficult it would be to reproduce on-prem at-home. Since there's no underlying API to call for new resources how much initial setup is required before the automation can take over? More importantly, how small can that initial setup get?
Why bother?
It's a good question and the driving motivator is the availability of Home Assistant. Although my usage is currently limited to a few lights and switches I expect dependency to increase over time. Also, if you've ever had outages of your home automation solution you'll know that an unreliable solution is much worse than no solution. With this in mind, increasing resiliency and shortening rebuild/recovery time is pretty important.