It’s only September but I feel like 2014 is the year the Application broke free -was liberated if you will- from the infrastructure beneath it.
“What?!? That’s crazy talk,” the two of you who read this say in response.
Maybe, but consider this.
Docker is huge and growing in popularity. As the drip-drip of my Enterprise RSS feed attests, interest in Docker has been growing steadily all year long; at times it seems there’s more Docker hype than even SDN hype. People seem as excited about Docker as they were about x86 virtualization, way back in the day. It’s real and it’s something.
But what is it?
The Infrastructurist in me cries a little bit to admit this, but it’s about time the Application was unyoked from the OS, the spindles, the network and the compute beneath it. And that’s what Docker does.
You see, Docker positions itself as a “container” (shipping metaphors abound in this space, which is just great) for your apps; once safely ensconsed in a container, your app, or more properly your entire application supply chain, can be moved from platform to platform with virtually no configuration changes, downtime, or dependency on your infrastructure guy.
That’s right baby. If you’re a Linux guy, no more fiddling around with Ubuntu VMs, BSD jails, standing up dev VMs or any of that nonsense. Docker takes your Ruby/Java/Objective C application, your backend MySQL DB or your NoSQL MongoDB, and your Android / IOS app, containerizes it, and lets you run it on just about anything capable of issuing a ping command. It makes it super-simple to go from dev to test to production, and it’s all free and made of wholesome open source stuff.
Neat bit of tech, wouldn’t you say?
In the Microsoft kingdom, I was doing similar things with App-V about two years ago. App-V is similar in concept to Docker, though admittedly App-V was never built to allow cross-platform application migration, and it’s not as all-encompassing as Docker. Yet, one can’t help but draw comparisons.
App-V is, how shall we say, a bit less elegant. Simple to install and build-out, but a bit clumsy in execution, App-V works by more or less capturing what an application does to an underlying Windows system. Por ejemplo: take your average ordinary WIndows executable (I’ll pick Spotify, as that’s what came up first in Task Manager).
To virtualize Spotify, all one has to do (after standing up a an App-V VM) is tell App-V to capture all the things spotify_installer.exe does to a Windows system. Once finished, you signal to App-V that it should build a virtualized app for Spotify, and then, voila! You can “stream” the Spotify app -plus all the registry bits ‘n bobs it changed, the dll libraries it created/modified, and all that stuff- down to your Windows clients, where it will have zero interaction with potentially hostile local registry entries or dlls.
Two years ago, this was hot stuff and I was gung-ho on Application Virtualization to the point where I was thinking server virtualization wasn’t long for this world. Who wants to virtualize an OS when you can simply virtualize & delivery the application?
Sadly, App-V seems to have been placed on the “Neglect” shelf at Microsoft. It’s still around (still running on Silverlight too), but you don’t hear about it much anymore. I want to use it, but I can’t commit.
Microsoft’s taking a different approach to de-coupling the app from its OS, it seems to me: Universal binaries. At least that was the pre-Satya Nadella thinking, but it’s very close to realization. Saddle on up next to your favorite Visual Studio developer and ask him to show you how it works: you can build one codebase and compile it for multiple platforms. It’s almost to the point where you do a “Save As IOS App” then a “Save as Android App” and, of course, “Save as Windows app.” Awesome!
One could argue this is the ultimate app endgame…universal binaries that run on any OS would seem to be a more elegant solution than even Docker’s portability.
And then there’s Google. In the last two weeks, Google has announced that some Android applications can now run on ChromeOS. Sharp devs took very little time to expand the library of Android apps you can run and touch on a standard Chromebook.
Then they took it a step further- some devs have gotten Android apps to run on Chrome within Windows, a feat of software engineering so amazing, I think it deserves one of the same fancy nicknames Google used to employ in its financial engineering efforts (“a reverse double starbuck” comes to mind).
This is an exciting space, way more exciting and real than SDN, I’d reckon. Whether you want to virtualize your application by containerizing its infrastructure, building a binary that runs on everything, or going full Trojan Horse with Browser-as-a-Platform strategy, there’s real movement and change afoot.
And it’s all aimed at making computing more agnostic, if you’ll forgive the self-referential plug.
Forget infrastructure…How long until we stop talking about Operating Systems at all?