Go is the language of choice for a lot of (cloud-native) projects because it creates very streamlined binaries. We used to “vendor” in all dependencies, but with Go Modules we now have real dependency management. We’ll show you a few pipelines from code to production and see if Modules are that much better to make builds lightning quick and hassle-free.
2. • Who’s a Go dev?
• Who’s using Go modules?
• Who’s here just for the food?
Before we get started
3. #Worldpoetryday
@LeonStigter | @TodayWasAwesome | jfrog.com/shownotes
There once was a programmer sage,
Who proclaimed Golang is all the rage,
Use a module or three
And admire the beauty
Of Go in this cloud-native age
4. • Developer Advocate
• Passionate about Serverless,
Containers, and all things
Cloud
• I love dadjokes, cheesecake
and APIs
Who ARE we?
@LeonStigter | @TodayWasAwesome | jfrog.com/shownotes
@LeonStigter
Leon Stigter, Developer Advocate
6. #Worldpoetryday
@LeonStigter | @TodayWasAwesome | jfrog.com/shownotes
There once was a DevOps maintainer
Who used to be quite the complainer
But now there’s nothing to fear
Thanks to the Codefresh team here
Everything’s deployed in a container
7. • Chief Technology Evangelist
• Google Developer Expert,
Forbes Technology Council
• Kubernaut and CI/CD expert
Who ARE we?
@LeonStigter | @TodayWasAwesome | jfrog.com/shownotes
@TodayWasAwesome
Dan Garfield, Chief Technology Evangelist
10. Let’s go on a trip through
history
@LeonStigter | @TodayWasAwesome | jfrog.com/shownotes
11. A quick history of go
Go 1.0
First major milestone as a
long term stable release
2012 2015
Go 1.5
First release to no longer
use C (except for cgo)
Support for Vendoring
2017
Go 1.8
Introduction of Go plugins
2018
Go 1.10
Changes to the toolchain,
runtime, and libs
@LeonStigter | @TodayWasAwesome | jfrog.com/shownotes
13. @LeonStigter | @TodayWasAwesome | jfrog.com/shownotes
“Tis impossible to be sure of anything
but Death and Taxes”
- Christopher Bullock
14. A quick history of go
@LeonStigter | @TodayWasAwesome | jfrog.com/shownotes
Go 1.0
First major milestone as a
long term stable release
2012 2015 2017 2018
Go 1.5
First release to no longer
use C (except for cgo)
Support for Vendoring
Go 1.8
Introduction of Go plugins
Go 1.10
Changes to the toolchain,
runtime, and libs
Go 1.11
Go Modules!
2018
16. Vendoring is a really, really bad idea
@LeonStigter | @TodayWasAwesome | jfrog.com/shownotes
But why not use vendoring?
17. Forking is not always good, bad forking is always bad
@LeonStigter | @TodayWasAwesome | jfrog.com/shownotes
And that’s what vendoring is
18. In software Immutable and repeatable are really important
The best way to guarantee issues is force push
Immutable dependencies
Who doesn’t remember left-pad with Node.js?
Lost Dependencies
Do you trust your colleagues? What about the rest of the Internet?
Trust
@LeonStigter | @TodayWasAwesome | jfrog.com/shownotes
19. Summarizing the last slide
@LeonStigter | @TodayWasAwesome | jfrog.com/shownotes
Friends don’t let friends do
git push -f