Suchen

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

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.

Firmen zum Thema

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)

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.

(ID:45456848)