5 ms·
I came to ask the same thing. We use docker-compose to describe all our services which works fine.
by yeswecatan 2y ago
I came to ask the same thing. We use docker-compose to describe all our services which works fine.
- JasonSage 2y agoThis does not scale to a large number of services with a certain amount of RAM/processing per service.
- aidos 2y agoYou could still run the proxy they have that lazy boots services - that’s a nice optimisation. I don’t think that many places are in a position where the machines would struggle. They didn’t mention that in the article as a concern - just that they struggled to keep environments consistent (brew install implies some are running on osx etc).
- sulam 2y agoI think it’s safe to assume that for something with the scale and complexity of Stripe, it would be a tall order to run all the necessary services on your laptop, even stubs of them. They may not even do that on the dev boxes, I’d be a little surprised if they didn’t actually use prod services in some cases, or a canary at any rate, to avoid the hassles of having to maintain on-call for what is essentially a test environment.
- aidos 2y agoI don’t know that’s safe to assume. Maybe it is an issue but it was not one of the issues they talk about in the article and not one of the design goals of the system. They have the proxy / lazy start system exactly so they can limit the services running. That suggests to me that they don’t end up needing them all the time to get things done.
- recroad 2y agoIf you have 100 services in your org, I don't have to have 100 running at the same time in your local dev machine. I only run the 5 I need for the feature I'm working on.
- Daishiman 2y agoI've been on this path and as soon as you work on a couple of concurrent branches you end up having 20 containers in your machine and setting these up to run successfully ends up being its own special PITA.
- layer8 2y agoWhat exactly are the problems created by having a larger number of containers? Since you’re mentioning branches, these presumably don’t have to all run concurrently, i.e, you’re not talking about resource limitations.
- Daishiman 2y agoLarge features can require changing protocols or altering schemas in multiple services. Different workflows can require different services, etc. Keep track of different service versions in a couple branchs (not unusual IMO) and it just becomes messy.
- layer8 2y agoWhat does this have to do with running locally vs. on a dev server? You have to properly manage versions in any case.
- adamdecaf 2y agoWe have 100 Go services (with redpanda) and a few databases in docker-compose on dev laptops. It works well when and we buy the biggest memory MacBooks available. https://moov.io/blog/education/moovs-approach-to-setup-and-testing/ https://moov.io/blog/education/moovs-approach-to-setup-and-t...