Hacker News new | ask | show | jobs
by pacuna 4052 days ago
my question is, what happen is eventually some tools can be useful for overcoming the complexity introduced by microservices (e.g. CoreOS, docker, kubernetes, Netflix OS technology, etc), what could be the argument for not using them instead big monoliths?
2 comments

Well, for example kubernetes/coreos create their own complexities, of which docker is only part (you can even roll your own, but this takes time/effort), that doesn't even handle CI/CD parts, or manual intervention steps. There's operations overhead for these solutions.

If you are a mid/large sized organization it becomes easier to take different approaches... if your single ops guy on a 5-man dev+ops team is overwelmed, and your other main ops person is tied up with coding/architecture then even flushing out such a system is difficult. We're using wildcard DNS to make routing from nginx more straight forward, and deploying each service to 3 dokku-alt servers... which is easier than some of the dynamic provisioning and other pieces behind say coreos/kubernetes.

For that matter, we're keeping our semi-microservices in check, only having a few of them for user-accessed data, and a handful of others for handling work queues.

Those tools already exist -- platforms as a service. Heroku pioneered them and you can get on-premise installations of Cloud Foundry or OpenShift to play along at home.

I've worked on Cloud Foundry and basically it makes deployment a non-issue. Here's how you deploy the service:

    cf push the-microservice
And if you need 100 copies:

    cf scale the-microservice -i 100
Or maybe 2 copies with more RAM:

    cf scale the-microservice -m 4G -i 2
Need to update it?

    cf push the-microservice
You see where I'm going here.

I know it's fun to play Dr Frankenstein and hand-roll your own devops system. I've seen systems built out of 3 layers of Jenkins servers, two running Puppet, emitting timestamped RPMs played on fresh VM images. I've seen people use rsync, I've seen them use git, I've seen all manner of clever hacks and they all have the same problem.

You marry this system of deployment and upkeep and now you own it. Forever. By yourself. Then the genius who wrote it leaves, and you're stuck with a system literally nobody else uses.

There's no advantage to writing your own PaaS. Just use one off the shelf.

yeah but I would prefer to work and learn that system rather than a giant monolith that nobody understand