4 KiB
title | author | institute | date | license |
---|---|---|---|---|
Recycled Cloud Technical Intro | Timothée Floure | e-Durable SA | 2021-03-01 | CC BY-SA |
It works! (TM)
\begin{center} We even have a website! \href{https://recycled.cloud/}{https://recycled.cloud/} \end{center}
High-Level Overview
-
3 locations - Yes, it's overkill.
-
LNTH and LSNE are production capable.
-
LNTH has power and network redundancy.
-
Networking + Distributed Storage + QEMU/KVM VMs.
-
Humans: 1-1.5 Summer, 0.5 Autumn, 0.25 January, 1.25 these days.
Public-ish services
- Web hosting: Static + Wordpress - unmanaged.
- Storage / backups - unmanaged.
- KVM Virtual Machine Hosting - unmanaged.
e-Durable is our biggest client by far.
- No management interface or billing pipeline so far.
- Billing is hard. We'll leverage Odoo.
A bit of History
\begin{center} \includegraphics{ungleich-logo-black.png} \end{center}
- I arrived from ungleich.
- The 3 locations were already in the pipe.
- OpenStack (and JuJu + MAAS).
- Had to drop everything and start from scratch.
- Only low-end hardware around.
System Administration 101
- Setting something up is easy, keeping it running is not.
- Complexity is your worst enemy.
Technial Stack - General guidelines
- KISS: Keep things as simple as possible.
- Alpine Linux and Debian GNU/Linux.
- Document things in the Wiki (wiki.recycled.cloud).
- Use configuration management (cdist).
- Obviously FOSS-only... non-free software is a PITA!
Technical Stack - Networking
- We are registered at RIPE: AS208948, x1 IPv4 /22, x1 IPv6 /29.
- External BGP peering in every location, OSPF internally.
- Two edge routers per location, for redundancy.
- IPv6-first - IPv4 is LEGACY (and painful)!
Technical Stack - Core Infrastructure
\begin{center} \includegraphics{location.png} \end{center}
Technical Stack - Services
- Services usually run in their own VM.
- Central user directory with OpenLDAP.
- Monitoring is provided by Prometheus + Grafana.
- Backups with Borg.
- ...
Tooling
- There was no tooling at e-Durable, so we made our own.
- Software Forge: code.recycled.cloud
- Documentation: wiki.recycled.cloud
- Mailing Lists: lists.recycled.cloud
- File Sharing: files.recycled.cloud
- Chat: chat.recycled.cloud
Buffer slide
That's all for the big lines! Let's do some hands-on exercises now.
- Allocating & accessing a new VM.
- Using the Software Forge.
- Configure said VM with cdist.
Allocating a new VM
\begin{center} \includegraphics[width=5cm]{one-logo.png} \end{center}
- Web interface at one.$LOCATION.recycled.cloud, LDAP account.
- VMs are defined by templates.
- We build our own images - see the RecycledCloud/images repository
- Allocating a new VM is easy: demo.
Using the Software Forge
\begin{center} \includegraphics[width=10cm]{gitea-logo.png} \end{center}
- Our VCS is git.
- Everything regarding the RC lives in version control.
- If you don't use version control, you're likely doing it wrong.
- code.recycled.cloud provides remote git repositories and simple issue tracking.
- Joachim makes lovely git introductions.
CDIST
\begin{center} \includegraphics[width=5cm]{cdist-logo.jpeg} \end{center}
- Configuration management tool (similar to Ansible, Puppet, Chef, ...).
- KISS. Do one thing, and do it right.
- Originally written by ungleichfolk, much larger community now.
- Shellscript.
CDIST 101
- Manifests
- Types
- Explorers
e-Durable CDIST workflow
- dot-cdist.
- cdist-workdir meta repository and third-party sources.
- RecycledCloud and e-Durable each have their own repositories.
- Shellcheck (it's convenient to have it built-in in your editor...).
References
- Recycled Cloud account management: meta.recycled.cloud
- Recycled Cloud Software Forge: code.recycled.cloud
- Recycled Cloud Wiki: wiki.recycled.cloud
- CDIST Manual: cdi.st
- OpenNebula Web UI: one.{lnth,lsne}.ch.recycled.cloud