Hi folks! I was wondering if you are conducting a ...
# general
s
Hi folks! I was wondering if you are conducting a review of new services to ensure that the app is production-ready before moving it into production. If so, how do you manage the process? We don’t currently have a process in place, so I’m curious how others handle it
a
The best I’ve worked with in having duplicate environments for dev, test, preprod, and prod. You probably don’t want real data in dev and test and you probably don’t want everyone having access to preprod and prod. You can test everything but data in test and then you can test data in preprod (but don’t take things down if something messes up and can test things like ddl’s). You manage this with pipelines that are as much code (IaC) as possible and an artifact repo (artifactory or nexus etc) for things that aren’t. You also have some type of release number system and a way of matching that to hashes in repos (and artifacts) with release dates and have some preferred release cadence (because if you don’t deploy for a month, changes will build up, know how gets fuzzy, and people get scared and don’t want to break something that’s working).
If you do this, you can also manage elevating updates through environments through a number of sign off mechanisms: git tags with xmime or gpg signatures, Jenkins pipelines with a deployment manager who has permission to a pipeline and can check a box saying it’s ok to move on, etc