The idea came to me when, once again, my laptop died and I had to think through what do I need to setup on new machine to get it functional as fast as I can. And I realized that I had not had this problem at work for almost a decade. Why ? Virtualization. So how come enterprise users can enjoy all the advances of modern computing while the same people at home are still in early nineties ?
So here it is: the goal of this project is to make modern enterprise technologies available for home users. Which includes:
– Cloud services. My home server should become a node in a cloud to provide fault tolerant virtualized computing. Whole system backup without specifying folders or setting up rules. Working VMs could be restored to last good point in case of crash or viruses. Availability from anywhere with internet access.
– Modern, role based security settings working across all VMs in the family domain. Parents, children, friends, neighbours and guests are recognized roles. Security policies pushed by domain admins. Enable remote IT services for hire without compromising security of users.
– VM as an App. Specialized VMs, provisioned through self service. Customers get fully functional VMs rather than hunting set of apps that need to be installed and configured on properly tuned OS. From office productivity to games. VM for graphic designer or for a cook. And internet browsing is safe and separate from the rest of VMs using specifically tuned VM just for that. One can even rent/lease a specially configured VM if needed temporary/sporadically.
– Keep your own stuff – if internet/cloud is down you still have your stuff locally. VMs that you can host and so are the services VMs provide are available. VMs could be specifically tagged as “service available offline”.
Now, to make it comfortable to use, it could be an appliance, not just software. We have to control the hardware for the same reason that corporate IT controls it. And for many other reasons you may want to have a really powerful and versatile computer at home.
But, as an extra benefit I see this home server to be designed as TV box. TV is already assumed to be big, heavy, connected and in the center of the house. Modern TVs already have all the relevant components, though not of the server quality. Basically I see future TV as a powerful computer with really good screen.
TV is widely recognized to be the subject of next big gadget war. Today all the key players trying to come up with either new technologies that need time to become mature or rely on old stuff developed in nineties. I am proposing to reuse current technology – it lowers the cost of developing – we already have the developers and tools. It lowers maintenance cost and significantly reduces risks of unknowns. Cable provider’s VM could be developed with modern UI rather than incomprehensible mess we have now. It also lets desktop/server manufacturers to recover from smartphone/tablet erosion of home market. We could sell big computers to end users again !
So, this was the idea in the nutshell. In terms of technical implementation, there are couple of notes to add:
– All or most of what needs to be done already exists and technically proven:
There are several key visualization systems on the market from Hyper-V to VMware to open source systems that IBM is pushing now.
There are several clouds that could be used: from AWS to Rackspace, from Herouku to Google, from Azure to home made
There are self service systems made to create, tune and provision VMs in daily use in corporate IT.
“vMotion” technology works in real environments. One can imagine moving a VM to laptop when you plan to go offline and back to the cloud when you back from vacation. Even VMware provides the player for free.
“Remote desktops”, VNX and other tools for accessing and managing VMs are already mature.
Akamai, for example, have ready made VMs for fast WAN routing to overcome last mile latency issues.
From hardware perspective, TV should be slightly redesigned to allow for more CPUs, memory, better heat dissipation, lots of local disk storage.
What is really left from software perspective is management software tailored for home use rather that corporate IT. From user management, security settings to VM provisioning and monitoring – we have the tools but its ugly and requires IT skills to use properly. But in home environment we can support only handful of important use cases and it would let us make the UX to be light and intuitive.
I imagine this to have a management web/mobile UI running against customer’s TV server in the cloud, that lets user
browse VMs in store
select VM in store
buy VM from store
review/tune access control for local resources. must be done at least once – should be part of purchase.
create/manage VM snapshots
monitor / threshold use of system resources, like CPU, network
review local resources VM uses.
review/ tune VM access control for local resources.
manage local resources, like NAS, internet access, USB devices
choose VM that controls the TV screen.