7 ms·
Show HN: Redspread (YC W16) – CLI to deploy Docker to Kubernetes in one command
- mfburnett 11y agoHey everyone, cofounders of Redspread here, Mackenzie and Dan. We built Spread, our open source command line tool to build and deploy Docker to Kubernetes in one command, to enable rapid iteration with Kubernetes and provide the easiest way to deploy Docker to prod. Our mission is to enable people to own their own deployment processes and infrastructure, and we're very passionate about that (see our philosophy.md). Would love your angry bug reports, feature requests, and feedback!
- jjn2009 11y agorolling updates to services would be nice. running this as a service (possibly deployed on the kubernetes cluster) to facilitate this via web hooks would be amazing.
- mfburnett 11y agoyes, rolling updates are definitely on our roadmap. right now everything is client side - we’re building a light kubernetes workflow - but web hooks are a great idea
- edjboston 11y agoExcuse the self promotion, but if you're interested also check out a UI Docker/K8s deployment tool my team open-sourced earlier in the week. It's opinionated, but it might meet some of your needs: https://makers.airware.com/open-source/vili/ https://makers.airware.com/open-source/vili/
- jjn2009 11y agoThis looks pretty cool, if this does zero down time rolling redeploys from a webhook then this is what I am looking for.
- Shamiq 11y agoCongrats on the launch! Why the choice to build on Kubernetes?
- mfburnett 11y agoHey thanks! So we evaluated a bunch of different orchestrator options when we were first thinking about Redspread, and Kubernetes was opinionated in a way we liked the best. Google's been running containers in production for a decade now, so a lot of their learnings and best practices are baked into Kube. This article does a pretty good job of laying out the pros/cons of different orchestrators: http://code.haleby.se/2016/02/12/why-we-chose-kubernetes/ http://code.haleby.se/2016/02/12/why-we-chose-kubernetes/
- cardigan 11y agocool to see this open source - readme talks about versioning; is that like deployment versioning for kube objects? how is that different than what's coming out in 1.2?
- mfburnett 11y agoSo in 1.2, Deployment API facilitates the transition from state to state for an RC or a pod. This provides a basic form of revision history, but isn't "versioning" - it's more if you could only go back one step. For us, we see the big use case for full deployment versioning when there are multiple kube objects and config files to track. Already this is introducing some complication into developer workflows - ex: I have a bunch of services, rc's, and secrets. They are parameterized by this configuration. Now I've updated the configuration. I want to propagate that configuration to my cluster "with no downtime” - right now there isn't an easy way to do this.
- Edvard 11y agoThis is awesome! Game changer!
- iparikh 11y agoSo what exactly is Kubernetes?
- mfburnett 11y agoHey! Very simply, Kubernetes puts containers on servers. It takes care of a lot of logic around scheduling, networking, health checks (i.e. what happens if a pod goes down). I wrote a blog post that breaks down basic Kube architecture, if you're interested: https://blog.redspread.com/2015/12/31/basic-kubernetes-vocabulary/ https://blog.redspread.com/2015/12/31/basic-kubernetes-vocab... A little history - it's an open source project by Google, modeled after Google's infrastructure (Borg/Omega). Many of the engineers who designed Borg/Omega are chief architects of Kubernetes.
- vikramraja 11y agoBlog post on Kube vocab is really clear and simple.. any other suggestions how to learn/read more?
- mfburnett 11y agoThank you! So I've also compiled a list of K8s resources we found to be the most helpful: https://blog.redspread.com/2016/01/05/most-useful-kubernetes-resources/ https://blog.redspread.com/2016/01/05/most-useful-kubernetes... For example, the Godocs for Kubernetes are always kept up-to-date and are great for jumping around structs.
- fpayer 11y agoGreat to see such a great tool for deployments. Will you be adding support for managing multiple containers in a single deployment and scaling deployments up/down?
- mfburnett 11y agoHey thank you! So right now Spread supports deploying multiple containers in a single deployment. We want to let Kubernetes be Kubernetes as much as possible, so scaling deployments up/down (I assume autoscaling is what you meant!) is actually coming out in 1.2 - with a release date of March 7!
- antcas 11y ago'Redspread' is a very interesting name, is there a story behind it?
- mfburnett 11y agoHah yes - it's easy to spell, it rhymes so it's easy to remember, and we got the .com ;)
- mattmarocks 11y agoCould you tell me the difference between Spread and [Helm](https://github.com/helm/helm https://github.com/helm/helm)? What is the advantage of using spread over helm?
- ethernetdan 11y agoHey! Helm is a package manager like Homebrew or npm while we see ourselves as a versioned workflow similar to git
- jaxgeller 11y agoWhy would I want to have a ctr file separate from my pod or rc?
- mfburnett 11y agoHey! Good question. So we're encouraging a .ctr file because we think container reusability will become really important, especially as more organizations share containers across teams. We're playing around with this idea of embedding different kube objects and containers to construct applications across directories, so setting up directories with .ctr files will make the introduction of that feature pretty easy.
- chews 11y agoHow is this any different than what google provides out of the box? I build a cluster and just deploy a container to a pod.
- mfburnett 11y agoSo we built Spread to be a workflow that improves on the usual `kubectl create -f ...` `kubectl describe services/example` experience by enabling rapid iteration with Kubernetes. Next on the roadmap is building the image and pushing it to a registry along with deploying to Kubernetes in one command. And it runs wherever Kubernetes runs - so you can use it beyond Google.
- sciurus 11y agoFor an argument on why you should build custom workflows on top of Kubernetes instead of using it directly, and how easy that is to do, see http://blog.jonparrott.com/building-a-paas-on-kubernetes/ http://blog.jonparrott.com/building-a-paas-on-kubernetes/
- samfeldman 11y agoWhat is your monetization strategy for this? (being open source)
- mfburnett 11y agoHey! If this workflow we're building is the git for Docker deployment, we'll make money on the GitHub - collaborative deployment tools built on top of this workflow.
- obelanger 11y agoWhat will the tool set that this tool fits frictionlessly into look like?
- mfburnett 11y agoSo right now it's best for two sets of users: 1) those who are looking to deploy Docker to production but don't have any orchestrator set up - Spread makes it really easy to use Kubernetes 2) those who have a remote Kubernetes cluster running, often develop with Kubernetes and want to quickly be able to deploy to that cluster We're adding a bunch of functionality for building images, pushing to Docker registries, and offline dev with Kubernetes.
- alexkern 11y agoThis is awesome. We run a Kubernetes stack on AWS and it's a headache managing our YAML object files. Excited to see where this project goes!
- mfburnett 11y agoThanks for the support! :)
- thatha7777 11y agoIs there any extra state stored somewhere outside my Kubernetes cluster to manage this workflow?
- ethernetdan 11y agoNot yet but it will be introduced once we release versioning.
- jordanthoms 11y agoThis is cool - We are using Convox to manage an ECS cluster at the moment, but Kubernetes/Container Engine seems to be the better system overall. Container Engine is very complex though (like ECS), so a tool which makes it easier to work with would make it much more practical for us to move over.
- mfburnett 11y agoDefinitely - making it easier to interface with Container Engine is a big reason why we built this workflow. Because we wanted to make our own lives easier developing with Kubernetes!
- nzoschke 11y agoNice work! Kubernetes is a really neat and important piece of tech, but there's so much more tooling needed to make a team productive around it. Thanks for building awesome tooling and making it open source!
- mfburnett 11y agoThank you! Definitely - we see a big need for collaborative deployment tools in this space. And of course - happy to officially be part of the open source club :)
- relh 11y agoCan I use this to go from my docker-compose setup on a single machine straight to kubernetes on multiple?
- robbles 11y agoDo you have recommendations for another tool to set up a Kubernetes cluster in the first place? At first glance, it seems somewhat complex and easy to misconfigure. Or is that something you plan to support in redspread as well?
- mfburnett 11y agoHey - so right now it's easiest to set up a cluster on GCP. I wrote some simplified directions: https://blog.redspread.com/2016/02/04/google-container-engine-quickstart/ https://blog.redspread.com/2016/02/04/google-container-engin... We don't plan on getting into the hosting game but we have considered making it easy to set up a free temporary test cluster so people can play around with Spread. Would that be useful?
- robbles 11y agoThanks, it would be. We run on AWS so the ease of setting up on GCE doesn't really matter beyond the experimentation phase. If it doesn't already exist, a multi-machine Vagrant setup would probably be helpful too.