mirror of
https://gitlab.com/ser-cal/m346.git
synced 2024-11-26 04:11:56 +01:00
Ressource Servicemodelle eingefügt
This commit is contained in:
parent
58a86040c8
commit
c3068ddde5
175
KN00/x_res/Servicemodelle.md
Normal file
175
KN00/x_res/Servicemodelle.md
Normal file
@ -0,0 +1,175 @@
|
|||||||
|
**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. Tatsächlich
|
||||||
|
gibt es eine Definition des NIST, die vier Servicemodelle beschreibt. Welche
|
||||||
|
sind das?
|
||||||
|
|
||||||
|
**Der Begriff "Cloud" ist längst in die Alltagssprache eingezogen, doch die
|
||||||
|
wenigsten können im Detail erklären, was genau damit gemeint ist. Tatsächlich
|
||||||
|
gibt es eine Definition des NIST, die vier Servicemodelle beschreibt. Welche
|
||||||
|
sind das?**
|
||||||
|
|
||||||
|
Das US-amerikanische National Institute of Standards and Technology (NIST) hat
|
||||||
|
eine Definition 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.
|
||||||
|
|
||||||
|
**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.
|
||||||
|
|
||||||
|
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
|
BIN
KN00/x_res/~$rvicemodelle.md
Normal file
BIN
KN00/x_res/~$rvicemodelle.md
Normal file
Binary file not shown.
Loading…
Reference in New Issue
Block a user