mirror of
https://gitlab.com/ser-cal/m346.git
synced 2024-11-22 21:21:56 +01:00
206 lines
9.7 KiB
Markdown
206 lines
9.7 KiB
Markdown
[10]: https://git-scm.com/downloads
|
||
|
||
![TBZ Banner](../../x_gitres/tbz_logo.png)
|
||
|
||
# Servicemodelle
|
||
|
||
|
||
[TOC]
|
||
|
||
|
||
## Servicemodelle in der Cloud
|
||
|
||
Der Begriff **Cloud** ist längst in die Alltagssprache eingezogen, doch die
|
||
wenigsten können im Detail erklären, was genau damit gemeint ist.
|
||
|
||
Das US-amerikanische **National Institute of Standards and Technology** (NIST) hat
|
||
eine [**Definition**](https://www.nist.gov/programs-projects/nist-cloud-computing-program-nccp) geschaffen, was unter **Cloud** zu verstehen ist. Darin sind unter anderem **vier Servicemodelle** beschrieben, die sich unter dem Begriff **XaaS** zusammenfassen lassen, was üblicherweise als **Anything as a Service** gelesen wird.
|
||
|
||
|
||
Pizza as a Service | Anything as a Service
|
||
:-------------------------:|:-------------------------:
|
||
![Pizza](./00_Pizza_as_a_Service_700.png) | ![X](./01_XaaS_orig_700.png)
|
||
|
||
|
||
|
||
## Infrastructure as a Service (IaaS)
|
||
|
||
Das erste dieser Servicemodelle ist **Infrastructure as a Service** (IaaS). Es
|
||
beschreibt das Geschäftsmodell, Infrastruktur zu vermieten, statt sie zu
|
||
verkaufen. Für viele Unternehmen rechnet sich der Betrieb eigener Hardware in
|
||
einem eigenen Rechenzentrum nämlich nicht, da das teuer und aufwendig ist und
|
||
dafür in der Regel ein eigenes Team benötigt wird.
|
||
|
||
Anders als beim Webhosting in den 90er-Jahren geht es bei IaaS aber nicht mehr
|
||
darum, Hardware physisch zu buchen, denn auch das ist langsam, aufwendig,
|
||
umständlich und schlecht skalierbar. Stattdessen werden Server als virtuelle
|
||
Maschinen angeboten und um andere virtualisierte Ressourcen ergänzt,
|
||
beispielsweise virtuelle Netzwerke. Die gesamte Infrastruktur wird also
|
||
softwaredefiniert bereitgestellt.
|
||
|
||
Weil das softwaredefiniert erfolgt, lässt sich Infrastruktur auch automatisiert
|
||
und "on demand" per API aufsetzen. Die Abrechnung erfolgt dabei als
|
||
Pay-per-Use-Modell, auf lange Vertragslaufzeiten wird verzichtet.
|
||
|
||
Bekannt ist dieses Modell unter anderem von Amazon, die mit AWS (Amazon Web
|
||
Services) einen Dienst anbieten, über den sich Ressourcen aus den Rechenzentren
|
||
von Amazon buchen lassen. Aber auch andere Anbieter bedienen diesen Markt,
|
||
beispielsweise Digital Ocean, Microsoft Azure oder die Google Cloud Platform.
|
||
|
||
Insgesamt lässt sich sagen, dass IaaS damit die Grundlage für die Cloud
|
||
darstellt, die sich nun aber in verschiedenen Schritten nach und nach
|
||
abstrahieren lässt.
|
||
|
||
Youtube
|
||
|
||
## Platform as a Service (PaaS)
|
||
|
||
Auch wenn sich IaaS nicht mehr mit physischer Hardware befasst, ist das
|
||
Servicemodell immer noch weit weg von der Anwendungsentwicklung. In der
|
||
Entwicklung will man sich nicht zwingend mit Servern, Storage, Load-Balancing &
|
||
Co. beschäftigen, sondern eher auf der Ebene des Betriebssystems und einer
|
||
Laufzeitumgebung wie Node.js oder .NET Core arbeiten.
|
||
|
||
Genau das adressiert Platform as a Service (PaaS), was letzten Endes eine
|
||
fertige Softwareumgebung zur Verfügung stellt, auf deren Basis man Anwendungen
|
||
entwickeln und vor allem ausführen kann. Die Idee dabei ist, sich nicht mehr um
|
||
die zugrunde liegende Hardware und das Deployment kümmern zu müssen. Auch das
|
||
Einspielen von Updates für das Betriebssystem oder die Laufzeitumgebung
|
||
entfällt. Um all diese Aspekte kümmert sich der PaaS-Anbieter.
|
||
|
||
Dadurch lässt sich der Fokus auf die eigentliche Anwendungsentwicklung legen,
|
||
die Bereitstellung erfolgt anschließend automatisiert und transparent. Man legt
|
||
nur noch fest, auf welcher Plattform die eigene Anwendung laufen soll, muss sich
|
||
aber nicht mehr um das "wie" der Bereitstellung kümmern. Auch Aspekte wie
|
||
Storage oder Netzwerk sind abstrahiert und können über APIs angesprochen werden.
|
||
|
||
Häufig werden darüber hinaus ergänzende Dienste wie Datenbanken oder Message
|
||
Queues, die für die Anwendungsentwicklung unerlässlich sind, als Service
|
||
bereitgestellt. Auch PaaS-Angebote lassen sich über APIs ansteuern, und auch
|
||
hier erfolgt die Abrechnung On-Demand und als Pay-per-Use.
|
||
|
||
Einer der bekanntesten Anbieter in diesem Bereich ist Heroku, es gibt aber wie
|
||
bei IaaS auch noch zahlreiche weitere Anbieter. Da PaaS auf IaaS basiert, sind
|
||
häufig die Anbieter von IaaS auch im PaaS-Markt aktiv, beispielsweise Amazon mit
|
||
AWS Elastic Beanstalk. Damit Anwendungen mit PaaS zusammenpassen, müssen sie
|
||
allerdings einige Aspekte erfüllen, beispielsweise sollten die [Regeln der 12
|
||
Factor Apps](https://www.youtube.com/watch?v=UBh8Rp2secQ) berücksichtigt werden.
|
||
|
||
![Video1:](../../x_gitres/Video.png) 6:39 Min.
|
||
[![PaaS](/Ressourcen/Titel_Routing_Teil1_200.png)](https://youtu.be/I7Oyr_SVJEA)
|
||
|
||
|
||
|
||
|
||
|
||
Youtube
|
||
|
||
## Software as a Service (SaaS)
|
||
|
||
Das dritte Servicemodell, Software as a Service (SaaS), beschreibt schließlich
|
||
die Bereitstellung vollständiger Anwendungen über die Cloud. Als UI wird häufig
|
||
der Webbrowser genutzt, in nahezu jedem Fall gibt es auch bei SaaS wiederum
|
||
APIs, über die sich die Anwendungen anbinden und integrieren lassen. Typische
|
||
Beispiele für Cloud-Software sind unter anderem Office 365, Slack, Dropbox oder
|
||
auch GitHub.
|
||
|
||
Analog zu IaaS und PaaS wird auch bei SaaS die Vermietung als Geschäftsmodell
|
||
angestrebt: Software wird also nicht mehr gekauft, sondern im Abonnement
|
||
erworben, wobei in aller Regel pro Anwenderin beziehungsweise pro Anwender
|
||
monatlich abgerechnet wird.
|
||
|
||
Das bietet eine ganze Reihe von Vorteilen, beispielsweise Einfachheit und
|
||
Flexibilität. Aufwendige und fehleranfällige Vorgänge wie Installation,
|
||
Konfiguration, das Einspielen von Updates und Sicherheitspatches, oder die
|
||
Skalierbarkeit entfallen, beziehungsweise werden vollständig in die Hände des
|
||
Anbieters gelegt. Das ermöglicht es, sich stärker auf das eigene Kerngeschäft zu
|
||
konzentrieren.
|
||
|
||
SaaS hat aber auch Nachteile, allen voran die Abhängigkeit von einem Anbieter
|
||
(Vendor-Lock-In) und die in aller Regel geringe Anpassbarkeit der Software an
|
||
die eigenen Bedürfnisse. Um den Vendor-Lock-In zu vermeiden, sind die Verwendung
|
||
offener Standards und offener Formate essenziell wichtig. Außerdem ist bei SaaS
|
||
mehr noch als bei IaaS und PaaS der Datenschutz zu beachten, es gilt also, sich
|
||
mit Themen wie der DSGVO besonders gründlich auseinanderzusetzen.
|
||
|
||
## Function as a Service (FaaS)
|
||
|
||
Bei Function as a Service (FaaS) wird nochmals eine Abstraktionsschicht
|
||
eingezogen. Die Infrastruktur, das Betriebssystem, die Laufzeitumgebung und
|
||
sogar die eigentliche Anwendung sind bereits gegeben – es gilt, nur noch die
|
||
Geschäftslogik zu ergänzen, quasi als eine Art "Plug-in". Das erfolgt in Form
|
||
von einzelnen Funktionen, die in einen fertigen Anwendungsrahmen eingebunden
|
||
werden, beispielsweise als Route in einen vorgefertigten Webserver.
|
||
|
||
Als Entwicklerin oder Entwickler muss man sich dann nur noch mit dem Schreiben
|
||
ebendieser Route beziehungsweise der Funktion befassen, alles andere wird vom
|
||
Cloud-Anbieter bereitgestellt und kann über APIs angesprochen werden. Da diese
|
||
Funktionen üblicherweise zustandslos sind, lassen sie sich leicht skalieren.
|
||
|
||
Außerdem können sie sehr kostengünstig betrieben werden, da kein dedizierter
|
||
Server vorgehalten werden muss: Die Funktion wird nach Aufrufen abgerechnet.
|
||
Finden keine Aufrufe statt, fallen auch keine Kosten an. Das macht FaaS für
|
||
viele Szenarien zu einer günstigen Alternative, zudem lassen sich die Funktionen
|
||
auf Grund ihrer einfachen Struktur auch leicht warten und aktualisieren.
|
||
|
||
Weil man mit dem eigentlichen Server in diesem Fall nicht mehr in Berührung
|
||
kommt, hat sich für FaaS auch der Begriff Serverless eingebürgert, was aber
|
||
letzten Endes falsch ist, da dieser Begriff impliziert, dass es keinen Server
|
||
mehr gäbe – dem ist aber selbstverständlich nicht so.
|
||
|
||
Verwendet wird FaaS häufig, um Anwendungen miteinander zu verbinden, oder als
|
||
einfaches Backend für Single-Page-Anwendungen (SPA). Bekannte Angebote hierfür
|
||
sind beispielsweise AWS Lambda von Amazon und Azure Functions von Microsoft. Der
|
||
größte Nachteil ist auch hier wieder der Vendor-Lock-In, was nochmals die
|
||
Relevanz von offenen Formaten und offenen Standards unterstreicht.
|
||
|
||
Youtube
|
||
|
||
## X as a Service (XaaS)
|
||
|
||
Selbstverständlich ist über diese vier vom NIST definierten Servicemodelle noch
|
||
mehr möglich. Dementsprechend haben sich zahlreiche Angebote entwickelt, die
|
||
sich nicht klar einer der vier zuvor genannten Varianten zuordnen lassen. Dabei
|
||
handelt es sich häufig um Aspekte, die orthogonal zur eigentlichen
|
||
Anwendungsentwicklung stehen und somit Cross-Cutting-Concerns darstellen,
|
||
beispielsweise das Bereitstellen von Datenbanken (DBaaS) oder Message-Queues
|
||
(MQaaS).
|
||
|
||
Doch neben produktbezogenen Angeboten gibt es auch servicebasierte Angebote, die
|
||
einen bestimmten Funktionsbereich übernehmen, zum Beispiel Identity as a
|
||
Service, Logging as a Service oder Content as a Service. Die Grenze zu SaaS ist
|
||
dabei allerdings fließend. Eine Hilfe zur Einordnung könnte sein, dass sich
|
||
diese Angebote eher an Entwicklerinnen und Entwickler richten, wohingegen
|
||
"echtes" SaaS eher auf nicht in der Entwicklung tätige Anwenderinnen und
|
||
Anwender abzielt.
|
||
|
||
## Fazit
|
||
|
||
Die Cloud hat die Art, wie Software entwickelt und vor allem bereitgestellt
|
||
wird, in den vergangenen zehn Jahren gravierend verändert. Trotzdem hat sie die
|
||
lokale Ausführung von Software nicht überflüssig gemacht. Es ist daher kein
|
||
"entweder oder", sondern vielmehr ein "sowohl als auch". Es ist also ratsam, die
|
||
Cloud als Erweiterung des bisherigen Werkzeugkastens zu sehen und nicht als
|
||
Ersatz.
|
||
|
||
Dabei ist allerdings zu beachten, dass – wie mehrfach betont – offene Formate
|
||
und offene Standards essenziell sind, um einen Vendor-Lock-In zu vermeiden. Nur
|
||
wer unabhängig vom jeweiligen Cloud-Anbieter denkt und Lösungen entwickelt, die
|
||
unabhängig von einem konkreten Angebot funktionieren, behält sich langfristig
|
||
die Möglichkeit bei, zwischen verschiedenen Anbietern wechseln zu können
|
||
|
||
|
||
|
||
|
||
<br>
|
||
|
||
---
|
||
|
||
> [⇧ **Zurück zu KN00** (KN00)](../README.md)
|
||
|
||
---
|
||
|
||
> [⇧ **Zurück zur Hauptseite**](https://gitlab.com/ser-cal/M346)
|
||
|
||
---
|