Platform as a Service

As a Platform as a Service (PaaS ) refers to a service that provides a computer platform for developers of Web applications in the cloud. It can be both rapidly deployable runtime environments (typically for web applications ) but also act to development environments that can be used with little administrative effort and without acquisition of the underlying hardware and software. They support the entire software life cycle, from design through development, testing, delivery to the operation of the Web applications on the Internet. Platform as a Service is a part of Everything as a Service.

Some offers include services for team collaboration and versioning, monitoring and safety or middleware services for data storage or for communication between applications. PaaS offerings are built on a scalable infrastructure (IaaS ) of memory and computing power and thus can scale well. Based on a PaaS environment can arise Offers Software as a Service (SaaS). Thus PaaS is the middle layer of the cloud stack.

  • 4.1 runtime and development environment
  • 4.2 Programming Model
  • 4.3 Development Process
  • 4.4 runtime environment
  • 4.5 Persistence
  • 4.6 Concurrency and communication between application instances
  • 4.7 Access layer
  • 4.8 client capability (multi -tenancy )
  • 7.1 See also
  • 7.2 External links
  • 7.3 Notes and references

Importance

Between October 2009 and October 2010, more than 100 PaaS providers have entered the market. They are lining up to take off their customers as many administrative tasks to enable scalability and high availability to reduce fixed costs and total cost to make the user more flexible and to enable rapid application development and an early market entry. Thus, it is allowing customers to focus more on the actual development of business applications, rather than worrying about frameworks, middleware, or operating scalable, reliable and cost-effective data centers.

Currently, PaaS offerings are only used by "leading -edge users", the "mainstream users" they are still skeptical about. Gartner sees the more visionary Independent Software Vendors ( ISVs) as the key to the acceptance of the PaaS model, as this will offer their applications on the cloud. Only through this SaaS offerings, the cloud is also attractive for other IT projects.

In 2009, the cloud computing had a total of a peak on the Gartner Hype Curve. There were many disappointments on the performance of cloud computing, but also have positive effects. In Japan, already have begun PaaS offerings like Force.com to use large companies in order to provide a large number of users location- transparent customer applications available can. It has been found that PaaS offerings currently suitable only for self-contained applications that do not require complex data processing and not a complex application design. The data that need these applications are still mostly based on an ETL process from its own data centers of companies, as they are not yet available in the cloud.

Demarcation to IaaS and SaaS

A definition of PaaS to IaaS offerings is difficult because many PaaS providers use underlying IaaS offerings and bundling. However, most PaaS offerings do not allow direct access to the operating system, the PaaS services are accessible only through APIs. The configuration of PaaS services can be done via a web interface as well as self again via an API. The user of a PaaS environment must take care, as is the case with IaaS offerings not to the operating system, middleware and runtime environment for the application.

In order to be able to distinguish from PaaS SaaS offerings, it is best draws on the target group. SaaS applications are typically designed explicitly for end users have a graphical user interface and can build on IaaS or PaaS offerings. On the other PaaS offerings for developers intended and offer them a development environment as well as a container for their applications and other middleware services. Developers can thus distribute its entire applications in a PaaS environment. Access to these middleware services is done via APIs.

However, there are also SaaS offerings like Google Drive, which provide developers with interfaces. However, they are mostly intended to expand the SaaS application or to communicate with her (see add-on PaaS). There are also SaaS applications without a graphical user interface, but they are not widespread.

Types

Application PaaS ( aPaaS ) / standalone environments

Under aPaaS refers to a cloud environment for creating and running business applications that is provided by a graphical user interface or through a programming interface ( API) available to users. An example would be a Web application to manage appointments which could run on the Google App Engine.

Integration and Governance PaaS ( iPaaS )

In contrast, iPaaS is available as a cloud environment for switching between heterogeneous, cloud-based applications through interoperability, integration and governance. An example would be, for example, an adapter, the various cloud services as well as on-premise services and this in turn connects offered as a cloud service without compromising inevitably be a graphical user interface. iPaaS is intended to replace the current integration middleware and be highly scalable in accordance with the cloud paradigm. A first providers of such solutions is Mule iON.

Add-on development environments

Add-on development environments make it possible to adapt existing software as a service (SaaS ) applications. The procedure is similar, such as the adaptation of Microsoft Word or Lotus Notes from macro languages ​​or from outside through APIs that are provided by the SaaS application. PaaS developers usually need this to access the SaaS application itself, either through a subscription or a free developer license.

Pure application deployment

Some PaaS offerings do not support the development, debugging or testing applications, but offer only the operation of applications in a scalable environment and beyond, such as security services.

Open PaaS

In open PaaS offers the developer not a programming language, not a database system, and no operating system or server can be specified.

Structure, properties and characteristics

Runtime and development environment

With the subdivision of PaaS in development and execution environment the developer should be allowed to commit to a development environment such as Django, but to be flexible in the choice of the execution environment and also to be able to switch between suppliers here.

To achieve a high level of reliability, must run for at least two instances of each application, so that in case of an error in an instance, the other can take over. Since applications need in PaaS environments usually both computational as well as data and other middleware services, please note that it can also suffer the availability of the overall system in case of failure of any of the used services. The vendors promise together only an availability of 99.5, 99.9 or 99.95 percent for each service, but not for all services in their SLAs usually. For provider-related violations of SLAs usually only credits from 10 to 25 percent will be reimbursed on the monthly statement.

Programming model

The programming model in the cloud is comparable with enterprise applications ( cluster of application servers with Load Balancer ), since both must be scalable and fail-safe. Therefore, in order to operate scalable applications in the cloud, this must rely on asynchrony and statelessness. Otherwise, you can reach only a hosting in a cloud environment, which will be without good scalability and reliability.

The Windows Azure programming model for example requires three conditions which must be met in order to ensure the scalability and reliability. First, an application needs into one or more logical roles are divided, secondly, multiple instances of a role must run simultaneously, and thirdly, the application must also behave correctly when an instance of a role crashes. In addition, the application must not store state because the load balancer in contrast, for example, Amazon's Elastic Beanstalk no sticky sessions / cookies used.

Changes to the operating system must, if they are at all possible, be made ​​each time an instance, and data if it can be stored locally, are generally not available for all instances and may be lost when you restart one instance. To enable communication between instances, must be set in the rule to a Message Queuing system, even should pursue an at -least -once semantics in part, and thus the processing of the messages must be idem potent.

When building a PaaS environment so existing enterprise programming models such as JEE or. NET can be used as a rule, however, the developer must set any changes if he has not yet developed scalable applications.

Development process

The development process does not differ greatly from the application development for Application Server, such as JEE. Applications are specified locally designed, developed, tested, packaged and finally transferred to the cloud platform. Many vendors such as Google App Engine, Windows Azure or Amazon's Elastic Beanstalk it possible to run multiple versions of the same application run in parallel, so as to offer live, stage and test environments and thus also to enable a rollback to a previous version. The major vendors also bring direct support for IDEs to transfer the applications directly from the IDE in the cloud environment.

Thus, a PaaS provider must ensure that all versions of an application are stored, and can additionally provide IDE convenience functions to distribute the applications from within the IDE.

The effort in order to port an on-premise solution in the cloud, so they also scaled there, may depend on the used programming model from a few hours to complete new design range.

In order to minimize the effort if only a small scalability is required, there are multi-tenancy patterns that do not, for example, multi-tenant applications multitenant with little effort, but for the price of a limited scalability.

Runtime environment

The runtime environment of a PaaS environment can be configured via a web interface or APIs. Thus, for example, launched applications and exits, or the maximum and minimum number are committed to instances. Also, the monitoring and the associated Autoskalierbarkeit the applications can be done via APIs or a web interface.

Some run-time environments such as JEE in the Google App Engine only offer a subset of the actual run-time environments to ensure the scalability and reliability. It is, for example, in the Google App Engine does not allow to start Java threads or directly access the file or operating system. These restrictions are usually compensated for by separate APIs to still offer the features, but not to jeopardize the scalability and reliability. Also can be enforced as for HTTP requests or e- mail sent by such APIs quotas, which guarantee the stability of the runtime environment. Some providers offer additional APIs for services such as memcache or image processing. Bundle will all vendor-specific APIs along with the runtime environments in SDKs.

The disadvantage of these adjustments to the runtime environments is a difficult portability, since the additional services are not available across all providers on standard APIs. While there are standards bodies like open stack. and Occi They focus their work but more on the standardization of the management and storage APIs as the application container.

Persistence

Almost every application needs to store data, but this can not happen in cloud environments on the hard disk of the runtime environment, since the runtime environments are turned off and the application on a different runtime environment can be restarted must. Therefore, most PaaS providers offer different Persistenzmöglichkeiten as a service via an API. Various services such as BLOB storage, SQL databases, NoSQL databases, highly available cache or memcache server thus belong to the service of large PaaS providers.

Most persistence of PaaS providers are not based on relational databases, as these are only two of the three properties can fulfill consistency, availability and partition tolerance simultaneously by the CAP Theorem, to meet the scalability requirements. In the cloud therefore ideal key-value stores or schema -less NoSQL databases have been established, which scale much better, since they do not have to fully comply with the ACID criteria.

Since many customers still require SQL databases for easy application migration to the cloud, now these are also offered, but with a worse performance than the key-value stores. The BLOB store the PaaS providers, such as the Amazon S3 service, usually use non-standard software or protocols, but feature a vendor dependent API. To facilitate the portability of applications from one to another PaaS provider, is often implements the JPA or JDO API for the databases in the Java environment.

Concurrency and communication between application instances

Thus, the response time of applications for the end user is always acceptable, need some applications for larger calculations, the possibility to start it asynchronously. In cloud environments, each time to shut down an application instance. Thus, the calculation can be aborted before completion. In addition, for example, offers the Google App Engine is no way to start a new thread in its applications. This is to prevent the stability of the Google App Engine is at risk.

In order to guarantee the execution of asynchronous computations or to allow for this at all, most PaaS providers have a messaging infrastructure in the program. The Google App Engine allows the abutment of asynchronous tasks, for example, by means of the services scheduled tasks and task queue. At Amazon, there are to the Amazon Simple Queue Service and Windows Azure Queue service API from the Windows Azure Storage Services. Although Windows Azure and Amazon's Elastic Beanstalk allow it to start new threads, it is recommended to use for the reasons mentioned above message queues in order to achieve better scalability.

Access layer

Access to applications in the cloud is done over the Internet or within the company via your Intranet. Above all, Web and network protocols such as HTTP / S and TCP / IP play a role, but also protocols for special applications such as XMPP or WebSocket is supported in part.

The most important role for the HTTP protocol, since they access applications that are transmitted in a PaaS environment, usually via HTTP. The HTTP protocol was created as an access protocol for resources on the Internet and is therefore also suitable for cloud applications. Protocol properties such as statelessness and caching support a scalable infrastructure. Thus, a Load Balancer to forward HTTP requests to corresponding instances of stateless applications or bring a CDN resource close to the user.

To keep the stable cloud environments, is here again restricted by some providers of network access from an application and made ​​available through vendor dependent APIs in a controlled manner again. The Google App Engine allows, for example, no free network communication, this API from Google to be used, the HTTP / S (URL Fetch ), XMPP and WebSocket (channel ) are supported.

To increase the security of applications that allow vendors such as Amazon common firewall settings such as Black or White listing of IP address ranges or TCP / UDP port restriction to make. Thus, the access to an application more secure and own the company are limited. Also by IPsec VPN secure connections between the public cloud and on-premise infrastructure, for example, with Amazon's Virtual Private Cloud service possible.

There are also services such as Windows Azure Connect (beta) to allow direct communication between the public cloud and on-premise services over the IP protocol. For example, a public cloud applications on an on -premise database or on-premise Active Directory access.

Client capability (multi -tenancy )

Since not only individual firms outsource their in-house applications to the cloud, but also liked to use ISVs in new applications on cloud platforms, resources are needed to enable a client capability.

Here, clients can be assigned to session dependent or independent individual application instances (Multiple Instances multi-tenancy ). Or the application is aware that they are serving multiple clients ( Native Multi- Tenancy), then the request of any, not previously specified application instance can be processed. The type of client service has a major impact on scalability. In addition, aspects such as data security, performance, isolation, availability, SLAs or application configurations play a major role. The data of the individual clients may not be mixed, the performance should be equally distributed to all clients, and yet every client should be able to configure its application individually.

PaaS providers like Google react to this, for example with namespaces. So may be assigned a subdomain as a namespace every client. Then connected objects of the DataStore, or Memcaches the task queue is only on the access to this namespace admitted. This ensures a higher level than the application itself that no customer gets access to the data of other customers. Alternatively, can be resorted to various patterns.

Another problem to solve a cloud platform, is the concurrent operation of multiple versions of an application. This is the one when developing applications beneficial to perform tests such as regression testing. It then provides a way to rollback if occur in live operation after switching to the latest version error, and there are clients the opportunity to decide when they want to upgrade to a new version.

Costs

The operation of a small web application with a compute instance, 15 GB and 15 GB an outbound traffic and 1 GB of memory costs with vendors like Google, Amazon or Microsoft between U.S. $ 38 and U.S. $ 65 a month.

Criticism

A support in the form of technical manuals or even tools to migrate from on-premise to PaaS applications have the most vendors not in the program. You have only to tools to import data into the cloud and export and load virtual machine images to the cloud. That alone makes the applications may not yet be scalable, but is more comparable to a remote hosting solution.

The large PaaS providers offer all the basic functions to make simple web applications running in the cloud. Professional support is also offered by many services, some of these offers are, however, still in a beta phase. The general privacy issues in cloud computing will not be addressed by the services for German companies, as the data are not in German data centers, which is important for many companies.

Caution is advised when some services that, while indicating to have PaaS offerings, however, designate an off -premise hosting without scalability with this term.

References

629320
de