SlideShare a Scribd company logo
1 of 44
Integration Testing for Salt
States Using AWS EC2
Container Service
Steven Braverman
DevOps Engineer at D&B
Graduated from UCLA with B.S. Cognitive Science
Developer Background
Love to surf
STEVEN BRAVERMAN
• pd2jira_python
• SIT
Created: Contributed to:
• SaltStack
• Troposphere
• Placebo
OPEN SOURCE PROJECTS
~175 year old company that prides on its capability to
nurture invaluable relationships in business by
uncovering truth and meaning from data.
DEVOPS
It is important to test applying states to roles
efficiently, quickly, and securely
prior to applying them to production servers.
TESTING SALT STATES
MASTER
SALT MASTER/MINION SETUP
MINIONS
MASTER
SALT MASTER/MINION SETUP
MINIONS
BANANAGRAPESPEARWATERMELONAPPLE
MASTER
SALT MASTER/MINION SETUP
MINIONS
BANANAGRAPESPEARWATERMELONAPPLE
MASTER
SALT MASTER/MINION SETUP
MINIONS
BANANAGRAPESPEARWATERMELONAPPLE
MASTER
SALT MASTER/MINION SETUP
SALT MASTER/MINION SETUP
MASTER
MINIONS
BANANAGRAPESPEARWATERMELONAPPLE
MINIONS
MASTER
SALT MASTER/MINION SETUP
MASTER
PHP JENKINS NODES
SALT MASTER/MINION SETUP
JAVA DATABASE
MASTER
PHP JENKINS NODES
SALT MASTER/MINION SETUP
JAVA DATABASE
MASTER
PHP JAVA DATABASE JENKINS NODES
SALT MASTER/MINION SETUP
MASTER
PHP JAVA DATABASE JENKINS NODES
SALT MASTER/MINION SETUP
OPENVZ
VIRTUAL MACHINES
SALT MASTER/MINION SETUP
OPENVZ
VIRTUAL MACHINES
Pull-Request
Pull-request
builder
Results
PROBLEMS
• Linear integration testing is slow
• Have to maintain legacy virtual machines
PROBLEMS
• Linear integration testing is slow
• Have to maintain legacy virtual machines
No generic ways to run integration tests for
SaltStack exist
Applying Salt states to a series of Docker images will:
HYPOTHESES
• Speed up the time it takes to apply state changes to roles
• Allow for concurrent builds
• Be easier to maintain
SALT INTEGRATION TESTING
MASTER
PHP JAVA DATABASE JENKINS NODES
SIT Flow
ASG
JENKINS NODES
SIT Flow
ASG
1. Create a pull-request
2. Pull salt repository and run unit tests
3. “Initiate” Jenkins node to be a Master
4. Launch Integration Test
5. “Teardown” node back to a Minion
6. Rinse and Repeat
INITIATION AND TEARDOWN
• Pull down your Salt repo into the workspace
• Run lint tests
• Run unit tests/coverage
Run SIT Teardown SITInitiate SITPre-SIT Tasks
INITIATION AND TEARDOWN
• SED to configure Jenkins node master config
• Start Salt-Master service
• Start Redis service
• Install SIT requirements
Run SITPre-SIT Tasks Initiate SIT Teardown SIT
INITIATION AND TEARDOWN
Pre-SIT Tasks Run SIT Teardown SITInitiate SIT
1. SIT requests AutoScaling Group to provision a new instance
2. Instance provisions & SIT discovers it
3. ASG instance gets registered into ECS cluster
4. ECS Tasks begin (runs Docker container); states are applied to the minions
5. Tasks return applied states’ results to the Jenkins node
6. When all tasks have stopped, ASG instance gets terminated
7. Results are analyzed
1. SIT requests AutoScaling Group to provision a new instance
2. Instance provisions & SIT discovers it
3. ASG instance gets registered into ECS cluster
4. ECS Tasks begin (runs Docker container); states are applied to the minions
5. Tasks return applied states’ results to the Jenkins node
6. When all tasks have stopped, ASG instance gets terminated
7. Results are analyzed
INTEGRATION TEST
ASGJENKINS NODE
Run SIT
1. SIT requests AutoScaling Group to provision a new instance
2. Instance provisions & SIT discovers it
3. ASG instance gets registered into ECS cluster
4. ECS Tasks begin (runs Docker container); states are applied to the
minions
5. Tasks return applied states’ results to the Jenkins node
6. When all tasks have stopped, ASG instance gets terminated
7. Results are analyzed
INTEGRATION TEST
ASGJENKINS NODE ASG INSTANCE
Run SIT
1. SIT requests AutoScaling Group to provision a new instance
2. Instance provisions & SIT discovers it
3. ASG instance gets registered into ECS cluster
4. ECS Tasks begin (runs Docker container); states are applied to the
minions
5. Tasks return applied states’ results to the Jenkins node
6. When all tasks have stopped, ASG instance gets terminated
7. Results are analyzed
INTEGRATION TEST
Run SIT
JENKINS NODE
ECS CLUSTER
1. SIT requests AutoScaling Group to provision a new instance
2. Instance provisions & SIT discovers it
3. ASG instance gets registered into ECS cluster
4. ECS Tasks begin (runs Docker container); states are applied to the minions
5. Tasks return applied states’ results to the Jenkins node
6. When all tasks have stopped, ASG instance gets terminated
7. Results are analyzed
INTEGRATION TEST
Run SIT
JENKINS NODE
ECS CLUSTER
1. SIT requests AutoScaling Group to provision a new instance
2. Instance provisions & SIT discovers it
3. ASG instance gets registered into ECS cluster
4. ECS Tasks begin (runs Docker container); states are applied to the
minions
5. Tasks return applied states’ results to the Jenkins node
6. When all tasks have stopped, ASG instance gets terminated
7. Results are analyzed
INTEGRATION TEST
JENKINS NODE
Run SIT
ECS CLUSTER
1. SIT requests AutoScaling Group to provision a new instance
2. Instance provisions & SIT discovers it
3. ASG instance gets registered into ECS cluster
4. ECS Tasks begin (runs Docker container); states are applied to the
minions
5. Tasks return applied states’ results to the Jenkins node
6. When all tasks have stopped, ASG instance gets terminated
7. Results are analyzed
INTEGRATION TEST
JENKINS NODE
Run SIT
ECS CLUSTER
1. SIT requests AutoScaling Group to provision a new instance
2. Instance provisions & SIT discovers it
3. ASG instance gets registered into ECS cluster
4. ECS Tasks begin (runs Docker container); states are applied to the
minions
5. Tasks return applied states’ results to the Jenkins node
6. When all tasks have stopped, ASG instance gets terminated
7. Results are analyzed
INTEGRATION TEST
JENKINS NODE
Run SIT
INITIATION AND TEARDOWN
• SED to configure Jenkins node master back to easily editable state
• Flush redis of data
• Remove Salt-keys
• Stop redis service
• Stop Salt-master
Pre-SIT Tasks Teardown SITInitiate SIT Run SIT
VPC
Security Groups
EC2
AutoScaling Group
Launch Configuration
AWS INFRASTRUCTURE
Instance Profile
Policy
Role
ECS Cluster
CloudFormation
JENKINS NODES
Results
ASG
• Time saved drastically
• Maintenance
• Open-source generic SIT tool
DandB/Salt-Integration-Testing
Competitors
?
TOPIC
Body text
THANKS TO:
Jeff Stibel
Aaron Stibel
Konstantin Antselovich
DevOps Team
Creative Team
TOPIC
Body text
THANK YOU
(you may now stand)
Use the SaltConf16 event app to provide feedback
for this presentation.
(we’re all ears)
QUESTIONS AND FEEDBACK

More Related Content

What's hot

Creating SaltStack State data with Pyobjects
Creating SaltStack State data with PyobjectsCreating SaltStack State data with Pyobjects
Creating SaltStack State data with PyobjectsEvan Borgstrom
 
Deployment with capistrano
Deployment with capistranoDeployment with capistrano
Deployment with capistranosagar junnarkar
 
SaltConf 2015: Salt stack at web scale: Better, Stronger, Faster
SaltConf 2015: Salt stack at web scale: Better, Stronger, FasterSaltConf 2015: Salt stack at web scale: Better, Stronger, Faster
SaltConf 2015: Salt stack at web scale: Better, Stronger, FasterThomas Jackson
 
Running at Scale: Practical Performance Tuning with Puppet - PuppetConf 2013
Running at Scale: Practical Performance Tuning with Puppet - PuppetConf 2013Running at Scale: Practical Performance Tuning with Puppet - PuppetConf 2013
Running at Scale: Practical Performance Tuning with Puppet - PuppetConf 2013Puppet
 
Puppet in the Pipeline
Puppet in the PipelinePuppet in the Pipeline
Puppet in the PipelinePuppet
 
Serverspec and Sensu - Testing and Monitoring collide
Serverspec and Sensu - Testing and Monitoring collideServerspec and Sensu - Testing and Monitoring collide
Serverspec and Sensu - Testing and Monitoring collidem_richardson
 
Migrating the Online’s console with Docker
Migrating the Online’s console with DockerMigrating the Online’s console with Docker
Migrating the Online’s console with DockerScaleway
 
Writing Custom Saltstack Execution Modules
Writing Custom Saltstack Execution ModulesWriting Custom Saltstack Execution Modules
Writing Custom Saltstack Execution ModulesJulian Pacheco
 
How to Write Chef Cookbook
How to Write Chef CookbookHow to Write Chef Cookbook
How to Write Chef Cookbookdevopsjourney
 
SaltStack Configuration Management
SaltStack Configuration ManagementSaltStack Configuration Management
SaltStack Configuration ManagementNathan Sickler
 
Real-time Cloud Management with SaltStack
Real-time Cloud Management with SaltStackReal-time Cloud Management with SaltStack
Real-time Cloud Management with SaltStackSaltStack
 
Control your deployments with Capistrano
Control your deployments with CapistranoControl your deployments with Capistrano
Control your deployments with CapistranoRamazan K
 
Where is my scalable api?
Where is my scalable api?Where is my scalable api?
Where is my scalable api?Altoros
 
Configuration management and orchestration with Salt
Configuration management and orchestration with SaltConfiguration management and orchestration with Salt
Configuration management and orchestration with SaltAnirban Saha
 
Compliance as Code
Compliance as CodeCompliance as Code
Compliance as CodeMatt Ray
 
Writing Rust Command Line Applications
Writing Rust Command Line ApplicationsWriting Rust Command Line Applications
Writing Rust Command Line ApplicationsAll Things Open
 
SaltConf14 - Saurabh Surana, HP Cloud - Automating operations and support wit...
SaltConf14 - Saurabh Surana, HP Cloud - Automating operations and support wit...SaltConf14 - Saurabh Surana, HP Cloud - Automating operations and support wit...
SaltConf14 - Saurabh Surana, HP Cloud - Automating operations and support wit...SaltStack
 
Vagrant introduction for Developers
Vagrant introduction for DevelopersVagrant introduction for Developers
Vagrant introduction for DevelopersAntons Kranga
 

What's hot (20)

Creating SaltStack State data with Pyobjects
Creating SaltStack State data with PyobjectsCreating SaltStack State data with Pyobjects
Creating SaltStack State data with Pyobjects
 
Deployment with capistrano
Deployment with capistranoDeployment with capistrano
Deployment with capistrano
 
SaltConf 2015: Salt stack at web scale: Better, Stronger, Faster
SaltConf 2015: Salt stack at web scale: Better, Stronger, FasterSaltConf 2015: Salt stack at web scale: Better, Stronger, Faster
SaltConf 2015: Salt stack at web scale: Better, Stronger, Faster
 
Running at Scale: Practical Performance Tuning with Puppet - PuppetConf 2013
Running at Scale: Practical Performance Tuning with Puppet - PuppetConf 2013Running at Scale: Practical Performance Tuning with Puppet - PuppetConf 2013
Running at Scale: Practical Performance Tuning with Puppet - PuppetConf 2013
 
Puppet in the Pipeline
Puppet in the PipelinePuppet in the Pipeline
Puppet in the Pipeline
 
Serverspec and Sensu - Testing and Monitoring collide
Serverspec and Sensu - Testing and Monitoring collideServerspec and Sensu - Testing and Monitoring collide
Serverspec and Sensu - Testing and Monitoring collide
 
Migrating the Online’s console with Docker
Migrating the Online’s console with DockerMigrating the Online’s console with Docker
Migrating the Online’s console with Docker
 
Writing Custom Saltstack Execution Modules
Writing Custom Saltstack Execution ModulesWriting Custom Saltstack Execution Modules
Writing Custom Saltstack Execution Modules
 
How to Write Chef Cookbook
How to Write Chef CookbookHow to Write Chef Cookbook
How to Write Chef Cookbook
 
SaltStack Configuration Management
SaltStack Configuration ManagementSaltStack Configuration Management
SaltStack Configuration Management
 
Real-time Cloud Management with SaltStack
Real-time Cloud Management with SaltStackReal-time Cloud Management with SaltStack
Real-time Cloud Management with SaltStack
 
Control your deployments with Capistrano
Control your deployments with CapistranoControl your deployments with Capistrano
Control your deployments with Capistrano
 
Where is my scalable api?
Where is my scalable api?Where is my scalable api?
Where is my scalable api?
 
Configuration management and orchestration with Salt
Configuration management and orchestration with SaltConfiguration management and orchestration with Salt
Configuration management and orchestration with Salt
 
Compliance as Code
Compliance as CodeCompliance as Code
Compliance as Code
 
Writing Rust Command Line Applications
Writing Rust Command Line ApplicationsWriting Rust Command Line Applications
Writing Rust Command Line Applications
 
Capistrano - Deployment Tool
Capistrano - Deployment ToolCapistrano - Deployment Tool
Capistrano - Deployment Tool
 
SaltConf14 - Saurabh Surana, HP Cloud - Automating operations and support wit...
SaltConf14 - Saurabh Surana, HP Cloud - Automating operations and support wit...SaltConf14 - Saurabh Surana, HP Cloud - Automating operations and support wit...
SaltConf14 - Saurabh Surana, HP Cloud - Automating operations and support wit...
 
Vagrant introduction for Developers
Vagrant introduction for DevelopersVagrant introduction for Developers
Vagrant introduction for Developers
 
Where is my scalable API?
Where is my scalable API?Where is my scalable API?
Where is my scalable API?
 

Viewers also liked

Salt Air 19 - Intro to SaltStack RAET (reliable asyncronous event transport)
Salt Air 19 - Intro to SaltStack RAET (reliable asyncronous event transport)Salt Air 19 - Intro to SaltStack RAET (reliable asyncronous event transport)
Salt Air 19 - Intro to SaltStack RAET (reliable asyncronous event transport)SaltStack
 
SaltStack - An open source software story
SaltStack - An open source software storySaltStack - An open source software story
SaltStack - An open source software storySaltStack
 
Salt Stack pt. 2 : Configuration Management
Salt Stack pt. 2 : Configuration ManagementSalt Stack pt. 2 : Configuration Management
Salt Stack pt. 2 : Configuration ManagementUmberto Nicoletti
 
Getting started with salt stack
Getting started with salt stackGetting started with salt stack
Getting started with salt stackSuresh Paulraj
 
Introduction to SaltStack
Introduction to SaltStackIntroduction to SaltStack
Introduction to SaltStackAymen EL Amri
 
Understanding salt modular sub-systems and customization
Understanding salt   modular sub-systems and customizationUnderstanding salt   modular sub-systems and customization
Understanding salt modular sub-systems and customizationjasondenning
 
SaltConf14 - Yazz Atlas, HP Cloud - Installing OpenStack using SaltStack
SaltConf14 - Yazz Atlas, HP Cloud - Installing OpenStack using SaltStackSaltConf14 - Yazz Atlas, HP Cloud - Installing OpenStack using SaltStack
SaltConf14 - Yazz Atlas, HP Cloud - Installing OpenStack using SaltStackSaltStack
 
Spot Trading - A case study in continuous delivery for mission critical finan...
Spot Trading - A case study in continuous delivery for mission critical finan...Spot Trading - A case study in continuous delivery for mission critical finan...
Spot Trading - A case study in continuous delivery for mission critical finan...SaltStack
 
SaltConf14 - Craig Sebenik, LinkedIn - SaltStack at Web Scale
SaltConf14 - Craig Sebenik, LinkedIn - SaltStack at Web ScaleSaltConf14 - Craig Sebenik, LinkedIn - SaltStack at Web Scale
SaltConf14 - Craig Sebenik, LinkedIn - SaltStack at Web ScaleSaltStack
 
Automations using Saltstack - SREcon16 Europe
Automations using Saltstack - SREcon16 EuropeAutomations using Saltstack - SREcon16 Europe
Automations using Saltstack - SREcon16 Europeeffie mouzeli
 
Initialiser des conteneurs Docker à partir de configurations Salt construites...
Initialiser des conteneurs Docker à partir de configurations Salt construites...Initialiser des conteneurs Docker à partir de configurations Salt construites...
Initialiser des conteneurs Docker à partir de configurations Salt construites...Logilab
 
Utiliser salt pour tester son infrastructure sur open stack ou docker
Utiliser salt pour tester son infrastructure sur open stack ou dockerUtiliser salt pour tester son infrastructure sur open stack ou docker
Utiliser salt pour tester son infrastructure sur open stack ou dockerLogilab
 
SaltConf14 - Matthew Williams, Flowroute - Salt Virt for Linux contatiners an...
SaltConf14 - Matthew Williams, Flowroute - Salt Virt for Linux contatiners an...SaltConf14 - Matthew Williams, Flowroute - Salt Virt for Linux contatiners an...
SaltConf14 - Matthew Williams, Flowroute - Salt Virt for Linux contatiners an...SaltStack
 
Gestion des vulnérabilités dans le cas de Shellshock
Gestion des vulnérabilités dans le cas de ShellshockGestion des vulnérabilités dans le cas de Shellshock
Gestion des vulnérabilités dans le cas de ShellshockJohan Moreau
 
SaltStack For DevOps, Free Sample
SaltStack For DevOps, Free SampleSaltStack For DevOps, Free Sample
SaltStack For DevOps, Free SampleAymen EL Amri
 
OpenNebula and SaltStack - OpenNebulaConf 2013
OpenNebula and SaltStack - OpenNebulaConf 2013OpenNebula and SaltStack - OpenNebulaConf 2013
OpenNebula and SaltStack - OpenNebulaConf 2013databus.pro
 
Introduction to Systems Management with SaltStack
Introduction to Systems Management with SaltStackIntroduction to Systems Management with SaltStack
Introduction to Systems Management with SaltStackCraig Sebenik
 

Viewers also liked (20)

Salt Air 19 - Intro to SaltStack RAET (reliable asyncronous event transport)
Salt Air 19 - Intro to SaltStack RAET (reliable asyncronous event transport)Salt Air 19 - Intro to SaltStack RAET (reliable asyncronous event transport)
Salt Air 19 - Intro to SaltStack RAET (reliable asyncronous event transport)
 
SaltStack - An open source software story
SaltStack - An open source software storySaltStack - An open source software story
SaltStack - An open source software story
 
Salt Stack pt. 2 : Configuration Management
Salt Stack pt. 2 : Configuration ManagementSalt Stack pt. 2 : Configuration Management
Salt Stack pt. 2 : Configuration Management
 
Salt stack
Salt stackSalt stack
Salt stack
 
Getting started with salt stack
Getting started with salt stackGetting started with salt stack
Getting started with salt stack
 
Introduction to SaltStack
Introduction to SaltStackIntroduction to SaltStack
Introduction to SaltStack
 
Understanding salt modular sub-systems and customization
Understanding salt   modular sub-systems and customizationUnderstanding salt   modular sub-systems and customization
Understanding salt modular sub-systems and customization
 
SaltConf14 - Yazz Atlas, HP Cloud - Installing OpenStack using SaltStack
SaltConf14 - Yazz Atlas, HP Cloud - Installing OpenStack using SaltStackSaltConf14 - Yazz Atlas, HP Cloud - Installing OpenStack using SaltStack
SaltConf14 - Yazz Atlas, HP Cloud - Installing OpenStack using SaltStack
 
Spot Trading - A case study in continuous delivery for mission critical finan...
Spot Trading - A case study in continuous delivery for mission critical finan...Spot Trading - A case study in continuous delivery for mission critical finan...
Spot Trading - A case study in continuous delivery for mission critical finan...
 
SaltConf14 - Craig Sebenik, LinkedIn - SaltStack at Web Scale
SaltConf14 - Craig Sebenik, LinkedIn - SaltStack at Web ScaleSaltConf14 - Craig Sebenik, LinkedIn - SaltStack at Web Scale
SaltConf14 - Craig Sebenik, LinkedIn - SaltStack at Web Scale
 
Automations using Saltstack - SREcon16 Europe
Automations using Saltstack - SREcon16 EuropeAutomations using Saltstack - SREcon16 Europe
Automations using Saltstack - SREcon16 Europe
 
Initialiser des conteneurs Docker à partir de configurations Salt construites...
Initialiser des conteneurs Docker à partir de configurations Salt construites...Initialiser des conteneurs Docker à partir de configurations Salt construites...
Initialiser des conteneurs Docker à partir de configurations Salt construites...
 
Utiliser salt pour tester son infrastructure sur open stack ou docker
Utiliser salt pour tester son infrastructure sur open stack ou dockerUtiliser salt pour tester son infrastructure sur open stack ou docker
Utiliser salt pour tester son infrastructure sur open stack ou docker
 
SaltConf14 - Matthew Williams, Flowroute - Salt Virt for Linux contatiners an...
SaltConf14 - Matthew Williams, Flowroute - Salt Virt for Linux contatiners an...SaltConf14 - Matthew Williams, Flowroute - Salt Virt for Linux contatiners an...
SaltConf14 - Matthew Williams, Flowroute - Salt Virt for Linux contatiners an...
 
Gestion des vulnérabilités dans le cas de Shellshock
Gestion des vulnérabilités dans le cas de ShellshockGestion des vulnérabilités dans le cas de Shellshock
Gestion des vulnérabilités dans le cas de Shellshock
 
SaltStack For DevOps, Free Sample
SaltStack For DevOps, Free SampleSaltStack For DevOps, Free Sample
SaltStack For DevOps, Free Sample
 
Chapter 8 : SALTS
Chapter 8 : SALTSChapter 8 : SALTS
Chapter 8 : SALTS
 
Salt stack introduction
Salt stack introductionSalt stack introduction
Salt stack introduction
 
OpenNebula and SaltStack - OpenNebulaConf 2013
OpenNebula and SaltStack - OpenNebulaConf 2013OpenNebula and SaltStack - OpenNebulaConf 2013
OpenNebula and SaltStack - OpenNebulaConf 2013
 
Introduction to Systems Management with SaltStack
Introduction to Systems Management with SaltStackIntroduction to Systems Management with SaltStack
Introduction to Systems Management with SaltStack
 

Similar to Integration testing for salt states using aws ec2 container service

Jenkins log monitoring with elk stack
Jenkins log monitoring with elk stackJenkins log monitoring with elk stack
Jenkins log monitoring with elk stackSubhasis Roy
 
Spring Testing, Fight for the Context
Spring Testing, Fight for the ContextSpring Testing, Fight for the Context
Spring Testing, Fight for the ContextGlobalLogic Ukraine
 
[AWS Dev Day] 실습워크샵 | Amazon EKS 핸즈온 워크샵
 [AWS Dev Day] 실습워크샵 | Amazon EKS 핸즈온 워크샵 [AWS Dev Day] 실습워크샵 | Amazon EKS 핸즈온 워크샵
[AWS Dev Day] 실습워크샵 | Amazon EKS 핸즈온 워크샵Amazon Web Services Korea
 
Docker–Grid (A On demand and Scalable dockerized selenium grid architecture)
Docker–Grid (A On demand and Scalable dockerized selenium grid architecture)Docker–Grid (A On demand and Scalable dockerized selenium grid architecture)
Docker–Grid (A On demand and Scalable dockerized selenium grid architecture)STePINForum
 
Docker Cluster Management with ECS
Docker Cluster Management with ECSDocker Cluster Management with ECS
Docker Cluster Management with ECSMatt Callanan
 
Heavenly hell – automated tests at scale wojciech seliga
Heavenly hell – automated tests at scale   wojciech seligaHeavenly hell – automated tests at scale   wojciech seliga
Heavenly hell – automated tests at scale wojciech seligaAtlassian
 
Spark summit2014 techtalk - testing spark
Spark summit2014 techtalk - testing sparkSpark summit2014 techtalk - testing spark
Spark summit2014 techtalk - testing sparkAnu Shetty
 
GeeCON 2017 - TestContainers. Integration testing without the hassle
GeeCON 2017 - TestContainers. Integration testing without the hassleGeeCON 2017 - TestContainers. Integration testing without the hassle
GeeCON 2017 - TestContainers. Integration testing without the hassleAnton Arhipov
 
KubeCon EU 2016: Leveraging ephemeral namespaces in a CI/CD pipeline
KubeCon EU 2016: Leveraging ephemeral namespaces in a CI/CD pipelineKubeCon EU 2016: Leveraging ephemeral namespaces in a CI/CD pipeline
KubeCon EU 2016: Leveraging ephemeral namespaces in a CI/CD pipelineKubeAcademy
 
DataStax: Testing Cassandra Guarantees Under Diverse Failure Modes With Jepsen
DataStax: Testing Cassandra Guarantees Under Diverse Failure Modes With JepsenDataStax: Testing Cassandra Guarantees Under Diverse Failure Modes With Jepsen
DataStax: Testing Cassandra Guarantees Under Diverse Failure Modes With JepsenDataStax Academy
 
Testing Cassandra Guarantees under Diverse Failure Modes with Jepsen
Testing Cassandra Guarantees under Diverse Failure Modes with JepsenTesting Cassandra Guarantees under Diverse Failure Modes with Jepsen
Testing Cassandra Guarantees under Diverse Failure Modes with Jepsenjkni
 
Deep Dive on Microservices and Amazon ECS
Deep Dive on Microservices and Amazon ECSDeep Dive on Microservices and Amazon ECS
Deep Dive on Microservices and Amazon ECSAmazon Web Services
 
Zero to Sixty: AWS OpsWorks (DMG202) | AWS re:Invent 2013
Zero to Sixty: AWS OpsWorks (DMG202) | AWS re:Invent 2013Zero to Sixty: AWS OpsWorks (DMG202) | AWS re:Invent 2013
Zero to Sixty: AWS OpsWorks (DMG202) | AWS re:Invent 2013Amazon Web Services
 
Unit Testing Lightning Components with Jasmine
Unit Testing Lightning Components with JasmineUnit Testing Lightning Components with Jasmine
Unit Testing Lightning Components with JasmineKeir Bowden
 
Drools 6 deep dive
Drools 6 deep diveDrools 6 deep dive
Drools 6 deep diveMario Fusco
 
MySQL Replication Update - DEbconf 2020 presentation
MySQL Replication Update - DEbconf 2020 presentationMySQL Replication Update - DEbconf 2020 presentation
MySQL Replication Update - DEbconf 2020 presentationDave Stokes
 
Oracle real application clusters system tests with demo
Oracle real application clusters system tests with demoOracle real application clusters system tests with demo
Oracle real application clusters system tests with demoAjith Narayanan
 

Similar to Integration testing for salt states using aws ec2 container service (20)

Jenkins log monitoring with elk stack
Jenkins log monitoring with elk stackJenkins log monitoring with elk stack
Jenkins log monitoring with elk stack
 
Spring Testing, Fight for the Context
Spring Testing, Fight for the ContextSpring Testing, Fight for the Context
Spring Testing, Fight for the Context
 
[AWS Dev Day] 실습워크샵 | Amazon EKS 핸즈온 워크샵
 [AWS Dev Day] 실습워크샵 | Amazon EKS 핸즈온 워크샵 [AWS Dev Day] 실습워크샵 | Amazon EKS 핸즈온 워크샵
[AWS Dev Day] 실습워크샵 | Amazon EKS 핸즈온 워크샵
 
Docker–Grid (A On demand and Scalable dockerized selenium grid architecture)
Docker–Grid (A On demand and Scalable dockerized selenium grid architecture)Docker–Grid (A On demand and Scalable dockerized selenium grid architecture)
Docker–Grid (A On demand and Scalable dockerized selenium grid architecture)
 
Lookout-Cucumber-Chef
Lookout-Cucumber-ChefLookout-Cucumber-Chef
Lookout-Cucumber-Chef
 
Docker Cluster Management with ECS
Docker Cluster Management with ECSDocker Cluster Management with ECS
Docker Cluster Management with ECS
 
Heavenly hell – automated tests at scale wojciech seliga
Heavenly hell – automated tests at scale   wojciech seligaHeavenly hell – automated tests at scale   wojciech seliga
Heavenly hell – automated tests at scale wojciech seliga
 
Spark summit2014 techtalk - testing spark
Spark summit2014 techtalk - testing sparkSpark summit2014 techtalk - testing spark
Spark summit2014 techtalk - testing spark
 
GeeCON 2017 - TestContainers. Integration testing without the hassle
GeeCON 2017 - TestContainers. Integration testing without the hassleGeeCON 2017 - TestContainers. Integration testing without the hassle
GeeCON 2017 - TestContainers. Integration testing without the hassle
 
KubeCon EU 2016: Leveraging ephemeral namespaces in a CI/CD pipeline
KubeCon EU 2016: Leveraging ephemeral namespaces in a CI/CD pipelineKubeCon EU 2016: Leveraging ephemeral namespaces in a CI/CD pipeline
KubeCon EU 2016: Leveraging ephemeral namespaces in a CI/CD pipeline
 
Glassfish JEE Server Administration - Clustering
Glassfish JEE Server Administration - ClusteringGlassfish JEE Server Administration - Clustering
Glassfish JEE Server Administration - Clustering
 
DataStax: Testing Cassandra Guarantees Under Diverse Failure Modes With Jepsen
DataStax: Testing Cassandra Guarantees Under Diverse Failure Modes With JepsenDataStax: Testing Cassandra Guarantees Under Diverse Failure Modes With Jepsen
DataStax: Testing Cassandra Guarantees Under Diverse Failure Modes With Jepsen
 
Testing Cassandra Guarantees under Diverse Failure Modes with Jepsen
Testing Cassandra Guarantees under Diverse Failure Modes with JepsenTesting Cassandra Guarantees under Diverse Failure Modes with Jepsen
Testing Cassandra Guarantees under Diverse Failure Modes with Jepsen
 
Deep Dive on Microservices and Amazon ECS
Deep Dive on Microservices and Amazon ECSDeep Dive on Microservices and Amazon ECS
Deep Dive on Microservices and Amazon ECS
 
Zero to Sixty: AWS OpsWorks (DMG202) | AWS re:Invent 2013
Zero to Sixty: AWS OpsWorks (DMG202) | AWS re:Invent 2013Zero to Sixty: AWS OpsWorks (DMG202) | AWS re:Invent 2013
Zero to Sixty: AWS OpsWorks (DMG202) | AWS re:Invent 2013
 
Unit Testing Lightning Components with Jasmine
Unit Testing Lightning Components with JasmineUnit Testing Lightning Components with Jasmine
Unit Testing Lightning Components with Jasmine
 
Drools 6 deep dive
Drools 6 deep diveDrools 6 deep dive
Drools 6 deep dive
 
MySQL Replication Update - DEbconf 2020 presentation
MySQL Replication Update - DEbconf 2020 presentationMySQL Replication Update - DEbconf 2020 presentation
MySQL Replication Update - DEbconf 2020 presentation
 
Advanced Container Scheduling
Advanced Container SchedulingAdvanced Container Scheduling
Advanced Container Scheduling
 
Oracle real application clusters system tests with demo
Oracle real application clusters system tests with demoOracle real application clusters system tests with demo
Oracle real application clusters system tests with demo
 

More from SaltStack

Arnold Bechtoldt, Inovex GmbH Linux systems engineer - Configuration Manageme...
Arnold Bechtoldt, Inovex GmbH Linux systems engineer - Configuration Manageme...Arnold Bechtoldt, Inovex GmbH Linux systems engineer - Configuration Manageme...
Arnold Bechtoldt, Inovex GmbH Linux systems engineer - Configuration Manageme...SaltStack
 
Configuration Management - Finding the tool to fit your needs
Configuration Management - Finding the tool to fit your needsConfiguration Management - Finding the tool to fit your needs
Configuration Management - Finding the tool to fit your needsSaltStack
 
SaltConf14 - Ben Cane - Using SaltStack in High Availability Environments
SaltConf14 - Ben Cane - Using SaltStack in High Availability EnvironmentsSaltConf14 - Ben Cane - Using SaltStack in High Availability Environments
SaltConf14 - Ben Cane - Using SaltStack in High Availability EnvironmentsSaltStack
 
SaltConf14 - Oz Akan, Rackspace - Deploying OpenStack Marconi with SaltStack
SaltConf14 - Oz Akan, Rackspace - Deploying OpenStack Marconi with SaltStackSaltConf14 - Oz Akan, Rackspace - Deploying OpenStack Marconi with SaltStack
SaltConf14 - Oz Akan, Rackspace - Deploying OpenStack Marconi with SaltStackSaltStack
 
SaltConf14 - Anita Kuno, HP & OpenStack - Using SaltStack for event-driven or...
SaltConf14 - Anita Kuno, HP & OpenStack - Using SaltStack for event-driven or...SaltConf14 - Anita Kuno, HP & OpenStack - Using SaltStack for event-driven or...
SaltConf14 - Anita Kuno, HP & OpenStack - Using SaltStack for event-driven or...SaltStack
 
SaltConf14 - Ryan Lane, Wikimedia - Immediate consistency with Trebuchet Depl...
SaltConf14 - Ryan Lane, Wikimedia - Immediate consistency with Trebuchet Depl...SaltConf14 - Ryan Lane, Wikimedia - Immediate consistency with Trebuchet Depl...
SaltConf14 - Ryan Lane, Wikimedia - Immediate consistency with Trebuchet Depl...SaltStack
 
SaltConf14 - Forrest Alvarez, Choice Hotels - Salt Formulas and States
SaltConf14 - Forrest Alvarez, Choice Hotels - Salt Formulas and StatesSaltConf14 - Forrest Alvarez, Choice Hotels - Salt Formulas and States
SaltConf14 - Forrest Alvarez, Choice Hotels - Salt Formulas and StatesSaltStack
 
SaltConf14 - Brendan Burns, Google - Management at Google Scale
SaltConf14 - Brendan Burns, Google - Management at Google ScaleSaltConf14 - Brendan Burns, Google - Management at Google Scale
SaltConf14 - Brendan Burns, Google - Management at Google ScaleSaltStack
 
SaltConf14 - Justin Carmony, Deseret Digital Media - Teaching Devs About DevOps
SaltConf14 - Justin Carmony, Deseret Digital Media - Teaching Devs About DevOpsSaltConf14 - Justin Carmony, Deseret Digital Media - Teaching Devs About DevOps
SaltConf14 - Justin Carmony, Deseret Digital Media - Teaching Devs About DevOpsSaltStack
 
SaltConf14 - Thomas Jackson, LinkedIn - Safety with Power Tools
SaltConf14 - Thomas Jackson, LinkedIn - Safety with Power ToolsSaltConf14 - Thomas Jackson, LinkedIn - Safety with Power Tools
SaltConf14 - Thomas Jackson, LinkedIn - Safety with Power ToolsSaltStack
 
SaltConf14 - Eric johnson, Google - Orchestrating Google Compute Engine with ...
SaltConf14 - Eric johnson, Google - Orchestrating Google Compute Engine with ...SaltConf14 - Eric johnson, Google - Orchestrating Google Compute Engine with ...
SaltConf14 - Eric johnson, Google - Orchestrating Google Compute Engine with ...SaltStack
 
Adding to your Python Armory - OpenWest 2013
Adding to your Python Armory - OpenWest 2013Adding to your Python Armory - OpenWest 2013
Adding to your Python Armory - OpenWest 2013SaltStack
 
Real-time Infrastructure Management with SaltStack - OpenWest 2013
Real-time Infrastructure Management with SaltStack - OpenWest 2013Real-time Infrastructure Management with SaltStack - OpenWest 2013
Real-time Infrastructure Management with SaltStack - OpenWest 2013SaltStack
 
Writing SaltStack Modules - OpenWest 2013
Writing SaltStack Modules - OpenWest 2013Writing SaltStack Modules - OpenWest 2013
Writing SaltStack Modules - OpenWest 2013SaltStack
 

More from SaltStack (14)

Arnold Bechtoldt, Inovex GmbH Linux systems engineer - Configuration Manageme...
Arnold Bechtoldt, Inovex GmbH Linux systems engineer - Configuration Manageme...Arnold Bechtoldt, Inovex GmbH Linux systems engineer - Configuration Manageme...
Arnold Bechtoldt, Inovex GmbH Linux systems engineer - Configuration Manageme...
 
Configuration Management - Finding the tool to fit your needs
Configuration Management - Finding the tool to fit your needsConfiguration Management - Finding the tool to fit your needs
Configuration Management - Finding the tool to fit your needs
 
SaltConf14 - Ben Cane - Using SaltStack in High Availability Environments
SaltConf14 - Ben Cane - Using SaltStack in High Availability EnvironmentsSaltConf14 - Ben Cane - Using SaltStack in High Availability Environments
SaltConf14 - Ben Cane - Using SaltStack in High Availability Environments
 
SaltConf14 - Oz Akan, Rackspace - Deploying OpenStack Marconi with SaltStack
SaltConf14 - Oz Akan, Rackspace - Deploying OpenStack Marconi with SaltStackSaltConf14 - Oz Akan, Rackspace - Deploying OpenStack Marconi with SaltStack
SaltConf14 - Oz Akan, Rackspace - Deploying OpenStack Marconi with SaltStack
 
SaltConf14 - Anita Kuno, HP & OpenStack - Using SaltStack for event-driven or...
SaltConf14 - Anita Kuno, HP & OpenStack - Using SaltStack for event-driven or...SaltConf14 - Anita Kuno, HP & OpenStack - Using SaltStack for event-driven or...
SaltConf14 - Anita Kuno, HP & OpenStack - Using SaltStack for event-driven or...
 
SaltConf14 - Ryan Lane, Wikimedia - Immediate consistency with Trebuchet Depl...
SaltConf14 - Ryan Lane, Wikimedia - Immediate consistency with Trebuchet Depl...SaltConf14 - Ryan Lane, Wikimedia - Immediate consistency with Trebuchet Depl...
SaltConf14 - Ryan Lane, Wikimedia - Immediate consistency with Trebuchet Depl...
 
SaltConf14 - Forrest Alvarez, Choice Hotels - Salt Formulas and States
SaltConf14 - Forrest Alvarez, Choice Hotels - Salt Formulas and StatesSaltConf14 - Forrest Alvarez, Choice Hotels - Salt Formulas and States
SaltConf14 - Forrest Alvarez, Choice Hotels - Salt Formulas and States
 
SaltConf14 - Brendan Burns, Google - Management at Google Scale
SaltConf14 - Brendan Burns, Google - Management at Google ScaleSaltConf14 - Brendan Burns, Google - Management at Google Scale
SaltConf14 - Brendan Burns, Google - Management at Google Scale
 
SaltConf14 - Justin Carmony, Deseret Digital Media - Teaching Devs About DevOps
SaltConf14 - Justin Carmony, Deseret Digital Media - Teaching Devs About DevOpsSaltConf14 - Justin Carmony, Deseret Digital Media - Teaching Devs About DevOps
SaltConf14 - Justin Carmony, Deseret Digital Media - Teaching Devs About DevOps
 
SaltConf14 - Thomas Jackson, LinkedIn - Safety with Power Tools
SaltConf14 - Thomas Jackson, LinkedIn - Safety with Power ToolsSaltConf14 - Thomas Jackson, LinkedIn - Safety with Power Tools
SaltConf14 - Thomas Jackson, LinkedIn - Safety with Power Tools
 
SaltConf14 - Eric johnson, Google - Orchestrating Google Compute Engine with ...
SaltConf14 - Eric johnson, Google - Orchestrating Google Compute Engine with ...SaltConf14 - Eric johnson, Google - Orchestrating Google Compute Engine with ...
SaltConf14 - Eric johnson, Google - Orchestrating Google Compute Engine with ...
 
Adding to your Python Armory - OpenWest 2013
Adding to your Python Armory - OpenWest 2013Adding to your Python Armory - OpenWest 2013
Adding to your Python Armory - OpenWest 2013
 
Real-time Infrastructure Management with SaltStack - OpenWest 2013
Real-time Infrastructure Management with SaltStack - OpenWest 2013Real-time Infrastructure Management with SaltStack - OpenWest 2013
Real-time Infrastructure Management with SaltStack - OpenWest 2013
 
Writing SaltStack Modules - OpenWest 2013
Writing SaltStack Modules - OpenWest 2013Writing SaltStack Modules - OpenWest 2013
Writing SaltStack Modules - OpenWest 2013
 

Recently uploaded

BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Andreas Granig
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWave PLM
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideChristina Lin
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Velvetech LLC
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceBrainSell Technologies
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureDinusha Kumarasiri
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样umasea
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...OnePlan Solutions
 
What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....kzayra69
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxTier1 app
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)jennyeacort
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...Christina Lin
 
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odishasmiwainfosol
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based projectAnoyGreter
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtimeandrehoraa
 
What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...Technogeeks
 
Xen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfXen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfStefano Stabellini
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 

Recently uploaded (20)

BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need It
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. Salesforce
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with Azure
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
 
What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
 
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based project
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtime
 
What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...
 
Xen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfXen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdf
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 

Integration testing for salt states using aws ec2 container service

  • 1. Integration Testing for Salt States Using AWS EC2 Container Service Steven Braverman
  • 2. DevOps Engineer at D&B Graduated from UCLA with B.S. Cognitive Science Developer Background Love to surf STEVEN BRAVERMAN
  • 3. • pd2jira_python • SIT Created: Contributed to: • SaltStack • Troposphere • Placebo OPEN SOURCE PROJECTS
  • 4. ~175 year old company that prides on its capability to nurture invaluable relationships in business by uncovering truth and meaning from data.
  • 6. It is important to test applying states to roles efficiently, quickly, and securely prior to applying them to production servers. TESTING SALT STATES
  • 14. MASTER PHP JENKINS NODES SALT MASTER/MINION SETUP JAVA DATABASE
  • 15. MASTER PHP JENKINS NODES SALT MASTER/MINION SETUP JAVA DATABASE
  • 16. MASTER PHP JAVA DATABASE JENKINS NODES SALT MASTER/MINION SETUP
  • 17. MASTER PHP JAVA DATABASE JENKINS NODES SALT MASTER/MINION SETUP OPENVZ VIRTUAL MACHINES
  • 18. SALT MASTER/MINION SETUP OPENVZ VIRTUAL MACHINES Pull-Request Pull-request builder Results
  • 19. PROBLEMS • Linear integration testing is slow • Have to maintain legacy virtual machines
  • 20. PROBLEMS • Linear integration testing is slow • Have to maintain legacy virtual machines No generic ways to run integration tests for SaltStack exist
  • 21.
  • 22. Applying Salt states to a series of Docker images will: HYPOTHESES • Speed up the time it takes to apply state changes to roles • Allow for concurrent builds • Be easier to maintain
  • 23.
  • 25. MASTER PHP JAVA DATABASE JENKINS NODES SIT Flow ASG
  • 26. JENKINS NODES SIT Flow ASG 1. Create a pull-request 2. Pull salt repository and run unit tests 3. “Initiate” Jenkins node to be a Master 4. Launch Integration Test 5. “Teardown” node back to a Minion 6. Rinse and Repeat
  • 27.
  • 28. INITIATION AND TEARDOWN • Pull down your Salt repo into the workspace • Run lint tests • Run unit tests/coverage Run SIT Teardown SITInitiate SITPre-SIT Tasks
  • 29. INITIATION AND TEARDOWN • SED to configure Jenkins node master config • Start Salt-Master service • Start Redis service • Install SIT requirements Run SITPre-SIT Tasks Initiate SIT Teardown SIT
  • 30. INITIATION AND TEARDOWN Pre-SIT Tasks Run SIT Teardown SITInitiate SIT 1. SIT requests AutoScaling Group to provision a new instance 2. Instance provisions & SIT discovers it 3. ASG instance gets registered into ECS cluster 4. ECS Tasks begin (runs Docker container); states are applied to the minions 5. Tasks return applied states’ results to the Jenkins node 6. When all tasks have stopped, ASG instance gets terminated 7. Results are analyzed
  • 31. 1. SIT requests AutoScaling Group to provision a new instance 2. Instance provisions & SIT discovers it 3. ASG instance gets registered into ECS cluster 4. ECS Tasks begin (runs Docker container); states are applied to the minions 5. Tasks return applied states’ results to the Jenkins node 6. When all tasks have stopped, ASG instance gets terminated 7. Results are analyzed INTEGRATION TEST ASGJENKINS NODE Run SIT
  • 32. 1. SIT requests AutoScaling Group to provision a new instance 2. Instance provisions & SIT discovers it 3. ASG instance gets registered into ECS cluster 4. ECS Tasks begin (runs Docker container); states are applied to the minions 5. Tasks return applied states’ results to the Jenkins node 6. When all tasks have stopped, ASG instance gets terminated 7. Results are analyzed INTEGRATION TEST ASGJENKINS NODE ASG INSTANCE Run SIT
  • 33. 1. SIT requests AutoScaling Group to provision a new instance 2. Instance provisions & SIT discovers it 3. ASG instance gets registered into ECS cluster 4. ECS Tasks begin (runs Docker container); states are applied to the minions 5. Tasks return applied states’ results to the Jenkins node 6. When all tasks have stopped, ASG instance gets terminated 7. Results are analyzed INTEGRATION TEST Run SIT JENKINS NODE ECS CLUSTER
  • 34. 1. SIT requests AutoScaling Group to provision a new instance 2. Instance provisions & SIT discovers it 3. ASG instance gets registered into ECS cluster 4. ECS Tasks begin (runs Docker container); states are applied to the minions 5. Tasks return applied states’ results to the Jenkins node 6. When all tasks have stopped, ASG instance gets terminated 7. Results are analyzed INTEGRATION TEST Run SIT JENKINS NODE ECS CLUSTER
  • 35. 1. SIT requests AutoScaling Group to provision a new instance 2. Instance provisions & SIT discovers it 3. ASG instance gets registered into ECS cluster 4. ECS Tasks begin (runs Docker container); states are applied to the minions 5. Tasks return applied states’ results to the Jenkins node 6. When all tasks have stopped, ASG instance gets terminated 7. Results are analyzed INTEGRATION TEST JENKINS NODE Run SIT ECS CLUSTER
  • 36. 1. SIT requests AutoScaling Group to provision a new instance 2. Instance provisions & SIT discovers it 3. ASG instance gets registered into ECS cluster 4. ECS Tasks begin (runs Docker container); states are applied to the minions 5. Tasks return applied states’ results to the Jenkins node 6. When all tasks have stopped, ASG instance gets terminated 7. Results are analyzed INTEGRATION TEST JENKINS NODE Run SIT ECS CLUSTER
  • 37. 1. SIT requests AutoScaling Group to provision a new instance 2. Instance provisions & SIT discovers it 3. ASG instance gets registered into ECS cluster 4. ECS Tasks begin (runs Docker container); states are applied to the minions 5. Tasks return applied states’ results to the Jenkins node 6. When all tasks have stopped, ASG instance gets terminated 7. Results are analyzed INTEGRATION TEST JENKINS NODE Run SIT
  • 38. INITIATION AND TEARDOWN • SED to configure Jenkins node master back to easily editable state • Flush redis of data • Remove Salt-keys • Stop redis service • Stop Salt-master Pre-SIT Tasks Teardown SITInitiate SIT Run SIT
  • 39. VPC Security Groups EC2 AutoScaling Group Launch Configuration AWS INFRASTRUCTURE Instance Profile Policy Role ECS Cluster CloudFormation
  • 40. JENKINS NODES Results ASG • Time saved drastically • Maintenance • Open-source generic SIT tool DandB/Salt-Integration-Testing
  • 42. TOPIC Body text THANKS TO: Jeff Stibel Aaron Stibel Konstantin Antselovich DevOps Team Creative Team
  • 44. Use the SaltConf16 event app to provide feedback for this presentation. (we’re all ears) QUESTIONS AND FEEDBACK

Editor's Notes

  1. Good morning everyone!  My name is Steven Braverman and this is: “Integration Testing for Salt States Using AWS EC2 Container Service I’d like you guys to keep a couple things in mind: The Salt integration Testing tool I will discuss today is real. It is an open source tool that any one can use starting today. Please hold all questions to the end, I have a lot to share and demo So SIT back and let’s get started
  2. Dun & Bradstreet, not Dave & Busters
  3. Add links here to your contributions/pull-requests
  4. But really, most people that know Dun and Bradstreet probably don’t consider them to be a giant technology company. And those suspicions are about right the DevOps team I work with in Malibu is from a company that was recently acquired by D&B DevOps team works on a lot of really cool projects. Agile scrum workflow. 1 week sprints. We have a slim team
  5. We use SaltStack for configuration management. It  provides us with a stable environment while moving at a fast pace. Also keeps our codebase transparent to our developers. We accept pull-requests About 98% of our infrastructure is hosted using AWS. They offer a lot of really great tools and services.  For our CI/CID we use Jenkins. Kohsuke is a smart guy and looking forward to version 2.0 which is currently in beta.
  6. As a DevOps shop, it is important to test applying states to roles efficiently, quickly, and securely.  This is what we want Just to make sure we are all on the same page about what it means to apply salt states to roles, I want to go over a quick analogy I came up with.
  7. magine you are the owner of a fruit factory, and you have generated a machine that can clone fruits. You coined it the Fruit Master The fruit master contains blue prints to turn these things called minions into fruits.
  8. Now what kind of fruit are we going to get?j
  9. That depends on the role of the minion.
  10. That depends on the role of the minion.
  11. When the fruit master is ready to work, it sends its blue prints (the states( over to the minion based off the role After this, we are left with the fruits
  12. In the real world out salt masters and minions are servers
  13. And we usually have clusters of servers, and each can have several roles. For example, our PHP minions can have the role of server, php, and a role for each specific app
  14. And we usually have clusters of servers, and each can have several roles. For example, our PHP minions can have the role of server, php, and a role for each specific app
  15. For the most part, our CI nodes are immutable. This means they are each configured the same way and can all function the same way. It also means we can delete and provision them as necessary
  16. One of our servers was an OpenVZ that contained several virtual machines–OpenVZ is an open source container-based alternative to hypervisor-based virtualization
  17. One of our servers was an OpenVZ that contained several virtual machines–OpenVZ is an open source container-based alternative to hypervisor-based virtualization
  18. (i.e. run full integration tests on every pull request) We implement a thing called freezes. We have a feature freeze and code freeze. Let’s say that It is Friday morning, and feature freeze is a few hours away. One might say you have plenty of time, but in reality, if all of your coworkers create a pull-request, and you are the last person to create a pull-request, your changes are probably not going into this sprint Generic does not exist Maintenance is manual. Manual processes are destined to have errors
  19. (i.e. run full integration tests on every pull request) We implement a thing called freezes. We have a feature freeze and code freeze. Let’s say that It is Friday morning, and feature freeze is a few hours away. One might say you have plenty of time, but in reality, if all of your coworkers create a pull-request, and you are the last person to create a pull-request, your changes are probably not going into this sprint Generic does not exist Maintenance is manual. Manual processes are destined to have errors
  20. Alernative to virtual host Docker Engine that runs in the same operating system as its host. This allows it to share a lot of the host operating system resources, but allows you to run a set of processes for a particular container. It also uses layered filesystems
  21. Talk about what DevOps is and why it is important. Describe what has been lacking in testing States (i.e. run full integration tests on every pull request) Real-life example OpenVZ – a lot of overhead. It is a virutal box of a server Needs to be set up and maintained Friday Freezes
  22. {{TALK ABOUT SIT}}
  23. {{TALK ABOUT SIT}}
  24. Explain the autoscaling group
  25. Explain the autoscaling group
  26. Explain the autoscaling group
  27. Initiate: turn a slave into a master Teardown: turn a master back into a slave
  28. Initiate: turn a slave into a master Teardown: turn a master back into a slave
  29. Initiate: turn a slave into a master Teardown: turn a master back into a slave
  30. (i.e. run full integration tests on every pull request) This may just be an image. Some sort of visual tool here would be nice
  31. (i.e. run full integration tests on every pull request) This may just be an image. Some sort of visual tool here would be nice
  32. (i.e. run full integration tests on every pull request) This may just be an image. Some sort of visual tool here would be nice
  33. (i.e. run full integration tests on every pull request) This may just be an image. Some sort of visual tool here would be nice
  34. (i.e. run full integration tests on every pull request) This may just be an image. Some sort of visual tool here would be nice
  35. (i.e. run full integration tests on every pull request) This may just be an image. Some sort of visual tool here would be nice
  36. (i.e. run full integration tests on every pull request) This may just be an image. Some sort of visual tool here would be nice
  37. Initiate: turn a slave into a master Teardown: turn a master back into a slave QUICK NOTE, changing the workspace project each time is specific to our environment.
  38. (i.e. run full integration tests on every pull request)
  39. Explain the autoscaling group
  40. Demo time I would like to show from start to finish this working
  41. Vice Chairman CTO Director of DevOps