Posted by: Beth Cohen
Cloud architectures, cloud computing, cloud computing models, cloud development platforms, Cloud Services, SDaaS, Software development, Software Development as a Service, Software Development in the Cloud
Question: I am confused about the Microsoft Azure cloud offering, is it a PaaS as Microsoft says, or a set of cloud based software development tools?
A recent presentation I saw about Microsoft’s Azure cloud service claims that Azure is a PaaS (Platform as a Service), while offerings from Rackspace and Amazon are IaaS (Infrastructure as a Service). Coming from the network administration world I was left scratching my head. You would think that by now cloud computing definitions would be settled. After all, cloud technology as a concept has been around for at least five years. As noted in my previous blog on cloud business and operations , NIST has published a viable definition even with its somewhat operational bias. To me and the majority of the IT community, the definition of PaaS is that it provides the operating system but any tools or applications installed on that platform are beyond the scope of a PaaS service.
Drilling down further into the mystery, there seems to be a gap in the three layer model that requires an additional component. Cloud computing follows the traditional IT model of infrastructure support and application development as separate functions. IaaS and PaaS are both services that are designed, built and supported by people who are IT infrastructure engineers. They have little knowledge or interest in the applications that sit on top of the systems they build. SaaS products, on the other hand, are developed as applications designed to be used primarily by end users. Modern SaaS products typically leverage IaaS and PaaS services for their infrastructure.
Microsoft Azure and other similar services, such as, AppEngine by Google and Force.com by Salesforce.com clearly are providing services that do not fit into that classic three layer cloud computing model. They deliver tools for building new applications and supporting existing software, but unlike SaaS (Software as a Service) these services are designed specifically to be used by developers to create new applications. Azure does have some built-in runtime support tools, but unlike VMware’s vFabric the tools are designed from the developer’s, not operational perspective.
So I would argue that Microsoft’s definition of Azure as a PaaS is misleading. Clearly Microsoft is co-opting the term PaaS by its own unique definition for marketing purposes, but I think that just muddies the waters unnecessarily. Microsoft Azure as a comprehensive development platform in the cloud built from familiar components has few real competitors and offers a valuable service for Microsoft centric shops that have no other viable way to easily migrate to their applications to the cloud. A more accurate view is that Azure is an application development environment as a service. Maybe the best term for Azure and other such tool kits should be Software Development as a Service or SDaaS. By labeling these offerings separately it clears up the confusion between the IT operations and development functions. The four layer cloud model, IaaS, PaaS, SDaaS, and SaaS more closely maps to the required staff skills and matches the IT functional model that exists in most organizations today.
As their web portal says, “Windows Azure and SQL Azure enable you to build, host and scale applications in Microsoft datacenters. They require no up-front expenses, no long term commitment, and enable you to pay only for the resources you use.” Sure reads like a cloud Software Development as a service offering to me.
About the Author
Beth Cohen, Cloud Technology Partners, Inc. Moving companies’ IT services into the cloud the right way, the first time!