2

I am building a mobile dating app and plan to leverage google's cloud infrastructure.

I'm trying to figure out whether the entire application should live in a single GCP project or not.

On reading the best practices documentation I can see they advise the following naming convention:

[company tag]-[group tag]-[system name]-[environment (dev, test, uat, stage, prod)]

So should I split all the core components of the application between different projects? For example one for the data science matching algorithm (fizz-ds-matching-dev) and one for the android application? Or should I jam it all in one project?

Looking to follow best practices...

Ollie
  • 624
  • 8
  • 27
  • Forgive my ignorance... You have the recommended practices provided by the manufacturer. Are you asking if you should follow what they tell you to do? – jww Dec 07 '18 at 03:54

1 Answers1

12

You're asking for some heat here. What to call things is probably as confrontational as asking vim or emacs!

As an employee of a large company where I oversee like 50 GCP projects my advice would be pick a naming scheme that lets your i-dont-have-time-for-this-kubernetes-gke-yaml-shit developer/pm/boss man find the project they want in 8 key presses or less.

A scheme which has worked well for me is: org-app-environment which is fairly close to what google recommends. I imagine your ops, so dont try to be clever with your naming scheme. Even though your users are dev, they're still users. If it takes them more than 5 seconds to find their project, they will do whatever the equivalent of an Arab spring is in the software world.

You need to find the nirvana of if the new guy is using this, is it easy to filter and find and is it quick to identify wtf is running there.

I recommend org-app-environment. Drop the org if you only have one, otherwise keep it.

Gods speed ops man.

tazer84
  • 1,743
  • 12
  • 11
  • 4
    This is a good answer. For really small environments, you can just go with `development`, `staging` and `production`. I strongly recommend that you create a separate project for your production workloads. Also use a separate billing account for your production project. – John Hanley Dec 07 '18 at 03:56