I've been working on clusters (generally, parallel processing) for quite a long time now, and that has created a perspective on service (cluster resource) oriented modeling of distributed applications. I wanted to share a few thoughts on the future of Network Operating Systems; from this point of view...
We've long considered (and have been training) server-hosted applications to be relocatable cluster resources, thanks to data persistence in the storage network, and secondary network addresses, services have already been somewhat virtualized and are relocatable across the physical servers in a high-availability cluster. Service-oriented location transparency is a nice way to describe this. Two generations of Fibre-Channel and now the rise of commodity iSCSI Storage Area Networks has helped our thinking. And as Brad has been writing, we've reached a level of sophistication that allows for automated service-level disaster recovery - cluster resources that can failover from one data center cluster to another - Netware or Linux - together with your most important asset - the persistent data that those cluster resources depend on and serve access to - whether it be file, mail or other valuable data.
I invite you to read Brad's posts on Novell's latest Business Continuance Cluster release.
Now - something _really_ interesting is happening - as a PC-server based industry - we are taking the next step to make compute virtualization become an intrinsic component of the network operating system. The integration of clusters, storage networking, virtual machines plus some ideas, protocols and algorithms from the high performance cluster computing (aka parallel processing aka Grid) community is causing a convergence and opportunity to think about what network operating systems actually mean and will be able to offer in the future. And Novell's work with open standards, in open source, creates the foundation for practical enterprise interopability.
Distributed identity and trust creates the security foundation.
Virtual machines - are the missing link. The active/active versus active/passive cluster resource deployment construct we've been working with the last few years, becomes a much more robust tool for managing services that are entirely self-contained, thanks to compute virtualization. We call this a proper separation of concerns. By wrapping a traditional cluster resource (network consumable service) inside a quality-of-service controlled virtual machine, we can dynamically provision the performance and availability of that service relative to available physical resources. Configuration is separate and follows the service. Code follows the service. And individual services gain even more mobility than our cluster (constrained) resources - via resource management software that can orchestrate the combination of application service and data, at service instantiation - i.e. deployment - rather than installation time.
Clusters of failover resources, and now virtual machines, and clusters-of-clusters for automated geographic disaster recovery, and grids of virtual machines hosted by high-availability clusters, are the things we've spent the last few years thinking about - for Netware and Linux. And we are delivering these capabilities via products like OES, SLES10, ZENworks Orchestrator, BCC 1.1, and soon, SLES10-based OES2.
If you have time this holiday season - I've written a few more words on these topics - and invite your feedback, and thoughts, on the future of the Network Operating System.
Here at Novell, the company that offers Software for the Open Enterprise, we are certainly looking forward to 2007. A lot of good stuff is coming together...
Best wishes for a safe and happy holiday season. See you at Brainshare 2007 :-)