I was just talking the other day with some colleagues about the financial drivers behind virtualization. There are a couple of ways I like to demonstrate this, and the first thing I would say is; Virtualization is a CFO's best friend (I talked about this on my podcast a while back.) The second thing I say is: There are three types of CFOs: those asking IT how virtualization can save money, those who have been shown by IT how virtualization can save money, and lastly, those looking for their next head of IT.
Want to score points with the business? Make big strides in hardware, data center, software and facilities savings by leveraging virtualization everywhere you can. It's not always free, particularly to get the management capabilities you'll need to deploy virtualization at any scale, but the hard cost-savings over just the normal hardware purchases should easily justify the software costs on a consolidation ROI. Now take that the next level, and demonstrate how you can get load balancing, failover, disaster recovery and other capabilities through virtualization, and your CFO will make you an honorary Holder of the Golden Spreadsheet at the next Green Visor accounting convention.
Virtualization isn't just for the data center. As an application developer, plan in how you can leverage virtualization in your application architecture, deployment options, unit testing and QA testing. Virtualization makes for a great sandbox when testing design ideas, simulating network and server configurations, and loading up large numbers of simulated end-user machines. The QA benefits alone make just as compelling an argument for virtualization's cost-savings as it does in the data center. If your QA and lab environments are getting bigger instead of smaller, you're doing something wrong.
If you're looking for a place to start sinking your teeth into virtualization, go download the free versions for Hyper-V, Xen, and VMware. You'll quickly see the need for added management capabilities but the free stuff s great to start with.
SaaS multi-tenant and scalability
SaaS is where it's at, whether you're talking about enterprise on-demand applications or Web-delivered products and services. It's one of the hottest areas of our industry right now. But SaaS brings some new challenges not previously faced, leading to some skill shortages in new areas. Probably the most ominous is what's referred to as multi-tenant: the ability to fully support multiple customers (companies) within one hosted online application.
What's the big deal, you say? We already support complex organizational structures in our applications? Well, remember that you likely do this within one enterprise, or SME/SBM. Now, imagine accommodating the complex requirements of hundreds or thousands of companies. Or, if your service is sold to individuals, it's about handling those requirements for thousands of small customers. Multi-tenant also means that all configuration options are changeable by the user. There's no system defaults that work for all users because we're not all one big happy corporate family. Many more configuration options will have to be exposed for users to be able to customize to meet their own individual or organizational needs. The third challenge I see in multi-tenant environments is scalability. Imaging you running all those customers on your software. The same database, cluster design, transaction management designs (to name a few issues) might not work at the scale of a SaaS service.
If you understand these issues and better yet, have solved them in a deployed SaaS application, you're among the elite few. Even if you haven't done it as a SaaS application, the same system and software architecture skills and experiences are the foundation to build from to move into the SaaS environment. If your next generation of applications are Web applications and may include a SaaS component (or will be fully SaaS), now's the time to hone those skills and let others know you have them. It will make you all that much more valuable.