Choosing the minimal server setup in production

The cloud is the preferred infrastructure choice in many industries. There are already countless articles showcasing its benefits. However, when you setting up your infrastructure on cloud or migrating from a PaaS, developers often ask about the requirements for the minimal servers setup for the application in production? As with any good question the answer is: it depends. It depends on your application type, size and its components.

For production environments we recommend putting each component of your application on separate servers. This protects your application from possible downtime, as some of the application components ( e.g. Elasticsearch) can be extremely resource hungry and can compromise other components if they share the same server. Additionally, this setup gives developers more control as they can scale each components separately. Essentially, this practice makes your application more reliable and secure, as it makes it easier to recover in case something goes wrong with one of the components.

As for the size of the server, it is difficult to give a one answer as it depends on your application, and the cloud provider you have selected. Although most cloud providers offer servers with the minimum specs required to run Ubuntu, we do not recommend using these, even for testing. We recommend the following minimum specs for any virtual machine being used to host an application or one of its components (such as a database):

  • At least 2GB of RAM
  • At least 4 vCPUs
  • At least 25GB of storage

To get a better estimation we would recommend to install a 3rd party metrics tool, e.g. DataDog, NewRelic, Prometheus etc. Those tools can help you keep track metrics and help you select the optimal server size for each component of your application.

Lastly, for a backup stack, it’s acceptable to have a single server to cut costs.

Originally published at https://blog.cloud66.com on April 22, 2020.

--

--

--

DevOps-as-a-Service to help developers build, deploy and maintain apps on any Cloud. Sign-up for a free trial by visting: www.cloud66.com

Love podcasts or audiobooks? Learn on the go with our new app.

Recommended from Medium

Migrating to ETH-MEN 2.0

Get your code to Github

By-products of Process Mining | BPMN skeleton

A draft BPMN model, including only the configured activities, without sequence flows

The best irrigation programmer

Coda on Coda — Working with Engineering

Building and scaling different travel websites with one codebase

Microservice Architecture Explained Part-1

How to add new validators to your live (blockchain) testnet?

list of new validators that you are registering

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Cloud 66

Cloud 66

DevOps-as-a-Service to help developers build, deploy and maintain apps on any Cloud. Sign-up for a free trial by visting: www.cloud66.com

More from Medium

Avoiding CI/CD dependency conflicts by using Containers

Create a signed local Debian repository on GitLab — Part 1

GitLab — Heroku CI/CD Pipeline in 10 minutes.

Working with Amazon Elastic Container Service