Hey thanks for your interest in my Automated Build Pipeline series of tutorials using Docker, Jenkins, Azure and Go.
I want to quickly lay out the goals, outcomes and expectations for these tutorials. I hate wasting time so I'll keep this is a brief as possible while still trying to give you an overview of what we are trying to accomplish here.
Video at: https://youtu.be/L-ncELRLDYg
Blog posts at: http://bargelt.com
2. AUTOMATED BUILD SYSTEM WITH DOCKER, JENKINS, AZURE, AND GO
OUTCOMES
▸ As a build engineer I want to:
▸ Avoid setting up environment after environment for dev teams
▸ Concentrate on keeping the infrastructure healthy
▸ Work to implement new features to streamline processes
▸ As a software developer I want to:
▸ Control my software through to production without impediments
▸ Have freedom to create build environments without making special
requests
3. AUTOMATED BUILD SYSTEM WITH DOCKER, JENKINS, AZURE, AND GO
WHAT WILL THIS SOLUTION LOOK LIKE?
▸ Dev creates a docker image for build environment (hopefully uses it
locally to run, test and debug)
▸ Dev writes tests and code
▸ Dev adds a text file to repository that contains the Jenkins pipeline script
▸ Dev pushes Docker image to the organization's private Docker registry
▸ Dev then uses a tool (currently command line) to create the build job/CI/
CD pipeline - I will open source the code for this tool
4. AUTOMATED BUILD SYSTEM WITH DOCKER, JENKINS, AZURE, AND GO
WHAT WILL THIS SOLUTION LOOK LIKE?
▸ So with a command like:
▸ harbormaster --dockertlsfolder /tlsCerts/ -registryuser
user -registrypassword correcthorsebatteystaple -imagename
bargelt-slavedotnet -label
teambargelt_dotnetcore_simpleDotNet -jenkinsurl http://
dockerbuild.harebrained-apps.com -jenkinsuser steve -
jenkinspassword correcthorsebatteystaple -report https://
github.com/stevebargelt/simpleDotNet.git
▸ Magic happens…
5. AUTOMATED BUILD SYSTEM WITH DOCKER, JENKINS, AZURE, AND GO
MAGIC…
▸ Docker image is pulled to docker host
▸ Docker container created and started
▸ Test performed on Docker container
▸ Actually works!
▸ Conforms to standards
▸ Jenkins Docker Template is created
▸ Jenkins Job is created
6. AUTOMATED BUILD SYSTEM WITH DOCKER, JENKINS, AZURE, AND GO
STEP BY STEP
▸ Setup Docker in Azure
▸ Run Jenkins in Docker… in Azure
▸ Setup Jenkins to spin up ephemeral (Docker containers) Jenkins slaves
▸ Setup a Docker registry in Azure (including getting TLS/SSL certs)
▸ Write all the code (in Go) to allow hands-off build job creation
▸ Walk through creating software utilizing this system
7. AUTOMATED BUILD SYSTEM WITH DOCKER, JENKINS, AZURE, AND GO
TUTORIAL 01: DOCKER IN A VM IN AZURE
8. AUTOMATED BUILD SYSTEM WITH DOCKER, JENKINS, AZURE, AND GO
TUTORIAL 02: JENKINS AND EPHEMERAL SLAVES
9. AUTOMATED BUILD SYSTEM WITH DOCKER, JENKINS, AZURE, AND GO
TUTORIAL 03: PRIVATE DOCKER REGISTRY (SECURE)
10. AUTOMATED BUILD SYSTEM WITH DOCKER, JENKINS, AZURE, AND GO
TUTORIAL 04: JENKINS SCRIPTING AND API
11. AUTOMATED BUILD SYSTEM WITH DOCKER, JENKINS, AZURE, AND GO
TUTORIAL 05: DOCKHAND - CODING IN GO
12. AUTOMATED BUILD SYSTEM WITH DOCKER, JENKINS, AZURE, AND GO
TUTORIAL 06: USING THE SYSTEM WITH DOTNET CORE
13. AUTOMATED BUILD SYSTEM WITH DOCKER, JENKINS, AZURE, AND GO
THIS TUTORIAL SERIES
▸ Videos and details step-by-step blog posts
▸ Six installments planned
▸ More enhancement ideas to follow
▸ Expand to AWS
▸ I am use this system for my own projects so I’ll keep it up-to-date
14. AUTOMATED BUILD SYSTEM WITH DOCKER, JENKINS, AZURE, AND GO
WHAT THIS SERIES IS NOT
▸ No fluff
▸ Not going to explain Docker / Containers
▸ Not going to debate tech choices
15. AUTOMATED BUILD SYSTEM WITH DOCKER, JENKINS, AZURE, AND GO
COLLABORATION AND OPEN SOURCE
▸ I’m no expert on any of these technologies
▸ I’m not a security expert
▸ All code will be open source
▸ Welcome PRs, comments, issues