Solidblocks ist eine Sammlung von Komponenten und bewährten Verfahren rund um die Bereitstellung und den Betrieb von Cloud-Infrastrukturen und Anwendungen. Mit Fokus auf der Hetzner Cloud als Infrastrukur-Provider, aufbauend auf bewährten Open-Source-Komponenten stehen einfache gut zu wartende Architekturen im Vordergrund.

Viele Komponenten sind bereits als Open-Source verfügbar und als Infrastruktur-Spezialist stehe ich mit Rat und Tat bei der Umsetzung Ihrer Cloud-Infrastrukturen zur Verfügung. Von der schlüsselfertigen Komplett-Lösunge bis hin zu teilweise oder vollständig verwalteten Umgebungen für Ihre Anwendungen.

Features

Hosting

Open Source

Fertige Lösungen für den Betrieb von Open-Source-Lösungen wie z.B.Keycloak, PostgreSQL, GitLab, Grafana, HashiCorp Vault und viele mehr. Open-Source-Hosting auf Solidblocks verbindet bewährten und stabile Bausteine mit der Möglichkeit, die Lösung an Ihre speziellen Anforderungen anzupassen.

Kundenspezifische Anwendungen

Von greenfield JVM oder .NET Core Projekten, über Python und Ruby-basierte Lösungen, bis hin zu brownfield PHP-Anwendungen. Die Erweiterbarkeit von Solidblocks macht es zur perfekten Plattform, um Ihre maßgeschneiderten Geschäftsanwendungen zu hosten, oder um älteren Anwendungen ein neues Leben und eine stabile Umgebung zu geben.

Wartung & Instandsetzung

Abhängig von der Implementierung und zugrunde liegenden Framework Ihrer Anwendung können Solidblocks-Komponenten, wie Keycloak oder Wireguard helfen, die Sicherheit Ihrer Anwendung zu verbessern und die Lebensdauer verlängern.

Unkompliziert & Pragmatisch

Ihr Code

Sie haben jederzeit vollen Zugriff auf den Sourcecode Ihrer Lösung; es gibt keine proprietären Komponenten, Sie können den Code jederzeit forken, falls nötig. Je nach Umfang der Lösung können Pairing und/oder das gemeinsame Arbeiten am Code gewährleisten, dass das Wissen und die Abläufe, die zur Wartung und zum Betrieb Ihrer Anwendungen erforderlich sind, gut verteilt sind.

Ihre Server, Ihre Daten

Ale Ressourcen für Ihre Lösungen können in Ihren eigenen Cloud-Accounts gehostet werden, um sicherzustellen, dass Sie jederzeit Zugang zu allen VMs und Daten haben. Dies gilt für alle Services, die für Ihre Lösung nötig sind, wie z. B. AWS, Hetzner Cloud, Elastic.co und mehr, so dass Sie jederzeit die Kontrolle übernehmen können.

Virtuelle Maschinen und Server

Obwohl eine ausgereifte Container-Orchestrierung wie z.B. Kubernetes ihre Vorteile hat, kann manchmal eine einfachere Lösung auf Basis von Virtuellen Maschinen (VMs) oder Bare-Metal Servern kosteneffektiver, einfacher zu handhaben, zu warten und zu betreiben sein. Falls möglich, ist auch der Einsatz auf vorhandener Hardware eine Option, um bereits vorhandene Maschinen besser zu nutzen.

Infrastructure as Code

Alle deployten Ressourcen werden mit Infrastructure-as-Code-Lösungen wie Terraform, OpenTofu und Ansible entwickelt und deployt. Für Anwendungen, die keine Automatisierung bereitstellen, können spezielle Lösungen implementiert und in den deployment lifecycle integriert werden.

Developer Experience

Der deployment cycle ist so konzipiert, dass er auf Entwicklermaschinen einfach zu verwenden ist und in gängige CI/CD-Systeme wie GitHub, GitLab, Jenkins und andere integriert werden kann. Jede Lösung wird mit einem entwicklerfreundlichen build system geliefert, das deployment und Interaktion mit den bereitgestellten Ressourcen erleichtert.

Sicherheit & Daten

Updates

Alle Komponenten wie Betriebssysteme und Softwarepakete werden regelmäßig aktualisiert. Wenn möglich, sind Tools wie renovate in den deployment Prozess integriert, um sicherzustellen, dass alles immer auf dem neuesten Stand ist.

Verschlüsselung

Alle außerhalb der Cloud gespeicherten Daten, wie z.B. Backups, sind standardmäßig verschlüsselt, um sicherzustellen das sensible Daten nicht in die falschen Hände gelangen können.

Passworte

Alle Passworte und sonstige sensible Daten können jederzeit neu generiert und rotiert werden, um das Risiko von langlebigen Passworten, die im Laufe der Zeit verloren gehen könnten, zu mindern. Dies ermöglicht auch bestehende Passworte im Falle eines Lecks schnell zu deaktivieren.

Backups

Verschlüsselte Datenbackups auf Clouds wie AWS oder GCP bieten eine zusätzliche Sicherheitsebene für Ihre Daten und reduzieren den Schaden im Falle von versehentlichem Löschen von Daten oder Konfigurationsfehlern.

CVE Scanning

Automatisierte CVE-Scans, zusammen mit einem stets aktuellen SBOM, erleichtern es sicherheitskritische Bugs frühzeitig zu entdecken und zu beheben.

IDP/IAM

IDM-Lösungen wie Keycloak können leicht integriert werden, um Ihre Anwendung abzusichern oder in Verbindung mit Hashicorp Vault, um den SSH-Zugriff auf Ihre VMs mit kurzlebigen credentials abzusichern.

Deployment Lifecycle

Umgebungen

Alle Lösungen untersützen von Haus aus das mehrere Umgebungen. Diese können verwendet werden, um Ihren Anwendungslebenszyklus abzubilden, oder um verschiedene Testumgebungen bereitzustellen.

Bootstrapping

Das Löschen und Bootstrappen von Umgebungen wird ständig getestet, um sicherzustellen, dass es keine versteckten zyklischen Abhängigkeiten in der Infrastruktur gibt. Die stellt auch sicher, dass der Code der nur während des Bootstrapping ausgeführt wird, weiterhin korrekt funktioniert.

Disaster Recovery

Die Wiederherstellung von Umgebungen aus Backups wird regelmäßig getestet und ist sowohl in den Playbooks als auch in den Entwicklerbriefings enthalten. Alle Komponenten sind so desingt, dass die gesamte Umgebung jederzeit gelöscht und dann vollständig aus den Backups wieder aufgebaut werden kann.

Logging & Monitoring

Logs

Logging-Plattformen wie Elastic.co können benutzt werden, um alle Anwendungs- und VM-Logs zentral zu speichern, und helfen Fehler frühzeitig zu erkennen und zu beheben. Darüber hinaus erleichtern sie das debuggen von Fehlern.

Metriken

Anwendungs- und VM-Metriken können auf Analyseplattformen, wie Grafana oder Elastic.co, gesammelt werden. Zentrale Metriken helfen bei der Erkennung und Visualisierung von Anwendungsnutzung, Leistung, langfristigen Trends und können darüber hinaus Hinweise für Sizing-Entscheidungen geben.

Tagging

Alle Logs und Metriken werden mit Informationen über die Umgebung, den Service, die Version usw. getagged und mit Ereignissen wie z.B. deployments angereichert. Dies erleichtert die Korrelation von Problemen und Bugs mit verschiedenen Versionen und Bereitstellungen.

CI/CD

Deployment

Die deployment Prozess kann leicht in alle CI/CD-Systeme oder in bereits bestehende Pipelines integriert werden.

Tests

Integrationstests im deployment Prozess stellen sicher, dass das deployment erfolgreich ist. Sie dienen auch als Canary, um zu alarmieren wenn Teile der Infrastruktur oder Anwendung defekt sind, oder die Performance eingeschränkt ist.

Dokumentation & Support

Playbooks

Playbooks sind ein fester Bestandteil jeder Lösung, und beschreiben detaillierte Verfahren für Szenarien wie die Wiederherstellung von Umgebungen oder die Rotation von credentials in Notfällen. Sie enhalten auch Informationen für den allgemeinen Betrieb und die Wartung.

Übungen

Regelmäßige Übungen stellen sicher, dass wichtige Schritte, die selten genutzt werden nach wie vor funktionieren, und dass sich die Entwickler mit ihrer Durchführung sicher fühlen.

Support

Im Falle kritischer Fehler, wie Systemabstürzen oder Datenverlust, ist deutsch- und englischsprachiger Notfallsupport per E-Mail, Telefon oder Chat verfügbar.