What should be considered an application in Spinnaker?

242 views Asked by At

We are providing the user with some functionality that are made of a collections of modules. Each module is deployed in its own POD (container). The modules are:

  • User Interface (React + NodeJS BFE) module
  • Backend service (REST API) module
  • Connectors (Tree modules that connect with other external system pulling and pushing events)
  • Database (MongoDB) and queue management software (Kafka / ActiveMQ)

This set should be:

  1. Be configured as only one Application with multiple Clusters?
  2. Be configured as multiple Applications withing one Project?

Thanks for your comments.

2

There are 2 answers

0
The Digital Ninja On

Definitely option 2.

I would consider the front end and backed as different applications. They might have different teams to notify on failures and different deployment windows. Same with your db layer.

Clusters are a good way to manage the different deployment types for any application. Such as a snapshot or dev cluster for developers, stable or staging cluster for qa, and then a prod cluster.

But you also want to have visibility to all of these in one place and that would be the exactly what "Projects" are for. A collection of applications and their collections of clusters.

0
Travis Tomsu On

It's up to you, but I would lean towards option 1 - If each of those services are useful, independent, and complete on their own, then option 2 makes sense (this is an example of a composition vs aggregation argument).