Platform as a Service (PaaS) is where you’ll find the full promise of cloud computing. I say this because cloud computing (and most legacy IT infrastructure too) exists for one purpose: to deliver software applications to users. We don’t run huge data centers because it’s fun — we do so to host applications. All that compute, storage, and networking exist to make software features available to users, and PaaS makes it far easier, faster, and cheaper to do so, and do so well.
PaaS providers offer hosted programming languages, libraries, services, and tools to support the application lifecycle including application DTQ (Development, Test, and Quality Assurance), release and deployment, monitoring, maintenance, and retirement. PaaS offerings address all of these important application lifecycle management issues.
There are at least five distinct types of PaaS in which users control applications and configuration settings:
- Application Management
- Application Deployment
- Hosted IDE (Integrated Development Environments)
- Application Integration
- Visual Development
In this post I’m going to explain PaaS for application management and follow up on the other types of PaaS in the next several weeks.
In my last post, I introduced application management PaaS providers as ones who offer tools that help application deployment, scale-out, and administration. These providers don’t offer tools for writing or coding applications. Instead, they include:
- Services to start and stop databases, applications, and required services in a repeatable and possibly automated way.
- Tools for packaging applications. These tools aren’t so much deployment (e.g., pushing the code) but rather help ensure error-free deployment across different or new platforms. They include configuration or platform adjustments required to optimize the deployed app to its stack.
- Scaling tools: dynamically balancing and optimizing the application-hosting environment including adding, shifting, or removing application resources as required based on demand.
- Monitoring tools to provide application activity, security, and audit logs; events and alerts offering feedback and early warning of application issues; and even real-time visibility into events for speedy bug fixes patches and features.
- End-user experience simulation: scripts that simulate user activities and often take action based on results. Often drives the other features such as load balancing or support services for example.
- Backup and restoral services and tools; application and stack upgrading services, etc.
As you can see from this non-exhaustive list, there’s quite a bit to the application lifecycle that doesn’t involve writing code. By some estimates, 80% of the lifecycle of an application isn’t development. Application management PaaS providers focus on these important non-development activities.
This area is maturing quickly. There’s even a community pushing application management standards called CAMP, which stands for Cloud Application Management for Platforms. CAMP is an Application Programming Interface (API) specification for managing PaaS platforms. I’ll write more on CAMP and related Software Defined Networking (SDN) efforts later.
While there are PaaS providers that only offer these services, there are also PaaS providers that combine application management services with other PaaS, IaaS and even SaaS services.
Be sure to evaluate and include these important application management functions as you move to PaaS and think about PaaS providers. ITSM/ITIL and DevOps (the fusion of traditional Development and Operations activities for cloud computing) is a natural place to start exploring the application management PaaS service offerings.