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

What's hot

3D Visualization
3D Visualization3D Visualization
Gerrit topics support with AWS Lambda
Gerrit topics support with AWS LambdaGerrit topics support with AWS Lambda
Gerrit topics support with AWS Lambda
Artem Nikitin
 
Using Jupyter Notebooks - Developers Forum - AC18
Using Jupyter Notebooks - Developers Forum - AC18Using Jupyter Notebooks - Developers Forum - AC18
Using Jupyter Notebooks - Developers Forum - AC18
Esri UK
 
Arcadis - Improving Ground Engineering Data Flows - Smart Infrastructure - AC18
Arcadis - Improving Ground Engineering Data Flows - Smart Infrastructure - AC18Arcadis - Improving Ground Engineering Data Flows - Smart Infrastructure - AC18
Arcadis - Improving Ground Engineering Data Flows - Smart Infrastructure - AC18
Esri UK
 
2016 History - update per month
2016 History - update per month2016 History - update per month
2016 History - update per month
Ahmed Galal Khalifa
 
Big data internship plan at Contemi Vietnam
Big data internship plan at Contemi VietnamBig data internship plan at Contemi Vietnam
Big data internship plan at Contemi Vietnam
Quang Nguyen
 
GeeCon Prague 2018: @SpringCloud @Docker @kubernetesio
GeeCon Prague 2018: @SpringCloud @Docker @kubernetesioGeeCon Prague 2018: @SpringCloud @Docker @kubernetesio
GeeCon Prague 2018: @SpringCloud @Docker @kubernetesio
Mauricio (Salaboy) Salatino
 
AWS Finland Meetup 2019 November
AWS Finland Meetup 2019 NovemberAWS Finland Meetup 2019 November
AWS Finland Meetup 2019 November
Rolf Koski
 
From AIX to Zero-ops by Pierre Baillet
From AIX to Zero-ops by Pierre BailletFrom AIX to Zero-ops by Pierre Baillet
From AIX to Zero-ops by Pierre Baillet
The Incredible Automation Day
 
"草APIサービス" Pixela を作った話
"草APIサービス" Pixela を作った話"草APIサービス" Pixela を作った話
"草APIサービス" Pixela を作った話
a know
 
What's New in the Javascript API - Developers Forum - AC18
What's New in the Javascript API - Developers Forum - AC18What's New in the Javascript API - Developers Forum - AC18
What's New in the Javascript API - Developers Forum - AC18
Esri UK
 
I Didn't Know You Could Do That -Technical - AC18
I Didn't Know You Could Do That -Technical - AC18I Didn't Know You Could Do That -Technical - AC18
I Didn't Know You Could Do That -Technical - AC18
Esri UK
 

What's hot (12)

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

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

How to scale above clouds limits - Radu Vunvulea
How to scale above clouds limits - Radu VunvuleaHow to scale above clouds limits - Radu Vunvulea
How to scale above clouds limits - Radu Vunvulea
Radu Vunvulea
 
ICS INtegration with Node-RED and Open Source
ICS INtegration with Node-RED and Open SourceICS INtegration with Node-RED and Open Source
ICS INtegration with Node-RED and Open Source
LetsConnect
 
Social Connections 14 - ICS Integration with Node-RED and Open Source
Social Connections 14 - ICS Integration with Node-RED and Open SourceSocial Connections 14 - ICS Integration with Node-RED and Open Source
Social Connections 14 - ICS Integration with Node-RED and Open Source
Paul Withers
 
Zero to the Cloud with @NetflixOSS
Zero to the Cloud with @NetflixOSSZero to the Cloud with @NetflixOSS
Zero to the Cloud with @NetflixOSS
Mike McGarr
 
KubeSecOps
KubeSecOpsKubeSecOps
KubeSecOps
Karthik Gaekwad
 
Common vulnerabilities & exposures (cve) in docker containers- 2018 alldaydevops
Common vulnerabilities & exposures (cve) in docker containers- 2018 alldaydevopsCommon vulnerabilities & exposures (cve) in docker containers- 2018 alldaydevops
Common vulnerabilities & exposures (cve) in docker containers- 2018 alldaydevops
Jose Manuel Ortega Candel
 
Introducing Pico - A Deep Learning Platform using Docker & IoT - Sangam Biradar
Introducing Pico - A Deep Learning Platform using Docker & IoT - Sangam BiradarIntroducing Pico - A Deep Learning Platform using Docker & IoT - Sangam Biradar
Introducing Pico - A Deep Learning Platform using Docker & IoT - Sangam Biradar
sangam biradar
 
Social connections14: Super charge your API’s with Reactive streams
Social connections14: Super charge your API’s with Reactive streamsSocial connections14: Super charge your API’s with Reactive streams
Social connections14: Super charge your API’s with Reactive streams
Frank van der Linden
 
Data Visualization: Introduction to Shiny Web Applications
Data Visualization: Introduction to Shiny Web ApplicationsData Visualization: Introduction to Shiny Web Applications
Data Visualization: Introduction to Shiny Web Applications
Olga Scrivner
 
Attacking and defending GraphQL applications: a hands-on approach
 Attacking and defending GraphQL applications: a hands-on approach Attacking and defending GraphQL applications: a hands-on approach
Attacking and defending GraphQL applications: a hands-on approach
Davide Cioccia
 
apidays LIVE Hong Kong 2021 - Event-driven APIs & Schema governance for Apach...
apidays LIVE Hong Kong 2021 - Event-driven APIs & Schema governance for Apach...apidays LIVE Hong Kong 2021 - Event-driven APIs & Schema governance for Apach...
apidays LIVE Hong Kong 2021 - Event-driven APIs & Schema governance for Apach...
apidays
 
Mining public datasets using opensource tools: Zeppelin, Spark and Juju
Mining public datasets using opensource tools: Zeppelin, Spark and JujuMining public datasets using opensource tools: Zeppelin, Spark and Juju
Mining public datasets using opensource tools: Zeppelin, Spark and Juju
seoul_engineer
 
AFNetworking
AFNetworking AFNetworking
AFNetworking
joaopmaia
 
DevSecCon London 2018: Enabling shift-left for 12k banking developers from sc...
DevSecCon London 2018: Enabling shift-left for 12k banking developers from sc...DevSecCon London 2018: Enabling shift-left for 12k banking developers from sc...
DevSecCon London 2018: Enabling shift-left for 12k banking developers from sc...
DevSecCon
 
Welcome Icinga Camp San Francisco 2014
Welcome Icinga Camp San Francisco 2014Welcome Icinga Camp San Francisco 2014
Welcome Icinga Camp San Francisco 2014
Icinga
 
You got database in my cloud!
You got database  in my cloud!You got database  in my cloud!
You got database in my cloud!
Liz Frost
 
SoundCloud API Do:s and Don't:s
SoundCloud API Do:s and Don't:sSoundCloud API Do:s and Don't:s
SoundCloud API Do:s and Don't:s
Eric Wahlforss
 
All your database are belong to us - Koop, Cloudant, Feature Services
All your database are belong to us - Koop, Cloudant, Feature ServicesAll your database are belong to us - Koop, Cloudant, Feature Services
All your database are belong to us - Koop, Cloudant, Feature Services
Raj Singh
 
D'Onofrio, Claudio: ICOS Data at Your Fingertips
D'Onofrio, Claudio: ICOS Data at Your FingertipsD'Onofrio, Claudio: ICOS Data at Your Fingertips
D'Onofrio, Claudio: ICOS Data at Your Fingertips
Integrated Carbon Observation System (ICOS)
 
The Virtual Repository
The Virtual RepositoryThe Virtual Repository
The Virtual Repository
Fabio Simeoni
 

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

How to scale above clouds limits - Radu Vunvulea
How to scale above clouds limits - Radu VunvuleaHow to scale above clouds limits - Radu Vunvulea
How to scale above clouds limits - Radu Vunvulea
 
ICS INtegration with Node-RED and Open Source
ICS INtegration with Node-RED and Open SourceICS INtegration with Node-RED and Open Source
ICS INtegration with Node-RED and Open Source
 
Social Connections 14 - ICS Integration with Node-RED and Open Source
Social Connections 14 - ICS Integration with Node-RED and Open SourceSocial Connections 14 - ICS Integration with Node-RED and Open Source
Social Connections 14 - ICS Integration with Node-RED and Open Source
 
Zero to the Cloud with @NetflixOSS
Zero to the Cloud with @NetflixOSSZero to the Cloud with @NetflixOSS
Zero to the Cloud with @NetflixOSS
 
KubeSecOps
KubeSecOpsKubeSecOps
KubeSecOps
 
Common vulnerabilities & exposures (cve) in docker containers- 2018 alldaydevops
Common vulnerabilities & exposures (cve) in docker containers- 2018 alldaydevopsCommon vulnerabilities & exposures (cve) in docker containers- 2018 alldaydevops
Common vulnerabilities & exposures (cve) in docker containers- 2018 alldaydevops
 
Introducing Pico - A Deep Learning Platform using Docker & IoT - Sangam Biradar
Introducing Pico - A Deep Learning Platform using Docker & IoT - Sangam BiradarIntroducing Pico - A Deep Learning Platform using Docker & IoT - Sangam Biradar
Introducing Pico - A Deep Learning Platform using Docker & IoT - Sangam Biradar
 
Social connections14: Super charge your API’s with Reactive streams
Social connections14: Super charge your API’s with Reactive streamsSocial connections14: Super charge your API’s with Reactive streams
Social connections14: Super charge your API’s with Reactive streams
 
Data Visualization: Introduction to Shiny Web Applications
Data Visualization: Introduction to Shiny Web ApplicationsData Visualization: Introduction to Shiny Web Applications
Data Visualization: Introduction to Shiny Web Applications
 
Attacking and defending GraphQL applications: a hands-on approach
 Attacking and defending GraphQL applications: a hands-on approach Attacking and defending GraphQL applications: a hands-on approach
Attacking and defending GraphQL applications: a hands-on approach
 
apidays LIVE Hong Kong 2021 - Event-driven APIs & Schema governance for Apach...
apidays LIVE Hong Kong 2021 - Event-driven APIs & Schema governance for Apach...apidays LIVE Hong Kong 2021 - Event-driven APIs & Schema governance for Apach...
apidays LIVE Hong Kong 2021 - Event-driven APIs & Schema governance for Apach...
 
Mining public datasets using opensource tools: Zeppelin, Spark and Juju
Mining public datasets using opensource tools: Zeppelin, Spark and JujuMining public datasets using opensource tools: Zeppelin, Spark and Juju
Mining public datasets using opensource tools: Zeppelin, Spark and Juju
 
AFNetworking
AFNetworking AFNetworking
AFNetworking
 
DevSecCon London 2018: Enabling shift-left for 12k banking developers from sc...
DevSecCon London 2018: Enabling shift-left for 12k banking developers from sc...DevSecCon London 2018: Enabling shift-left for 12k banking developers from sc...
DevSecCon London 2018: Enabling shift-left for 12k banking developers from sc...
 
Welcome Icinga Camp San Francisco 2014
Welcome Icinga Camp San Francisco 2014Welcome Icinga Camp San Francisco 2014
Welcome Icinga Camp San Francisco 2014
 
You got database in my cloud!
You got database  in my cloud!You got database  in my cloud!
You got database in my cloud!
 
SoundCloud API Do:s and Don't:s
SoundCloud API Do:s and Don't:sSoundCloud API Do:s and Don't:s
SoundCloud API Do:s and Don't:s
 
All your database are belong to us - Koop, Cloudant, Feature Services
All your database are belong to us - Koop, Cloudant, Feature ServicesAll your database are belong to us - Koop, Cloudant, Feature Services
All your database are belong to us - Koop, Cloudant, Feature Services
 
D'Onofrio, Claudio: ICOS Data at Your Fingertips
D'Onofrio, Claudio: ICOS Data at Your FingertipsD'Onofrio, Claudio: ICOS Data at Your Fingertips
D'Onofrio, Claudio: ICOS Data at Your Fingertips
 
The Virtual Repository
The Virtual RepositoryThe Virtual Repository
The Virtual Repository
 

More from Hristo Iliev

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

More from Hristo Iliev (15)

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

Recently uploaded

J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...
J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...
J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...
Bert Jan Schrijver
 
Modelling Up - DDDEurope 2024 - Amsterdam
Modelling Up - DDDEurope 2024 - AmsterdamModelling Up - DDDEurope 2024 - Amsterdam
Modelling Up - DDDEurope 2024 - Amsterdam
Alberto Brandolini
 
Preparing Non - Technical Founders for Engaging a Tech Agency
Preparing Non - Technical Founders for Engaging  a  Tech AgencyPreparing Non - Technical Founders for Engaging  a  Tech Agency
Preparing Non - Technical Founders for Engaging a Tech Agency
ISH Technologies
 
UI5con 2024 - Bring Your Own Design System
UI5con 2024 - Bring Your Own Design SystemUI5con 2024 - Bring Your Own Design System
UI5con 2024 - Bring Your Own Design System
Peter Muessig
 
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling ExtensionsUI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
Peter Muessig
 
Fundamentals of Programming and Language Processors
Fundamentals of Programming and Language ProcessorsFundamentals of Programming and Language Processors
Fundamentals of Programming and Language Processors
Rakesh Kumar R
 
一比一原版(USF毕业证)旧金山大学毕业证如何办理
一比一原版(USF毕业证)旧金山大学毕业证如何办理一比一原版(USF毕业证)旧金山大学毕业证如何办理
一比一原版(USF毕业证)旧金山大学毕业证如何办理
dakas1
 
E-commerce Development Services- Hornet Dynamics
E-commerce Development Services- Hornet DynamicsE-commerce Development Services- Hornet Dynamics
E-commerce Development Services- Hornet Dynamics
Hornet Dynamics
 
The Key to Digital Success_ A Comprehensive Guide to Continuous Testing Integ...
The Key to Digital Success_ A Comprehensive Guide to Continuous Testing Integ...The Key to Digital Success_ A Comprehensive Guide to Continuous Testing Integ...
The Key to Digital Success_ A Comprehensive Guide to Continuous Testing Integ...
kalichargn70th171
 
Using Query Store in Azure PostgreSQL to Understand Query Performance
Using Query Store in Azure PostgreSQL to Understand Query PerformanceUsing Query Store in Azure PostgreSQL to Understand Query Performance
Using Query Store in Azure PostgreSQL to Understand Query Performance
Grant Fritchey
 
All you need to know about Spring Boot and GraalVM
All you need to know about Spring Boot and GraalVMAll you need to know about Spring Boot and GraalVM
All you need to know about Spring Boot and GraalVM
Alina Yurenko
 
UI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
UI5con 2024 - Keynote: Latest News about UI5 and it’s EcosystemUI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
UI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
Peter Muessig
 
SQL Accounting Software Brochure Malaysia
SQL Accounting Software Brochure MalaysiaSQL Accounting Software Brochure Malaysia
SQL Accounting Software Brochure Malaysia
GohKiangHock
 
Hand Rolled Applicative User Validation Code Kata
Hand Rolled Applicative User ValidationCode KataHand Rolled Applicative User ValidationCode Kata
Hand Rolled Applicative User Validation Code Kata
Philip Schwarz
 
Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)
Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)
Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)
safelyiotech
 
Oracle 23c New Features For DBAs and Developers.pptx
Oracle 23c New Features For DBAs and Developers.pptxOracle 23c New Features For DBAs and Developers.pptx
Oracle 23c New Features For DBAs and Developers.pptx
Remote DBA Services
 
GreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-JurisicGreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-Jurisic
Green Software Development
 
WWDC 2024 Keynote Review: For CocoaCoders Austin
WWDC 2024 Keynote Review: For CocoaCoders AustinWWDC 2024 Keynote Review: For CocoaCoders Austin
WWDC 2024 Keynote Review: For CocoaCoders Austin
Patrick Weigel
 
Oracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptxOracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptx
Remote DBA Services
 
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdfTop Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
VALiNTRY360
 

Recently uploaded (20)

J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...
J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...
J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...
 
Modelling Up - DDDEurope 2024 - Amsterdam
Modelling Up - DDDEurope 2024 - AmsterdamModelling Up - DDDEurope 2024 - Amsterdam
Modelling Up - DDDEurope 2024 - Amsterdam
 
Preparing Non - Technical Founders for Engaging a Tech Agency
Preparing Non - Technical Founders for Engaging  a  Tech AgencyPreparing Non - Technical Founders for Engaging  a  Tech Agency
Preparing Non - Technical Founders for Engaging a Tech Agency
 
UI5con 2024 - Bring Your Own Design System
UI5con 2024 - Bring Your Own Design SystemUI5con 2024 - Bring Your Own Design System
UI5con 2024 - Bring Your Own Design System
 
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling ExtensionsUI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
 
Fundamentals of Programming and Language Processors
Fundamentals of Programming and Language ProcessorsFundamentals of Programming and Language Processors
Fundamentals of Programming and Language Processors
 
一比一原版(USF毕业证)旧金山大学毕业证如何办理
一比一原版(USF毕业证)旧金山大学毕业证如何办理一比一原版(USF毕业证)旧金山大学毕业证如何办理
一比一原版(USF毕业证)旧金山大学毕业证如何办理
 
E-commerce Development Services- Hornet Dynamics
E-commerce Development Services- Hornet DynamicsE-commerce Development Services- Hornet Dynamics
E-commerce Development Services- Hornet Dynamics
 
The Key to Digital Success_ A Comprehensive Guide to Continuous Testing Integ...
The Key to Digital Success_ A Comprehensive Guide to Continuous Testing Integ...The Key to Digital Success_ A Comprehensive Guide to Continuous Testing Integ...
The Key to Digital Success_ A Comprehensive Guide to Continuous Testing Integ...
 
Using Query Store in Azure PostgreSQL to Understand Query Performance
Using Query Store in Azure PostgreSQL to Understand Query PerformanceUsing Query Store in Azure PostgreSQL to Understand Query Performance
Using Query Store in Azure PostgreSQL to Understand Query Performance
 
All you need to know about Spring Boot and GraalVM
All you need to know about Spring Boot and GraalVMAll you need to know about Spring Boot and GraalVM
All you need to know about Spring Boot and GraalVM
 
UI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
UI5con 2024 - Keynote: Latest News about UI5 and it’s EcosystemUI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
UI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
 
SQL Accounting Software Brochure Malaysia
SQL Accounting Software Brochure MalaysiaSQL Accounting Software Brochure Malaysia
SQL Accounting Software Brochure Malaysia
 
Hand Rolled Applicative User Validation Code Kata
Hand Rolled Applicative User ValidationCode KataHand Rolled Applicative User ValidationCode Kata
Hand Rolled Applicative User Validation Code Kata
 
Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)
Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)
Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)
 
Oracle 23c New Features For DBAs and Developers.pptx
Oracle 23c New Features For DBAs and Developers.pptxOracle 23c New Features For DBAs and Developers.pptx
Oracle 23c New Features For DBAs and Developers.pptx
 
GreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-JurisicGreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-Jurisic
 
WWDC 2024 Keynote Review: For CocoaCoders Austin
WWDC 2024 Keynote Review: For CocoaCoders AustinWWDC 2024 Keynote Review: For CocoaCoders Austin
WWDC 2024 Keynote Review: For CocoaCoders Austin
 
Oracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptxOracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptx
 
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdfTop Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
 

Don’t talk to strangers: Test isolation with containers

Editor's Notes

  1. 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
  2. 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
  3. GEORGI All photos except our own images are Creative Commons license
  4. 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
  5. 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
  6. 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
  7. 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
  8. 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 …
  9. GEORGI We’ve seen these 3 problems. Let’s now see how all these problems can be addressed …
  10. 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…
  11. 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
  12. HRISTO
  13. HRISTO
  14. HRISTO
  15. HRISTO
  16. HRISTO
  17. 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.
  18. GEORGI
  19. GEORGI
  20. GEORGI
  21. GEORGI
  22. GEORGI
  23. GEORGI
  24. GEORGI
  25. GEORGI
  26. 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
  27. 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
  28. 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
  29. 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.
  30. 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.
  31. 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 …
  32. GEORGI Pipelines can help us reach from build through testing to the final packaging and release of our product
  33. 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 ...
  34. GEORGI CI that understands pipelines Concourse was build by the CF community out of necessity – after experimenting with Jenkins and GoCD
  35. HRISTO
  36. HRISTO
  37. 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
  38. 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
  39. 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.
  40. 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