Ich entwickle Infrastruktur
Infrastruktur ist die Umgebung, in der deine Software läuft. Dazu gehören Server, Hosting, Deployments, Netzwerke, Speicher und die Werkzeuge, die den Betrieb am Laufen halten.
Egal, ob du die Infrastruktur für ein neues Projekt aufsetzt oder mit einer bestehenden Umgebung arbeitest, ich kann dich dabei unterstützen. Das kann eine zuverlässige Umgebung, bessere Deployments, eine verständliche Dokumentation oder eine einfacher zu wartende bestehende Lösung bedeuten.
Ich setze Infrastructure as Code und Automatisierung dort ein, wo sie einen echten Mehrwert bieten. Das Ziel ist eine Umgebung, die verständlich, reproduzierbar und passend für die darauf laufende Software ist.
Konfigurations-management
Infrastruktur lässt sich einfacher verwalten, wenn ihre Konfiguration gemeinsam mit der davon abhängigen Software definiert wird. Configuration as Code macht Änderungen nachvollziehbar, wiederholbar und über verschiedene Umgebungen hinweg reproduzierbar.
Ich setze diesen Ansatz dort ein, wo er sinnvoll ist, von der Serverkonfiguration über Anwendungsumgebungen bis zu Einstellungen für Deployments.
-
Ansible
Ansible automatisiert die Konfiguration von Servern mit einfachen, verständlichen Dateien. Ich nutze es, um Server einheitlich zu konfigurieren und Änderungen, Updates und Deployments wiederholbar zu machen.
-
Bastille
Bastille verwaltet FreeBSD Jails und erleichtert das Erstellen und Pflegen isolierter Umgebungen. Damit lassen sich Dienste voneinander trennen, ohne das zugrunde liegende System unnötig kompliziert zu machen.
Ich entwickle auch Backends
Infrastruktur und Anwendungscode müssen zusammenspielen. Ich kann das Backend entwickeln oder verbessern, das auf deiner Infrastruktur läuft, egal ob es um ein neues System, eine Integration oder Änderungen an bestehender Software geht.
Komplexere Setups
Manche Anwendungen brauchen mehr als einen Server und ein Deployment-Skript. Container, Jails und Orchestrierungswerkzeuge können sinnvolle Isolation und Flexibilität bieten, wenn die Software oder Umgebung das erfordert.
Ich wähle diese Werkzeuge nach den tatsächlichen Anforderungen der Anwendung aus. Eine kompliziertere Umgebung ist nur dann sinnvoll, wenn sie ein konkretes Problem löst.
-
FreeBSD Jails
FreeBSD Jails isolieren Anwendungen und Dienste innerhalb eines gemeinsamen Hostsystems. Sie benötigen weniger Ressourcen als vollständige virtuelle Maschinen und eignen sich gut, wenn mehrere unabhängige Umgebungen auf einem Server laufen sollen.
-
Docker
Docker verpackt Anwendungen zusammen mit ihren Abhängigkeiten in Containern. Dadurch lassen sich Umgebungen in Entwicklung, Tests und Produktion einfacher reproduzieren.
-
Kubernetes
Kubernetes verwaltet containerisierte Anwendungen über mehrere Rechner hinweg. Es kann Deployments, Skalierung, Service Discovery und Wiederherstellung automatisieren und eignet sich damit für Systeme, deren Komplexität den zusätzlichen Aufwand rechtfertigt.
Ich entwickle auch Websites
Infrastruktur ist nur dann nützlich, wenn die darauf laufende Software gut funktioniert. Ich kann die Website entwickeln oder verbessern, die auf deinen bestehenden Systemen aufbaut, von einer einfachen Website bis zu einer umfangreicheren Webanwendung.
Automatisierung und Zuverlässigkeit
Zuverlässige Infrastruktur profitiert davon, wiederkehrende manuelle Arbeit zu reduzieren. Automatisierte Deployments, Tests, Backups und Monitoring machen es einfacher zu erkennen, was gerade passiert, und Probleme zu beheben, wenn etwas schiefgeht.
Ich automatisiere die Teile, bei denen es sich lohnt, und halte den Rest verständlich.
-
Continuous Integration
Continuous Integration automatisiert Aufgaben wie das Bauen und Testen von Software, sobald Änderungen vorgenommen werden. Deployment-Pipelines können zusätzlich Veröffentlichungen automatisieren und den Weg von einer Codeänderung bis in die Produktion nachvollziehbarer machen.
-
Metriken
Metriken zeigen, wie sich Systeme und Anwendungen über die Zeit verhalten. Ich nutze sie, um Ressourcenverbrauch zu verstehen, ungewöhnliches Verhalten zu erkennen und die Fehlersuche zu erleichtern.
-
Alarmierung
Alarme machen wichtige Veränderungen im Verhalten eines Systems sichtbar und geben dir die Möglichkeit, darauf zu reagieren. Gute Alarmierung konzentriert sich auf Probleme, die tatsächlich eine Reaktion erfordern, statt jede kleine Schwankung zum Vorfall zu machen.
Bau deine Infrastruktur
Du setzt die Infrastruktur für ein neues Projekt auf, möchtest eine bestehende Umgebung verbessern oder deine Deployments zuverlässiger machen? Erzähl mir, was dir vorschwebt.
Du brauchst dafür kein technisches Konzept. Eine Beschreibung deiner aktuellen Umgebung, einer gewünschten Änderung oder der Stelle, an der es gerade Probleme gibt, reicht für den Anfang.
Erzähl mir von deiner Infrastruktur