Before going into Visual Studio, I want to discuss little but about the platform (PaaS) that our web app is going to live in.
All of the component that makes the infrastructure which the software runs on it quite same. We still need networking, storage, server and virtualization on a hardware level. Do you remember the times we install operating system directly on the box without virtualization? Then we need an operating system, middleware, runtime and backups to put our application top of it. Cloud doesn't take away those tears in the stack. The difference is who is going to manage those.
On-Premise applications, you (your team or perhaps a contracted company) need to handle both hardware and software as well as your application and data within your on-premise. Naturally every responsibility on DevOps' shoulder. If a hardware fails you need to take care of it, if a new patch released you need to install it, if some hackers try to sneak in into your network you are responsible for defending it even it's the middle of the night...
IaaS (Infrastructure as a Service) may be a better option for many applications, this where to start to take away responsibilities of some components of the system. All the hardware and network level responsibilities transferred to IaaS provider and you can focus on only software. There are still physical servers somewhere in a data center, you just never see them yourselves. On top of that, they manage the virtualization tear. So you end up with is a logical operating system that you can remote into and operate just like you seating next to the server on-premise.
IaaS is a significant improvement, many application has already moved to IaaS and running flawlessly. However, you still need to deal with a lot of platform related things other than the application itself. Imagine; you want to launch an e-commerce website. You go Amazon (in fact, you can go any other real cloud provider including Microsoft or rent a VM from a hosting provider) and fire up a VM instance (with pre-installed shopping cart application), in minutes you are ready to start selling. Not so fast! You still need to take care of operating system updates, database creating, user management, SSL installation... It continues an effort to keep the server alive. The only difference is that you don't need to deal with network connections and hardware fails, but the rest is still on your shoulder. You are still the administrator with full privileges!
Then we move across to PaaS: Platform as a Service. Keep taken away the things you have to manage: so now only the app and data. Delegating the responsibility back to the cloud provider. Of course, it isn't just a Microsoft Azure concept, the same principles apply to any other true cloud offering. The beauty of PaaS is that you only worry about application and data. You don't have to do any support on the OS tear, or the middleware or the runtime. You don't even need to take a backup. Because all of them is part of the PaaS and the cloud provider (in this instance Microsoft) does that for you. Because they do on a vastly large number of servers and automation, they do it for you exceptionally cheaply.
There is more step further in a cloud model, that is SaaS: Software as a Service. I will not go details on that, but briefly you don't write your own software or managing your data. Everything is managed by SaaS provider, you use fully managed service by the service provider. Good examples of SaaS are Github.com, SalesForce or Google Gmail You don't know the actual code, you don't manage anything. You just configure it and use it.
There are a lot of changes ahead of us. A lot to take in, a lot to adjust. But they make life easy for software developers and information technology (IT) professionals. It's such better time to working today. From now on, I will focus excursively on moving traditional hosting (on-premise or IaaS) to Azure Web App and Azure SQL database -and of course both of those Microsoft Azure PaaS offerings.