patternMinor
Growing local development environment issues
Viewed 0 times
localissuesenvironmentgrowingdevelopment
Problem
Where I work we've been adding microservices for different purposes and the local development environment is becoming difficult to setup. Services have too many environment variables to configure and usually there's not enough memory avaiable to run them.
We plan to fix these issues. I understand it's a matter of architecture and DevOps mostly. One way we've thought of is to create a proper service registry that allows easier setup and opens the door to, for example, have some services running locally and others in the cloud. All wired together with the service registry.
Another option could be to stub some of the dependencies with something like https://wiremock.org/ but it seems too limited and difficult (?).
I wanted to ask, what other strategies are there to manage growing development environments?
We plan to fix these issues. I understand it's a matter of architecture and DevOps mostly. One way we've thought of is to create a proper service registry that allows easier setup and opens the door to, for example, have some services running locally and others in the cloud. All wired together with the service registry.
Another option could be to stub some of the dependencies with something like https://wiremock.org/ but it seems too limited and difficult (?).
I wanted to ask, what other strategies are there to manage growing development environments?
Solution
There are several options for handling this and they are not exclusive of each other:
I'm also a fan of inventories like service catalogs, but unless the catalog helps you make cloud services available to local devs I don't see how it is going to solve your memory contention issues.
- Giving your developers machines with lots of memory and CPU, and probably GPU, is a quick way to solve problems if you have money to throw at things.
- Use a VPN to let users access resources in the cloud. Hopefully you have some sort of pre-prod (aka staging) environment so they can develop against something that isn't needed by production.
- Shrink your containers. Many folks start with containers that are based on an OS. This will eat lots of memory in production and development spaces. If you can build lighter containers it will save you money on developer machines and cloud resources. There's tons of info on the web about ways to get your container down to what it only needs.
I'm also a fan of inventories like service catalogs, but unless the catalog helps you make cloud services available to local devs I don't see how it is going to solve your memory contention issues.
Context
StackExchange DevOps Q#15663, answer score: 1
Revisions (0)
No revisions yet.