Like most people, you probably have two feet in your own infrastructure and one eye toward the cloud. It's pleasant to dream of the day when you'll pay for what you need when you need it -- rather than buying a bunch of hardware that's valueless virtually the moment it's pulled off the truck. I mean, cars have a better resale value.
So what should you be doing to prepare for the day when heading to the cloud is more than just talk?
[ The all-in cloud architecture of tomorrow | Learn how to work smarter, not harder with InfoWorld's roundup of the tips and trends programmers need to know. Download the Developers' Survival Guide PDF today! | Keep up with the latest developer news with InfoWorld's Developer World newsletter. ]
The first thing you need to think about is maintaining your freedom to exit in the event your cloud vendor no longer serves your needs. You need to preserve your flexibility to scale, switch clouds, communicate between clouds, and generally change addresses. You must also ensure you can deploy your code on the cloud of your choice, and part of that is refactoring your code to give you a wide range of choices.
Cloud transition tip No. 2: Move to standards. Is your company standardized on IE6 or an equally retro platform? With a myriad of devices, this is probably a good time to start working toward more standard versions of HTML/CSS and such. You can still abuse your employees and users for your own sick purposes by forcing them to use a certain browser that merely sucks less than it used to. But if you move to Web standards you'll be future-proof and able to adopt more Internet and cloud-friendly security standards such as SAML, OAuth, and so on.
Cloud transition tip No. 3: Finally base your security on Web-oriented single-sign on. Right now you have either a bunch of incompatible disconnected authentication systems or some Active Directory Kerberos monster or NTLM or whatever. Now is the time to go Web with SAML, OAuth, or the others. This is the hub-and-spoke integration effort for all your systems, which beats the heck out of point-to-point integration or the feckless "let's lock ourselves into a vendor because that always works out well in the end" strategy. Authentication based on Web standards will ensure compatibility with numerous cloud vendors and give you the flexibility to change partners if your cloud provider doesn't work out.
Cloud transition tip No. 4: Go SOA. It's time at long last to go service-oriented. You'll be able to move services around in the cloud world, and your system will be more robust. Anytime your cloud vendor does something special for you -- say, create point-to-point pathways -- it locks you in and you lose flexibility to migrate or scale. A SOA strategy is the ultimate way to ensure that, even if you need something out of the ordinary, it won't trickle down throughout your infrastructure.
Cloud transition tip No. 5: Go REST/JSON. Sure, you can do this with Web Services, but SOAP has never achieved the level of interoperability that it promised. When you go cloud, you need to be able to move things around and not worry about what version of JAX-XX, WS-XX, or whatever you're using in an application. REST/JSON has ubiquitous client support and is an obvious convention for service location.