SlideShare a Scribd company logo
Don’t talk to strangers
Test isolation with containers
Hristo Iliev, Georgi Sabev | SAP Labs 18-19 November, Sofia
Hristo Iliev
ISTAcon.org 18-19 November, Sofia
SAP
• NetWeaver Application Server Java
• SAP HANA Cloud Platform
Open Source
• Eclipse Virgo
• Cloud Foundry (Diego & Abacus)
Georgi Sabev
ISTAcon.org 18-19 November, Sofia
SAP
• SAP HANA Cloud Platform
Open Source
• Cloud Foundry (Diego & Abacus)
Pictures
Creative Commons @ Flickr
ISTAcon.org 18-19 November, Sofia
Creating Working Software
ISTAcon.org 18-19 November, Sofia
Tests
Automation
Discipline
Problems
ISTAcon.org 18-19 November, Sofia
Test Pollution
ISTAcon.org 18-19 November, Sofia
Environment variables
Database records
Files
Programs / libraries
Resource contention
ISTAcon.org 18-19 November, Sofia
Processes compete for
• CPU
• Memory
• I/O
Multiple environments
ISTAcon.org 18-19 November, Sofia
OS
Mobile / Desktop
Cloud / Standalone
Databases
Versions
Test problems summary
ISTAcon.org 18-19 November, Sofia
Test pollution
Resource contention
Multiple environments
Solutions
ISTAcon.org 18-19 November, Sofia
Traditional
• Dedicated hardware
• Virtual machines
• Cloud: AWS, Azure
New tools
Containers
build, isolate, ship
ISTAcon.org 18-19 November, Sofia
Container: Resource isolation
Tenant 1 Tenant 2 Tenant 3
ProcessA
ProcessB
ProcessC
ProcessD
ProcessE
ProcessF
CPU
Kernel
ISTAcon.org 18-19 November, Sofia
Container: Resource isolation
Tenant 1 Tenant 2 Tenant 3
ProcessA
ProcessB
ProcessC
ProcessD
ProcessE
ProcessF
Kernel
A FEDCB
ISTAcon.org 18-19 November, Sofia
Container: Resource isolation
Tenant 1 Tenant 2 Tenant 3
ProcessA
ProcessB
ProcessC
ProcessD
ProcessE
ProcessF
CPU
Kernel
A FEDCB
ISTAcon.org 18-19 November, Sofia
Container: Resource isolation
Tenant 1 Tenant 2 Tenant 3
ProcessA
ProcessB
ProcessC
ProcessD
ProcessE
ProcessF
CPU
Kernel
A FEDCB
Linux Kernel
ISTAcon.org 18-19 November, Sofia
Container: Namespace isolation
Tenant 1 Tenant 2 Tenant 3
ProcessA
ProcessB
ProcessC
ProcessA
ProcessA
ProcessB
PID, Network, Mount, User
Kernel
ISTAcon.org 18-19 November, Sofia
Containerization = Lightweight Virtualization
ISTAcon.org 18-19 November, Sofia
Operating System
Hypervisor
Virtual Machine
Operating System
Bins / libs
App App
Virtual Machine
Operating System
Bins / libs
App App
Container Daemon
Container
Bins / libs
App App
Container
Bins / libs
App App
Virtualization Containerization
Operating System
Hardware Hardware
Container
?
ISTAcon.org 18-19 November, Sofia
Container
ISTAcon.org
18-19 November, Sofia
Network
User
cgroups
PID
Isolation
Container
+
Content
ISTAcon.org
18-19 November, Sofia
Network
User
cgroups
PID
Isolation
Container
++
Content Processes
ISTAcon.org
18-19 November, Sofia
Network
User
cgroups
PID
Isolation
Container
Network
User
cgroups
PID
ISTAcon.org 18-19 November, Sofia
Container actions
Make me a container
ISTAcon.org 18-19 November, Sofia
Container actions
Put this in itMake me a container
ISTAcon.org 18-19 November, Sofia
Container actions
Put this in it Run this for meMake me a container
ISTAcon.org 18-19 November, Sofia
Docker
ISTAcon.org 18-19 November, Sofia
“Build, Ship, Run” Containers
• Dockerfile
• Docker image
• Docker Hub
Logos
ISTAcon.org 18-19 November, Sofia
Docker
Linux
Go lang
Demo
ISTAcon.org 18-19 November, Sofia
https://github.com/hsiliev/strangers
ISTAcon.org 18-19 November, Sofia
Containers: Pros & Cons
ISTAcon.org 18-19 November, Sofia
Pros
• Isolation
• Reproducible environment
• Easy to maintain
Cons
• Multi-platform
• Discipline
Software Production
ISTAcon.org 18-19 November, Sofia
Complexity
Tests
Automation
Pipelines
Multiple-builds
ISTAcon.org 18-19 November, Sofia
Popular solutions
ISTAcon.org 18-19 November, Sofia
Build servers
Jenkins
Travis
…
Homegrown
Concourse
CI, Pipelines, Delivery
ISTAcon.org 18-19 November, Sofia
Concourse
ISTAcon.org 18-19 November, Sofia
Reproducible builds
Simple building blocks
Docker containers
Concourse: Concepts
ISTAcon.org 18-19 November, Sofia
Resources
Tasks
Jobs
Build Job
Configure
Make
Install
Source Binary
Concourse: Pipeline
ISTAcon.org 18-19 November, Sofia
resource
jobvalidated
resource
Demo
ISTAcon.org 18-19 November, Sofia
https://github.com/hsiliev/strangers
ISTAcon.org 18-19 November, Sofia
Concourse: Pros & Cons
ISTAcon.org 18-19 November, Sofia
Pros
• Reproducible environment
• Native pipeline support
• Release process modeling
Cons
• Maturity
• Scripting
Q&A
ISTAcon.org 18-19 November, Sofia
Thank you!
hristo.iliev@sap.com
georgi.sabev@sap.com
Hristo Iliev, Georgi Sabev | SAP Labs 18-19 November, Sofia

More Related Content

PPTX
Kibana overview
PPTX
It committee agm maribor
PDF
AWS Finland Meetup 2019 September - sponsored by Digia
PPTX
DevOpsDays Amsterdam 2016 workshop
PDF
AWS Finland meetup 2019 september - sponsored by Zalando
PDF
AWS Finland Meetup 2019 April
PDF
All About Angular and ArcGIS - Developers Forum - AC18
PDF
Data Driven
Kibana overview
It committee agm maribor
AWS Finland Meetup 2019 September - sponsored by Digia
DevOpsDays Amsterdam 2016 workshop
AWS Finland meetup 2019 september - sponsored by Zalando
AWS Finland Meetup 2019 April
All About Angular and ArcGIS - Developers Forum - AC18
Data Driven

What's hot (12)

PDF
Gerrit topics support with AWS Lambda
PDF
Using Jupyter Notebooks - Developers Forum - AC18
PDF
Arcadis - Improving Ground Engineering Data Flows - Smart Infrastructure - AC18
PDF
2016 History - update per month
PDF
Big data internship plan at Contemi Vietnam
PDF
GeeCon Prague 2018: @SpringCloud @Docker @kubernetesio
PDF
AWS Finland Meetup 2019 November
PPTX
From AIX to Zero-ops by Pierre Baillet
PDF
"草APIサービス" Pixela を作った話
PDF
What's New in the Javascript API - Developers Forum - AC18
PDF
I Didn't Know You Could Do That -Technical - AC18
Gerrit topics support with AWS Lambda
Using Jupyter Notebooks - Developers Forum - AC18
Arcadis - Improving Ground Engineering Data Flows - Smart Infrastructure - AC18
2016 History - update per month
Big data internship plan at Contemi Vietnam
GeeCon Prague 2018: @SpringCloud @Docker @kubernetesio
AWS Finland Meetup 2019 November
From AIX to Zero-ops by Pierre Baillet
"草APIサービス" Pixela を作った話
What's New in the Javascript API - Developers Forum - AC18
I Didn't Know You Could Do That -Technical - AC18
Ad

Similar to Don’t talk to strangers: Test isolation with containers (20)

PDF
Docker en kernel security
PDF
Options for running Kubernetes at scale across multiple cloud providers
PDF
Container Security
PPTX
Containers vs. VMs: It's All About the Apps!
PDF
Docker and kernel security
PDF
Containers & CaaS
PDF
Reaching Production Faster with Containers in Testing
PDF
Containers - Transforming the data centre as we know it 2016
PDF
Using Docker container technology with F5 Networks products and services
PPTX
Microsoft Ignite 2018 BRK3192 Container DevOps on Azure
PPTX
DevOps, Kubernetes and Istio
PDF
Improving velocity through abstraction
PDF
create auto scale jboss cluster with openshift
PDF
System Containers and Application Containers: Who Cares?
PPTX
Open Source Investments in Mainframe Through the Next Generation - Showcasing...
PDF
Cloud Native Application
PDF
The NRB Group mainframe day 2021 - Containerisation on Z - Paul Pilotto - Seb...
 
PDF
State of Linux Containers for HPC
PDF
Cloud Computing as Innovation Hub - Mohammad Fairus Khalid
Docker en kernel security
Options for running Kubernetes at scale across multiple cloud providers
Container Security
Containers vs. VMs: It's All About the Apps!
Docker and kernel security
Containers & CaaS
Reaching Production Faster with Containers in Testing
Containers - Transforming the data centre as we know it 2016
Using Docker container technology with F5 Networks products and services
Microsoft Ignite 2018 BRK3192 Container DevOps on Azure
DevOps, Kubernetes and Istio
Improving velocity through abstraction
create auto scale jboss cluster with openshift
System Containers and Application Containers: Who Cares?
Open Source Investments in Mainframe Through the Next Generation - Showcasing...
Cloud Native Application
The NRB Group mainframe day 2021 - Containerisation on Z - Paul Pilotto - Seb...
 
State of Linux Containers for HPC
Cloud Computing as Innovation Hub - Mohammad Fairus Khalid
Ad

More from Hristo Iliev (15)

PDF
From the Drawing Board to the Trenches: Building a Production-ready Application
PPTX
Cf News september-december 2017
PPTX
CFS NA 2017
PPTX
Cf news june september 2017
PDF
Resistance is futile, resilience is crucial
PDF
Cf news april june 2017
PPTX
CF News April Feb-Apr 2017
PPTX
Diego container scheduler
PPTX
Applications & tasks
PPTX
Cloud foundry history
PPTX
Buildpacks detect, compile, release
PDF
What cloud foundry is not
PDF
Sofia meetup #1
PPTX
Agile Software Development Techniques for Daily Use
PDF
Gemini WEB and Virgo
From the Drawing Board to the Trenches: Building a Production-ready Application
Cf News september-december 2017
CFS NA 2017
Cf news june september 2017
Resistance is futile, resilience is crucial
Cf news april june 2017
CF News April Feb-Apr 2017
Diego container scheduler
Applications & tasks
Cloud foundry history
Buildpacks detect, compile, release
What cloud foundry is not
Sofia meetup #1
Agile Software Development Techniques for Daily Use
Gemini WEB and Virgo

Recently uploaded (20)

PPTX
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
PDF
17 Powerful Integrations Your Next-Gen MLM Software Needs
PPTX
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
PDF
medical staffing services at VALiNTRY
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
DOCX
Greta — No-Code AI for Building Full-Stack Web & Mobile Apps
PDF
wealthsignaloriginal-com-DS-text-... (1).pdf
PPTX
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
PDF
Tally Prime Crack Download New Version 5.1 [2025] (License Key Free
PDF
Digital Systems & Binary Numbers (comprehensive )
PPTX
Embracing Complexity in Serverless! GOTO Serverless Bengaluru
PDF
Salesforce Agentforce AI Implementation.pdf
PDF
Download FL Studio Crack Latest version 2025 ?
PDF
Complete Guide to Website Development in Malaysia for SMEs
PDF
Designing Intelligence for the Shop Floor.pdf
PDF
iTop VPN 6.5.0 Crack + License Key 2025 (Premium Version)
PDF
Adobe Illustrator 28.6 Crack My Vision of Vector Design
PPTX
Advanced SystemCare Ultimate Crack + Portable (2025)
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 41
PDF
Design an Analysis of Algorithms II-SECS-1021-03
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
17 Powerful Integrations Your Next-Gen MLM Software Needs
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
medical staffing services at VALiNTRY
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
Greta — No-Code AI for Building Full-Stack Web & Mobile Apps
wealthsignaloriginal-com-DS-text-... (1).pdf
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
Tally Prime Crack Download New Version 5.1 [2025] (License Key Free
Digital Systems & Binary Numbers (comprehensive )
Embracing Complexity in Serverless! GOTO Serverless Bengaluru
Salesforce Agentforce AI Implementation.pdf
Download FL Studio Crack Latest version 2025 ?
Complete Guide to Website Development in Malaysia for SMEs
Designing Intelligence for the Shop Floor.pdf
iTop VPN 6.5.0 Crack + License Key 2025 (Premium Version)
Adobe Illustrator 28.6 Crack My Vision of Vector Design
Advanced SystemCare Ultimate Crack + Portable (2025)
Internet Downloader Manager (IDM) Crack 6.42 Build 41
Design an Analysis of Algorithms II-SECS-1021-03

Don’t talk to strangers: Test isolation with containers

Editor's Notes

  • #3: In order to build quality software we need: Tests so that we know it works as expected Automation that allows us to develop and experiment in a cheap and quick manner -> improve Tools can help alot Discipline is required to keep all that is good and improve further
  • #4: In order to build quality software we need: Tests so that we know it works as expected Automation that allows us to develop and experiment in a cheap and quick manner -> improve Tools can help alot Discipline is required to keep all that is good and improve further
  • #5: GEORGI All photos except our own images are Creative Commons license
  • #6: GEORGI In order to build quality software we need: Tests so that we know it works as expected Automation that allows us to develop and experiment in a cheap and quick manner -> improve Tools can help a lot Discipline is required to keep all that is good and improve further
  • #7: GEORGI Everyone want to build quality systems, but it Turns out difficult Following are examples of common pitfalls during testing We will introduce tools that mitigate the presented problems
  • #8: GEORGI The first problem we want to present is the test pollution In general pollution is caused by resources left behind (as in real life). These can be env. Variables database/storage/persistence data causing an app/program to appear in certain state files (another form of state) dependencies already present on the machine
  • #9: GEORGI Consuming too much cpu/memory causes other leads to starvation for other processes Running tests on the same machine may lead to delays and failures (hard to debug) Not talking for performance but for functional - unit/integration tests
  • #10: GEORGI Different Kind of devices (emulators and physical hardware) landscapes (cloud) Backends Libraries / set of dependencies and programs Let’s see how we can solve this …
  • #11: GEORGI We’ve seen these 3 problems. Let’s now see how all these problems can be addressed …
  • #12: HRISTO Dedicated hardware for Android OS env: AWS (mostly linux), Azure (mostly Windows) Recently a few tools and technologies became popular. Let’s see how they can help solve our issues…
  • #13: HRISTO In the past goods were delivered ‘as they are’ – multiple different packages Hard to load/unload on different infrastructures Solution: shipping container Engineers borrowed the same idea Isolation, Standartization, Automation
  • #14: HRISTO
  • #15: HRISTO
  • #16: HRISTO
  • #17: HRISTO
  • #21: HRISTO
  • #22: GEORGI Virtualization emulates all devices (memory, disk, video, ….). We can run different OS-es Containerization allows us to run only a single OS, but is much cheaper and lightweight.
  • #23: GEORGI
  • #24: GEORGI
  • #25: GEORGI
  • #26: GEORGI
  • #27: GEORGI
  • #28: GEORGI
  • #29: GEORGI
  • #30: GEORGI
  • #31: GEORGI Docker is an implementation of the container idea Provides definition of container in “Dockerfile” The container is stored as image The image is stored on a site/repo - Hub
  • #32: GEORGI Docker is an implementation of the container idea Provides definition of container in “Dockerfile” The container is stored as image The image is stored on a site/repo - Hub
  • #38: HRISTO Run 2 (or more) mvn clean install in parallel to demonstrate they fail Now start a container with Ubuntu to show that containers actually work and show uname Whoami restart does not work –this is not a VM Run 2 containers to show that mvn clean install now works
  • #39: HRISTO Now it’s a time for demo. You can find the source, container definition (dockerfile) and the presentation itself in github You can take a picture so you don’t have to remember or write down the address.
  • #40: HRISTO Linux only. Windows requires different VM Discipline – cleanup still needed. CPU and memory contention is problem in containers too. This has to be addressed in the same way as with VM/standalone env.
  • #41: GEORGI Software is complex- it consists of many moving parts, developed by many teams using multiple technologies Like a car in an assembly line our software needs to pass through multiple stages of build and validation until we have an end product We wan to have this assembly line fully automated -> release often and receive feedback. When producing software we have to: Deal with high complexity Have an ‘assembly line’ like process for testing Have this automated We can do everyting in a container, however we are missing one important concept …
  • #42: GEORGI Pipelines can help us reach from build through testing to the final packaging and release of our product
  • #43: GEORGI We can use popular solutions with containers Or use homegrown tools However … they all miss the concept of a pipeline and don’t treat it as a first class citizen That’s why ...
  • #44: GEORGI CI that understands pipelines Concourse was build by the CF community out of necessity – after experimenting with Jenkins and GoCD
  • #45: HRISTO
  • #46: HRISTO
  • #47: HRISTO Conveyor that accepts resources on the input and after processing/manifacturing outputs releases on the output. Resources: Worker Controller Integration suite Release Final-release Jobs: Worker build & unit test Controller build & mysql test Controller build & postgres test Integration test Deploy
  • #49: GEORGI Show our local concourse pipeline and explain what it does Change the source of the example and demonstrate: Concourse picks the change Runs tests in parallel (in containers) Packages and releases the code
  • #50: GEORGI Now it’s a time for demo. You can find the source, container definition (dockerfile) and the presentation itself in github You can take a picture so you don’t have to remember or write down the address.
  • #51: GEORGI Pros Reproducible environment – configuration in pipeline.yml Native pipeline support – pipeline = resources + tasks & jobs Release process modeling – easy to model the whole (end to end) release process Cons Maturity – not matury. A lot of changes Pipeline management – build & support of pipelines is hard Scripting – a lot of scripting involved in tasks/jobs