Live data from Hacker News

Ask HN: Docker, Kubernetes, Openshift, etc – how do you deploy your products?

news.ycombinator.com

1–10 of 116 posts

Ask HN: Docker, Kubernetes, Openshift, etc – how do you deploy your products?

#1
I use docker extensively with python backed ansible scripts to manage my product deployments (with a jenkins CI/CD pipeline). That has been a lot of fun, but I have also played with both Kubernetes and Openshift.

I love what Openshift Origin can do, but the learning curve is like a brick wall (See Dwarf Fortress Fun for an example) and the costs are far from minimal.

Kubernetes is easier to learn, but comes with its own gotchas.

What do you do to maintain stable deployments that allow for easy CI/CD? How do you minimize costs with your solution?

Re: Ask HN: Docker, Kubernetes, Openshift, etc – how do you deploy your products?

#2
I've spent a fair amount of time evaluating different solutions through my startup[0] and have found Kubernetes, by far, to come with the least pain. It's not hard to get started with, but also works well as you grow and mature. It makes most of the decisions right from the start and kubectl gives you most of the functionality you need to manage deployments easily.

Also, while I have a vested interest in saying this, you don't always want to solve this yourself. Look at hosted solutions like GCP and CircleCI to make things even more painless.

[0] http://getgandalf.com/

Re: Ask HN: Docker, Kubernetes, Openshift, etc – how do you deploy your products?

#3
I recently(past 6 months) joined a new startup as the operations person, and we standardized on kubernetes for deployment. In the past I've worked with puppet/chef/ansible/heroku/aws/appengine/vmware you name it, and Kubernetes is the nicest and most flexible platform to build on top.

There's a learning curve, and new features are being added, but at this point I would not hesitate to recommend Kubernetes to just about anyone.

CI: We standardize on CircleCI and it gets the job done, but has some serious shortcomings. I've also come close to building my own on top of the k8s cluster and it's not the correct time investment for me right now, but I'd consider building my own in the future. I've yet to find a CI framework I really like.

Re: Ask HN: Docker, Kubernetes, Openshift, etc – how do you deploy your products?

#4
I used to use Marathon on Mesos for deploying Docker containers, and orchestrated it via a hacked together Jenkins cluster, which worked well but took a lot of configuration and was somewhat brittle.

I moved to Kubernetes about 6 months ago and have been really enjoying it. My first production cluster was hand rolled on AWS, where I found the cloud-provider load balancer integrations extremely helpful (https://kubernetes.io/docs/user-guide/load-balancer/).

I'm now using Google Container Engine which is effectively just a hosted Kubernetes cluster on GCP, which has really been 0 effort setup, and have been deploying to it with Wercker (http://www.wercker.com) [Disclaimer: I currently work at Wercker as of the last few months, but was a fan/user for many years before joining]

One thing I noticed across Openshift, Mesos, and Kubernetes: none of them handle the Docker daemon on a node hanging particularly well, which in my experience happens fairly often.

Re: Ask HN: Docker, Kubernetes, Openshift, etc – how do you deploy your products?

#5
I'm currently on an all-docker pipeline but I resent it. It's slow, tedious and everybody's trying to use docker against its design (everybody tries to make images with as few layers as possible, I think docker should just do away with the layers altogether). It also makes it harder than it should be to make an image that works both for local development and deployment at the same time. Also, docker-compose is riddled with fairly old but important bugs (for instance, Dockerignore files are ignored by docker-compose's build).

I'd much prefer doing simple bare-metal deployments again.

Re: Ask HN: Docker, Kubernetes, Openshift, etc – how do you deploy your products?

#7
post #3

I recently(past 6 months) joined a new startup as the operations person, and we standardized on kubernetes for deployment. In the past I've worked with puppet/chef/ansible/heroku/aws/appengine/vmware you name it, and Kubernetes is the nicest and most flexible platform to build on top. There's a learning curve, and new features are being added, but at this point I would not hesitate to recommend Kubernetes to just abo…

Have you had a proper look at Gitlab CI? It know, it's hard to make that sound credible with all that's going on with Gitlab right now but I found their CI to be the best around and you can even use your own machines to run stuff on.

Re: Ask HN: Docker, Kubernetes, Openshift, etc – how do you deploy your products?

#8
Custom wrapper around Amazon ECS. We need more fine grained control over the instances to support encryption, secret injection, log aggregation, and so forth than other frameworks provide.

> How do you minimize costs with your solution?

Autoscaling groups triggered off of "cluster capacity".

Re: Ask HN: Docker, Kubernetes, Openshift, etc – how do you deploy your products?

#9
I've been working on creating a platform for a non profit to get veterans coding (http://operationcode.org/). We're a slack based community and have been rolling out some home grown slack bots and we currently have a rails app hosted on heroku. Managing and keeping track of the different apps was getting unwieldy so in an effort to consolidate our apps and reduce costs I evaluated a few different options. I ended up going with rancher and after working with it a bit I'm pretty happy.

I have github hooked up to travis. When a new PR (or commit) is pushed travis shoves the app into its container, and runs the test suite inside the container.

If that passes AND the branch is master we push the image to docker hub. As of now we manually update the app inside of rancher but I think automating that will be a simple API call. Once we get more stable I'll be investigating that.

I still haven't quite figured out secret management but outside of that and a tiny learning curve it's been pretty smooth sailing.

An example travis config: https://github.com/OperationCode/operationcode_bot/blob/mast...

Re: Ask HN: Docker, Kubernetes, Openshift, etc – how do you deploy your products?

#10
I use Convox (http://www.convox.com). It is backed by ECS which gets me out of the infrastructure game for the most part and the CLI interactions in Convox are similar to heroku style commands so the learning curve is much simpler than deploying and learning my own Kubernetes or OpenStack or ECS configurations. They've also thought of the other things you need like environment based secrets(uses DynamoDB and KMS behind the scenes), as well as external load balancing, TLS, RDS integrations and more with single simple commands.

They also have CI/CD out of the box and builds can be triggered in your existing cluster with a 'convox build' or triggered on pushes to your private github repos.

Overall, unless you have a team that actually sees benefit in managing your own container and cluster manager(you better be big), id recommend embracing Convox, or something like it. The complexity still exposed by Kubernetes, OpenStack or ECS is still significant.

Post reply on HN