The Polyglot PaaS Platform
#PaaS @rishidot What does that mean? It means operationalizing the platform.
Krishnan Subramanian recently posted slides he created for Cloud Connect India on the topic of PaaS. Krish covers drivers and where PaaS is headed and includes in his list of characteristics of next-generation platforms the criterion of "polyglot platforms."
This simple phrase encapsulates so much more than just the notion of platforms capable of supporting multiple development languages. It comprises the notion of an operationalized polyglot platform, one that brings standardization to operations while providing flexibility for developers to choose the right tool (language) for the job (application).
To understand why this is so important (and game-changing) you have to understand traditional enterprise application platforms. They are largely single-language platforms (think .NET and Java EE) that are operationalized only in the sense that scripting languages are capable of remotely modifying platform configurations and restarting the daemon. Enterprise organizations have long standardized on a few key platforms as a means to constrain the costs associated with licensing (OSS gained traction this way) and more importantly, administrative overhead.
Very little in the platform is focused on networky-things like elasticity (scale) and performance monitoring or application domain-layer concerns.
Add-on modules provide some application domain-layer concerns, but bring to the table additional overhead in compatibility and long-term added overhead.
The need at the second layer of the cloud pyramid (remember that one? IaaS PaaS SaaS ) for operational consistent and orchestration is as great at that of the first layer, IaaS.
That's because at the PaaS layer there are all sorts of interesting, application domain-specific things happening under the covers. Acceleration, optimization, application routing and a variety of other application network services often end up being implemented in the application server as a means to provide what essentially can be considered support for multi-tenancy, i.e. the ability to tailor network and application network services to specific applications.
The thing is that being able to offer "IT as a Service" or consistently deploy services is made more difficult by the need to support 2 or 3 or more application platforms at the operational layer. Thus, if a single, polyglot capable platform were available it would provide operations with a way to enable streamlined provisioning and management without overly restricting the choice of languages.
Note that a polyglot platform isn't necessarily one that can run PHP and node and RoR at the same time. Oh, maybe it could, but you really wouldn't want to do that. The value of a polyglot platform is in the platform; in the operational consistency and sameness of the underlying platform across applications implemented using different languages. It's in standardizing the platform layer to achieve economy of scale in the deployment domain in much the same manner that it is standardization at the infrastructure and network layers comprising cloud that enables the benefits of effiiciency and agility.
It is about standardization at the platform layer without placing undesirable constraints on the development environment.
The idea that you can create an agile ops environment by standardizing on a platform without impacting development is a pretty powerful one, because it remains flexible (for the consumers, the developers) while reigning in control of the platform in a way that ultimately leads to the benefits afforded through economy of scale in the network infrastructure layer at the application infrastructure layer.