presentations/2021-03-01-recycledcloud-intro/slides.md

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