Let’s see what it takes to build an automated testing/QA setup with Kubernetes and GitLab from scratch, using off-the-shelf components. The goal is to automatically deploy any feature-x or hotfix-x branch to individual environments for automated tests and to make it easier to share intermediate results within the team. This talk will touch on abstract topics like continuous delivery, the value of developer tooling and well-defined workflows, before diving deep into implementation details, learnings, gotchas and stuff-which-went-wrong.
2. vsupalov.comvsupalov.com
Hi, I’m Vladislav!
2
● Computer science background: ML, CV & data
● Casual web development
● Fascination with DevOps
○ Efficient, reliable, (huge), infrastructure setups
○ Monitoring, automation, processes
● Automation engineer
● Data engineering consulting business
○ Data pipelines! Small data :)
● Co-founding a startup - Pivii Technologies
○ Visual artificial intelligence for social media content marketing
● Building a consulting business around Kubernetes automation
2
vsupalov
3. vsupalov.comvsupalov.com
One Fine Weekend:
3
3
● How hard can it be from scratch?
● Entirely self-hosted solutions
● Using Kubernetes and GitLab
● Free Google Cloud Platform credits :)
● Project: any changes to a Git feature-x or hotfix-x branch →
● Automatically deploy to individual environments
● Purpose: share intermediate results, review progress, run automated tests
● How far can I get?
4. vsupalov.com
● What? Why would you?
● Words: CI & CD
● Deployment pipelines
● GitLab & Kubernetes ❤
● Lab: automating QA envs
Envs are non-critical & disposable
Using lazy, off-the-shelf components
4
7. vsupalov.com
I am doing this for fun.
Most of you as well, I assume.
Giving developers superpowers.
Awesome, reliable, neat, tidy setups.
One command → everything works.
7
We’re not doing this for fun.
8. vsupalov.com
Ideally, good companies and
great teams are investing
resources (time & money) into
adopting and using practices &
tech for very good reasons.
Examples: processes, Scrum, workflows, automation,
fancy/immutable infrastructure, Git, Docker, Kubernetes
8
9. vsupalov.comvsupalov.com
● Company: Save money or make more money
● Reduce risk
● Fix things which are broken
● Less mistakes, faster iteration times, better for company
● Improve team communication
● Save expensive developer time
● Get more team efficiency
● Reduce friction for devs
● Find issues as early and with as little effort as possible
● Create feedback loop between ops and devs
● Happy developers = less employee churn
Good Reasons
9
9
11. vsupalov.comvsupalov.com
Continuous Integration
11
11
“Continuous integration is the practice of
routinely integrating code changes into the
main branch of a repository, and testing the
changes, as early and often as possible.
Ideally, developers will integrate their code
daily, if not multiple times a day.”
Source: atlassian.com
15. vsupalov.comvsupalov.com
● Continuous Delivery (2010)
● By Jez Humble and David Farley
● ~440 pages
● Don’t be discouraged by the age
● Really good foundation and !juicy! details
● Literally the best book on the topic
Reading Recommendation
15
15 Image source: amazon.de
18. vsupalov.com
GitLab & GitLab CI/CD &
Kubernetes
18
I just want to deploy my app.
Repeatedly. When I want to.
Without busy waiting or thinking too much about it.
21. vsupalov.com
GitLab: open source, reasonably
simple to self-host
GitLab CI/CD: very cool product
Used both in a client projects -
really liked ‘em
21