For many folks, the first foray into living away from home involves an apartment or a college dormitory. You start out with something small, probably with one or more roommates. Eventually though, you want your own bathroom. Then maybe a spare bedroom to turn into an office. Then another spare bedroom to use as a nursery. At some point you get tired of dealing with your neighbors’ late night parties and you decide to move into a house. It’s nice, it’s quiet and you’re still renting so someone else is responsible for ensuring that the stove works and the sink drains. But what comes next? What about when it’s time to buy an apartment, condo or house of your own?
One of the great tenets of cloud technology is that it scales. Whether you’re dealing with virtualized servers or storage, when it’s time for more resources you just go out and consume them — if you’re using the cloud, that is. This makes public clouds a great place to hatch new ideas: spin up some resources, push some data around and share your creation with the world. If it takes off, you can add more storage, instances or bandwidth. If it doesn’t, you can shut everything down and move on to plan B.
But what happens when your application really takes off? When you need to be pushing around petabytes of data instead of terabytes? When dozens of instances becomes thousands? Or when you need to put a faster network between your application and your database? What happens when the auditor comes calling and you need to ensure that you’re complying with PCI/HIPAA/FISMA requirements? What do you do when you need to put an application presence somewhere in the world where there are no public clouds? For any or all of these possibilities there may well come a day when you need to consider not just consuming someone’s cloud technology, but building your own cloud.
Much like making the leap from renting to owning a home, owning your own cloud comes with its own set of new responsibilities. You have to mow the grass and fix the leaky faucets. But, you also get the opportunity to put in custom countertops and install a smartphone-controlled garage door opener. When designing a private cloud of your own, you can customize to your heart’s (or budget’s) content. This gives you a broad range of flexibility, but also introduces an interesting concept to folks accustomed to consuming someone else’s cloud –clouds run on hardware. Making the right choices for the servers and network equipment that power a private cloud can net huge performance gains for the applications that live there.
When you’re renting, there’s always a bigger apartment or bigger house. One with a pool or a great view of the city’s skyline. Once you own a home, however, adding on to it requires a bit more of an investment. The same is true of a private cloud. With public cloud technologies you typically view your ability to expand as being limited by things like API rate limiting. With a private cloud, however, the major limit is going to be based on the number of physical hosts you put into your environment. You need to have a strong understanding of what your short and near term growth look like to ensure that you have appropriate physical resources available to scale.
Owning a cloud can have benefits beyond being able to customize the servers and network equipment that you use. It also provides you the option of becoming a landlord. If you build extra capacity into your private cloud you have the option of reselling those resources. While you may not want to let the general public onto your infrastructure, there may be other projects or departments within your own organization that could take advantage of the cloud resources to help them achieve many of the same goals you set forth when you decided to build your own cloud.
The CTO of Zynga has stated, “We realized we needed to own the base and rent the spike.” This concept describes the reality many large-scale cloud consumers are moving toward: investing in the infrastructure necessary to support the baseline volume of traffic your application receives (with a little headroom for growth) and then bursting into public cloud infrastructure when necessary can give you the best of both worlds. For some workloads, this model is a reality today. Over the next year or two, advances in network virtualization and the integration between public and private cloud platforms will significantly expand the use cases for this model. Using a blend of public and private cloud resources creates an additional “jet setter” persona that is akin to owning a home and renting condo/cabin/beach house for an extended getaway.
The options available for launching new ideas in the cloud continue to evolve and expand. This encourages experimentation and innovation, and allows for the best of those ideas to mature and grow. Enterprises that already have large footprints can experiment with new ideas far more easily than they could have five years ago. This creates an incredible ecosystem where an apartment dweller can become a homeowner or a jet setter can decide they would be better off just paying rent.
Find out more about the differences between virtualization and cloud computing, check out this white paper that Jacob contributed to.