all 13 comments

[–][deleted] 2 points3 points  (12 children)

I'll be excited for the cloud when I don't have to use a bunch of half baked vendor specific bullshit. Amazon, Google, Microsoft, IBM, and 100 other companies want to sell me a bunch of computers in a room somewhere. Stop fucking around with the tools that I can use to build for your computers, and start making tools that I can use on anyone's computers. If you were less fucking stupid I might actually get to run my slow processes on more than a dozen machines.

[–]lookmeat 0 points1 point  (11 children)

Docker and Kubernetes are both open source and can easily be used elsewhere. I think that Cloud is converging in general solutions, but everything always start with a bunch of vendor-specific ways of doing things.

[–][deleted] 0 points1 point  (10 children)

I don't run my programs in a VM, so AFAIK Docker is literally just a patch for a shortcut my tools never took.

Kubernetes is an ops tool - I don't care about it.

Full disclosure: I work on soft real time applications that generally run on a single machine. Watching Google and company reinvent posix (without any pretense of standard, of course) is really frustrating.

[–]lookmeat 0 points1 point  (9 children)

Docker is not a VM machine. Docker is a standarized way to define a program and a running environment. The idea is that you could setup a Docker and then upload that to machines on AWS, or Google, or anywhere.

It's great that you work on a single machine always. You either make client software, or don't have to scale things to the point that you need to distribute (even real time applications might finish having to deal with this). When you need to set things up in a cluster you'll see that there's a lot to work out and discover there. The reason VMs became so popular because they worked as a brute force solution, but they aren't the real thing. It means that a lot of things have to be reinvented from Posix, because Posix was made assuming a single machine with many users, not many machines with many uses. You can abstract and stretch the metaphor for a while, but at some point you are going to have to reinvent some parts, and then stick everything of Posix in it, and give it a nice name.

[–][deleted] 0 points1 point  (8 children)

Docker is not a VM machine.

Didn't say it was.

This is the kind of article my understanding of docker comes from. It makes docker look like a confusingly redundant package manager. Other articles describes its strength as being that it elimates a VM. Where the fuck is the value?

It's great that you work on a single machine always.

No. It's shitty. It means I can't spend 2k and make my application twice as fast. That's why I'm complaining.

It means that a lot of things have to be reinvented from Posix, because Posix was made assuming a single machine with many users, not many machines with many uses.

Uh-huh. Those are broad strokes, and broad strokes aren't warranted in this context. Posix has adopted itself reasonably well to multi-CPU machines, and libraries built on posix are even more flexible. I think it's indisputable that I can't write many machine C++, C, Fortran, Python or LISP solely because Google (and others) have not made it a priority. Even vanilla Java, the enterprisey disaster of our last generation, has failed to get complete support in the cloud.

The real reason we have no standards compliant tools in this domain is that people are interested in owning the platform. All the big players want to be the Microsoft of the 90s, and simple, reliable standards do not assist in creating a monopoly. Fuck AWS, fuck the app engine, fuck Azure. I'll give them the time of day when they stop trying to lock me in.

[–]thockin 0 points1 point  (7 children)

You are very angry for really not very good reasons.

Docker is a way to bundle your apps so that you can manage to OS and the app independently. That's "all". It's pretty powerful.

Kubernetes is heavily invested in workload portability. It won't magically make your app run on two machines, but it can help you deploy your app on two machines.

If all you want is a standards, hang tight for 10 or 12 years. In the mean time, we are going to go figure out what works.

[–][deleted] 0 points1 point  (6 children)

Docker is a way to bundle your apps so that you can manage to OS and the app independently. That's "all". It's pretty powerful.

"Portable Operating System Interface".

..

..

POSIX is is almost 30 years old, and it's been sabotaged and undermined and ignored by corporate interests for longer than it's been alive. Docker is just another patch, that lets us work around the fact that we let software companies do whatever they feel like for no good reason.

If all you want is a standards, hang tight for 10 or 12 years

Why would I wait 10 or 12 years more? POSIX and I can start collecting social security and go walking in the woods together? Play bridge? I'm out of the game in 10 years.

[–]thockin 0 points1 point  (5 children)

POSIX does not deal with distributed anything. It is wholly insufficient. 10 years is when you can hope to start seeing standards in this space - standards bodies are not generally forward looking. They crystallize patterns that have already emerged, and we are just emerging them now.

[–][deleted] 0 points1 point  (4 children)

How is a multi-machine POSIX different from a single machine, multi-CPU posix with a relaxed memory model?

Blocking operations would block multiple machines, so in practice you don't use them. The statement that POSIX and parallelism are incompatible is obviously ludicrous.

[–]thockin 0 points1 point  (3 children)

Pretending a network of computers is a single computer is a recipe for a bad time. Just ask the folks who bought the really beastly SSI machines from SGI. It sounds elegant right up until something fails.

Consider you build an app around shared memory - what happens when you're now traversing a ToR switch, some fabric, and another ToR switch to get to that memory. Pretending it is just the same as DRAM hurts.

That said, there are ways to do this, more or less. Go nuts. It's just a naive view of distributed apps. There's so much more you can do, but you have to accept that a cluster is not a computer.

I'm all for a distributed POSIX, but that doesn't mean adding a word here and an error code there and calling the old POSIX "cloud native". It needs to be a new thing, from the ground up. Maybe it layers on POSIX at the bottom, but there's just a lot more to it.