Understanding Server Architecture
When choosing a server for your Blossom deployment, understanding CPU architecture is crucial. The two primary types are ARM and x86. Your operating system, software, and packages are compiled into different binary code based on the CPU architecture. This means that components like system packages, libraries, and Docker images must match or support the server’s CPU architecture.
Blossom’s Building Process
Blossom builds a Docker image of your app. If your server is ARM, the Docker image will be compiled to be ARM-compatible. Similarly, if your server is x86, the Docker image will be compiled for x86.
Blossom builds for a single architecture instead of multi-architecture. The Docker image matches the server’s architecture. This approach significantly speeds up the build process (up to 10x faster) because multi-architecture builds require Docker to emulate the non-native architecture, which is extremely slow. Therefore, it is essential that all servers in your cluster use the same architecture.
What architecture to use?
Choose the lowest-priced option from your cloud provider. Blossom supports both ARM and x86 architectures equally well. Pricing will vary by cloud provider and change over time. Sometimes ARM is lower priced and sometimes its x86 due to supply and demand.
Considerations for your choice
When comparing options at similar price points, keep these factors in mind:
- Software compatibility: Both ARM and x86 have excellent compatibility for most modern applications. ARM compatibility has reached 90-95% for typical workloads.
- Specialized software: If you rely on older or highly specialized software, verify it supports your chosen architecture. Some niche tools or legacy Docker images may have better x86 support.
- Price trends: Check current pricing at your preferred cloud provider, as the cost advantage between architectures can shift over time.
ARM vs x86 Comparison
| Criteria | ARM | x86 |
|---|---|---|
| Cost | ⚠️ Varies by provider | ⚠️ Varies by provider |
| Performance per dollar | ⚠️ Depends on pricing | ⚠️ Depends on pricing |
| Software Compatibility | ⚠️ Generally good (90-95%) | ✅ Excellent (100% compatible) |
| Ecosystem Momentum | ✅ Rapidly growing | ⚠️ Plateauing |
| Risk of Support Issues | ⚠️ Occasional with niche tools | ✅ Rare |
Setting Default Architecture
You can set a default server architecture for new servers under Account Settings > Default Server Architecture. This streamlines the process of creating new servers by pre-selecting your preferred architecture, so you don’t have to choose it every time.