Cloud Intelligence™Cloud Intelligence™

Cloud Intelligence™

Verkaufen Sie Ihr SaaS auf dem Google Marketplace

By Joshua FoxAug 23, 20246 min read

Diese Seite ist auch in English, Español, Français, Italiano, 日本語 und Português verfügbar.

Eine Einführung für Engineers

Wenn Sie ein Software-as-a-Service-Produkt anbieten, eröffnet Ihnen der Google Cloud Marketplace einen zusätzlichen Vertriebsweg. Die Kaufentscheidung fällt Kunden deutlich leichter, da die Abrechnung direkt über ihre Google-Rechnung läuft.

Dieser Artikel ist ein grober Leitfaden für Engineers, die eine Marketplace-Lösung aufsetzen wollen. Auf dem Marketplace lassen sich VM-Images oder Kubernetes-Container anbieten. Da die meisten Anbieter jedoch Software as a Service vertreiben, konzentrieren wir uns darauf. Wir streben weder Vollständigkeit noch Detailtiefe an, sondern beleuchten die wesentlichen Knackpunkte, die aus der Dokumentation nicht unmittelbar hervorgehen.

Bringen Sie Ihre Produkte an den Markt

Bei der gewöhnlichen Nutzung der Google Cloud Platform rufen Sie schlicht öffentlich verfügbare Cloud-APIs auf. Die Integration in das Marketplace-Verkäufersystem ist eine andere Hausnummer: Sie ähnelt einer Enterprise-Integration, die durch geschäftliche Abstimmungen zwischen Ihrem Unternehmen und Google getrieben wird. Technisch gesehen nehmen Ihre Systeme an mehrstufigen, bidirektionalen Workflows mit den Geschäftssystemen von Google teil. Im Vergleich zur Kern-GCP gibt es deutlich weniger öffentlich zugängliche Informationen in Dokumentation und Foren.

Freigabe einholen

Bevor Sie mit der Integration starten, brauchen Sie die Freigabe durch Google. Bis sie vorliegt, ist das Engineering-Team blockiert.

Um sie zu erhalten, arbeitet die Business-Seite Ihres Unternehmens über das Partner-Advantage-Programm mit Google zusammen. Der Prozess dauert in der Regel mehrere Wochen. Wenn Sie mit DoiT Cloud Solve arbeiten, begleiten unsere Account Manager Ihr Team dabei.

Hintergrund dieses Freigabeprozesses ist Googles Qualitätsanspruch. Vor einigen Jahren war der Google Marketplace ein weites Meer scheinbar verwaister Angebote, weil Anbieter die Integration mit den Google-Systemen nicht umsetzten. Heute prüft Google Angebote streng und nimmt nur eine ausgewählte Zahl hochwertiger, volumenstarker Lösungen an.

Sie erkennen die erfolgte Freigabe daran, dass Sie Zugriff auf das Producer Portal erhalten, in dem Sie Ihre Lösung konfigurieren: https://console.cloud.google.com/producer-portal?project=PROJECT_ID

Anschließend können Sie API-Aufrufe tätigen oder die im Producer Portal integrierten Funktionen für Vorschau, Tests und privates Deployment nutzen. Bis dahin können Sie sich vorbereiten, indem Sie sich mit der Architektur vertraut machen. Ich empfehle die Lektüre der Dokumentation sowie einen Blick auf das GitHub-Projekt DoiT-Easily.

DoiT-Easily ist ein Open-Source-Projekt, das die Integration veranschaulicht. Es hat mehrere Mitwirkende aus dem DoiT-Team, ist aber weder ein offiziell unterstütztes Produkt noch ein produktionsreifes System mit vollem Funktionsumfang. Vielmehr handelt es sich um eine funktionierende Integration, die als Beispiel zum Lernen und Forken dient. Die Dokumentation von DoiT-Easily liefert einen guten Überblick; ergänzend lohnt sich ein zweiter Blogbeitrag mit einer übergeordneten Einordnung.

Google APIs

Die Integration mit der Procurement API ist Pflicht; die Nutzung der Service Control API (Usage) ist optional.

Die Procurement API verwaltet Anmeldung und Kündigung von Nutzern sowie Entitlements – also den Kauf eines Service oder Service-Levels. Sie wird in einem mehrstufigen Ablauf aufgerufen, in dem sowohl Ihre Anwendung als auch die Systeme von Google die Entitlements bestätigen müssen. Mehr dazu weiter unten.

Über die Service Control API melden Sie an Google, wie viel einer abrechenbaren Ressource verbraucht wurde, damit der Kunde abgerechnet werden kann: etwa die Anzahl verarbeiteter Mebibytes, Online-Stunden oder Aufrufe Ihrer API. Da Sie auch Pricing-Modelle ohne Nutzungserfassung anbieten können, lässt sich diese API für eine minimale Erstimplementierung zunächst überspringen.

Integrationskomponenten

Dieses Architektur-Diagramm aus DoiT Marketplace zeigt die Komponenten.

Architektur der Marketplace-Integration

Sie integrieren sowohl Ihre Frontend- als auch Ihre Backend-Anwendungen. Diese laufen in Ihrem dedizierten Marketplace-Projekt; alle übrigen Cloud-Komponenten außerhalb der Integration können wahlweise im selben oder in einem anderen Projekt laufen. Bei mehreren Marketplace-Listings nutzen Sie dasselbe Integrationsprojekt für alle.

Frontend

Ihr Frontend ermöglicht es Nutzern, sich anzumelden, zu registrieren und anschließend ein Abo Ihres Dienstes zu erwerben (das sogenannte "Entitlement"). Das Frontend ist Ihre eigene Webanwendung; der Client trägt Ihr Look-and-Feel.

Klickt ein Nutzer auf "Registrieren", leitet ihn die Google-Marketplace-Seite an Ihr Frontend weiter (dessen öffentliche URL Sie zuvor beim Marketplace hinterlegt haben). Diese Anfrage enthält ein von Google signiertes JWT-Token, das die Herkunft vom Google Marketplace bestätigt. Ihre Frontend-Client-Server-Anwendung lässt die Nutzer sich in Ihren Systemen registrieren und benachrichtigt anschließend Google über die Procurement API.

Backend

Wählt ein Nutzer in der Google-Marketplace-UI einen Pricing-Plan aus, veröffentlicht Google ein Entitlement-Event auf Pub/Sub, das Ihr Backend empfängt.

Sie entscheiden dann, ob Sie dieses Entitlement (den Kauf) bestätigen oder ablehnen. Die Bestätigung kann sofort und automatisch erfolgen oder einen manuellen Schritt erfordern. Wenn die Entscheidung etwas Zeit braucht, rufen Sie die Procurement API auf, um den Nutzern eine Statusmeldung zu schicken. Sobald die Entscheidung feststeht, ruft das Backend die Procurement API auf, um das Entitlement zu bestätigen oder abzulehnen.

Pricing

Sie können Ihr Produkt in mehreren Pricing-Modellen anbieten, was die Komplexität der Integration beeinflusst. Wenn Sie Ihr Produkt kostenlos anbieten oder über ein monatliches Abo abrechnen, müssen Sie keine Nutzung melden. Rechnen Sie nach einer Nutzungsmetrik ab – etwa Speicherzeit, verarbeitetes Datenvolumen oder einer eigenen Metrik –, müssen Sie eine Integration aufbauen, die diese Werte an die Service Control API meldet.

Die Frontend-Entwicklung können Sie sich sparen, wenn Sie ausschließlich über Private Offers verkaufen: Bei einem Private Offer legen Sie den Preis für einen bestimmten Kunden fest, statt ihn auf der Google-Marketplace-Seite ein Angebot auswählen zu lassen. Damit entfällt ein Teil der Frontend-Integration, da Accounts direkt über die Pub/Sub-Nachricht von Google an Ihr Backend bestätigt werden können. Eine Einschränkung gibt es allerdings: Wer Private Offers anbietet, muss zugleich mindestens ein öffentliches Angebot bereitstellen – auf Anfrage gewährt Google jedoch eine Ausnahme. Eine weitere Hürde: Sie brauchen einen Mechanismus – häufig eine interne Web-App –, um Ihre Private Offers zu erstellen und bereitzustellen.

Aktivieren Sie Auto-Approval (ein Feature, das nur für Private Offers verfügbar ist), entfällt die Backend-Entwicklung im Grunde ebenfalls.

Berechtigungen

Da zwei Projekte aus zwei Unternehmen – Google und Ihres – beteiligt sind, müssen Sie Berechtigungen in beide Richtungen vergeben.

Ihr Service Account

Legen Sie in Ihrem Projekt einen Service Account an. Registrieren Sie ihn als Teil Ihrer Produktdefinition im Producer Portal, damit er die Procurement API aufrufen und Cloud Pub/Sub für die von Google gesendeten Entitlement-Events abonnieren darf.

Der Nutzer, der Ihre Lösung deployt, muss Ihren Service Account impersonieren können – also in dessen Rolle agieren – mithilfe von serviceAccountTokenCreator.

Googles Service Accounts

Vergeben Sie im IAM Ihres Projekts Rollen, damit die Service Accounts von Google auf Ihr Projekt zugreifen können: drei für Production (Details hier) und einen fürs Testing (siehe hier).

Review

Sobald Ihre Integration entwickelt und getestet ist, durchläuft sie vor dem Release ein Review durch Google – planen Sie dafür entsprechend Zeit ein.

Technisch betrachtet ist der Verkauf auf dem Google Marketplace ein mehrstufiger Integrationsablauf zwischen Ihnen und Google. Die größere Herausforderung liegt jedoch darin, dass es sich um eine Integration im Enterprise-Stil handelt: Sie erfordert laufenden Input und Austausch zwischen Ihren Engineering- und Business-Teams sowie denen von Google – mit Unterstützung des DoiT-Teams unter doit.com/services.

Mehr Details finden Sie in einem Blogbeitrag, der sich der Open-Source-Beispielimplementierung DoiT-Easily widmet.