[This article was written by Mat Mathews.]
Plexxi along with Piston Cloud, Colovore, and King Star Computing published a white paper a few months back looking at the cost of a private cloud running OpenStack in a hosted environment versus renting compute instances from Amazon. The details are here. The short story is that in this analysis, at about 129 Cores, the costs for a private cloud start to become better than public cloud. Certainly the efficiency of colocation, commodity computing/storage, and an application oriented network fabric integrated tightly with a cloud orchestration management platform (OpenStack) has a lot of built in efficiencies so its not surprising to see the result of this analysis.
We’ve Seen this Story Before, Haven’t We?
Similarly, years ago in software development circles, the debates about outsourcing were fierce and emotional. Back then, much centered on the cost leverage available to companies to move development to low-cost areas such as India, China, and Eastern Europe. However, over time, companies found that while cost gave them flexibility and resourcing mite, the more important benefit ended up being owning development resources and presences close to emerging markets while leveraging outsourcing partners for on-demand resource expansion. Wow, sounds a lot like Colocation + Hybrid Cloud to me! Let’s look at some of the other similarities.
How You Start Matters…
Some companies start with an outsourced development model from the very beginning. They build a very small team of architects and maybe some engineering management, but rely on external, rented resources for 100% of the development team. The flexibility of this model is great for the bursty nature of startups or small companies, especially when managing cash flow and the ebbs and flows of early customer traction. But as they grow, there is increased pressure to “own” the resources to better manage IP and to reduce churn / increase predictability. This looks a lot like what we see in public cloud efforts. Many companies that have started with purely hosted application models, have eventually moved to in-house clouds to better manage their assets and to avoid dependencies on their cloud providers technology cycles. Similarly companies that have started with in-house application infrastructure may have difficulty moving to clouds without rewriting their applications completely (or in the case of outsourcing, re-inventing their development processes), especially if their internal infrastructure was not already some sort of private cloud.
Hotel California Effect
One of the most oft mentioned issues with public cloud is the difficulty in getting out, and this is no different in the realm of outsourcing. Companies that rely heavily on outsourcing also end up building around the outsourcing partners development model and product pipeline model. This isn’t too much of a problem and can be a huge help to companies that don’t have that skill or don’t want that skill, but also makes it difficult to then bring those resources in-house because the process skills don’t exist. Similarly with cloud computing – to best leverage all of the cloud’s capabilities, application developers usually end up writing code specifically to the cloud providers tooling environment. As the application grows, it becomes more and more costly to move to a private infrastructure largely due to the opportunity cost of a cutover. Starting from the beginning with a hybrid model allows the balance to shift back and forth between private and public realms more seamlessly. Which brings me to my next point.
The Hybrid Cloud Dream
There’s been a lot of fascination with hybrid cloud for many years. It started with talks of “cloud bursting” – transparently leveraging cloud resources on demand for seasonal or time-of-day computing spikes. This sounds great in theory, but unfortunately applications are rarely written to be able to transparently work across application stacks like that. The growing wave of modern PaaS offerings is starting to make hybrid cloud much more feasible, and this points out again the relevance of the private cloud part of the hybrid model. Microsoft’s recently released Azure appliance is a great example of how this could actually start to work. Their appliance leverages the same exact APIs and application constructs used to build Azure application in the public cloud. So Enterprises can now build and host local applications that are built on the same exact stack as those running in any Azure cloud worldwide, making on-demand resourcing much more plausible. There are other models like this, and certainly more to come. Even Cisco’s InterCloud strategy aims to marry colocated private clouds built on OpenStack to OpenStack-based public clouds. It is evident that the private cloud is a highly valued component of the overall cloud story by these trends. And to continue the outsourcing analogy – we have seen the onshore/offshore model with common program and project management as being a very successful way to leverage the fluidity and cost of offshore rented resources, while still retaining key intellectual property and building institutional learning in-house.
The typical knee-jerk reaction to eventuality of public cloud everywhere is always security. “Big companies will never host their data in the cloud.” The same could be said about many technologies over the years and this was certainly one of the early FUD factors around outsourcing development. Eventually either the cost of insecurity will be mitigated (via liability caps or even insurance models) or more likely a technical solution will arise that will make this issue go away. In the outsourcing world, many of these issues were mitigated with process and governance as well as technical solutions that kept key data/information locally. In the cloud computing space, we see a similar trend. Look at what the folks over at Bracket Computing are doing to see how this could be the case in the future. The bottom line is that security will be important, and it will be solved with a combination of technical, process, governance models, and liability/risk management solutions. Certainly the ability to manage data in the private portion of a hybrid cloud offers a lot of options in how public cloud resources can be applied in a secure model.
Businesses rely on flexibility, cost advantage, and time-to-market for new innovations. For companies that rely on IT to drive new products and innovations, the computing infrastructure looks a lot like their software development infrastructure in terms of either creating barriers or opening up opportunities. Companies that embraced outsourced development in a way that allowed them to retain IP, build institutional knowledge and competence, but also leverage the on-demand access to resources have fared very well in their ability to build new solutions or drive new efficiencies. Similarly companies that look to innovate through application development need to understand a similar set of challenges – how to leverage the security and in-house knowledge benefits of owned application infrastructure, while still being able to reap the benefits of on-demand computing power.
[Today's fun fact: A duck can't walk without bobbing its head. Ahh, but can it gallop??]