A new PaaS model for the cloud -- more diverse than the old model -- is emerging as the principal driver of new...
applications and public cloud growth. Development teams and software architects need to look at the new PaaS model, particularly to support their application modernization and digital transformation plans.
The logical way to do that is to first understand the architectural principles of the new platform-as-a-service model, review how the model has framed modern application design principles, explore the emerging key public cloud PaaS features and consider your own PaaS as an extension.
At first, an alternative for SaaS and IaaS
PaaS was first seen as an alternative to SaaS and infrastructure as a service (IaaS), and that original PaaS model is still the basis for Microsoft's cloud services. Today, Amazon, Google and Microsoft are all augmenting IaaS services with a diverse collection of web services available to cloud applications through APIs. These create what's essentially composable, application-specific middleware that adds feature value to cloud applications and, at the same time, improves application consistency, maintainability and agility.
The new PaaS model offers developers a wider choice of OS and middleware products than the original PaaS model, where OS and middleware were specific (in Microsoft's case, to a model based on Windows Server). Because the new PaaS web services APIs are not completely compatible across providers, some recoding will be required to make applications portable, but an IaaS image plus PaaS APIs is more portable than an application written for a single specific OS.
All the public cloud providers offer PaaS APIs to suit a large number of missions, and many of these APIs will be helpful in building applications once the overall design has been determined. A few PaaS API collections support specific application capabilities, like mobility or event processing, and these have to be considered in framing your applications' designs overall. Most advanced application projects aimed at application modernization (appmod) or digital transformation will tend to focus on mobile empowerment of workers, support for machine to machine (M2M) or internet of things events, or a combination of the two. Your own goals will guide your high-level PaaS considerations.
Using public cloud services
Public cloud providers know that most enterprise application modernization and digital transformation projects use public cloud services for the front end of the applications. That means the cloud provides primary device interfacing, presentation formatting, device-independent features, event/transaction steering and primary editing tasks. In most cases, the cloud will then hand off to traditional core business applications that run in the data center.
An emerging and somewhat related model for the cloud is the event model, where, instead of traditional transactions, the application is driven by events that are often generated by M2M elements rather than direct human action. Event-modeled clouds use PaaS APIs that allow small, dynamic processes (sometimes called functional routines, lambdas or microservices) to run near the edge to provide quick response times for control processes and to replicate and steer events for deeper processing.
The difference between the two models is that the front-end model of PaaS tends to convert user interactions into transactions, then process normally. The event model may do all the processing in the cloud. Thus, a corollary to the consideration of the primary PaaS cloud models is that if you plan to do appmod or digital transformation that will take some apps into the cloud completely, consider structuring those apps using event-related features. Public cloud services use serverless computing for event handling, and appmod/transformation based entirely on serverless computing is highly scalable and resilient -- often primary goals for appmod and digital transformation.
Serverless applications are the leading edge in the public cloud, and all of the primary providers are also extending their serverless capabilities outside the cloud to user-provided hosts. Event-based applications are clear matches to serverless processing, but while serverless design can be applied to more traditional applications, it's critical that you understand the specific limitations of each cloud provider's serverless APIs before you commit. Generally, scalability and resiliency in serverless computing are obtained by stateless behavior, and you'll need to write that into your application design to avoid serious problems.
Device-centric vs. event-centric
The recommended approach for high-level application design is to first decide on either a front-end, device-centric model for your application or an event-centric model. In the former case, you should start with the mobile device tools available from your PaaS provider(s) and follow the examples the provider offers for those tools. In the latter case, start with the event-centric APIs, and treat each message/interaction as an event.
There are some situations where event-based and front-end-based concepts mingle in the same applications. Examples of this are applications that use mobile device location events to trigger processing. When you have a mixture of events and traditional mobility, try to ensure that the two API sets don't collide in features or requirements.
The final point in PaaS consideration is the "roll your own" approach. It is not likely that many enterprises would try to replicate a full public cloud PaaS using their own development, but if you have multiple concurrent application targets for mobile front-end or event-based development, you should strongly consider designing all of them in the same way and developing a custom set of APIs to supplement the public cloud PaaS APIs. The best way to do this is to have software architecture collaboration at the early design phase and to use the result to lay out common features that could be converted into internal PaaS APIs.
A PaaS-centric approach to appmod and digital transformation offers many benefits, all of which are likely to grow as cloud providers enhance their web service extensions to IaaS. Most of the cloud applications of the future will be based on a form of PaaS, and every enterprise should be planning for that future.
Serverless computing boosts cloud outlook
A look at PaaS offerings for 2017
Don't PaaS up mobile cloud services