Live data from Hacker News

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

news.ycombinator.com

21–30 of 116 posts

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

#21
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.

Yes, out of all solutions I'm most excited about GitlabCI and Drone.io

I've worked with a self hosted Gitlab instance before and that was nice, but I'm not quite sure how well the Gitlab CI would integrate when the code is on github.

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

#22
We are evaluating Openshift Origin on an existing OpenStack on-premise cloud. So far I have been playing around with the oc cluster up deployment on a local workstation and it works fine but I haven't played around with the CI/CD option (they support jenkins deployments, etc). From the docs I see that there is a bit of complexity regarding the security constraints and integration of volumes that I need to wrap my head around.

I also attended the DevConf.cz and saw a lot of presentations regarding Openshift. They have most of the talks on youtube (https://www.youtube.com/channel/UCmYAQDZIQGm_kPvemBc_qwg) in case somebody is interested

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

#23
I'm working for a startup right now. We're using Kubernetes via GKE on Google Cloud.

Back in 2015, I implemented a Kubernetes by hand in AWS. I'm not going to do something like that again. GKE is fairly painless and it has most of the sensible defaults that I want. Networking just works -- pods can talk to each other as well as to any VM instances from any availability zone and region. Integrating with GCP service accounts just works. Spinning up experimental clusters is easy, as is horizontally scaling the clusters. One gotcha is that Google has not made K8S 1.5 generally available in all regions or availability zones. Otherwise, upgrades are pretty easy.

I have deployed with Docker Compose (not doing that again -- it is easier to use shell scripts). I have deployed with AWS ECS service (not doing that again; it does not have the concept of pods which severely constrains how you deploy). I used to deploy with Chef. I've heard of Chef's Habitat, but have not played with it.

Back for the 2015 project, I wrote Matsuri as a framework to manage the different Kubernetes templates. It's useful if you know Ruby. It uses idiomatic Ruby to generate and manage K8S specifications, and run kubectl commands. I wanted a single tool that could work with all the different environments (production, staging, etc.) as well as manage the dev environment. For example, if I want to diff my version-controlled spec on dev with what Kubernetes master currently has, I would use `bin/dev diff pod myapp`. If I want to diff the deployment resource by the same name, I would use `bin/production diff deployment myapp`. I can write hooks specific to the app. For example, `bin/production console mongodb` uses hooks to query Kubernetes to find a pod to attach to, determine the current Mongodb master, and invoke the command to go directly into the Mongodb shell. But I could have invoked `bin/staging console mongodb` or `bin/dev console mongodb`. I could do this because I have been developing software for a long time and I have enough ops experience to be able to put it all together. YMMV.

We're using Go.cd for the CD. I could have used Jenkins, but decided to give Go.cd a try. Go.cd has some advantages (such as much better topologies and tracking value streams) though there are also things it does not do as well as Jenkins (Go.cd auth mechanisms blow, and I had to write my own custom proxy to get Github hooks working more securely and reliably). Setting up GCP service accounts so that go.cd agents can deploy was a lot easier than I thought, once I read through the GCP docs. (Much easier than AWS).

Docker containers are still difficult to make. You want to vet things before using them. Handling this stuff is still going to be a full-time job for someone, both in terms of designing the infrastructure as well as the development tools. There are a lot of issues that come up because dev might throw things over the wall that might impact the overall reliability and performance of the system.

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

#24
We use Dokku (https://github.com/dokku/dokku) in production using it's tag:deploy feature to manage all of our containers (apps in Dokku). We've fully automated it that we no longer interact directly with the individual instances. Pushes to master kick of builds that create docker hub images, then a deployment is triggered on the production machines.

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

#26
post #14

Openshift is essentially Kubernetes + Redhat Extensions + Redhat Support I use Gitlab CI and helm[1] for deploying. The last step of the ci process checks out the helm chart which is just another git repo and executes a helm install/upgrade CHART-NAME. Making things accessible is done through kubernetes ingress with nginx[2](which includes getting let's encrypt automatically for all external endpoints) so when I want…

OpenShift Origin is the open source project. There's no licensing costs unless you want Red Hat support.

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

#27
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…

Well that's exciting. I've been pushing towards Kubernetes with the company I'm at right now, got half the battle done by dockerizing our services and using Harbor to manage the containers.

Do you have any advice, or gotchas on getting into kubernetes development?

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

#28
We're heavily invested in Azure and their ARM system (Azure Resource Manager). Our entire infrastructure is code as ARM Templates which we deploy to dev / test / production. There's no discrepancies between environments. Our entire application is then deployed on top. Everything is done through VSTS (Visual Studio Team Services). We're very happy with it, very flexible and we have a very stable platform because of it.

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

#29
At Schezzle (https://schezzle.com) we use docker swarm on AWS.

The build jobs creates images that are published to ECS repositories, and there are auto scaling groups that add and remove engine hosts to and from ALB target groups for each deployed service. It makes service discovery, scaling, etc. really easy.

Definitely try swarm out if you haven't already. 1.12 was good, 1.13 is amazing (secrets, health-based VIP membership, etc).

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

#30
post #22

We are evaluating Openshift Origin on an existing OpenStack on-premise cloud. So far I have been playing around with the oc cluster up deployment on a local workstation and it works fine but I haven't played around with the CI/CD option (they support jenkins deployments, etc). From the docs I see that there is a bit of complexity regarding the security constraints and integration of volumes that I need to wrap my hea…

My big issue was getting multi-node deployments working well in AWS. I hit walls of configuration issues, DNS issues, poor documentation on fields, and generally could not make much forward progress. Running locally or on a single node OpenShift was fantastic, the haproxies for ingress were easy to configure and launching new services was impressively easy.

I was leveraging EFS as NFS mounts for my persistent volumes and had good results.

You might check out fabric8 if only for their visualizations of what is going on in your openshift / kubernetes environment.

Thanks for the youtube link! I'll be sure to check it out

Post reply on HN