Solidblocks is a collection of components, patterns and best practices to deliver cloud infrastructures and application deployments. With a focus on the Hetzner Cloud as deployment target it leans towards simple and easy to maintain architectures based on battle-tested open source components.
Many components are available as open source components. As an infrastructure specialist, I am happy to provide you with hands on help and support for your application deployment needs, ranging from turnkey ready-to-use solutions to partially or fully managed environments for your applications.
Features
Hosting
Open Source
Host open source solutions like Keycloak, PostgreSQL, GitLab, Grafana, HashiCorp Vault, and many more. Based on common and proven deployment patterns, custom open-source hosting on top of Solidblocks combines a stable hosting solution with the option to taylor the solution to your specific needs.
Custom Applications
From greenfield JVM or .NET Core projects, over Python and Ruby-based solutions, to matured PHP applications. Solidblocks extendability makes it the perfect platform to host your bespoke business applications, or give legacy applications a new life and a stable environment.
Maintenance & Overhaul
Depending on the underlying ecosystem or framework of your application, Solidblocks components, such as Keycloak or Woreguard, can be retrofitted to strengthen the security of your application. This will secure your application, thereby extending its lifetime.
Simplicity
Your Code
You have complete ownership of the code for your solution; there are no proprietary components, you can fork it anytime you want if necessary. Depending on the scope and goal of the solution, pairing and/or co-creating on your code can ensure that the knowledge and the routines necessary to maintain and operate your applications are well distributed.
Your Servers & Data
For managed solutions, all resources can be hosted in your own cloud accounts, ensuring you always have access to all VMs and data. This applies to all services used to build your solution, such as AWS, Hetzner Cloud, Elastic.co, and more. Since you own the accounts, you can take over control at any time.
Virtual Maschines & Servers
Although a full-fledged container orchestration like Kubernetes has its benefits, sometimes a simpler solution based on Virtual Machines (VMs) or even bare metal can be more cost-effective, and easier to handle, maintain, and operate. If available, deploying to on-premise hardware is also an option, to better utilize already existing gear.
Infrastructure as Code
All deployed resources are described and deployed with infrastructure-as-code solutions such as Terraform, OpenTofu, and Ansible. For applications lacking an automation front-end, custom solutions can be implemented and integrated into the deployment lifecycle.
Developer experience
The deployment process is designed for ease of use on developer machines and for integration into common CI/CD systems like GitHub, GitLab, Jenkins, and others. Each solution comes with a developer-friendly build system, facilitating the deployment and interaction with the deployed resources.
Security & Data Safety
Updates
All components like operating systems and software packages are regularly updated. Where applicable, tools like renovate are integrated into the deployment process to ensure everything is always up-to-date.
Encryption
All data stored outside the cloud, such as backups, is encrypted by default to protect against accidental exposure of sensitive information.
Secret Rotation
All secrets and user credentials can be rotated at anytime to mitigate the risk of long-lived credentials that may leak over time. This also allows for a quick deprecation of existing secrets and credentials in case of a leak.
Backups
Encrypted data backups to other clouds like AWS or GCP provide an extra layer of security for your data and reduce the blast radius in case of accidental data deletion or configuration mistakes.
CVE Scans
Automated CVE scans, coupled with an always up-to-date SBOM, make it easy to discover security-critical bugs early on and to mitigate them.
IDP/IAM
IDM solutions like Keycloak can easily be integrated to secure your application or, in combination with Hashicorp Vault, to secure SSH access to your VMs with short-lived secrets.
Deployment Lifecycle
Environments
Multi-environment support is a first-class citizen. It can be used to support your application lifecycle and to provide different test environments.
Bootstrapping
Deletion and bootstrapping of environments is systematically tested to ensure there are no hidden cyclic dependencies in the infrastructure setup. This method also confirms that the code which is only executed during the initial setup continues to function correctly.
Disaster Recovery
Restoring environments from backups is tested regularly and is included in both the playbooks and developer briefings. All components are designed in a way, that the entire environment can be destroyed at any time, and then fully rebuilt from the backups.
Logging & Monitoring
Logs
Logging platforms like Elastic.co can be used to ingest all application and VM logs and help to detect and resolve errors early on. Also haveing central logs can help to and debug bugs.
Metrics
Application and VM metrics can be gathered on analytics platforms, such as Grafana or Elastic.co. These platforms are useful for detecting and visualizing application usage, performance, long-term trends, and can help in sizing decisions.
Tagging
All logs and metrics are tagged with information about the environment, service, version, etc., and are also enriched with events such as deployments. This makes it easy to correlate issues and bugs with different application versions and deployments.
CI/CD
Deployment
The deployment can easily be integrated into all major CI/CD systems or into already existing application build pipelines.
Testing
Infrastructure integration tests in the deployment process ensure that the deployment is successful. They also serve as a canary to warn when parts of the infrastructure or application are broken or in a degraded state.
Documentation & Support
Playbooks
Playbooks are a crucial part of every solution and provide detailed procedures for scenarios like disaster recovery or secret rotation during emergencies. They also provide information for general operation and maintenance.
Fire Drills
Regular exercises ensure that crucial steps that are seldom used still work as intended, and that developers are comfortable with executing them.
Support
In the event of critical errors, such as system crashes or data loss, German and English emergency support is available via email, phone, or chat.