Specialized container technology company Diamanti, was named a “cool vendor” by Gartner for their hyperconverged container platform. While containers continue to be the "it" thing for developers, InfoQ has seen a rise in activity from storage, networking and systems vendors that are trying to equip the data center for this new form factor of distributed workloads. Enterprise data centers today are still designed for a virtual machine world, so there is a certain shake-up in the landscape as more applications are built for containers and cloud-native.
Diamanti is a startup whose team is comprised of former execs from Cisco, VMware and Veritas. They have set out to build next generation storage and networking infrastructure for containers.
Mark Balch, VP of products and marketing, spoke to InfoQ with his take on the current friction that containers are creating between developers and data center operators.
InfoQ: Walk us through the journey of the typical developer playing with containers. What’s the first thing they are generally doing on their laptop?
Mark Balch: Docker has made it very easy for developers to download a development environment onto their laptop and begin building their apps using containers. Many developers can continue this way essentially forever, and package the application in a VM as a final step before delivering to production.
The challenge of that though, is that you’re no longer deploying the application as you developed it, so you have a dissimilar environment which leads to performance challenges or problems adapting the application to the production environment from the development environment.
I was recently talking to one developer who works at a major US hotel chain who has this problem. His team develops their web site using Docker, but then builds individual VM images for each container. This did make it easier for them to initially move into production because the operations team didn’t have to learn anything unique about containers. But now after doing this for over a year, they have a massive problem of VM sprawl - and a highly inefficient stack where every container consumes an entire VM.
Docker has made it easy to get started on the laptop, but there’s a big gap moving into production.
InfoQ: At what point are they generally pushing containers to production?
Balch: When a developer is using Docker on the laptop, they generally are not worried about performance issues or networking with their overall production environment, or even how to get persistent storage -- because everything resides on the local laptop. They probably also aren’t that concerned about security, because everything is local and they may be using small data sets just for functional testing. But all of these things change in a production environment, where application scalability is a big issue, where the operations team has to connect containers into the data center network, and where storage and security of data become critical to the business.
The first issue you encounter is what format can the operations team consume. In most cases that’s a virtual machine today. So right off the bat the developer has to figure out how to take this nice efficient container image and distribute it and package it across these virtual machines.
The second issue is scalability - how to make sure that the application is going to scale out and deliver the responsiveness that customers expect. This is where issues of network and storage come in, where virtual machine overhead becomes a consideration. And let’s face it - not all developers design with security as a fundamental requirement. Yet operations teams are accountable for all of these factors.
InfoQ: If you compare the reputation of containers against the reality for developers - where do you think they are / are not living up to the hype?
Balch: Containers are definitely living up to the hype when it comes to the ease of building container images and being able to rapidly spin them up and spin them down. But there’s a lot more to operationalizing an application, and that’s where the market hasn’t caught up yet. So it’s all these issues we’re talking about around making sure containers don’t just work well on the laptop, but work in the production environment. There are still a tremendous amount of customization and operational challenges today.
InfoQ: What can be said about the new world that operators face, trying to support developer efforts related to containers? Where are they challenged?
Balch: Today operators are caught between two options--either they stay focused on traditional virtual machines and have to eat all the inefficiencies and cost of that approach, or they have to figure out a new operational model of going container-native, a new technology that they’re unaccustomed to.
Most industry observers believe that, over time, containers are going to become the main application platform. The question for operations is not if but when they have to figure out how to efficiently containerize applications.
But there is a natural tension between developers and operators, because they fundamentally have different goals. While both teams want the application delivery to be successful, developers inherently favor technologies that improve their development velocity and efficiency. By contrast, operations is more conservative and focused on reliability and operational requirements. So developers may wish to quickly adopt new technology like containers, while operations teams are concerned that without fully understanding containers, they will be unable to meet their business commitments.
InfoQ: What’s driving the interest, and how do the benefits to developers outweigh the challenges to operators?
Balch: At the end of the day businesses go where they will find revenue, and application developers are the enabler of that revenue. Any technology that accelerates their productivity will prevail. That’s why containers has moved so quickly, because of the benefits for the line of business and developers. We see this across vertical markets including e-commerce, financial services, media companies--where the business competition is white hot, and agility is prized. Software is indeed eating the world, and containers are a big enabler.
For this reason, the sooner operations teams figure out how to operationalize container applications in production, the more successful they will be at meeting their business obligations. A lot of industry watchers argue that container adoption is moving so quickly, if operations doesn’t figure out how to make it work in the next 12-18 months they’re going to start seeing their developers go elsewhere. The point is that when revenue is at stake, the business does not tolerate speedbumps.