This week we are talking about the future of Continuous Integration through Docker with Shippable founder Avi Cavale.
Avi Cavale, Founder of Shippable
Born in Bangalore, Avi studied Mechanical Engineering before earning a Masters Degree in Computer Science at Arizona State.
Tell us About your Background
I founded Shippable back in February 2013 and just integrated Docker in the last ten months. A little bit background on myself. I was born in Bangalore, India. Undergrad was mechanical engineering and then I did a masters at Arizona State in computer science and then joined Microsoft back 2000 and worked there for 10+ years for different groups, like Xbox and Kinect. Then worked on a Cloud Foundry based startup for about six-eight months before starting Shippable, where I saw the need for CI/CD as a service and was the inspiration behind and creating Shippable.
Tell us about Shippable and who should use it?
Shippable is predominantly focused towards the developer cloud. Anybody into the whole agile and continues delivery concept should be thinking about using Shippable or products like Shippable out there. People have used Jenkins in the past and got they made Jenkins do things which it was not designed for but at the end of the day what Shippable is about, going and solving those fundamental problems of, how do I manage infrastructure and continuous delivery and make sure my code is always deployable.
How is Shippable 2.5x Faster than other hosted CI/CD services?
Using Docker instead of VMs made it 2.5X faster with just pure build time. But if you take a look at it from a more holistic way of, how long does it take to bring up a machine, how much time it takes to install stuff, it’s all that stuff. It's actually much, much more faster if you look at it as total cost of operation. So the reason why it’s faster, is one, we have our own proprietary platform build from scratch, which is optimized to take an advantage of what Docker brings to the table, as opposed to retrofitting an existing product server like Jenkins to do what Docker does. We initially tried that approach and we started having all kinds of issues in terms of scale as well as security so we decided to build this from scratch.
The second thing it does is because Docker is portable, we can move around containers on Amazon machines. So, what typically people will not use as build machines, we can actually use those kind of machines and allow Docker containers to float around that gives us extra horsepower that we need. So you don't really get the noisy neighbor issues or queuing issues which is what we can do, where you can spin up machines but just a few API calls you can actually do a lot of things in a very, very cost-effective way. And that's the secret behind it.
How does Shippable use Docker? How is Shippable different than Drone or Jenkins?
With Jenkins, you really getting into more operations of VMs and at some point of time it's a very transient workload, so you need to manage elasticity manually. Do I want to keep all these machines running? Do I need to shut it off? All of that stuff starts becoming part of what a developer job is.
Docker allows us to kind of abstract those things out. First thing is, you can have standardized images through the Docker Hub. So you can kind of think of it all as it's all standardize images that we can bring get online within like two or three seconds without developers having to actually go in, monkey around on a lot of Debian package installs and all of that stuff.
So what we do is at Shippable, there are two ways of how we use Docker. We use Docker containers on which our platform runs natively. So we use the Docker work flows and how our UI server is actually running on a Node Docker container and it all comes with our custom stuff. So that's one part where infrastructure Shippable itself runs on Docker.
The second part is where our customer actually running on individual containers that are tailored for every single customer. So in terms of Jenkins, if you really want to run Jenkins as a service now we are sitting down and managing multiple VM images and all of that stuff. With Docker, I can kind of create a lowest-common-denominator image and then lay out whatever the customer needs, which is specific to them on top of that. So it allows us operational efficiency and that means we can run the service way, way more cost effective when we can pass the savings back to the customer.
Why is Docker particularly well suited for CI/CD?
Because of the portability, you can move workloads from dev/test to production and ensure it is exactly the same.
How will technologies like Puppet and Chef and SaltStack interact with CI/CD?
You can use Puppet or Chef or SaltStack to build your containers and then test them with Shippable.
What isn’t good about Shippable yet?
Shippable isn't great at enterprise stuff yet, we need to build a lot more governance, we need to build a lot more controls. It could be as simple as a container is sitting in your pipeline and you get a text message and it says or somebody in operation says, “yes, let this go into production.” I mean it could be as simple as that so we need to build a lot more of that. We’re being focused a lot on making developer workflows and developer life much more easier, we need to start focusing a little bit on how the whole operation is and how it works. And that's where some of the challenges I want to see for the next six months.
What’s next for CI/CD in general? What does the future of CI/CD look like?
The future of programming is in micro-services and 12-factor applications, and the future of CI/CD is testing combinations of micro-services together instead of testing monolithic applications. Older CI/CD systems were not build to test the interactions between many different micro-services and this is creating an opportunity to re-think CI/CD.
Why are customers switching to Shippable?
Shippable gives you 5 private repositories for free. Our competition makes you pay an arm and a leg for that. Then $10/month is the cheapest paid plan, so we are very competitive. Over 4,500 people signed up so far and growing.