Docker, does it have value to you

Just read some criticism https://elixirforum.com/t/what-can-we-do-to-accelerate-the-adoption-of-elixir/2398/120
Just googled: http://www.boycottdocker.org/
What do you think?

2 Likes

For me personally, no.

The only reason I use it is because Discourse does not work without it. I’ve also experienced first hand that it is far from perfect (it lost us around 30 days of posts on MetaRuby because an older container was in ‘limbo’ yet everything appeared to be working fine).

I would not use it for any of my own projects and I can’t really see why anyone would want to use it when a server can handle multiple sites/apps with ease. I can see why software vendors like Discourse would use it as they don’t have to support lots of OS’s, configs etc, but for everyone else, I really do question the value.

Here is a fairly big thread on Docker & Elixir that you might also find of interest:

2 Likes

The strongest case in my eyes for containerizing your Elixir apps is if you must integrate gracefully into a larger ecosystem containing multiple other languages, runtimes, etc. within your org. If you are already shipping other code with Docker, it’s probably a foregone conclusion. If you are greenfield Elixir all the way, it’d be harder to make a strong case for Docker, rkt, etc.

3 Likes

Short answer Nope :slight_smile:
I think networking is a joke
Security is a joke
The whole ecosystem is hype X interested vendor marketing
Was watching black hat conf talk recently on Docker 90% of official packages on the docker hub have security vulnerabilities.

3 Likes

I use it for my blog, and we use it at work. I like that I can neatly separate build-time and run-time dependencies, and manage server setups. I also like that I can get something very similar to production on my dev machine. The ability to start multiple instances of the same image also works nicely for us, allowing each member of the team to have their own private deployment of production on the same server. We could do it without containers, but it’s quite simple with docker run.

I’m personally not much of a fan of elaborate ecosystem around Docker, such as CoreOS or Kubernetes. It feels to me as a quite complex emulation of what Erlang can handle directly.

7 Likes

[quote=“sasajuric, post:5, topic:2513”]
I’m personally not much of a fan of elaborate ecosystem around Docker, such as CoreOS or Kubernetes. It feels to me as a quite complex emulation of what Erlang can handle directly.
[/quote] X 100 :slight_smile: looking at startups wasting resources deploying super elaborate systems around k8s, mesos, terraform is maddening :slight_smile:

4 Likes

I prefer Illumos containers, far better designed.

Docker was not designed for security, it has a lot of security issues consequently, unlike Illumos.

4 Likes

Here are my point on the whole container thing.

Positive :

  • Containers as a virtualisation layer are great. They are the future
  • The ideas of an immutable, compiled in advance ball of software representing the boot state and configuration of a machine is great. This is what an Erlang Release or a Dockerfile is.

Negative :

  • Linux containers are not there yet. Illumos/SmartOS Zones are your best bet right now. Nicely they have a Linux adn dockerfile compatibility, but still not the Linux you know so well.
  • The whole environment of Docker itself is not there at all
  • Stateful Apps are not properly handled either.

So my advice : Dockerfile and containers can make a lot of sense for your Operational side. But not on Docker engine, and not on Linux.

4 Likes

There is also FreeBSD jails which does something similar to SmartOS zones. As with SmartOS zones, jails are properly integrated with the rest of the OS stack.

2 Likes

SmartOS/Illumos zones are actually a later incarnation of BSD Jails that was based on the idea of BSD Jails, specifically instead of just having a kernel shim it actually has entries in the kernel process table itself, that allows processes to have unique networking, unique I/O, unique everything, with the kernel mediating between. It is significantly more advanced and capable. :slight_smile:

4 Likes

Well in practice, there are patches for FreeBSD Jails to bring them up to zones capabilities, but as far as i know, they are not merged upstream yet. In particular some patch for the network stack.

2 Likes

Yeah I heard of those but they also do not segment everything properly and the security is still lacking.

2 Likes

Patches is one thing a huge amount of real world deployments from small to huge over a long period of time plus a very capable team behind the tech are hard to match.

3 Likes

I know. Which explains why SmartOS is more close to the needs. Joyent business is based on it ^^’

3 Likes

So you work under Bryan Cantrill? Lucky you :slight_smile:

2 Likes

I use Docker in my dev environment. Points being:

  1. You dev machine doesn’t need to have dependencies other than Docker
  2. With Docker Compose I can easily grasp what other services (DBs, whatnots) that my app needs.
  3. I use OSX and most likely will need to deploy to Linux servers, so I use containers to build releases.

My first project (a Phoenix API) used Docker for deployment too, simply because the rest of the project was using it (and the ops team asked me to). As I watch and read many materials about Elixir, Erlang, and OTP, I have doubts; seems to me that Erlang/OTP provides many distribution and fault tolerance features that doesn’t play well if we’re using Docker (mainly because, yeah, the networking).

But I think I still wouldn’t dump Docker for my dev env :smile: It’s so cheaper than VMs.

8 Likes

What? Not at all. I work at an European Car manufacturing company that know shit hell about anything that was invented after 2003.

1 Like

Googling “hacker news” docker 2016 does not reveal the most positive news. I’m happy with docker + docker compose for my development environment. But it is good to be informed.

2 Likes

Ooops sorry thought you are working at Joyent based on your post :slight_smile:

I am big fan of docker and all container orchestration. I think that everything is moving forward this directions.
Cloud Native Computing Fundation is growing in strength.

It is not only about Docker now but Open Container Initiave. (This standard is based on docker, there will be alternative runners for containers)

This will be the future for cloud. At current state containers for dev environment are easy but on production are hard.
I hope this will change.

3 Likes