Live data from Hacker News

Lessons learned from using Docker Swarm mode in production

blog.bugsnag.com

31–40 of 55 posts

Re: Lessons learned from using Docker Swarm mode in production

#31
post #16

While we're on the topic can anyone recommend a system for rolling out (Java) applications across server farms that doesn't use containers? We have a bunch of shell scripts that are pretty horrible. We could containerize, but we dont need that right now.

NixOps?

Re: Lessons learned from using Docker Swarm mode in production

#32
post #5

As long as your willing to re-architect your app so that workers pull web requests from a queue rather than expecting to just... serve traffic normally. Or did I misunderstand that section?

Incorrect - that's what we're running currently but as soon as the routing mesh issues are resolved you can start running apps that listen on ports too

Docker have been copping some flack recently for releasing things that seem rushed and incomplete (the routing mesh being a good example) - doesn't it worry you that you're using a Release Candidate in Production? It seems risky considering their official releases are still pretty buggy.

Re: Lessons learned from using Docker Swarm mode in production

#33
post #16

While we're on the topic can anyone recommend a system for rolling out (Java) applications across server farms that doesn't use containers? We have a bunch of shell scripts that are pretty horrible. We could containerize, but we dont need that right now.

I haven't used it, but Nomad has specific support for Java apps.

From their site: Nomad has extensible support for task drivers, allowing it to run containerized, virtualized, and standalone applications. Users can easily start Docker containers, VMs, or application runtimes like Java.

Re: Lessons learned from using Docker Swarm mode in production

#34

> This might be a wishlist item (since we don’t find ourselves doing it frequently enough to merit an automated solution), but it would be very nice to be able to simply bake a new AMI, the completion of which would trigger a job that could swap out instances one or several at a time, such that we would be able to perform zero-downtime upgrades automatically. This can still be done, but right now it’s by hand. BOSH[0…

I respectfully disagree. When running on AWS you want CloudFormation controlling an AutoScaling Group for this.

OK, for disposable units, it will make sense. I'm less comfortable with entrusting highly stateful services to AWS alone.

As a footnote, BOSH works on AWS, OpenStack, vSphere, Azure, GCP and there are experimental CPIs for RackHD and Photon.

Re: Lessons learned from using Docker Swarm mode in production

#35

Earlier quoted context omitted.

There are plenty of people running Kubernetes on bare-metal. There are a number of resources out there for PXE-booting a Kubernetes cluster on bare-metal. Might be time to take a closer look ;).

Yes, but the instructions that I've found to do so are based on installation via shell scripts, which I'm not comfortable with. I'd like to understand it well before running it even in a test setup.

CoreOS has some pretty comprehensive docs on deploying Kubernetes on bare metal:

https://coreos.com/kubernetes/docs/latest/kubernetes-on-bare...

Re: Lessons learned from using Docker Swarm mode in production

#37

Earlier quoted context omitted.

I haven't used it, but Nomad has specific support for Java apps.

From their site: Nomad has extensible support for task drivers, allowing it to run containerized, virtualized, and standalone applications. Users can easily start Docker containers, VMs, or application runtimes like Java.

The Java driver is documented here: https://www.nomadproject.io/docs/drivers/java.html

Re: Lessons learned from using Docker Swarm mode in production

#38
I am kind of surprised with negativity about Docker and Swarm. Both of them but UX first and technology second. This is the correct approach to get adoption (and also the reason why they are popular). Getting started with Docker and Swarm is really really simple and it's very hard to dislike simple things. Compared to that mesos and openstack and other tech stacks like that are garaguntan and imo have very bad UX.

Re: Lessons learned from using Docker Swarm mode in production

#39
post #16

While we're on the topic can anyone recommend a system for rolling out (Java) applications across server farms that doesn't use containers? We have a bunch of shell scripts that are pretty horrible. We could containerize, but we dont need that right now.

I know it's counter to your question, but it really is quite trivial to containerise a java app, for example:

  FROM openjdk:8u92-jdk-alpine
  COPY file.jar file.jar

  CMD java -Duser.timezone=UTC -cp file.jar com.foo

and to stay on-topic, you can run java apps in mesos without a docker wrapper :)

Re: Lessons learned from using Docker Swarm mode in production

#40
post #15
post #7

Nothing whose version ends in "-rc4" is used in "production". You're using it in a very hot beta test.

We ran RC4 in production and we're running 1.12.1GA in production right now as well. We have been making money while running this and serving live customer traffic so we consider it production :)

I hope you have a plan for your paying users when it breaks in production.
Post reply on HN