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?
Choosing between ARM and x86 largely depends on your priorities.
Why we recommend ARM
We generally recommend ARM for new deployments due to its significant cost savings and better performance per dollar. ARM-based servers consume less power, leading to lower costs, with potential savings ranging from 30% to 50%. ARM offers excellent software compatibility, generally around 95%, making it suitable for most applications today.
When x86 might be necessary
You might consider x86 if you rely on older or highly specialized software that lacks full ARM support. If your application stack includes niche tools or legacy Docker images exclusively optimized for x86, then using x86 will minimize potential compatibility issues.
ARM vs x86 Comparison
Criteria | ARM | x86 |
---|---|---|
Cost | ✅ Cheaper | ❌ More expensive |
Performance per dollar | ✅ Better | ⚠️ Less efficient |
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.