A critical enabler of enterprise application modernization is development automation products broadly described as platform as a service. These are public or private cloud services that build upon low-level infrastructure services and consist of a collection of middleware services. PaaS offerings target a broad spectrum of users, from traditional developers to spreadsheet jockeys and Salesforce gurus. This dichotomy makes it difficult to assess a PaaS vendor.
PaaS vendors roughly fit into two categories: the developer-focused PaaS, where products target application developers building custom applications from the ground up; and the user-focused PaaS, which adds extensible features to existing software products that enable nondevelopers to create custom applications using cloud services and back-end infrastructure. Below are popular and representative examples of each and explanations of how they can help those looking to expand their business through building cloud-native applications.
The benefit for developers in using PaaS is the reduced complexity of building cloud-native apps, since the PaaS vendor assembles and maintains most of the underlying infrastructure and toolchain. As such, PaaS can offload much of the coding and infrastructure assembly for mobile and web back-end services, as well as enable developers to focus on differentiating features and the user interface, not back-end plumbing. By removing developers from the task of infrastructure and tool management and allowing them to work at higher levels of programming abstraction, PaaS can significantly decrease the development cycle and enable Agile methodologies, such as continuous integration and delivery.
Although PaaS is often used by traditional software developers, the concept has been embraced by software vendors like Oracle, Salesforce, SAP and others to allow customization of their packaged software by business application users. A top-down PaaS vendor — one with a product that turns a sophisticated piece of packaged software into a platform for custom enterprise apps — enables users like business analysts, who aren’t experienced programmers, to develop cloud-native applications that automate business processes, build custom information dashboards or fill other application niches not targeted by packaged software.
The developer versus application-user PaaS vendor
PaaS technology that works best for developers takes care of coding and infrastructure setup to allow developers to program at higher levels and not worry about the back end. Businesses must pay attention to the supported environments and operating systems of each PaaS vendor to see what best fits their technology and processes.
Apprenda is a software package for private PaaS that provides an application server and container for .NET and Java applications. It works across both Linux and Windows, although it targets Windows developers. Apprenda includes an execution environment for application components using a distributed, scalable server architecture, with a central management console for the underlying infrastructure, users and operations; a developer portal; and a host of APIs, services and database connectors. Earlier this year, Apprenda acquired Kismatic to provide Kubernetes support for containerized, cloud-native applications. Apprenda is well-suited for organizations building on-premises applications that want to exploit cloud-native technologies, such as distributed cluster management, without piecing together open source components and integrating them with existing data sources and security or user account infrastructure.
The Cloud Foundry ecosystem is an open source PaaS project that originated at Pivotal Labs — an EMC-VMware spinout — and is now governed by an independent foundation. Cloud Foundry is designed for cloud-native applications that use a microservices architecture, containers and RESTful APIs. It runs on a variety of both private and public virtualized infrastructure, including VMware, OpenStack, Amazon Web Services, Azure and Google Cloud. Notable features include service brokers for registration and application binding, service routers to direct traffic to the right component, and cloud controllers for system and application management. There is also a message bus, blob store for application code and packaged builds, an authentication engine, and various logging and monitoring components.
Cloud Foundry is the basis for many commercial products and online services from Pivotal itself, Atos, CenturyLink (AppFog), GE (Predix, targeting internet-of-things applications), Hewlett Packard Enterprise (Stackato), IBM (Bluemix) and Mendix. Each of these may bundle added components to the base Cloud Foundry release and be optimized or more tightly integrated with particular infrastructure-as-a-service (IaaS) platforms — e.g., IBM Bluemix with SoftLayer.
Google App Engine (GAE) is the PaaS companion to the Google Cloud Platform IaaS suite. Unsurprisingly, being from Google, it is designed for web applications and mobile back ends — just the things you’d expect to see on a Chromebook or Android phone. App Engine uses containers that are preconfigured with a supported runtime environment, with a choice of Java, Python, PHP or Go. Teams who specialize in languages other than these four, such as C++, should keep in mind that code will have to be refactored into one of the supported languages.
The platform includes various persistent storage services, including NoSQL, SQL and in-memory caches; automatic instance scaling and load balancing; asynchronous task queues, like a message bus; task scheduling; search –no surprise, being from Google; and tight integration with Google cloud and APIs for its other products, including use of Google accounts and its authentication engine.
Like GAE, App Service automatically scales and load-balances client application traffic, and it’s tightly integrated with the underlying Azure IaaS services like SQL, NoSQL and object storage. But it also has connections with over 50 software-as-a-service (SaaS) products, including Office 365, Salesforce, Slack and Dropbox. Microsoft shops with seasoned Windows developers will naturally gravitate to Azure due to its use of Window infrastructure, tight integration with the Visual Studio toolchain, and support for .NET and Windows APIs.
Red Hat OpenShift, the commercial implementation of the OpenShift Origin open source project, is a container-based PaaS that combines Docker packaging and Kubernetes cluster management. It is available as a shared or dedicated managed service, or as on-premises packaged software. The platform supports applications in Java, Ruby, Node.js, Python, PHP and other languages through add-on modules that use the OpenShift API, called cartridges. It includes MongoDB, MySQL, PostgreSQL and SQLite databases, as well as JBoss middleware, including the Red Hat BPM Suite, web server, business rules management and push notification service.
PaaS is a growing market, but still dwarfed by IaaS
PaaS is the smallest of the three primary as-a-service categories, with roughly only one-third the revenue as IaaS; however, it is growing just as fast. According to the 451 Group, PaaS revenue is projected to grow 25% per year, with revenue doubling by 2020. Despite such growth, PaaS will still be a much smaller market than IaaS and dominated by the mega-cloud players like Amazon Web Services — which is adding many application-layer services — Google, IBM and Microsoft.
Business application users must look for a PaaS vendor with a stack that extends existing application platforms like Oracle, SAP or Salesforce, since these will provide the easiest access to data, metadata, user accounts and higher-level application services to create custom dashboards, data visualizations or form-based collaborative workflows.
Oracle Application Builder is a browser-based visual development environment that allows nonprogrammers to build applications by connecting prebuilt components using a GUI. Applications can use Oracle SaaS applications via REST APIs to create customized forms and dashboards. As with any PaaS stack, Application Builder is typically used to build custom extensions to existing applications, as well as integrate packaged and custom applications by sharing data or passing calling functions from one to another. App extensions are often new, custom web or mobile UIs that can be created with a drag-and-drop interface.
SAP HANA Cloud Platform is a managed service providing a set of application services that simplify development using any SAP application, including its HANA in-memory database. Typical use cases include building customized dashboards that can integrate HANA and on-premises data sources, mobile front ends and internet-of-things data analytics.
Salesforce App Cloud is the umbrella service for the Salesforce’s Force.com and Heroku development platforms. It features a GUI, drag-and-drop environment — Lightning — for quickly assembling custom apps from prebuilt components. Built upon the Salesforce customer relationship management application, App Cloud combines core infrastructure services like databases, storage and containers with platform services like a workflow engine, social collaboration, reporting and dashboards, a mobile back end and application UIs. Although developers can code microservices in Heroku DX, Node.js, Ruby, Python, Java and PHP, App Cloud targets business users without formal programming experience. Typical use cases include mobilizing existing Salesforce apps, integrating one or more Salesforce apps — such as customer-facing and employee apps — and building data analytics dashboards from Salesforce activity.
The right PaaS vendor depends on development team
Selection of a PaaS product is highly dependent on an organization’s existing infrastructure, new application requirements, and the target audience of both the applications and developers. Those using experienced developers to build greenfield, cloud-native applications should focus on the developer-centric PaaS frameworks and their associated infrastructure.