What has changed in the industry?
The cloud and the browser. Let’s juxtapose those two ideas. How would we teach someone about today’s internet? To someone who learned computer science but skipped 20 years of internet. What if this someone went to sleep and just woke up 20 years later?
I think there is a world market for maybe 5 computers.
– Thomas J. Watson
What did Thomas Watson mean? This was back in the days when the computers filled the entire room.
What do we mean when we say the cloud?
It’s the concept of virtual machines.
What are the characteristics of the Operating System? It has memory managements and so on but it sits on top of hardware.
When you have a virtual machine, it gives you portability. This is when revolution began. You can take it from one provider to another provider. You also have the ability to choose, like to run Linux in Azure. Microsoft doesn’t care if you are on Windows or Linux or what language you write your code in. Microsoft’s new business is the for-loop, getting money per second.
Virtual machines let you do anything. They let you run anything. The problem is they are free like a puppy. But you have to water the puppy and walk the puppy. You have to keep it alive. You have to maintain it.
The cloud is more than just lift and shift, like moving the virtual machine to the cloud.
You don’t want to do virtual machines. You want to do web sites. Web sites let you run fewer things.
The layers of abstractions are built on top of virtual machines. We used to be the cloud, we scaled it out manually by ourselves. Now it’s just a slider bar! It’s exciting because it’s a solved problem. Server farms, firewalls. and so on. The stuff that we learned the hard way in the last 10 years are now checkboxes or a simple command in the cloud system.
What just happened? Magic!
Use whatever cloud that makes you happy.
Use the cloud that doesn’t care about your language choice. Use the language that makes you happy. A good cloud doesn’t care. The SDKs for your cloud should be open source, so you can see the source. It’s a higher level of abstraction.
You want to have a dashboard that shows you all the amazing high level business things that you need.
It’s platform as a service.
Adrian Cockcroft, Chief Architect of Netflix, did a talk about how Netflix scaled out to Europe and how they moved to SSDs. A kid said to him that SSDs are unreliable and Netflix is built on a House of Cards. No pun intended. 🙂
Adrian: That’s not my problem, I am renting them!
It doesn’t matter if SSDs fail!
What other problems can we solve on a higher level of abstraction?
You think about the business problem. You try to fix a problem like parallelism so you can be able to fix the actual problem. The Yak Shaving. What if you could raise the layer of abstraction? Parallelism is a solved problem. A layer of abstraction that is above virtual machines and web apps. That’s the cloud. Still we insist on maintaining virtual machines.
What about the browser?
The internet is an infinite book, a bunch of pages. The first webpage was http://www.url.com. The page still works. Then Java happened. And Silverlight. And Flash. We were doing it because we wanted an application platform and we could only do it with a plugin. A Plugin Virtual Machine. We taught our users that that’s OK. It’s a little VM in a box.
Microsoft didn’t kill Silverlight. The internet killed Silverlight.
We have another OS that is running in the browser.
But Zuckerberg said that their biggest mistake was betting too much on HTML5, native is better.
“The avalanche has already started. It is too late for the pebbles to vote.”
– Scott Hanselman
The Web is getting a WebAssembly.
This is a joint effort among Google, Microsoft, Mozilla, and others.
The pieces fit together correct now.
Things got OK once we got rid of IE 7-10.
You can use the cloud for massive scale and elasticity and with your choice of language. The browser is powerful with accelerated graphics, rich style and integrated virtual machine.
You have unlimited virtual machines in the cloud. Your user has powerful virtual machine with the browser.