BLOG

Cloud-Cron: Kostenkontrolle durch Function as a Service

Lori MacVittie Miniaturbild
Lori MacVittie
Veröffentlicht am 11. Februar 2019

Function as a Service (FaaS) findet schnell Verwendung in zahlreichen Betriebs- und Entwicklungskontexten.

Während der aufsteigende Stern des Cloud-Computing oft im Zusammenhang mit APIs, IoT und mobilen Apps erwähnt wird, gibt es für die Technologie auch außerhalb der Entwicklung erhebliche Einsatzmöglichkeiten. Im Bericht „ Guide to Serverless “ von The New Stack stellen wir fest, dass die technischen Anwendungsfälle für Serverless eine robuste Reihe von Anwendungen abdecken:

Technische Anwendungsfälle für Serverless 

  • 73 % HTTP-REST-APIs und Web-Apps
  • 68 % Batch-Jobs oder geplante Aufgaben 
  • 60 % Geschäftslogik
  • 34 % Kontinuierliche Integrationspipeline

Wie erwartet liegen die Anwendungen dabei am stärksten im Trend: Fast drei Viertel der Befragten nutzen Serverless für REST-APIs und Webanwendungen. Aber danach wird es interessanter. Stapelverarbeitungsaufträge und geplante Aufgaben sowie die nebulöse „Geschäftslogik“ machen noch immer mehr als die Hälfte der Anwendungsfälle der Befragten aus.

In den Bereich „geplante Aufgaben“ fällt die Verwendung von Cloud-Funktionen zum Verwalten von Cloud-Assets. Eine der Möglichkeiten, die Cloud und Container Unternehmen bieten, ist die Optimierung der Ressourcennutzung. Normalerweise denken wir dabei an Skalierbarkeit – insbesondere in Verbindung mit Containern und Mikroservices. Indem Sie nur die Teile einer Anwendung skalieren, die skaliert werden müssen, sparen Sie Rechenressourcen (und damit Kosten).

Die andere Seite der Gleichung ist jedoch die Möglichkeit, Ressourcen abzuschalten, wenn sie nicht genutzt werden. Der Reiz der Funktion als Service und der Serverless-Funktionalität (nein, das ist nicht unbedingt dasselbe) liegt zum Teil im wahren Utility-Preismodell. Sie zahlen wirklich nur für das, was Sie nutzen. Da es in einer serverlosen/FaaS-Umgebung im Idealfall keine ungenutzten Ressourcen gibt, zahlen Sie nicht dafür. In der Cloud zahlen Sie jedoch möglicherweise für ungenutzte Ressourcen den gleichen Preis, als würden diese Ressourcen eine App oder einen Dienst ausführen. Dies ist zwar nur eine Kleinigkeit, kann sich jedoch summieren, wenn bei einer Anwendung viele Ausfallzeiten auftreten.

Hier können Cloud-Funktionen helfen. Indem Sie die „Function as a Service“-Funktionen der Cloud nutzen, in der Sie arbeiten, können Sie eine Aufgabe planen, um Instanzen herunterzufahren, wenn sie nicht verwendet werden, und sie später neu zu starten. Dies setzt einen relativ statischen Zeitplan voraus, etwa eine Anwendung, die nur während eines genau festgelegten Arbeitstages verwendet wird. Bei solchen Anwendungen handelt es sich häufig um herkömmliche „Geschäftsanwendungen“, die von den Mitarbeitern zwar verwendet werden, jedoch nur tagsüber – und während der Arbeitswoche. Das Herunterfahren der Instanzen, aus denen eine Business-App besteht, am Wochenende kann auf lange Sicht erhebliche Kosten sparen. 

Wenn Sie die Funktion Ihres Cloud-Anbieters als Serviceangebot nutzen, können Sie möglicherweise die Kosten senken, die entstehen, wenn Sie diese Anwendungen über Nacht und am Wochenende „warm“ halten. Selbst wenn Ihr Arbeitstag zwölf Stunden dauert, könnten Sie Ihre Kosten halbieren, wenn Sie die Anlagen während der übrigen zwölf Stunden herunterfahren.

Wenn Sie neugierig sind, wie Sie etwas implementieren, das für mich wie eine Cloud-Version von Cron klingt, sehen Sie sich diese Ressourcen an: