Platform Engineering in the Homelab

Published on 2024/05/31

Resources

Notes:

Disclaimer: this is just a quick outline I used for presenting and may contain errors

What is self-hosting and why to do it

Self-hosting is running your own services for personal use.

Why:

Example services:

For these things you can either use the cloud or build a homelab. I advocate for a homelab if it’s for personal use because that way you truly own the infrastructure while also it’s cheaper in the long run (depending on the use case).

There are some use cases where self-hosting is not the ideal solution. The main ones that comes to mind are those who require huge amounts of compute. Like doing some serious password cracking or training/finetunning LLMs.

Things you need for a basic yet reliable homelab

You don’t need anything super crazy to get going. But it’s better to do it right because these are services you will depend on.

Hardware

Supporting services and practices

The services providing features to the end user are the main goal. But for having a good uptime using them and a good time operating them you’ll need some supporting services:

Actions you need to do to operate a homelab

It’s a ton of work. And if you are serious is unmanageable to do it in a non-automated way

Automation can help. So called DevOps tools.

Automation and Platform Engineering

Stages of automation

I would say automation is a must. If you don’t automate you won’t have a good time.

  1. Manual operation
  2. Scripting
  3. Scripts run upon with changes and a schedule by CI/CD
  4. Standardized process for all operations: Platform Engineering

Automation tools

Packer: create VM templates Terraform: provision infra from VM templates Ansible: deploy and config services in that infra. Playbook and roles

Implementing Platform Engineering

Bear in mind that is okay if not everything is 100% automated or standardized. It’s an iterative process. You will have to prioritize what to take on.

Demo and showing around

Show around dashy, proxmox and truenas.

Show ansible playbooks and roles.

Show golden paths.

Deploy a new service in an existing machine with a commit

>> Home