vsupalov.com
Automated Testing
Environments With
Kubernetes & GitLab
Vladislav Supalov, 15th November 2017
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
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?
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
vsupalov.com
What? Why?
5
vsupalov.com
We’re not doing this for fun.
6
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.
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
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
vsupalov.com
Words & Practices:
Continuous Integration
Continuous Delivery
Continuous Deployment
Testing, Staging, Production
10
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
vsupalov.comvsupalov.com
Continuous Delivery & Deployment
12
12 Source: atlassian.com
vsupalov.comvsupalov.com
Testing, Staging, Production Envs
13
13 Source: agiledata.org
vsupalov.com
Deployment Pipelines
14
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
vsupalov.comvsupalov.com
Deployment Pipeline
16
16 Image source: Continuous Delivery, 2010, Jez Humble and David Farley, Chapter 5
vsupalov.comvsupalov.com
Basic Deployment Pipeline
17
17 Image source: Continuous Delivery, 2010, Jez Humble and David Farley, Chapter 5
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.
vsupalov.com
Personal opinion: Kubernetes is
the best choice for dealing with
containerized apps for anything
beyond toy projects.
19
vsupalov.com
GitLab: betting on Kubernetes!
My interpretation of the founder’s tweets...
20
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
vsupalov.comvsupalov.com
GitLab CI/CD: Overview
22
22
vsupalov.comvsupalov.com
GitLab CI/CD: Pipeline
23
23 #YOLO
vsupalov.comvsupalov.com
GitLab CI/CD: Job
24
24
vsupalov.com
And now: my weekend project -
steps taken, results & learnings
25
vsupalov.comvsupalov.com
Installing & Configuring - From Scratch
26
26
● New Google Kubernetes Engine cluster
○ Helm, (Prometheus), Nginx ingress, Stackdriver, Deis
● Well-sized Ubuntu Compute Engine VM for GitLab
○ Gitlab omnibus edition (EE)
● Setup, configuration
○ Docker
■ net.ipv4.ip_forward=1
○ GitLab task runner
○ Fixing Gitlab configs
○ GCE free quotas, non-ephemeral (aka static) IP
○ Let’s Encrypt & Nginx reverse proxy config for the fun of it
○ Own Docker registry
○ Toy projects
● Kubernetes integration configuration
○ Token, base64 cert...
vsupalov.comvsupalov.com
gitlab-ci.yml
27
27 Link: docs
vsupalov.comvsupalov.com
Starting Out: A Skeleton Pipeline
28
28
vsupalov.comvsupalov.com
Simplest Project → Deis Workflow → Docker Push
29
29
vsupalov.comvsupalov.com
GitLab’s Auto DevOps (Beta)
30L
k30
“Auto DevOps automatically detects, builds, tests, deploys,
and monitors your applications.”
Links: intro, quickstart
vsupalov.comvsupalov.com
Push A Flask Project
31
31
vsupalov.comvsupalov.com
Building...
32
32
vsupalov.comvsupalov.com
But How? Enable & Configure.
33
33
vsupalov.comvsupalov.com
Building: Python + Flask @ First Try
34
34
vsupalov.comvsupalov.com
Oh.
35
35
vsupalov.comvsupalov.com
Ah.
36
36
vsupalov.comvsupalov.com
Alright, A Rails App Then...
37
37
vsupalov.comvsupalov.com
Whoo!
38
38
vsupalov.comvsupalov.com
Shipped.
39
39
vsupalov.comvsupalov.com
Environment Overview
40
40
vsupalov.comvsupalov.com
41
41
vsupalov.com
In Conclusion
42
vsupalov.com
Works. Not quite what I aimed
for.
It’s a work intensive task.
A month of work if you’re starting
from scratch to get it right?
43
vsupalov.com
Deployment pipeline, team and
product are closely linked. They
should grow together.
No one size fits all - only up to a
certain point.
44
vsupalov.comvsupalov.com
● Auto DevOps might be neat-o eventually
● Neglected here:
○ Integrations
○ Lockdown: Security + VPN
○ Wildcard certs with Let’s Encrypt ~2018 + Kube Lego
○ Handle data
○ Monitoring, usable Logs, dashboards
○ Deploy your own Helm chart
○ Maintenance issues
● Beyond magic:
○ Start with a Skeleton
○ Build what’s needed
○ Deployment pipeline for a specific project & team
Closing Thoughts
45
45
vsupalov.com
Thanks! Want to get regular
tips on building deployment
pipelines and automating
Kubernetes with GitLab & co?
Mail: yt@vsupalov.com

More Related Content

PDF
Kubecon 2019 Recap
PDF
DevSecOps: Bringing security to the DevOps pipeline
PPTX
dotnetsheff: Continuous delivery with Team City and Octopus Deploy
PDF
Successful DevOps implementation for small teams a true story
PDF
Work smart with Gutenberg - Fellyph Cintra
PDF
Grunt training deck
ODP
Eclipse Buildship DemoCamp Hamburg (June 2015) with additional screenshots
PDF
Front-end development automation with Grunt
Kubecon 2019 Recap
DevSecOps: Bringing security to the DevOps pipeline
dotnetsheff: Continuous delivery with Team City and Octopus Deploy
Successful DevOps implementation for small teams a true story
Work smart with Gutenberg - Fellyph Cintra
Grunt training deck
Eclipse Buildship DemoCamp Hamburg (June 2015) with additional screenshots
Front-end development automation with Grunt

What's hot (20)

PDF
Monitoring at a SAAS Startup: Tradeoffs and Tools
PDF
Are your v8 garbage collection logs speaking to you?Joyee Cheung -Alibaba Clo...
PPTX
JS performance tools
PDF
Stockholm Jenkins Area Meetup, March 2017
PDF
Devops For Drupal
PDF
Cloud Driven Development: a better workflow, less worries, and more power
PDF
Terraform GitOps on Codefresh
PDF
When JHipster meets Microsoft-JHipster and Microsoft products
PDF
Promise of DevOps
PDF
Gradle build automation tool
PDF
Docker based-Pipelines with Codefresh
ODP
What grunt?
PDF
Beyond OpenStack
PDF
Devoxx : being productive with JHipster
PPTX
Grunt - The JavaScript Task Runner
PDF
wp-cli and plugin development with future and past compatibility (Word Camp P...
PDF
Cloud Native CI/CD with GitOps
PDF
Foundations for the perfect technology stream
PPTX
DevOps Practices @Pipedrive
PDF
Aprende, contribuye, y surfea Cloud Native Java - GuateJUG 2021
Monitoring at a SAAS Startup: Tradeoffs and Tools
Are your v8 garbage collection logs speaking to you?Joyee Cheung -Alibaba Clo...
JS performance tools
Stockholm Jenkins Area Meetup, March 2017
Devops For Drupal
Cloud Driven Development: a better workflow, less worries, and more power
Terraform GitOps on Codefresh
When JHipster meets Microsoft-JHipster and Microsoft products
Promise of DevOps
Gradle build automation tool
Docker based-Pipelines with Codefresh
What grunt?
Beyond OpenStack
Devoxx : being productive with JHipster
Grunt - The JavaScript Task Runner
wp-cli and plugin development with future and past compatibility (Word Camp P...
Cloud Native CI/CD with GitOps
Foundations for the perfect technology stream
DevOps Practices @Pipedrive
Aprende, contribuye, y surfea Cloud Native Java - GuateJUG 2021
Ad

Similar to Automated Testing Environments With Kubernetes & GitLab (20)

PDF
Free GitOps Workshop
PDF
Free GitOps Workshop (with Intro to Kubernetes & GitOps)
PDF
Free GitOps Workshop + Intro to Kubernetes & GitOps
PDF
Octopus Deploy Tech Fest 2014
PDF
Aws uk ug #8 not everything that happens in vegas stay in vegas
PDF
Delivery Pipelines as a First Class Citizen @deliverAgile2019
PDF
Continuous Delivery: 5 years later (Incontro DevOps 2018)
PPTX
DevOps Introduction_1by waqas rash .pptx
PPTX
DOES14 - David Ashman - Blackboard Learn - Keep Your Head in the Clouds
PPTX
DOES14 - David Ashman, Blackboard Learn - Keep Your Head in the Clouds Tuesda...
PDF
Intro to Kubernetes & GitOps Workshop
PDF
Building a Distributed & Automated Open Source Program at Netflix
PDF
Netflix Open Source: Building a Distributed and Automated Open Source Program
PDF
Second Skin: Real-Time Retheming a Legacy Web Application with Diazo in the C...
PDF
Enhance Your Kubernetes CI/CD Pipelines With GitLab & Open Source
PDF
Continuous Integration Testing Techniques to Improve Chef Cookbook Quality
PDF
Devops with Python by Yaniv Cohen DevopShift
PDF
Multiplier Effect: Case Studies in Distributions for Publishers
PDF
Microservices at Mercari
PDF
Big rewrites without big risks
Free GitOps Workshop
Free GitOps Workshop (with Intro to Kubernetes & GitOps)
Free GitOps Workshop + Intro to Kubernetes & GitOps
Octopus Deploy Tech Fest 2014
Aws uk ug #8 not everything that happens in vegas stay in vegas
Delivery Pipelines as a First Class Citizen @deliverAgile2019
Continuous Delivery: 5 years later (Incontro DevOps 2018)
DevOps Introduction_1by waqas rash .pptx
DOES14 - David Ashman - Blackboard Learn - Keep Your Head in the Clouds
DOES14 - David Ashman, Blackboard Learn - Keep Your Head in the Clouds Tuesda...
Intro to Kubernetes & GitOps Workshop
Building a Distributed & Automated Open Source Program at Netflix
Netflix Open Source: Building a Distributed and Automated Open Source Program
Second Skin: Real-Time Retheming a Legacy Web Application with Diazo in the C...
Enhance Your Kubernetes CI/CD Pipelines With GitLab & Open Source
Continuous Integration Testing Techniques to Improve Chef Cookbook Quality
Devops with Python by Yaniv Cohen DevopShift
Multiplier Effect: Case Studies in Distributions for Publishers
Microservices at Mercari
Big rewrites without big risks
Ad

Recently uploaded (20)

PDF
Five Habits of High-Impact Board Members
PPTX
2018-HIPAA-Renewal-Training for executives
PPTX
Configure Apache Mutual Authentication
PPT
Galois Field Theory of Risk: A Perspective, Protocol, and Mathematical Backgr...
PDF
NewMind AI Weekly Chronicles – August ’25 Week III
PPTX
The various Industrial Revolutions .pptx
PPTX
Microsoft Excel 365/2024 Beginner's training
PDF
Getting started with AI Agents and Multi-Agent Systems
PDF
OpenACC and Open Hackathons Monthly Highlights July 2025
PDF
CloudStack 4.21: First Look Webinar slides
PDF
UiPath Agentic Automation session 1: RPA to Agents
PDF
sbt 2.0: go big (Scala Days 2025 edition)
PDF
A review of recent deep learning applications in wood surface defect identifi...
PDF
sustainability-14-14877-v2.pddhzftheheeeee
PDF
1 - Historical Antecedents, Social Consideration.pdf
PDF
Consumable AI The What, Why & How for Small Teams.pdf
PDF
Zenith AI: Advanced Artificial Intelligence
PDF
Produktkatalog für HOBO Datenlogger, Wetterstationen, Sensoren, Software und ...
PDF
Two-dimensional Klein-Gordon and Sine-Gordon numerical solutions based on dee...
PPT
What is a Computer? Input Devices /output devices
Five Habits of High-Impact Board Members
2018-HIPAA-Renewal-Training for executives
Configure Apache Mutual Authentication
Galois Field Theory of Risk: A Perspective, Protocol, and Mathematical Backgr...
NewMind AI Weekly Chronicles – August ’25 Week III
The various Industrial Revolutions .pptx
Microsoft Excel 365/2024 Beginner's training
Getting started with AI Agents and Multi-Agent Systems
OpenACC and Open Hackathons Monthly Highlights July 2025
CloudStack 4.21: First Look Webinar slides
UiPath Agentic Automation session 1: RPA to Agents
sbt 2.0: go big (Scala Days 2025 edition)
A review of recent deep learning applications in wood surface defect identifi...
sustainability-14-14877-v2.pddhzftheheeeee
1 - Historical Antecedents, Social Consideration.pdf
Consumable AI The What, Why & How for Small Teams.pdf
Zenith AI: Advanced Artificial Intelligence
Produktkatalog für HOBO Datenlogger, Wetterstationen, Sensoren, Software und ...
Two-dimensional Klein-Gordon and Sine-Gordon numerical solutions based on dee...
What is a Computer? Input Devices /output devices

Automated Testing Environments With Kubernetes & GitLab