Began personal infra slides

This commit is contained in:
Marcus Noble 2021-02-05 21:40:11 +00:00
parent 624ef4f394
commit c0ec952684
2 changed files with 117 additions and 0 deletions

View File

@ -0,0 +1,114 @@
---
theme: gaia
_class: lead
backgroundColor: #fff
backgroundImage: url('https://0.s3.envato.com/files/138380962/Preview%20Image%20White%20Low%20Poly%20Background2.jpg')
marp: true
---
![bg left:40% 80%](https://marcusnoble.co.uk/images/marcus.jpg)
# **Personal Infrastructure**
**Marcus Noble**
🔗 https://marcusnoble.co.uk
🐦 @Marcus_Noble_
✨ AverageMarcus
---
<!-- _class: lead -->
## A little about me and the past
- I work professionally as a "DevOps" engineer at Elsevier with a focus on Kubernetes and containers
- Previously a JavaScript developer, now a Go developer
- I've been running my own servers for as long back as I can recall (historically cheap VPS's with applications running either directly on the OS or using Dokku)
- I like to tinker with "Smart Home" stuff
---
## Where things are at today...
* **87** uniquely identifiable devices connected to my home network
* A Zigbee network with **32** devices
* A single-node Kubernetes cluster running on a dedicated desktop machine hosting **14** applications
* An autoscaling 1-3 node Kubernetes cluster hosted on Scaleway running **~30** applications
* 1 Raspberry Pi running Home Assistant to control all smart devices in my home
* 1 Raspberry Pi running OctoPi to control my 3D printer
---
<!-- _class: lead -->
## Local Network setup
**FTTP** - Zen Internet
**ISP Modem**
**Powerline**
**Router** - TP-Link Archer C7
**Mesh WiFi beacons** - TP-Link Deco M4 (x3)
**87 devices**
---
<!-- _class: lead -->
## Local Network setup
4 devices connected via ethernet
Everything else via WiFi
All devices have static IPs and assigned hostnames
(based on the periodic table of elements)
---
## Kubernetes - local
An old desktop machine repurposed as a single-node Kubernetes cluster
**OS**: Ubuntu
**Kubernetes Version**: Microk8s v1.20.1
**Specs**: CPU - 4 core | Memory - 12Gb | HDD - Lots
---
## Kubernetes - local
**Primary Use**: Hosting sensitive or local-specific applications that I want to keep off the internet.
E.g.
- custom built CCTV monitoring application covering the 8 cameras I currently have set up
- automated download tools so I can kick off downloads remotely while I'm out
- DNS-based ad blocker (AdGuard)
---
## Kubernetes - cloud
Hosted on Scaleway's managed Kubernetes platform, Kapsule.
1-3 *DEV1_M* instances, autoscaled based on load.
All defined in code using Terraform and stored in git.
**Kubernetes Version**: v1.20
**Specs**: CPU - 3 vCPUs | Memory - 4Gb | HDD - 40Gb + 14 PVCs of varying size
---
## Kubernetes - cloud
<style scoped>p, ul { font-size: 0.9em; }</style>
**Primary Use**: Hosting internet facing services and providing a secure, authenticated tunnel to my local cluster
E.g.
- My personal blog plus some related sites
- Self-hosted alternatives to cloud services: Gitea, Nextcloud, Harbor, Photoprism, etc.
- Tekton - handle all my CI/CD needs, triggered by webhooks from Gitea
- "Utility" applications to make my life easier:
- Convert SVG to DXF - used when creating 3D print designs from SVG
- website-to-remarkable - lets me send a webpage as a PDF to my reMarkable tablet for later reading

View File

@ -0,0 +1,3 @@
# Personal Infrastructure
A casual talk given at [Not JSOxford](https://not.jsoxford.com/) on 10th February 2021 about my personal infrastructure setup, my smart home devices and how I make use of Kubernetes for a bunch of stuff.