Google rüstet Entwickler per Go Cloud für Multi-Cloud-Umgebungen

APIs für Cloud-unabhängigen Go-Code

| Autor / Redakteur: Dirk Srocke / Florian Karlstetter

Gemeinsam mit Community und Cloud-Branche will das Go Project bald weitere Provider unterstützen.
Gemeinsam mit Community und Cloud-Branche will das Go Project bald weitere Provider unterstützen. (Bild: © vectorfusionart - stock.adobe.com)

Go-Entwickler sollen ihren Code künftig ohne größere Anpassungen auf verschiedenen Cloud-Plattformen laufen lassen. Erste APIs dafür hat Googles Go Team jetzt unter der Bezeichnung „Go Cloud“ vorgestellt, anbieterübergreifende Bibliotheken sollen folgen.

Mit „Go Cloud“ sollen Go-Entwickler ihre Anwendungen von providerspezifischen Schnittstellen befreien und damit portablen Code erstellen. Dieser lasse sich dann bequemer als bisher in Multi- oder Hybrid-Clouds implementieren.

Im Kern besteht Go Cloud aus einer Sammlung generischer, anbieterunabhägiger APIs. Die funktionieren zunächst mit Google Cloud Platform (GCP) sowie Amazon Web Services (AWS).

Das Go Project arbeite bereits mit Go Community und weiteren Partnern der Cloud-Branche daran, zusätzliche Provider zu unterstützen. Überdies solle Go Cloud die Grundlage für weitere Open-Source-Projekte bilden, die providerübergreifend funktionierende Cloud-Bibliotheken entwickeln.

Aktuell verfügbar sind neben Schnittstellen für Blob Storage, MySQL-Datenbanken und Runtime Configuration auch ein HTTP-Server, der für Request Logging, Tracing und Health Checking konfiguriert ist.

Im „The Go Blog“ liefert Googles Go Team gleich passende Code-Beispiele für den Zugriff auf Blob Storage mit. Die Programmlogik laufe dabei ohne Änderungen mit AWS S3 oder Google Cloud Storage.

Geändert werden müsse lediglich die Funktion, mit der der generische *blob.Bucket geöffnet wird. Im Falle von AWS S3 kommt dabei das s3blob package zum Einsatz. Der entsprechende Code schaut wie folgt aus:

// setupBucket opens an AWS bucket.

func setupBucket(ctx context.Context) (*blob.Bucket, error) {

// Obtain AWS credentials.

sess, err := session.NewSession(&aws.Config{

Region: aws.String("us-east-2"),

})

if err != nil {

return nil, err

}

// Open a handle to s3://go-cloud-bucket.

return s3blob.OpenBucket(ctx, sess, "go-cloud-bucket")

}

Soll die Anwendung derweil auf Google Cloud Storage zugreifen, wird der *blob.Bucket per gcsblob.OpenBucket erstellt.

Kommentare werden geladen....

Kommentar zu diesem Artikel abgeben

Der Kommentar wird durch einen Redakteur geprüft und in Kürze freigeschaltet.

Anonym mitdiskutieren oder einloggen Anmelden

Avatar
Zur Wahrung unserer Interessen speichern wir zusätzlich zu den o.g. Informationen die IP-Adresse. Dies dient ausschließlich dem Zweck, dass Sie als Urheber des Kommentars identifiziert werden können. Rechtliche Grundlage ist die Wahrung berechtigter Interessen gem. Art 6 Abs 1 lit. f) DSGVO.
  1. Avatar
    Avatar
    Bearbeitet von am
    Bearbeitet von am
    1. Avatar
      Avatar
      Bearbeitet von am
      Bearbeitet von am

Kommentare werden geladen....

Kommentar melden

Melden Sie diesen Kommentar, wenn dieser nicht den Richtlinien entspricht.

Kommentar Freigeben

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

Freigabe entfernen

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

copyright

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Infos finden Sie unter www.mycontentfactory.de (ID: 45456848 / Entwicklung)