When Adrian Cockcroft speaks, people pay attention. Adrian, a Technology Fellow at venture capital firm Battery Ventures, is presenting one of the most highly-anticipated sessions at OpenStack Silicon Valley next week: Web Services and Microservices: the Effect on Vendor Lock-in. Recently, Adrian talked with Nick Chase and John Jainschigg about containers, microservices, and OpenStack, and how they fit together.
OpenStack as a Standard for Managing the Things in the Data Center
The first question is always where OpenStack fits in in the overall scheme of things.
“OpenStack has done a great job at gravitating the industry around one standard for managing the things in the data center,” Adrian said. “Think of it this way. If you make a PCI card, you have to have a Linux device driver, otherwise it can’t plug into the hardware. The standard for infrastructure is that you have a Linux operating system and you need a device driver. At the data center level, if you want to produce a piece of equipment that sits in the data center nowadays, it has to have an OpenStack driver. It’s got to be able to integrate into that ecosystem. That’s generally what some people call the Southbound APIs – the APIs that point into the infrastructure to manage the things and hook up the networking and the storage and all the other pieces you need to do that.”
Kubernetes, Docker, and More
OpenStack is now working on standardizing the environment for containers as well, he explains.
“Every vendor had their own different way of doing it over the years. Bringing that together in one coalition has really been powerful. What I see with Kubernetes is a good Northbound API that’s quite rich and functional and addresses a lot of the needs of application developers. Once you graph that on top of OpenStack, you’re actually meeting a lot of the need for that functionality. You’ve got a good scheduler there. If you can stick it in a Docker container, you don’t really care where it runs. You are going to put it on AWS, or Azure, or Digital Ocean. You just don’t care anymore. There are a bunch of standard containers there, but they’re very portable.”
And portability matters in a world where hybrid computing is becoming more and more important. And that’s where microservices come in.
“It’s also that microservices tie into DevOps work practices,” Adrian continues. “It’s a more cell-based operation. You have groups of people who own the delivery of a system or delivery of the services that make up a system. They own and specify what it looks like. They own the evolution and the improvement of it. You organize your company as these little cellular groups of people that own a base service.”
Adrian contrasts this method with traditional project-based management, where “when you deliver the project, you throw it over the wall and hope that somebody else will figure out how to make it run, and you move on to the next project and everyone scatters to a bunch of different projects.”
He feels that the move toward this structure is bigger than just a matter of how you build your software. “Microservices is the architecture you get when you move to more of this product ownership, DevOps-like, continuous delivery world. If it’s software, Conway’s Law says that they’re both going to end up looking like the organization. It emerges from organizations that are working in this way, but you end up writing your own services and with stable APIs to everyone else.”
“Think about that as more of the org chart turning into the code.”
Image by Flickr user JD Hancock.