One of the most impactful things I saw at CodeMash wasn't on the schedule. I'd dropped in to check out Jeff Blankenburg's presentation on Azure & Windows Live Mesh, but it was clear that the demo gods weren't about to smile on Jeff that day.
The CodeMashers had sucked up the hotel's WiFi bandwidth like it was free beer, and Jeff's demo was sucking wind. Now, truth be told, I'd seen a similar demo under more favorable conditions, and the demo rocks. I'm not trying to indict the demo, or even the technology.
What I do question, though, is whether we're collectively thinking about all the architectural implications of the cloud computing movement.
There's a giddy excitement about cloud computing, because scalability in the cloud is super-simple and all but free. You just twist a knob, and you've got more capacity. Really -- that's what all the marketing folks tell us, isn't it?
But most of us won't build enterprises entirely in the cloud. Most of us (or our clients) have systems running on internal networks, and we're going to move portions of our systems to the cloud, or we're going to expand into the cloud for new applications. That means integration -- not only are we going to drive more traffic through our Internet gateway because we're accessing applications running on the 'Net, we're also going to need to integrate our cloud apps to our enterprise and our enterprise apps to the cloud -- again, all passing through the Internet gateway, and all using relatively fat HTTP requests.
Is your network ready for this extra stress?
I've seen enterprises operating with chronically poor network performance. I've seen internal apps running slowly, and I've seen the same apps slow to a crawl when accessed from the Internet. I've seen the baffled looks on IT Managers' faces when they weren't sure how to attack the problem of network performance. Networking problems are scary, because it takes a completely different skill set to identify and fix these problems than the skills we've developed as application developers.
Do you have a network engineer that you trust as completely as you trust your DBA's?
Consider what you're going to do the next time your office experiences a "slow internet day". Now, you're no longer talking about slow Google searches and interruptions to webcasts. Now, you've enterprise applications that aren't working. Is your enterprise ready to handle that call?