Platform as a Service (PaaS) is the cloud technology to choose when it comes to building custom applications for the cloud. The challenge to building custom applications for the cloud is finding a platform that supports all of your application's needs. Microsoft Azure has gone a long way to provide a comprehensive set of services that can meet almost any application's needs.
As cloud computing has matured, the vast array of the products that have jumped under the cloud banner have stratified into three general categories: Software as a Service (SaaS), PaaS, and Infrastructure as a Service (IaaS). SaaS brings applications, such as customer relationship management (CRM) and email in a form that lets customers purchase services, under a pay-as-you-go model. For example, customers can purchase by price per user or per mailbox. SaaS significantly reduces IT overhead for these applications by pushing the responsibility for hardware maintenance, software upgrades, and operations to the service provider.
IaaS is really the origin for the idea of cloud computing. IaaS eliminates ownership of hardware, providing virtual instances of servers for the customer to use. Although the instance typically includes an OS, the customer is responsible for maintaining the OS, as well as installing and maintaining all other software that's required.
PaaS sits between SaaS and IaaS. SaaS doesn't let users build custom applications, and IaaS leaves all the care and feeding of the virtual machine up to the customer. In PaaS, the hardware, OS, and the platform-related software are maintained by the vendor. The customer is responsible only for his custom application running on the platform.
The challenge of understanding PaaS is learning what the platform provides and how your application can take advantage of its features. This is where Azure really excels—the web role in Azure is based on ASP.NET and includes a few new features and some restrictions. Although there are a few hoops to jump through, ASP.NET applications can migrate to Azure.
And Azure development tools are the same as ASP.NET application development tools—Microsoft Visual Studio works equally well against a Microsoft IIS server as an Azure server. Windows Azure Tools for Visual Studio lets the user deploy a web application directly to Azure and provides testing and debugging support.
When you start to really take advantage of cloud computing, Azure's PaaS solution shines. Services such as distributed identity, content delivery networks, caching, service bus, and more are all built into Azure. And if that's not enough, there's a huge third-party library of tools and services for Azure. See Microsoft's Applications section for an idea of the products that extend Azure.
Automated elasticity is the holy grail of cloud computing, automatically adding extra resources as the demand for an application increases, and reducing those resources as demand decreases. Although there's no one simple solution for automated elasticity, you'll find several different tools and techniques in Azure, as well as third-party tools to help you.
Note that Azure isn't solely focused on Microsoft technologies such as ASP.NET. Do you have a PHP application to run? Azure can run the application. Want to experiment with node.js or Hadoop? No problem, there's support for these technologies, too.