I recently called up my buddy who used to be vice president of marketing at SugarCRM. I asked him if he ever encountered companies that were building their own CRM solutions internally. "No, that's dumb," he said. "That's why they came to Sugar, so they could use ours. It's too much work to do it yourself."
Building your own Salesforce.com? Yup, sounds like a lot of work. Yet here at RightScale, I see many companies trying to build their own cloud management solutions. Perhaps it is the DevOps mindset that has made cloud computing so popular: "If I can't get approval, I'll just do it myself on the side." Or perhaps it is because we are still in the early stages of cloud, and people are experimenting and discovering what is possible internally versus what is available in the market.
I did an informal poll of our sales team, and here's what they said were the top reasons companies try to make their own solutions rather than use a cloud management product:
- They want control, or the ability to highly customize their environment.
- PaaS and IaaS, as concepts, seem simple, easy to jump on. A "cloud computing management platform" seems like a complex paradigm to adopt.
- Because they can, and they want the challenge of exploring a new frontier.
- The cost of a cloud management solution is too high.
OK, so these appear to be valid reasons at first glance. But these statements are typically founded in misconceptions about cloud management solutions in general or RightScale in particular, which I'll address here:
Control: RightScale is not a PaaS service. We let you get into everything - perhaps more so than we should. Change the images if you must, run custom scripts against our API, and export usage data to include in your own data warehouse. Fifty-two percent of the servers running on RightScale are controlled by completely custom ServerTemplates, not ones we provide. Our product philosophy is to let you "get under the hood" if you need to - so please do.
Complexity: Cloud management is complex, and I don't argue that. What RightScale aims to do is provide a layer of abstraction that makes the difficult and mundane tasks, like auto-scaling, much easier. It is unfortunate that the term seems complex, because if anything, a cloud management solution can make managing your entire cloud infrastructure and applications so much easier.
Conquering the new frontier: You're being told by your boss to "Learn cloud now - just figure it out." You want to truly understand what's possible, how to build it, and deliver on expectations. As you start down this path, you cobble together some tools to accomplish your first foray into the cloud. Unfortunately, technologists have a tendency to "reinvent the wheel" as they continue along their path to the cloud. We're many steps ahead, and we're happy to share what we've already learned.
Cost: Netflix is a poster-child for DIY cloud, and has been forthcoming about its experience, which has helped grow this new paradigm. Netflix "designed its cloud architecture so that it has the option to move to an Amazon Web Services competitor" if needed, according to this NetworkWorld article. At a recent conference, Adrian Cockcroft, Cloud Architect for Netflix, mentioned that Netflix has 50+ engineers working on this cloud-independent solution. Doing some quick math, that's about $8.3 MM per year Netflix spends building and maintaining this platform. That could buy a lot of RightScale Enterprise Editions!
At the end of the day, we see many customers who come to us after they outgrow their own internal solutions. They eventually discover that there are just too many things to stitch together: configuration management, systems automation, monitoring, application automation, provisioning, user permissions, reporting...it goes on.
We have hundreds of employees and have spent many millions creating the most comprehensive cloud management platform in the world. And we designed our product to drive the same way no matter which cloud you choose. So while cloud management may seem like a fun weekend project to tackle, it's not - please don't try it at home.
Yes, Amazon is still the dominant cloud, but a tornado of new clouds is swirling. The next thing your boss will likely ask is, "So what if we wanted to use this other cloud instead?"
Update Feb 3, 2012: Since I published this post, I've received a lot of feedback regarding DIY in the cloud computing space.
A few of our customer developers pointed out that they actually appreciated learning the cloud through RightScale - it gave them both an understanding of the underlying IaaS cloud as well insight into ideal cloud management frameworks. Forbes ran articles on how this extensive cloud computing knowledge is in high demand in IT and is a ticket to the corner office, and we're starting to see RightScale listed as a required skill on some of these cloud job postings.
Next, I've heard from a few more larger companies who have built their own internal cloud management solution. They also cited approximately 50 engineers in their cloud computing groups, so it seems this is the sweet spot for development and maintenance of a robust internal solution. Let's not forget about the PaaS-like solutions we offer with our ServerTemplates in this regard - it is not just automated provisioning that these larger companies ultimately need to build.
I'm not saying you can't "do it yourself" in cloud computing (or in anything for that matter), I just want to encourage developers to avoid the trappings of #3 above - namely ignoring off-the-shelf solutions in the interest of personal discovery. It may work in the short term... until you hit one of the many walls that we've already had to plow through. At that point, you'll either have to scale the solution and team, or re-architect for a product that offers the necessary solutions already.
Update March 15, 2012: This post stirred a lot of pots, so I expanded it into an article on SYS-CON called "Do-It-Yourself Cloud Computing Management – Is It Worth It?" However you come down on DIY cloud management, I think you'll find more material worth mulling over.