Interested to hear about current setups, and how it works for you.
Ask HN: How do you keep track of releases/deployments of dozens micro-services?
1–10 of 140 posts
Re: Ask HN: How do you keep track of releases/deployments of dozens micro-services?
#2Re: Ask HN: How do you keep track of releases/deployments of dozens micro-services?
#3Re: Ask HN: How do you keep track of releases/deployments of dozens micro-services?
#4To be honest we tried to avoid the monorepo but it was hellish. Maybe if each microservices was larger and our team was larger but then are they microservices any more?
Re: Ask HN: How do you keep track of releases/deployments of dozens micro-services?
#5As it stands, with what I've seen and heard about microservices, I'd say the best way to deal with micro service anything is to use a monolith 90% of the time and for the rest of the time make sure your micro service could stand as it's own SAAS if given enough love.
Not a direct solution to your problem but might be an indirect one.
Re: Ask HN: How do you keep track of releases/deployments of dozens micro-services?
#6We just made all the microservices into one big monorepo and we deploy all at the same time. To be honest we tried to avoid the monorepo but it was hellish. Maybe if each microservices was larger and our team was larger but then are they microservices any more?
Anyway, it sounds like you have a distributed monolith. If you cannot maintain and deploy a microservice independently, it should not be a microservice.
Re: Ask HN: How do you keep track of releases/deployments of dozens micro-services?
#7Re: Ask HN: How do you keep track of releases/deployments of dozens micro-services?
#8 * build code
* run tests (unit + integration using database)
* build docker image
* push to gitlab registry
* deploy to staging k8s environment by using a custom image that just templates a .yml and does `kubectl apply` against the staging cluster
* optional extra "deploy to production" that works in the same way but is triggered with a manual button click in the pipeline.
I don't do canary deploys or anything. Just deploy to staging, and if it works, promote to production.For some projects I have "staging test scripts" which I can run from my devmachine or CI that check some common scenarios. The test scripts are mostly blackbox using an HTTP client to perform a series of requests and assert responses. (signup flow scenario for example)
I would like to move to a monorepo, but I have not yet figured out an easy way to have a separate pipeline for each service that is only triggered when that service has changed.
edit: formatting
Re: Ask HN: How do you keep track of releases/deployments of dozens micro-services?
#9We just made all the microservices into one big monorepo and we deploy all at the same time. To be honest we tried to avoid the monorepo but it was hellish. Maybe if each microservices was larger and our team was larger but then are they microservices any more?
This is comparable to CloudFormation or Terraform in terms of determining whether something is up-to-date, but more general purpose.
Re: Ask HN: How do you keep track of releases/deployments of dozens micro-services?
#10I've been looking at Sentry for this, recently. They have a specific feature for tracking releases (and even relating them to errors vs. commits) which looks very interesting. Haven't tried it yet though.