Die GoDays Berlin sind eine zweitägige Konferenz, die sich auf den Austausch innerhalb der Go-Community konzentriert. In zahlreichen Fachvorträgen und praktischen Workshops tauschen sich Go-Experten, Einsteiger und alle dazwischen aus, um so voneinander zu lernen.

“GO Berlin!”, dies war auch das Motto der beiden Scandio- Mitarbeiter Martin und Ben, die zu den diesjährigen GoDays nach Berlin gereist sind. Zusammen mit dem Team unseres Partners JFrog, besetzten wir dort einen Stand, um den Teilnehmern mehr über die erstklassige Infrastruktur von JFrog in Sachen Softwareverwaltung näher zu bringen. Die Scandio nutzt hierbei seit Jahren wertvolle Synergien, um erfolgreiche Kundenprozesse in den Bereichen Requirements Engineering, Source Code, Ticketing, Buildmanagement bis hin zum Binary Store mit Produkten, wie dem JFrog GoCenter, JFrog Artifactory, JFrog Bintray, JFrog Mission Control und JFrog Xray, umzusetzen.

Doch wie kommt hierbei Go ins Spiel?
Seit der ersten Konzeption durch Google im Jahr 2007, hat sich Go (auch GoLang genannt) schnell zu einer der beliebtesten Programmiersprachen entwickelt. Tatsächlich werden sowohl Helm als auch Kubernetes in Go geschrieben, und auch eine Developer-Befragung in 2017 ergab eine Präferenz von 67 Prozent hinsichtlich der Nutzung von Go.

Go Module
Da die Go-Programmierung sich momentan zu einer der am schnellsten wachsenden Softwaresprachen der Welt mausert, ist es eine Herausforderung, robuste und zuverlässige Pipelines ohne ein unveränderliches Repository zu erstellen. Eine der wichtigsten Entwicklungen dieser Sprache sind die sogenannten Go-Module. Go-Module sind Sammlungen von zugehörigen Go-Paketen, die zusammen als eine Einheit versioniert sind. Diese Einheiten ermöglichen es, den Code zwischen den Entwicklern zu teilen, ohne sie zu bitten, den Code immer wieder herunterzuladen. Sie bieten einen dringend benötigten modernen und robusten Managementmechanismus für Go-Abhängigkeiten und zudem ist die Abwärtskompatibilität mit älteren Abhängigkeitsmanagern wie Go dep mit bewundernswerter Eleganz implementiert. Zudem ermöglichen sie es Go-Entwicklern sich vom Vendoring zu lösen und eine branchenerprobte Lösung von unveränderlichen, versionierten Modulen zu bevorzugen. Denn Go-Module, die Anwendungen als Abhängigkeiten beinhalten, müssen aus Tausenden von unabhängigen Quellcode-Repositories aufgelöst werden, die jeweils mit unterschiedlicher Disziplin gepflegt werden können. Aus diesem Grund ist die Notwendigkeit entstanden, dass Go-Module in einem öffentlich zugänglichen Repository vorhersehbarer, unveränderlicher und verwaltbarer sein müssen.

Building Go projects with GoCenter
Das JFrog GoCenter löst dieses Entwicklerproblem, indem es ein öffentliches zentrales Repository von Go-Modulen bereitstellt, das eine wiederholbare und schnelle Modulauflösung ermöglicht. GoCenter verarbeitet und validiert Go-Projekte automatisch direkt aus Quellcode-Repositories in unveränderliche, versionierte Module und stellt sie der Go-Entwicklergemeinschaft frei zur Verfügung. Auf diese Weise wird die Go-Community in die Lage versetzt, zuverlässig reproduzierbare Builds ihrer Go-Anwendungen zu generieren. Während auf dem Arbeitsplatz ein lokaler Cache vorhanden ist und auf dem Markt organisatorische Caches (Repositories) verfügbar sind (siehe JFrog Artifactory), ist GoCenter das zentrale Repository, das eine schnelle, wiederholbare Auflösung von Go-Modulen ermöglicht.

Zusammen mit der Scandio verhilft JFrog somit weltweit Go-Entwicklern zu einem verbesserten Arbeitsprozess und erleichtert die Programmierung in Go immens.

Wie wars dann bei der Veranstaltung?

Die GoDays waren komplett ausgebucht und viele interessante Persönlichkeiten von Unternehmen aus aller Welt tauschten sich über die Neuigkeiten und Praxistipps im Bereich Go aus.

Workshops
Der erste Tag begann mit Workshops, darunter:

  • “Using and extending the Kubernetes API programmatically with GO” (RedHat)
  • “Goka: painless stream processing with Go and Kafka” (LOVOO / Volkswagen AG)

Der zweite Tag wurde durch die Keynote von Natalie Pistunovich von Fraugster eröffnet und zahlreiche Teilnehmer konnten sich neben Vorträgen an den wartenden Ständen informieren. Auch unser Partner JFrog hatte mit “Going Secure with Go”, präsentiert durch Baruch Sadogursky, interessante Insights für die Arbeit mit Go zu bieten.

Weitere Vorträge umfassten Themen wie z.B.:

  • Robust Go applications (e.g. design of dependencies),
  • Tooling (e.g. Go frameworks enabling monitoring of Go apps capable of collecting metrics) and
  • Go race detector functionalities the functionality of Go’s race detector.

Für unsere Kollegen lag bei den besuchten Talks der Fokus definitiv auf den robusten Go-Anwendungen (u.a. Design der Dependencies), dem Tooling (Frameworks in Go, die ein Monitoring der Go-Apps ermöglichen, mit denen sich Metriken bereitstellen lassen) und die Funktionsweise des Go-Race Detectors. Hierbei wurden Konzepte diskutiert und über die thematische Ausrichtung von Go spekuliert, da viele große Anwendungen mittlerweile in Go geschrieben werden und dafür eine hohe Verfügbarkeit bzw. Robustheit ausweisen müssen.

Des Weiteren gab es Einblicke in die Einbindung von Kafka (Apache Kafka® ist eine distributive Streaming-Plattform) in diverse Go-Apps mitunter zu interessanten Pitfalls im Umgang mit dem Go Client. Ein Mehrwert auch für Teilnehmer, die schon mit Go/Kafka in Kombination gearbeitet haben.

Im Allgemeinen waren alle Talks sehr gut vorbereitet und man spürte, dass Go in der Transitphase vom Newcomer zum Established Player ist; immer mit ein bisschen Humor auch über sich selbst und die noch junge Vergangenheit von Go.

Klingt für Sie interessant?

Falls bei Ihnen nun noch weiteres Interesse zu diesem Thema besteht, können wir folgende Artikel von JFrog nur wärmstens empfehlen:

Documentation on GoCenter

Publishing Go Modules To JFrog Artifactory Using The JFrog CLI

Go at Full Speed with GoCenter

Resolving Go Modules From JFrog Artifactory Using JFrog CLI