While infrastructure as a service (IaaS) rents you computing resources instead of purchasing your own, platform as a service (PaaS) replaces not only capital ownership, but the attendant labor required to maintain an application with reasonable service qualities, whether your company deploys business applications or consumer products like online games.
Implementing IaaS is certainly the easier of the two. We have been remotely connecting to corporate and collocated data centers for years, so using remote utility data centers is not so big a deal. IaaS changes IT finance from capital tracking to expense tracking, especially since IaaS makes buying computing power so easy. But our software development and engineering practices don’t see much impact aside from adopting a hosting company’s network practices and system monitoring services.
PaaS offers the potential for much larger benefits. PaaS encapsulates not just the raw computing resources, but also the complex software stack necessary for business application support. A PaaS service such as those offered by Microsoft, Salesforce, etc. can potentially eliminate the engineering and operational labor necessary to use business quality applications. And while these PaaS services are often highly fault tolerant, that doesn’t mean they won’t fail, as several recent public outages have shown. Of course, even if the platform is stable, that doesn’t mean your application won’t continue to fail also.
Observers of software development practices have identified a key change in application design required to fully realize PaaS benefits: an IT organization must move from server-centric to application-centric operations, as one does not have control over the cloud environment in which they’re operating. Focus now needs to be on the code, available data, and configuration.
We see PaaS environments implementing the non-functional requirements my firm calls “the -ilities”: Features like operability, availability, extensibility, reliability, deploy-ability, secure-ability, etc. When PaaS automates operational integrity, you can make application features the center of investment, making your software a competitive advantage.
But PaaS benefits are only fully realized for applications that are designed for an automated Platform interface. For those in IT looking to migrate to PaaS, either your application has already virtualized its platform interface, or you have some work to do before you can migrate.
We see this obstacle as the principal impediment to cloud migration by our customers — and the next frontier for software application and solution providers. Migration to PaaS cannot occur until your application automates the Platform configuration and monitoring previously performed manually.
Let’s face it: not many application designers are good at addressing the “-ilities”, largely because there were always those “guys down the hall” who handled such problems. But what if there is nobody responsible for building and deploying your code from source? What if there is nobody monitoring your application servers? What does that mean to the way you code and the way you detect and handle faults and errors? The way you compile and install your application?
Our message to application designers targeting PaaS is: You own all the “-ilities” now, and even the simplest applications need to anticipate the challenges of a fully automated Platform. And by automated, we mean pretty much everything previously performed manually.
Today, we see PaaS benefits reserved primarily for start-ups and “green field” development teams that are starting from scratch, and who design their applications to self-manage operational integrity in public cloud environments. Tomorrow, these skills will need to extend to all IT development if the economic benefits are to be achieved.