Hasty Briefsbeta

Use One Big Server

10 days ago
  • #server-architecture
  • #cloud-computing
  • #cost-efficiency
  • The debate between monoliths and microservices is really about the cost and complexity of distributed systems versus the simplicity of single-server solutions.
  • Modern servers are incredibly powerful, with specifications like 128 cores, 256 threads, and capabilities such as 4 TFLOPs computing performance, making them suitable for a wide range of high-demand applications.
  • Cost comparisons show that renting or buying a high-performance server can be significantly cheaper than using cloud services, with cloud premiums ranging from 5x to 30x the cost of physical or rented servers.
  • Using a single large server (or a primary and backup) can be sufficient for most web services, even those with high query rates, reducing the complexity and overhead of managing distributed systems.
  • Cloud services offer ease of use and high availability but come with a significant cost premium and potential vendor lock-in, making them less ideal for non-bursty workloads.
  • Vertical scaling (using larger servers) is often more efficient and cost-effective than horizontal scaling (adding more servers), especially when considering the overhead of coordinating distributed systems.
  • Common objections to using a single big server include concerns about availability, security updates, and development speed, but many of these can be mitigated with proper planning and redundancy.
  • For bursty workloads, cloud architectures like serverless computing can be beneficial, but for steady workloads, the cost savings of using fewer, larger servers are substantial.
  • CDNs and other inherently distributed services are exceptions where using a single server isn't feasible, but these can often be purchased as services rather than built in-house.
  • The article concludes that vertical scaling with one big server is a cost-effective, efficient, and reliable approach for many applications, despite not being as trendy as cloud-native architectures.