Open source software has earned a solid place in the modern enterprise. The advantage of avoiding the software license “technology tax” is just too attractive to ignore. So the increased interest in open source cloud technologies like OpenStack and KVM (kernel-based virtual machine) is not surprising.

OpenStack offers some very compelling benefits around cost and flexibility. But is it ready to handle enterprise applications? The short answer: It depends.

To understand what I mean, it’s important to recognize that OpenStack is not a single, monolithic “thing.” In reality, it’s a collection of projects divided into three main functional groups: Compute, Storage, and Networking. And frankly, some of these projects are more mature than others.

The most mature is OpenStack’s compute project, dubbed “Nova.” This is where it all started, so Nova is actually quite far along the maturity curve. In fact, for new, cloud-native applications, OpenStack’s compute capabilities are robust and ready. On the other hand, migrating existing enterprise applications over to OpenStack presents some major challenges around application management and availability.

To handle storage, OpenStack has two projects, Cinder (for block storage) and Swift (for object storage). Swift is the most mature, however both are pretty solid, including strong support from major storage solution vendors.

The third leg of the OpenStack stool, networking, is still a bit wobbly. Called Neutron, this project is the least mature of all. Key capabilities like quality of service (QoS) or virtualized firewalls are still being developed.

Why isn’t networking further along? One reason is that the companies best positioned to add value—networking vendors—have been hesitant to contribute to the development of open source technologies that undermine their expensive, proprietary systems. That’s changing, however, as the market demands alternatives. A key factor is the current movement by leading telco players toward “cloudy” technologies and NFV (network function virtualization).

The final piece of the OpenStack puzzle, Heat, is the project devoted to orchestrating all the other pieces. This orchestration piece is pretty solid for many application types, though for more advanced scenarios testing is recommended.

So what does all this mean for enterprises assessing the feasibility of using OpenStack? As I said earlier, it depends on what you want to do with it.

Building a new cloud application? OpenStack can dramatically reduce the cost and complexity of building many types of cloud-native apps. On the other hand, for apps that require high levels of automation or complex change management, OpenStack may not have the support you need—at least not yet.

In addition, the rapid pace of OpenStack upgrades presents its own challenges, with new releases occurring twice a year and an upgrade process that can be disruptive. And availability is not yet up to enterprise standards.

Will this change? Absolutely. And the driving force will be the entire ecosystem that develops around OpenStack. Like all open source technologies, everyone—developers, users and vendors—will play a role in OpenStack’s continued development and maturity. Of course, the OpenStack community will continue its work and vendors will add innovations to meet the needs of their customers. But just as important are the contributions made by the enterprises themselves as they build their first cloud solutions on OpenStack. That’s the way open source development works.

At the same time, enterprises embracing the cloud will evolve their own ideas about how they do things. OpenStack represents a golden opportunity to rethink how to deliver applications and services in ways that can transform how they do business. So think about which cloud applications could be implemented with OpenStack today. Because that could form a foundation for business growth tomorrow.