Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

>monorepo/monolith/microservices/etc" is -just- the way you organize your code.

It’s also about how you deploy your code. If you have 1000 micro services do you have 1000 deployment pipelines? If so how do you manage those pipelines? If not, you sacrifice independent deployment of each micro service.



I don't even think the deployment pipelines are the problem. If you have 1000 microservices you have 2^1000 possible states of your application based on any of those services being up or down (reality is much more complex). It is genuinely hard to keep that number of services up and running so you then need to be extraordinarily diligent about how you handle failures.


If you have that many services you could define a set of generic pipeline versions that you maintain. Then you can tag each service with which type of pipeline to use. The rest is solved with automation.


yes and no. i totally get what you are saying but this problem has been solved lately in my opinion.

Also deployment is part of code organistaion no? i like to point out the fact that i explicitly mentioned you do not need to decide, you can use both at the same time but i would like to try to answer your point anyway:

Maybe I am just spoiled with go and github, but those deployment pipelines can be directly integrated into your repository. The same way I can counter argue that your build ci and deployment phase will take significantly more time too and if you change a variable from uppercase to lowercase you will wait for minutes too.

I come from a c# background a long time ago and this has been true with it for eons: https://xkcd.com/303/

Another thing that I have noticed is that its easily scriptable too. What I end up doing is to provide a makefile into my repository too. This way i can define the build process amongst other things eaisly.

In the end: We have a predefined spec that will create the desired state on a host of our chosing.

Ansible really does not care if you deploy 1 or 1000 "services" for instance! Tools Like ArgoCD will also deploy stuff when you commit to your master.

There is tooling for everyone available, but what happnes quite often is that the people in charge of the company expected the developers to be all knowing entities that need to define everything end to end. The Kubernetes Space is vast because we are still defining and communication its future.

But recently? I am trying to think of something that would not be completly automateable in 2021


> totally get what you are saying but this problem has been solved lately in my opinion.

How? Can you provide any examples?




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: