PaaS and DevOps tooling is an opportunity to raise infrastructure abstraction. DevOps tooling integrated with PaaS should shield developers from hardware infrastructure concerns and expose business entities. The Cloud washed PaaS environments commonly do not shield application developers, integrators, and architects from infrastructure details (i.e. memory configuration, location, number of machine instances). While short-term benefit is derived by ‘quickly pushing bits into the Cloud’, the design and development experience remains the same.
Figure 1 illustrates how platforms can create abstraction levels on top of traditional infrastructure and shield developers from complexity.
Figure 1: PaaS Abstrations and Complexity
With both the hardware infrastructure and application platform abstraction levels, teams can often forklift existing applications into the Cloud with few modifications. The migrated applications will run in the Cloud, but will not be purpose-built for the Cloud. If teams desire to obtain Cloud benefits by delivering business capabilities ‘as a service’, business entities should be exposed, composed, connected, consumed, and orchestrated as services. A business entity perspective is required to decompose applications and flexibly distribute the entities across Cloud nodes.
PaaS environments exposing APIs, services, and communication channels deliver application building blocks at an abstraction level that accelerates application development. Developers natively interact with APIs instead of objects, and easily provision personalized end-user workspaces. With a Cloud Native PaaS, multi-tenancy is extended inside the application, and tenancy can be applied to users, workspaces, and transactions. Also, application scalability, isolation and partitioning are achieved through stateless distributed components as opposed to tight session replication and deployment silos.
At which platform abstraction level would you rather spend your time?
WSO2 Stratos delivers business entity level abstractions.