The abbreviation PaaS , short for Platform as a Service , describes the middle tier of the cloud service models. The main benefit is, in particular, the simplification of the development and provision of applications as well as greater efficiency. Here the user has to take the software development into their own hands. At the same time, however, this also means for him that PaaS already brings elements such as runtime environment or operating system with it. Nevertheless, all important responsibilities are borne by the provider.
Advantages and disadvantages of PaaS
At the same time, there are also some noteworthy advantages and disadvantages with this service model. With PaaS, these parameters stand out in particular:
benefits
- faster and less complicated development and delivery of the software
- Development, test phases and operation possible on a uniform platform
- Software development lifecycle easy to manage
- Many functionalities are directly available, e.g. authentication, security features, database management system, user directories and registration, monitoring, etc.
On the other hand, there are also some disadvantages:
disadvantage
- High dependency on the cloud provider, especially with regard to the vendor lock-in (German: difficulty in changing provider)
- Components cannot simply be taken along when changing providers
- Fast-moving market, ie many innovations & shutdowns in functions
- Constant price changes, ie running costs that are difficult to calculate
Software development in the cloud
In the area of the PaaS service model, there are some key principles in software development. I would like to take a closer look at the concepts of microservices, containers and orchestration at this point
Microservices
Microservices play a role especially in connection with modern IT architecture and ensure the modularization of software. It is about the interaction of many small microservices, each of which processes a task module and then packs it into a container. The individual microservices can communicate with one another on the basis of a common network.
Microservices are often used to break down complex software into small parts and thereby make it easier to understand as well as to facilitate the possibility of expansion. This is therefore possible because the applications within the entire process are made more modular and therefore scalable independently of one another.
Microservices example :
You want to make some tea. You break these tasks down into the microservices: provide tea bags, boil water, fill water in cup and put tea bags in cup.
Container
Another element of PaaS are containers. Such a container corresponds to a kind of scalable box around your own application and its dependencies, in which, for example, a microservice is accommodated (see Fig. 1). Completely independent of its environment, it is kept extra small and only contains the most essential features to be able to operate the application reliably. A well-known example of containers is the “Docker” open source solution.
The added value of containers
- Can be used in any environment and in any cloud
- Easy scalability
- With high resource consumption (e.g. traffic), several containers can act at the same time and distribute the load
- Irrespective of the hardware, images can be passed on from the development environment to the test environment through to production
- Containers are small and can start up significantly faster than large-meshed operating systems
How containers work
Each container is based on an image. An image describes a blueprint from which the containers are created. Images are usually stored at a central point and can be used from all environments.
The individual image consists initially of a large layer, called the kernel, on which the various containers can run. Based on this, images can finally be put into operation in containers. In fig. 2, for example, you can see a base image on the right stack (here: BusyBox) to which the Python runtime environment is added in order to be able to create a container from it. On the other hand, there is also the possibility, as on the left, that an image is based on an operating system (here: Debian) to which the two layers Apache “and” PHP “are assigned in this example.
Using these methods, as well as adding and changing layers as required, images can be specialized and displayed in many different variations.
Orchestration
The containers mentioned in the section above must also be properly managed using suitable orchestration software. Such software is used to monitor the interaction of the individual containers like a conductor and to bring them into harmony with one another. For example, to precisely determine the sequence of the microservices. A well-known example of such software is Google’s open source “Kubernetes” project.
Google provides users with a portable and infinitely expandable platform for managing services that are delivered in containers. Added value is not only significantly better operation, but also significantly easier scalability. This in turn means that both automation and configurations are enormously simplified.
Added value and functionality of Kubernetes
In addition, Kubernetes offers the possibility that the user only has to specify the desired status of the application and the software then independently takes care of the timely implementation in the appropriate version.
The smallest unit in Kubernetes is described by the so-called “pod”. This corresponds to a running process in a server and can only contain one or several equivalent containers. Each pod has a unique IP address, a set of network ports provided and its own hard disk space that can be shared by containers. These elements also make it possible for the individual containers to communicate via the common environment.
With an increasing number of users, the number of pods can not only simply be increased, but this can also happen automatically at the same time. In addition, by redirecting traffic to different pods, the program can perform deployments with no downtime. In this way, the pods can always be kept up to date (see Fig. 3).
Conclusion
Finally, it can be seen that PaaS is a useful service model, especially in the area of application development. Not only does it enable development times to be significantly accelerated. At the same time, the complexity of server operation and scaling can be significantly reduced.
When using PaaS, users should always put together small task packages for microservices with regard to a flawless monolithic application.
PaaS is therefore particularly suitable for those who are experienced in the cloud, as it can offer not only comparatively low costs, but also rapid development potential. At the same time, however, the disadvantages such as vendor lock-in and data security should also be considered. This can be an important factor in the decision for this cloud service model in the area of finance, for example.
Tip: Read my new book: The way to the cloud at Springer Gabler or book me for a talk .
source
Lindner, D., Niebler, P., & Wenzel, M. (2020). The way to the cloud – a guide for entrepreneurs and decision-makers . Heidelberg: Springer Gabler.
[werbung]Image source: pixabay.com
[fotolia]