4

What is the standard/convention for Nomad orchestration in the context of environments/deploy-stage, do people generally have a Nomad cluster per environment, or do all environments share a cluster? Other than the cost implications, what are the pros and cons to both methods?

Daniel Mann
  • 57,011
  • 13
  • 100
  • 120
gerard
  • 43
  • 5

1 Answers1

3

I think you will find in most of these situation there is no convention, it really depends on the outcome you are trying to get to.

The benefits of having a larger cluster running multiple environments is that you can get more out of less - i.e run less hardware as you can share it across multiple services in the same cluster.

The benefits of having seperate clusters for seperate environments is that you have a smaller blast zone/radius, your production environment is not sitting along side your development so when someone accidentally breaks something in development environment it doesn't effect your production environment. As well as this it gives you an upgrade path i.e you can try upgrade your Nomad cluster in development first rather then doing it on the production cluster.

I think it makes sense to take a balanced approach:

  • 1 Cluster for Testing Environments - Even if you have multiple
  • 1 Cluster for Integration Environments - Even if you have multiple
  • 1 Cluster for Production Environments - Even if you have multiple

This is a really good read on a high profile application crashing due to the single cluster approach: https://www.theregister.co.uk/2017/10/31/kubernetes_bug_bank_app_monzo/

Jesse Whitham
  • 824
  • 9
  • 32