Whether using Docker, Rocket or LxC to virtualize infrastructure for database applications – balancing compute and storage takes a significant amount of testing, and time. Getting bare metal-like performance while achieving the appropriate levels of data consolidation can be frustrating for many, elusive to many more.
As the cloud has become increasingly popular and pervasive, both enterprise application developers and the applications they build are now more isolated from database infrastructure than ever before. In addition, the developers building applications and the IT professionals dealing with the storage ramifications have fallen out of sync.
In order to solve this very problem, Robin Systems builds software that offers proprietary block storage capabilities designed and developed specifically for container technology, capable of handling thousands of volumes and IOPS very efficiently and effectively.
To gain a deeper understanding of compute versus storage challenges from a database application perspective, we recently tapped Stephen Foskett, Organizer-in-Chief of Tech Field Day, and an all around IT guru.
We discussed containers, database applications, DevOps, storage and more. Here’s what he had to say:
What are key challenges developers, DevOps, or application engineers face while trying to balance compute and storage?
“It seems to me the biggest trade-off comes from application and developers being further up the stack, and more isolated from hardware. We have all these abstraction layers in infrastructure and we use those to make things more available to applications, but at the same time what then happens is it pulls us further and further away from the hardware. And inevitably that has a cost in terms of performance, and overall efficiency. So, the biggest challenge is being able to have a flexible platform for modern applications that is also a high performance and reliable platform for applications. That’s the biggest challenge for cloud application development.
The initial advantages of abstracting the underlying infrastructure are appealing for obvious reasons. You don’t have to worry about what that infrastructure is, how it works, and the technical nuances of servers and storage. I think that’s very attractive to developers, because frankly developers don’t care about infrastructure, and they shouldn’t.
The reason containers are so popular is containerization abstracts the infrastructure, but it doesn’t do it under a blanket of a million APIs and so on. It’s actually still a fairly bare-metal experience, and I think that is the reason people are interested in something like Robin [Systems] because, essentially, rather than getting a – metaphorically speaking – very tall cloud stack, what they’re getting is a micro environment where they can run a micro service, where they can run a portion of their application close to the hardware. But yet, it’s still abstracted and still standardized. I think that’s why people are so attracted to containers.”
With traditional virtualization or even modern enterprise cloud applications, bare-metal performance simply can’t be guaranteed. So how can teams use containers to achieve both cloud-like agility and bare metal performance?
“That’s the reason people are attracted to containers. With a container you can have better performance because it’s closer to the hardware. In terms of the other benefits people find with containers; you’ve got test environments, dev environments and so on. Personally, I love the ability to spin something up on my laptop in Docker that I can then use in the datacenter, or cloud if I wanted to. People love that portable test environment
The problem though overall here is most container environments aren’t actually all that great in terms of storage and networking integration and performance, and you know the storage innovation of Robin [Systems] is really something that caught my eye and something I really appreciate about the product.
Our web host for Tech Field Day actually failed during tech field day a couple months ago. The whole thing went down. So I spun up an entire web hosting environment in about 10 minutes with an image of our website running in it using containers. Frankly, I don’t think that would be possible to do with traditional IT. So basically I just connected to a different hosting provider, and using Docker ran all the tools that that I needed, including the web server, put the data behind it, and we were literally up and running in 10-15 minutes. That was incredibly powerful to me. And it’s all because these things are pre-configured, and come ready for launch.”
Is container technology something infrastructure professionals and those working with database applications should be excited about?
“Even infrastructure people can and should be excited about containers; I think this is something that’s often misunderstood. When people think, “containers” their next thought is “DevOps.” And most think infrastructure professionals hate containers, but that’s really not true. Honestly, the infrastructure people are tired of dealing with patches, nuances of hardware, drivers, applications, operating systems and all that, and most think it’s phenomenal to be able to run a standard ISQL command, or HTTPD or whatever you need, and it just works. You don’t have to worry about different software and drivers and stuff like that.
A lot infrastructure professionals who don’t have experience with containers see them as somewhat of a threat, but they really aren’t. From an infrastructure perspective, DevOps is really just dev and not so much ops. In other words, a lot of people focus too much on the fact that “those application guys” are coming to mess with our infrastructure, instead of thinking that maybe we can elevate our own jobs and start working more closely with applications.”
Balancing compute and storage in your stateful database, cloud or big data application requires practitioners to come together from all sides of the equation, including database professionals and application engineers. While containers provide a means to an end, they are just a piece of the overall application lifecycle management puzzle. Every organization has unique compute and storage requirements, and likewise must evaluate their needs in a highly customized manner.
Interested in containerizing your stateful cloud database applications to get better hardware utilization and overall application performance? Here’s a brief demo explaining how our platform can help you deploy and manage your enterprise application to achieve optimal performance, powered by containers.
If you’re looking for advice on optimizing database applications and big data applications, check out some of our other blog posts!