News for hackers. Stuff that matters.
Re:The sad state of web app deployment by wpietri on Thursday September 17, 2015 @11:55PM (#10237395)
As another old-school type, I really enjoy this rant. And my understanding is that the piece of software in question is a nest of snakes, so I can well believe that there is no good way to install it, only bad ways and worse ways.

But having tried out Docker for some production deployments, I think that it (or some less goofy successor) is the way forward. You get a sealed box with all the necessary dependencies, and the box has just enough holes poked in it that you can connect up the bits you care about. It turns apps into appliances, not things you need expert craftspeople to lovingly install.

As much as I have enjoyed 25 years of doing everything on an OS whose conceptual model is a 70s university department minicomputer, this era is coming to a close. We already know it's a poor match for existing hardware and use cases because we now mostly run it in virtual servers. But "virtual server" is the new "horseless carriage". It's a phrase that tells us we are living in a future we don't yet fully understand.

Re:The sad state of web app deployment by csirac2 on Friday September 18, 2015 @02:46AM (#10237812)
I love Docker; it's solved a lot of problems for me. But this article highlights the laziness that it can enable: there has to be a middle ground between traditional package management and all of the curation/QA that goes into getting stable releases out to multiple distributions, versus chucking shit over the wall into a git repo with a Dockerfile and calling it done.

It's a better, more isolated mess - but for anyone trying to enforce configuration policy into all of the running services in their environment, untangling gortesquely basic shit like not granting superuser privs on a database to your webapps - which would never fly in a traditional distro package - becomes even more work than the old source tarballs with INSTALL.txt.

Re:The sad state of web app deployment by jahnu on Friday September 18, 2015 @04:07AM (#10238022)
> the laziness that it can enable

This is the entire value proposition of all successful technology. Dubious business practices notwithstanding, all successful yet imperfect technology is successful because more people found it let them be lazier than the competition. But in reality of course it's not laziness, it's efficiency. They can get on with other tasks sooner than before.

Re:The sad state of web app deployment by csirac2 on Friday September 18, 2015 @04:12AM (#10238034)
> But in reality of course it's not laziness, it's efficiency. They can get on with other tasks sooner than before.

Indeed, and I use Docker myself to improve my own efficiency, and I've seen great stuff built with Docker that has been architected well.

However, it is painfully obvious that without the pressures that used to force most developers to keep their shit sane, there's now more workload for serious users that actually need to untangle this mess in order to support, secure and get stuff deployed.

Re:The sad state of web app deployment by ownagefool on Friday September 18, 2015 @03:26AM (#10237911)
Very few of the problems described are actually docker issues besides the security concern which is described here is that you're a) already on the host and b) have permission to start docker containers, which c) allows you to root the host.

The other security issue mentioned, piping curl into sh isn't really that big a deal. As long as you're a) using HTTPS and b) you resonably trust the source you were probably never going to read the script anyways.

Re:The sad state of web app deployment by csirac2 on Friday September 18, 2015 @04:05AM (#10238010)
Well yes, the fact they chose to require that the webapp have a superuser database account is not docker-specific, but the manner (and it should be said: ease) with which docker is used to neatly package an opaque ball of string creates a trend of ever more difficult-to-untangle software making it way harder than it should be to properly deploy apps conforming to your environment's security, config management standards.

I mean, when I first evaluated this app, it didn't even have a sane launcher script. Instead, ~15 lines of ruby config and a ruby script that I had to follow just to discover it was a weird, idiosyncratic way of executing "docker run".

Edit: I am not saying that Docker is somehow inherently flawed in this respect. It's solved a lot of problems for me and you can build great, well-architected stuff with it. But there is a trend to use it to wallpaper over poor development and deployment practices.

Re:The sad state of web app deployment by ownagefool on Friday September 18, 2015 @09:58AM (#10239202)
All that stuff could probably be done with apt, yum, dnf or any other package manager though. The reason they're better is because you have some fairly skilled contributors acting as the gatekeeper of the projects.

Now the nice thing about docker is you could have spent about 5 minutes to trivially docker run the app, decide if it's actually worth the effort, then untangle the mess beneath.

That's a net win in my eyes, though by the time I actually run something in production, I generally try and untangle the mess before I do. I also find it's easier to get help developers deliver something legible as sadly many of them often don't even know which packages they installed to get something running.

Listen, I'm not saying it's perfect. I specifically really don't like that Docker is basically root without Selinux (which is often turned off). I'm happy to see docker be replaced. I am however, not really interested in returning to puppet modules to handle dependencies when a container is, in my opinion, so much better.

Re:The sad state of web app deployment by wpietri on Friday September 18, 2015 @10:40AM (#10239440)
Could you say more about this? I agree the app described is a mess. If a database is a shared resource, I think it's important for a single app not to have massive privileges in the database. But if the database is also containerized, then I'd rather the app just have its own isolated database. So it seems to me that problem is that the app has been only partly containerized, not fully. Would that approach solve your concerns just as well?
Re:The sad state of web app deployment by ihsw on Friday September 18, 2015 @12:42AM (#10237497)
I cannot agree more, and this is coming from a young whipper-snapper that tries to stay on the leading edge of technology.

There's a vast tectonic shift occurring and it couldn't come sooner -- "tinkering" with an increasingly complex environment of microservices, message queues, RPC servers, databases, caches, and so forth is headache-inducing and everybody knows it, as it detracts from actual application development.

I like the nest of snakes analogy, it's quite accurate. The twelve-factor application architecture[1] is here and many are moving towards it in one way or another, be it simply starting out writing unit tests or refactoring large applications into something easier to grok.

http://12factor.net/

Re:The sad state of web app deployment by nicklaf on Friday September 18, 2015 @12:41AM (#10237492)
As much as I have enjoyed 25 years of doing everything on an OS whose conceptual model is a 70s university department minicomputer, this era is coming to a close. We already know it's a poor match for existing hardware and use cases because we now mostly run it in virtual servers. But "virtual server" is the new "horseless carriage". It's a phrase that tells us we are living in a future we don't yet fully understand.

https://mirage.io/

You'll need to learn OCaml (though in my mind, that's actually a major plus).

Caveat emptor: AFAIK, MirageOS is still undergoing heavy development. That said, I believe it is essentially functional at this point (pun not intended).

Re:The sad state of web app deployment by nulltype on Friday September 18, 2015 @03:24AM (#10237903)
OSv seems like the much more practical alternative. That being said I suspect we will just be using more and more stripped down linuxes and containers for quite some time.
Re:The sad state of web app deployment by techdragon on Friday September 18, 2015 @06:48AM (#10238421)
I honestly think the "gnu/linux operating system" model is in its final phase of life.

Kernel ABI stability has brought forth options like running docker containers on FreeBSD and Solaris/Illumos/SmartOS Standardised workflows around "containers" are breaking down the need to care what your container is on the inside. Imagine running statically compiled Go binaries that have been compiled against s CloudABI tool chain deployed to CloudABI native hosting with maximum flexibility.

I've got a notebook full of details about "Linux compatible" system designs. Throwing away the Linux kernel for fun and profit! It's closer than you think.

Re:The sad state of web app deployment by nicklaf on Friday September 18, 2015 @04:34AM (#10238102)
Interesting; I had not heard of OSv, thanks.

I am still hoping that something as radical as MirageOS will eventually take off, since we really seem to need it--at the very least, from a security perspective, if not a complexity one. Just by dumping C and Unix, and using a memory-safe language (such as OCaml) instead, we eliminate an entire class of exploits.

I will readily admit, though, that trying to force the entire world to use OCaml will surely be the fastest way to fail at this goal. Perhaps aggressively sandboxing is an adequate alternative, which would allow people to write code in environments sitting on stacks containing code from unsafe languages, without single exploits leading to entire system compromise.

Re:The sad state of web app deployment by pjmlp on Friday September 18, 2015 @06:34AM (#10238378)
Yup, yet another band aid to cover for a wrong turn in the late 70's.
Re:The sad state of web app deployment by ajsharp on Friday September 18, 2015 @02:17AM (#10237734)
The problem with docker is that it's Yet Another Tool you have to learn how to install, configure and use. Once you grok what it's doing, how to install it, how to run it on OS X, etc, it's powerful, but being forced to learn a new tool to install another, is a bit of a yak shave, and quite frustrating.
Re:The sad state of web app deployment by wpietri on Friday September 18, 2015 @10:32AM (#10239390)
Yeah, from the point of view of a 70s university department minicomputer, Docker is another tool. A rapidly evolving one, one that has focused on developer adoption over other concerns. If you're using it to install just one thing on a server where you've installed many other things the old way, it's a pain.

When it gets interesting is when you invert the relationship, where you have multiple apps in Docker. Then the main server starts to look quite simple and bare, much easier to maintain. And then things like ECS start to make sense:

https://aws.amazon.com/ecs/

At that point, the OS becomes irrelevant except as a host for containers.

Re:The sad state of web app deployment by tgaqw on Friday September 18, 2015 @01:56PM (#10240871)
The os should already be an irrelevant host for processes, if developers stopped with this dynamic linking and spreading files and configuration all over the os, instead of a simple contained directory with all it's dependencies and configuration except for the kernel. Like we did in the good old DOS days.
Re:The sad state of web app deployment by archimedespi on Friday September 18, 2015 @01:15AM (#10237577)
I heartily agree with a successor to Docker being the way forward - Docker is large and embroiled in lots of "ooh cool look at this shiny thing".
Re:The sad state of web app deployment by isido on Friday September 18, 2015 @01:47AM (#10237671)
What are the main gripes against Docker? Security is one that I hear a lot, but is a bunch of Docker containers somehow inherently more insecure than running the same apps on the same host?

Docker seems to be moving forward really fast and gets a lot of hype which tend to make my old-school sysadmin self a bit suspicious, but I'd love to hear critique that is based on the actual usage. (N.B. I'm just about to start making my first Docker deployment)

Re:The sad state of web app deployment by dikaiosune on Friday September 18, 2015 @02:06AM (#10237713)
I really love Docker, but I think there a few areas where I'm not a fan. For one, if I'm using Docker on a production machine, I make sure that machine is only for Docker containers. There have been a bunch of ways to escalate privileges to the broader machine, so it doesn't seem (to me) to be a great idea to run Docker alongside other more traditionally deployed apps on the same machine. Part of that is philosophical though and I think the use cases where Docker shines dictate that it owns the box.

Many people aren't ready to further abstract away from bare metal by adding a container layer for process management on top of the operating system which may be running inside a hypervisor. And there are situations where that's problematic. So it's not a great fit there either.

Re:The sad state of web app deployment by drcongo on Friday September 18, 2015 @06:10AM (#10238318)
Your last two sentences there are superb.
Re:The sad state of web app deployment by wpietri on Friday September 18, 2015 @12:04AM (#10237424)
Huh. Why the downvotes?
Re:The sad state of web app deployment by nulltype on Friday September 18, 2015 @02:18AM (#10237737)
It was a really good comment, I assume there are just a lot of haters around these days.
Re:The sad state of web app deployment by wpietri on Friday September 18, 2015 @11:11AM (#10239623)
No idea. After I wrote the comment it dropped pretty much instantly to -1, which is why I asked. Coming back this morning, the main comment is way up, but asking about the downvotes is at -4. Odd.