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.
- Silke Hahn
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.
Cloud Functions Framework fĂĽr Ruby
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
WeiterfĂĽhrende Hinweise
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.
Ăśber Ruby
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)