App-Entwicklung: Googles Cloud Functions unterstützen Programmiersprache Ruby

Googles FaaS-Plattform (Function as a Service) unterstützt neuerdings Ruby und lässt Entwickler idiomatische Ruby-Funktionen für die Google Cloud erstellen.

In Pocket speichern vorlesen Druckansicht

(Bild: NicoElNino/Shutterstock.com)

Lesezeit: 3 Min.
Von
  • Silke Hahn
Inhaltsverzeichnis

Googles Cloud Functions, eine Plattform für Function as a Service (FaaS), unterstützt die Programmiersprache Ruby. Mit dem neu herausgegebenen Functions-Framework für Ruby sollen Entwickler idiomatische Ruby-Funktionen für die Cloud schreiben können. Laut Herausgeber lassen sich damit geschäftskritische Apps und Integrationsschichten erstellen.

Cloud Functions für Ruby befindet sich im Preview-Stadium und bietet eine voll verwaltete Umgebung für Ruby 2.6 und 2.7, mit der Entwickler auch Zugriff auf private VPC-Netzwerke haben (Virtual Private Cloud). Dabei sollen die erstellten Ruby-Funktionen automatisch mit dem Daten- und Workload skalieren.

Das neue Framework ist Open Source und soll das gesamte Spektrum von der Entwicklung über das Testen, lokale Betreiben und Deployment von Ruby-Funktionen abdecken. Entwickler können ihre Funktionen dabei offenbar entweder direkt in die Google Cloud ausrollen oder sie in eine andere Ruby-Umgebung exportieren. Mittels Ruby-Funktionen lassen sich Events der Google-Cloud-Dienste Pub/Sub, Cloud Storage und Firestore verarbeiten, wie der Senior Developer Relations Engineer Daniel Azuma im Google Cloud Blog mitteilt.

Das Functions Framework eignet sich zum Schreiben von HTTP-Funktionen, die auf HTTP-Ereignisse antworten, aber auch zum Entwerfen zahlreicher Funktionen zum Steuern von Ereignissen in der Cloud. Ob es sich dabei um die Google Cloud oder um andere Clouds handelt, soll keine Rolle spielen. Eine einfache HTTP-Funktion in Ruby könnte aussehen wie folgt:


require "functions_framework"
 
FunctionsFramework.http "hello_http" do |request|
  "Hello, world!\n"
end

Zur Laufzeit ausgeführte CloudEvent-Funktionen, die in Ruby geschrieben sind, erfüllen auch den Industriestandard der CloudEvents gemäß Cloud Native Computing Foundation (CNCF). Die Google-Entwickler geben ein kurzes Codebeispiel zur Veranschaulichung:

require "functions_framework"
require "base64"
 
FunctionsFramework.cloud_event "hello_pubsub" do |event|
  name = Base64.decode64 event.data["message"]["data"] rescue "World"
  logger.info "Hello, #{name}!"
end

Auch das isolierte Testen erstellter Ruby-Funktionen mit dafür üblichen Testwerkzeugen wie Minitest und RSpec soll innerhalb des Frameworks möglich sein. Das Google-Cloud-Team führt zu RSpec ein Codebeispiel auf:

  
require "rspec"
require "functions_framework/testing"
 
describe "functions_helloworld_get" do
  include FunctionsFramework::Testing
 
  it "generates the correct response body" do
    load_temporary "hello/app.rb" do
      request = make_get_request "http://example.com:8080/"
      response = call_http "hello_http", request
      expect(response.status).to eq 200
      expect(response.body.join).to eq "Hello Ruby!\n"
    end
  end
end

Mehr Informationen zu dem neuen Functions-Framework finden Interessierte im Blogeintrag von Google, der die Ruby-Unterstützung bei den Cloud Functions ankündigt. Für die Cloud Functions mit Ruby gibt es einen Leitfaden zum schnellen Einstieg, tiefergehende Dokumentation zu dem Framework selbst und eine kostenfreie Testversion.

Die Programmiersprache war zu Weihnachten in der neuen Hauptversion 3.0 erschienen, die von Google Cloud Functions unterstützte Version Ruby 2.7 ist offiziell die letzte Ausgabe der 2.x-Reihe und seit Dezember 2019 verfügbar. Seit 1993 gibt es die Sprache, die auf den japanischen Entwickler Yukihiro "Matz" Matsumoto zurückgeht. Ruby ist Open Source und speziell für die Webentwicklung im Einsatz: Plattformen wie GitHub, Shopify, Stripe und AirBnB nutzen Ruby aktiv, durch das in Ruby geschriebene Webframework "Ruby on Rails" erfuhr die Sprache vor 15 Jahren Auftrieb.

Im Kern ist Ruby objektorientiert, unterstützt allerdings auch andere Paradigmen und Konzepte wie das dynamische Typisieren, Reflections und die automatische Speicherbereinigung. In Ruby geschriebene Programme werden zur Laufzeit interpretiert, und als Vorteil gilt, dass der Code nicht sonderlich komplex ist. Das soll schon manche von komplexeren Sprachen frustrierte Entwickler ins Boot geholt haben.

(sih)