PaaS, CaaS oder FaaS? Wie man wählt

Stellen Sie sich vor, Sie betreten ein Lebensmittelgeschäft, das sich auf Hamburger spezialisiert hat - alle Arten von Hamburgern, aber nur Hamburger. Wenn es um Hamburger geht, gibt es unendlich viele Möglichkeiten im Laden. 

Wenn Sie ein Hamburger-Koch sind, gehen Sie zum ersten Gang, um die Optionen für Rindfleisch, Hühnchen und andere Proteine ​​sowie alle Käsesorten, Brotsorten, Gemüse, Gewürze und andere Zutaten zu finden, die Sie möglicherweise selbst herstellen möchten Seiten. Es gibt sogar eine Auswahl an Tellern und Behältern zum Verpacken des Essens.

Wenn Ihnen die Zeit, die Fähigkeiten oder das Interesse fehlen, den Hamburger selbst zusammenzubauen, gehen Sie zu Gang zwei, wo Sie einen der Hamburger in einem Kit kaufen können. Neben den klassischen Optionen gibt es ein Kit für einen Bio-Burger, eine vegane Option und sogar eine Ketodiät. Folgen Sie einfach den Anweisungen im Kit, und Sie sollten einen leckeren Burger haben.

Ebenfalls in dieser Serie enthalten:

  • Container marschieren in den Mainstream ()
  • Container und Kubernetes: 3 Transformationserfolgsgeschichten (CIO)
  • Kubernetes trifft die reale Welt ()
  • Wichtige Informationen zum Containernetzwerk (Network World)
  • Wie Visa seine eigene Containersicherheitslösung (CSO) aufbaute
  • Container auf dem Desktop? Sie wetten - auf Windows 10X (Computerworld)

Erst dann, wenn Sie an der Kasse stehen, ruft Ihr Chef an. Sie sagt, Sie müssen in den zwei Stunden vor dem Mittagessen 300 Burger verschiedener Sorten zubereiten. Zusätzlich zur Herstellung der Burger müssen Sie einen Prozess operationalisieren, um sie zu bedienen und bezahlt zu werden. Sie müssen vorsichtig sein, da einige Kunden spezielle Bestellungen wünschen und andere versuchen, die Warteschlange zu durchbrechen und ihr Mittagessen zu stehlen.

Schließlich wird während des Mittagessens eine Gesundheits- und Sicherheitsinspektion durchgeführt, damit Sie die Vorschriften besser einhalten können. Tut mir leid, aber Sie werden nur ein paar Leute haben, die mit Ihnen arbeiten, und sie haben auch wenig Erfahrung mit dieser Art von Operation.

Den Cloud-Burger machen

Die Auswahl zwischen Cloud-Architekturen ähnelt dieser provisorischen Hamburger-Operation und ist in vielerlei Hinsicht weitaus komplizierter. Entwickler, Ingenieure, Architekten und IT-Verantwortliche haben viele Überlegungen zu Plattform, Leistung, Vorschriften und anderen Aspekten, wenn sie überlegen, welche Cloud-Architekturen operationalisiert werden sollen.

Welche Architektur bietet Kunden ein besseres Erlebnis und ein Produkt mit höherer Qualität? Welches ist einfacher zu operationalisieren und Ihre Frist einzuhalten? Welcher Pfad behandelt Support-, Compliance- und Sicherheitsprobleme besser? Welchen Ansatz können Sie schließlich zu den niedrigsten Kosten implementieren? 

Ingenieure können eine CaaS-Option (Container-as-a-Service) auswählen und Anwendungen containerisieren. Dies entspricht der Erstellung und Operationalisierung des Essens durch den Küchenchef über den ersten Gang. Wenn sie nicht über dieses Fachwissen verfügen, entsprechen die PaaS-Optionen (Platform-as-a-Service) der Auswahl eines Kits in Gang zwei und der Befolgung der Anweisungen und Einschränkungen bei der Verwendung.

Weder CaaS noch PaaS erfüllen Ihre Anforderungen? Nun, Sie können alles von Grund auf neu aufbauen (Infrastruktur als Dienst oder IaaS) oder Funktionen in Umgebungen ohne Server bereitstellen (Funktion als Dienst oder FaaS).

FaaS ist eine Art Serverless Computing, das für die Beantwortung einer einzelnen Aufgabe entwickelt wurde. Beispielsweise kann ein FaaS verwendet werden, um einen Benutzer zu authentifizieren, eine Rechtschreibprüfung für einen Textkörper durchzuführen oder eine mathematische Berechnung durchzuführen.

Natürlich gibt es viele Architekturoptionen zum Hosten, Konfigurieren, Verwalten und Bereitstellen von Code in der Cloud. Bei den verschiedenen Produktangeboten wird es noch komplizierter. Zu den PaaS-Optionen gehören Azure App Service, AWS Elastic Beanstalk, Google App Engine, Red Hat OpenShift und Heroku von Salesforce, um nur einige zu nennen. Wenn Sie CaaS-Lösungen untersuchen, haben Amazon, Google und Amazon jeweils einen eigenen verwalteten Kubernetes-Dienst mit einem eigenen Akronym (EKS, GKE bzw. AKS). Darüber hinaus gibt es weitere Optionen wie VMware, IBM, Oracle, Rackspace und andere.

Natürlich gibt es noch mehr Optionen ohne Server. Azure Serverless verfügt über Funktionen ohne Server, Kubernetes-Pods und Anwendungsumgebungen. AWS verfügt derzeit über umfassendere Optionen ohne Server und unterteilt seine Serverless in Funktionskategorien für Computer, Speicher, Datenspeicher, API-Proxys und mehr. Google Cloud verwendet die umfassendste Definition von serverlos und umfasst Dienste wie BigQuery und AutoML.

Wichtige Überlegungen zu CaaS, PaaS, FaaS und ohne Server

Bei der Überprüfung dieser verschiedenen Cloud-Architekturen gibt es mehrere Überlegungen. 

  • Zielgruppe - PaaS- und FaaS-Optionen richten sich zunächst an Entwickler, indem die Lösung einfach konfiguriert und für die Bereitstellung in CI / CD-Pipelines integriert werden kann. Container parametrisieren die Betriebsumgebung und die Plattformkonfiguration, sodass diese Tools im Allgemeinen für Bediener und Systemadministratoren bestimmt sind.
  • Konfigurierbarkeit versus Agilität - Im Allgemeinen ist CaaS die am besten konfigurierbare Option, sodass Bediener die Flexibilität haben, Plattformen und Konfigurationen für die Containerisierung auszuwählen. PaaS- und FaaS-Optionen konzentrieren sich auf Flexibilität und helfen Entwicklern, Code schneller bereitzustellen und zu testen.
  • Einige PaaS-Lösungen haben eine  Meinung - PaaS- und FaaS-Lösungen sind von Natur aus vorausgewählt, was bedeutet, dass Sie bereits an die Plattformauswahl und Konfigurationsoptionen gebunden sind. Diese Lösungen basieren auf den Meinungen des Designers zu den Wünschen der Entwickler, den Best Practices und den Zielleistungsmerkmalen. Für Betreiber, die mehr Flexibilität oder mehr Kontrollen bevorzugen, kann ein PaaS oder FaaS mit einer Meinung zu einschränkend sein. 
  • Fähigkeiten und Lernkurve - Eine faire Verallgemeinerung ist, dass CaaS-Lösungen eine steilere Lernkurve aufweisen und mehr Fähigkeiten erfordern als PaaS- und FaaS-Lösungen.
  • Vendor Lock-In - CaaS-Lösungen werden im Allgemeinen auf Kubernetes entwickelt und können über verschiedene Cloud-Hosting-Optionen hinweg portiert werden. Obwohl PaaS- und FaaS-Lösungen mit Kubernetes als Grundlage entwickelt werden können, setzen sie die Kubernetes-Schicht normalerweise nicht Endbenutzern aus und bieten stattdessen einfachere Konfigurationen. Diese Konfigurationen sind Eigentum der PaaS- und FaaS-Lösung und können häufig nur auf einer Cloud ausgeführt werden. Einige IT-Verantwortliche finden dies problematisch und sind zu Recht besorgt darüber, an den Cloud-Anbieter gebunden zu sein. 

Fragen, die Sie bei Ihrer Forschung und Ihrem Prototyping unterstützen

Bei so vielen Optionen führen einige Unternehmen nur minimale Recherchen und Prototypen durch und wählen den Weg aus, der am schnellsten ist. Andere werden viel Zeit, Energie und Geld in die Erforschung von Optionen investieren, Experten konsultieren und Optionen für robuste Implementierungen auswählen.

Beide Ansätze sind besser, als wenn Ihr Unternehmen durch die Vielzahl von Optionen gelähmt wird, keine auswählt und nirgendwohin geht. In der schnelllebigen Welt, in der jedes Unternehmen versucht, sich einen technischen Vorteil zu verschaffen, werden die Chancen eines Unternehmens nur dadurch beeinträchtigt, dass es zu konservativ ist und den Status Quo beibehält. 

Daher habe ich mich mit Experten beraten, um einige Schlüsselfragen zu ermitteln, die dazu beitragen sollten, die Optionen und die Wettbewerbsbedingungen einzugrenzen:

  1. Sind Sie ein kleines Team mit nur wenigen Bewerbungen? In diesen Fällen sollten Sie die einfacheren PaaS- und serverlosen Optionen in Betracht ziehen, bei denen Sie den größten Teil der erforderlichen Plattform vorkonfigurieren können, ohne viel Zeit und Fachwissen zu investieren. DJ Navarrete, Direktor für Plattformarchitektur bei AvidXchange, schlägt vor: „Für kleine und mittlere Unternehmen, die möglicherweise mehr Unterstützung für das Änderungsmanagement benötigen, um erfolgreich zu sein, und für diejenigen, die Reife, Stabilität und Geschwindigkeit schnell steigern möchten, ist PaaS attraktiv, weil es bietet ein schnellerer Weg zur Implementierung und Effizienzsteigerung. “
  2. Haben Sie episodische Nutzlasten, müssen diese aber bei Bedarf noch skalieren? Der Bereich kann ein Microservice oder eine Funktion sein, aber auch zu vollständigen Anwendungen und Datenbanken werden. Diese Anwendungsfälle eignen sich ideal für Serverless Computing, bei dem Sie nur für die erforderliche Nutzung bezahlen.
  3. Haben Sie eine Compliance-Verpflichtung oder einen Regulierungsstandard, der Sie dazu zwingt, über bestimmte zugrunde liegende Optionen oder Einstellungen im Ausführungscontainer, in der Anwendung, in der Datenbank, im Betriebssystem oder in der Infrastruktur zu berichten? Laut Wayne Anderson, Sicherheits- und Compliance-Architekt für das Modern Workplace Center of Excellence von Microsoft, ist dies ein kritischer Grund dafür, dass serverlose Optionen ausgeschlossen werden. PCI- und andere Compliance-Anforderungen werden von Rechtsabteilungen oder Prüfern im Allgemeinen so interpretiert, dass ein Nachweis der Einstellungen der Computerumgebung erforderlich ist.
  4. Nutzen Sie viele spezialisierte Plattformen oder Legacy-Anwendungen? In diesen Fällen kann es schwierig sein, kompatible kommerzielle PaaS-Optionen zu finden. Gleichzeitig kann die Entwicklung von Containern die Bereitstellung und das Abhängigkeitsmanagement vereinfachen.
  5. Sind Sie eine große Organisation oder ein Unternehmen, das in mehreren Clouds und mit verschiedenen Anwendungs- und Datenplattformen in der Produktion arbeitet? Diese Organisationen entscheiden sich möglicherweise für die Standardisierung von Containern, da dies die größte Flexibilität bei der Unterstützung mehrerer Plattformen und Konfigurationsoptionen bietet. Serverlos kann immer noch eine Überlegung sein, wenn Compliance kein Faktor ist. Unternehmen können sich von PaaS-Optionen fernhalten, wenn sie über ausreichende Fähigkeiten und Kapazitäten verfügen, um die Breite der Optionen auf Kubernetes zu entwickeln. Unternehmen mit ausreichender Größe und technischen Fähigkeiten wie Shopify können sich dafür entscheiden, ihr eigenes PaaS mit Kubernetes und Containern als Grundlage zu entwickeln.
  6. Entwickeln Sie Microservices und standardisieren Sie auf einer Cloud-basierten Microservices-Architektur? Mark Heath schlägt vor, dass Container oder FaaS gute Optionen sind, ebenso wie Hosting-Funktionen in Containern. Laut Heath sind serverlose Funktionen möglicherweise einfacher zu konfigurieren und kostengünstiger zu unterstützen, während Container die lokale Entwicklung vereinfachen und mehr Optionen zum Sichern von Endpunkten bieten können. 
  7. Der Cloud-Berater Sarbjeet Johal möchte wissen, ob Sie Plattformen, Anwendungen oder Dienste erstellen und ob die Zielgruppe unternehmensintern, extern oder kundenorientiert oder maschinenverbrauchsfähig ist. Wenn Sie die Art der Anwendung und die Art des Endbenutzers kennen, können Sie zukünftige Anforderungen und Anforderungen vorhersehen. Johal sagt beispielsweise: „Bei externen Anwendungen möchten Sie viel mehr Zugriffskontrolle protokollieren, das Datenvolumen kann unvorhersehbar ansteigen und die Lebensdauer der Anwendung ist im Vergleich zu internen Anwendungen möglicherweise länger. Wenn ein Dienst oder eine Plattform maschinenverbrauchbar ist, müssen Sie möglicherweise etwas messen. “ Die Prognose des Fahrplans und der künftigen Bedürfnisse sollte dazu beitragen, einige Optionen zu fördern und andere auszuschließen.

Sobald Sie die Optionen eingegrenzt haben, empfiehlt es sich, einen Proof of Concept durchzuführen. Sie kochen keine Burger für 300, ohne das Rezept zu testen.