One of the arguments in favor of internal clouds is that they can be purpose-built, meaning that you can apply a cloud architecture to a specific problem. One area where this makes a great deal of sense is storage, and specifically distributed storage.
I spoke with Cleversafe CEO Chris Gladwin to get some ideas on considerations in building a storage cloud. I wrote previously about the Chicago Museum of Broadcast Communications' use of Cleversafe's Dispersed Storage to store and deliver terabytes of digitized radio and television content.
1) Ensure that your performance will scale
Your customers won't be happy if system performance degrades as the amount of storage grows--and data storage requirements are always growing. Make sure that your storage cloud design fully distributes every functional element so that system performance doesn't degrade as the amount of storage increases 10x, 1,000x, or even a million times.
2) Build in large-scale reliability up front
If a single server fails once in a while, then any one of a thousand servers will fail inevitably. This means that it is many times easier to design a highly reliable small storage system than to design a highly reliable large storage system. You need to make sure up front that your cloud storage system is as reliable in storing terabytes as it will be in storing petabytes or exabytes--or your system will eventually hit a wall.
3) Design for permanent operation
As Moore's law keeps marching forward, every piece of hardware you buy will be obsolete in three to four years. You need to design a system that maintains full operation, even as pieces of hardware are maintained, repaired, or replaced.
4) Don't try to spend your way out a problem
If your system design doesn't get more cost-efficient as it grows, then you've got a serious problem. This is the reverse-ROI that every CIO fears, and storage can easily become a black hole.
5) Abstract whenever possible
Time-consuming system management tasks of today will become impossible workloads, as your cloud storage system grows. Remove consuming system management tasks with layers of abstraction so that system growth doesn't bury your system administrators.
6) Protect critical information from unauthorized access
Securing and protecting critical information is a key challenge for cloud architectures. Ensure that you use proven authentication methods for information access, and design the system to protect the data from an inadvertent and/or malicious compromise.
You can follow me on Twitter @daveofdoom