4 ms·
In my last job, just to run the software on my local machine, I had to launch 6 different microservices running in a containerized, Linux virtualized environmen
by jongjong 1y ago
In my last job, just to run the software on my local machine, I had to launch 6 different microservices running in a containerized, Linux virtualized environment on Windows and had to launch them in a particular order and had to keep each one in a separate console for debugging purposes. It took about 20 minutes to launch the software to be able to test it locally. The launch couldn't be automated easily because each service was using a mix of containers and plain Node.js servers with different versions and it was Windows so I would probably have to write some unfamiliar code for Windows to automate opening all the necessary git bash tabs...
The services usually persisted except for automatic updates so I only had to restart all the services a few times per week so it didn't make sense to invest time to automate.
- bee_rider 1y agoI like that they are containerized microservices, but you have to launch them in a particular order. Hahaha. What a nightmare. Congrats on it being a former job. Move on to better things? Well, unemployment would be preferable.
- vjvjvjvjghv 1y agoI had a discussion with team members and we agreed that we will make our next systems fully deployable with one script or installer. It requires a little more thought and discipline but will result in much cleaner architecture and will also document itself this way.
- jongjong 1y agoCompletely worth it IMO. My philosophy nowadays (on my side projects) is to make every software feel like a complete product that you can run out of the box, batteries included... I also try to support older engine versions to avoid setup issues. If you take care of the developer, the project looks after itself.
- n_ary 1y agoAt the risk of sounding very naïve and making huge guesses, what you describe seems to be what docker-compose solves. Special order of services, launching several containers at once. However, I have seen my fair share of oddities in the trenches where containers are evolution of virtual machines(vagrant) running everything in one vm but now split out into containers without adapting to how containers work, because new tech lead thought vms were uncool and everything must be docker now.
- jongjong 1y agoWe do use docker compose (thank god) but I also need to run a server from source for most of the microservices in order to modify and debug the code. There are around 20 something containers in practice, 6 pods/services. All interdependent and necessary to run the product (it's a legacy codebase 10+ years old, I joined less than 1 year ago and had nothing to do with architecture decisions). Most features touch on at least 3 to 4 repos/microservices all impossible to decouple. The problem is really opening and launching code across 6 bash consoles some of which require an additional manual authentication step with various cloud providers. I need the ability to restart some independently after making code changes. It's just a very complicated system. I'm sure the launch can be fully automated but it's kind of at the edge of not worth automating because of how relatively infrequently I need to restart everything... Also the CEO doesn't like to make time for work which doesn't yield visible features for end users. I actually handed my resignation a month ago, without another job lined up. It became too much haha. Good practice though. Very stressful/annoying.
- branko_d 1y agoI remember, at the turn of the century (was is 2001?) when Microsoft was touting "weak coupling" achievable through "web services" and demoing the support for SOAP in Visual Studio. To me, that was the strangest idea - how could you "decouple" one service from another if it needs to know what to call, and what information to pass and in what format? Distributing the computing - for performance, or redundancy or security or organizational reasons - that I can understand - but "weak coupling" just never made sense to me.
- zelphirkalt 1y agoWas Windows a requirement or your own choice? Asking because I have seen people unwilling to switch to a GNU/Linux VM or boot into GNU/Linux and then forever struggling with their setup, while other people on the team used GNU/Linux or MacOS and didn't have nearly as many problems.
- jongjong 1y agoRequirement. Had to use Azure too. I use Linux at home.
- liendolucas 1y agoTry CUDA in a Docker environment. Yesterday it took all day long to download an Ubuntu image (5.27Gb) and its Python dependencies (another few Gb) to install Pytorch. I've probably wasted 10Gb of bandwidth just to have the environment up and running. Fortunately in the meantime I wrote 90% what I needed to do. Oh I forgot that I still need to download a couple of hugging face models. Nice.