The GoDays Berlin conference promoted two days of collaborative dialogue within the Go Community. Through various specialized talks and hands-on workshops, Go experts and novices got a chance to exchange their ideas and learn from each other. “GO Berlin” also happened to be the motto of two Scandio employees, Martin and Ben, who travelled to Berlin for this year’s GoDays. Sharing a booth with our partner JFrog, we were able to bring our customers closer to the universal artifact repository, that now supports cloud automation.
Scandio specializes in implementing successful customer processes in the areas of requirements engineering, source code, ticketing, build management and binary stores with JFrog products.
A little bit about Go
From its conception, Go (GoLang) has quickly become one of the most popular programming languages. In fact, both Helm and Kubernetes are written in Go, and a developer survey in 2017 showed that 67% of participants preferred Go over other programming languages.
As Go programming is currently evolving into one of the fastest growing software languages in the world, creating robust and reliable pipelines without immutable repositories is a challenge.
One of the most important developments of this language are the so-called Go modules. Go modules are collections of associated Go packages that are versioned together as a unit. These “units” make it possible to share code between developers without asking them to download the code each time. They provide a much-needed modern and robust management mechanism for Go dependencies. In addition, backward compatibility with older dependency managers such as Go dep has been implemented with admirable elegance. They also enable Go developers to move away from vendoring and nurture a preference for an industry-tested solution of immutable, versioned modules. After all, Go modules, which contain applications as dependencies, must be resolved from thousands of independent source code repositories, each of which may be maintained with varying discipline. Against this background, the need has arisen for Go modules to be more predictable, immutable, and manageable in a publicly accessible repository.
Building Go projects with GoCenter
JFrog GoCenter provides a public central Go modules registry, with a free and easy upload for open source Golang modules. GoCenter automatically processes and validates Go projects directly from source code repositories into immutable, versioned modules, making them readily available to the Go developer community. This enables the Go community to generate builds of their Go applications that are reliably reproducible. While a local cache is available on the workstation and organizational caches (repositories) are available on the market (see JFrog Artifactory), GoCenter is the world’s central platform for Go package.
GoDays Berlin was sold out! Many interesting representatives from companies all over the world were gathered to network and exchange practical ideas related to Go.
The first day started out with workshop sessions, including:
- “Using and extending the Kubernetes API programmatically with GO” (RedHat)
- “Goka: painless stream processing with Go and Kafka” (LOVOO / Volkswagen AG)
The second day was opened with the keynote by Natalie Pistunovich from Fraugster, who talked about the importance of new Gophers and the fresh point of view with suggestions for improvements that they bring with them. Additional talks included Baruch Sadogursky’s “Going Secure with Go”, JFrog’s head of developer relations, who shared the stage with Elena Grahovac, Lead TechOps Automation Engineer at N26. They had interesting insights about working with Go and security. More specifically the different levels of Go application security, including writing secure code, dependency management and Docker images and containers security.
Additional talks included topics such as:
- 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.
Concepts were discussed along with speculation about Go’s strategic positioning, given that many large applications are now written in Go and therefore rely on Go being highly accessible and robust. Furthermore, insights were presented into the integration of Kafka (Apache Kafka® is a distributed streaming platform) into various Go apps, including interesting pitfalls in handling the Go Client - a bonus especially for participants who have already worked with Go/Kafka in tandem.
In general, talks were very well prepared and delivered. It was a great event!
Sounds interesting? Want to learn more?
If you are still interested in this topic, we can only warmly recommend the following articles from JFrog: