Platform as a Service
Plattform as a Service (PaaS) is all about bringing applications and services to the cloud. Therefore the target audience of the PaaS model are developers. It provides them a platform containing the whole technology stack to run applications and services supporting all the typical cloud characteristics like On-Demand Self-Service, Rapid Elasticity, Measured Service, Resource Pooling etc. Typically these platforms consist of:
- Runtime environments (Java, Ruby, Python, NodeJs, .Net, …),
- Frameworks (Spring, JEE, Rails, Django, … ) and
- Services like
- Datastores (SQL, NoSQL, Key-Value-Stores, File-/Object-Storage,…),
- Messaging (Queuing, Pub/Sub, Event-Processing,…)
- Management (Authentication, Logging, Monitoring,…)
- Miscellaneous (Mail, Search, Job Scheduling, Reporting, App Analyzer, …)
In addition to providing the runtime platforms also tools supporting the development process like development environments, testing, continuous integration and continuous deployment have to be adopted for the cloud environment.
In a layering model PaaS can be seen as a (middleware, glue) layer between Infrastructure (IaaS) and Software- and Service offerings for end-users (SaaS).
PaaS technologies and offerings are slowly getting mature. Industry is starting to discover PaaS solutions, but there is still a lot of education work to do in programming for the cloud. We see a lot of opportunities in this areas. Todays PaaS offerings almost entirely focus on web solutions and are optimized for large numbers of short lived process requests. They are not (yet) optimized for other services like batch processing.
There are some well known PaaS Providers like Pivotal WebServices, IBM Bluemix, Swisscom Application Cloud, REdHat OpenShift Online, Google App Engine, Microsoft Microsoft Windows Azure, Heroku, Stackato, App Fog, Engine Yard, CloudBees, …
In the lab we are specifically investigating the following OpenSource PaaS frameworks:
In the PaaS Research Theme we are addressing the following topics:
- Architecture, Scalability, Performance, Dependability and Interoperability of PaaS runtime environments
- Automated deployment and operation of PaaS environments.
- Managing PaaS systems (Monitoring, “Rating, Charging & Billing”, Incident Managment)
- Automated deployment and management of SOA-Applications in PaaS
- Building scalable applications for the cloud (architecture, mechanisms, …)
- Developer tooling and processes for continuous deployment and management of SOA based applications in PaaS.
- Cloud optimized communication middleware.
- Management and continuous migration of persistent data (versioning, structure changes, …)
- Extending the usage areas beyond web solutions (batch processing, analysis, …)
The following Initiatives are addressing PaaS specific topics.
- Cloud Orchestration
- Rating Charging Billing
- Incident Management
- Cloud Monitoring
- Distributed Computing in the Cloud
- Communication Middleware
- PaaS on OpenStack (hibernated)
- Cloud Native Applications
- Cloud Application Developer Tooling
- Active Service Managment
- Service Tooling
- Service Operations
In the following Projects we are currently working on PaaS specific topics: