SlideShare a Scribd company logo
1 of 18
Download to read offline
Full Automated Continuous Integration and Testing
Infrastructure for Maxscale and MariaDB
Mark Zaslavskiy1,3
, Alexander Kaluzhniy1,2
, Tatyana Berlenko1,2
, Ilfat Kinyaev1,2
, Kirill Krinkin1,2
Timofey Turenko
MariaDB Corporation Ab
1
FRUCT LLC
2
Saint-Petersburg State Electrotechnical University «LETI»
3
ITMO University Saint-Petersburg, Russia
Motivation
Quality assurance procedure for distributed database management
systems is time and resource consuming because growing variety of:
● Supported product versions,
● Use cases,
● Environment options (OS and software dependencies versions),
● RDBMS configuration options,
● Network configurations.
2
Maxscale
● Intelligent DB proxy for the MariaDB;
● Provides increased level of availability, scalability and
security for MariaDB/MySQL cluster.
The work aims to provide solution for automating integration
tests and environment management for Maxscale and
backend database.
3
Testing tasks
● Build and publish Maxscale binary packages (rpm and
deb).
● Run and test. Install Maxscale packages on a clean virtual
environment and execute integration tests.
● Upgrade test. Install new Maxscale version on a virtual
machine with old one and validate update.
4
Previous solution
● A set of Bash scripts with hardcoded parameters (IPs, VM
number).
● Virtualization providers: Libvirt/QEMU and Amazon Web
Services
● Limited error processing.
● Limited results processing.
● Single ssh key for all test runs.
5
Previous infrastructure - libvirt/QEMU
● Sequence of procedures for preparing machines:
○ preconfigure image;
○ copy image;
○ bring up machines one by one;
○ config each machine network.
● Disadvantages:
○ VM preparation is slow.
○ Network configuration is done by script.
6
Previous infrastructure - AWS
● Algorithm
○ Bring up 9 AWS instances.
○ Gather AWS machines data.
● Disadvantages:
○ Manual cleanup after tests.
7
Solution requirements
● Provide reliable and easy extendable test automation instrument.
● Support variety of:
○ virtualization providers,
○ OS,
○ products.
● VM management:
○ reliability,
○ automatic network configuration,
○ smart cleanup (collect artifacts and destroy VMs).
8
Proposed solution - MDBCI
MDBCI (MariaDB Continuous Interface) -
● a set of tools for testing MariaDb and Maxscale,
● domain-specific Ruby wrapper around Vagrant.
The main features of MDBCI:
● Support of Docker, Libvirt, VirtualBox, AWS and PPC.
● Automatic and robust creation of VM set by configuration template.
● Automatic deploy MariaDb/Galera/Maxscale to VM nodes, running
configuration procedures.
● Products repository management on all available platforms.
9
MDBCI additional features
● Parsing and storing of performance (sysbench) and
regression (CTest) testing results.
○ Deep integration with Jenkins testing jobs;
○ All test runs are processed and stored into special
database, which allows to compare different product
commits/settings.
● Snapshots and cloning interfaces for Docker and Libvirt
configurations.
10
Configuration launch usecase
1. Create a config file.
2. Download needed Vagrant boxes.
3. Generate Vagrant config file by MDBCI config.
4. Run configuration using MDBCI.
5. After successful launch of configuration all VM network
information is exported to file.
6. Further VM control can be done with MDBCI or Vagrant.
7. (Optional) Create clone of currently running VMs.
8. (Optional) Create snapshot of currently running VMs.
11
Architecture
12
Evaluation
● Goal - measure VM launch fails ratio on AWS configuration.
● Experiments steps
1. Test configuration using MDBCI command generate.
2. 10 sequential launches of the generated configuration using
“vagrant up” command.
3. 10 sequential launches of the generated configuration using
“mdbci up” command.
4. Calculation of failed launches percentage for each instrument.
13
Evaluation
● Number of successfully running machines after per test
configuration launch
14
Evaluation
● Time of test configuration launches
15
Conclusion
● MDBCI allowed to overcome limitations of the previous test
automation: nontransparent debug interfaces, limited
support of virtualization providers.
● MDBCI fully integrated to Maxscale development process.
● Future development of MDBCI includes
○ embedding new virtualization providers,
○ different performance benchmarks support,
○ interfaces for multi provider configurations are
planned.
16
Links
Questions: mark.zaslavskiy@fruct.org
Source
● https://github.com/OSLL/mdbci
Maxscale
● https://github.com/mariadb-corporation/maxscale
● https://mariadb.com/products/mariadb-maxscale
17
Configuration examples
{
"galera1" :
{
"hostname" : "galera1",
"box" : "ubuntu_trusty_libvirt",
"product" : {
"name": "galera",
"version": "5.5",
"cnf_template" : "server1.cnf",
"cnf_template_path":
"/home/vagrant/cnf"
}
},
"maxscale" :
{
"hostname" : "maxscale",
"box" : "ubuntu_trusty_libvirt",
"product" : {
"name" : "maxscale"
},
"memory_size" : "1024"
}
}
18

More Related Content

What's hot

What's hot (16)

oVirt Extension API: The first step for fully modular oVirt
oVirt Extension API: The first step for fully modular oVirtoVirt Extension API: The first step for fully modular oVirt
oVirt Extension API: The first step for fully modular oVirt
 
Functional microservices with Java EE
Functional microservices with Java EEFunctional microservices with Java EE
Functional microservices with Java EE
 
Dynamic management of kubernetes
Dynamic management of kubernetesDynamic management of kubernetes
Dynamic management of kubernetes
 
Kubernetes
KubernetesKubernetes
Kubernetes
 
OpenCmsDays 2013 - Using OpenCms 9 folders as a network drive
OpenCmsDays 2013 - Using OpenCms 9 folders as a network driveOpenCmsDays 2013 - Using OpenCms 9 folders as a network drive
OpenCmsDays 2013 - Using OpenCms 9 folders as a network drive
 
Mi-Cloud Deployment Scenarios - Nazarudin Wijee
Mi-Cloud Deployment Scenarios - Nazarudin WijeeMi-Cloud Deployment Scenarios - Nazarudin Wijee
Mi-Cloud Deployment Scenarios - Nazarudin Wijee
 
Tungsten University: Introduction to Continuent Tungsten 2.0
Tungsten University: Introduction to Continuent Tungsten 2.0Tungsten University: Introduction to Continuent Tungsten 2.0
Tungsten University: Introduction to Continuent Tungsten 2.0
 
Taking Your Enterprise to the Next Level with WSO2 Message Broker and WSO2 En...
Taking Your Enterprise to the Next Level with WSO2 Message Broker and WSO2 En...Taking Your Enterprise to the Next Level with WSO2 Message Broker and WSO2 En...
Taking Your Enterprise to the Next Level with WSO2 Message Broker and WSO2 En...
 
CM for MariaDB Galera cluster
CM for MariaDB Galera clusterCM for MariaDB Galera cluster
CM for MariaDB Galera cluster
 
oVirt 3.5 Storage Features Overview
oVirt 3.5 Storage Features OverviewoVirt 3.5 Storage Features Overview
oVirt 3.5 Storage Features Overview
 
SUSE Manager with Salt - Deploy and Config Management for MariaDB
SUSE Manager with Salt - Deploy and Config Management for MariaDBSUSE Manager with Salt - Deploy and Config Management for MariaDB
SUSE Manager with Salt - Deploy and Config Management for MariaDB
 
Unleashing k8 s to reduce complexities of an entire middleware platform
Unleashing k8 s to reduce complexities of an entire middleware platformUnleashing k8 s to reduce complexities of an entire middleware platform
Unleashing k8 s to reduce complexities of an entire middleware platform
 
JBoss EAP 7 & JDG 7 최신 기술 소개
JBoss EAP 7 & JDG 7 최신 기술 소개JBoss EAP 7 & JDG 7 최신 기술 소개
JBoss EAP 7 & JDG 7 최신 기술 소개
 
GStreamer support in WebKit. what’s new?
GStreamer support in WebKit. what’s new?GStreamer support in WebKit. what’s new?
GStreamer support in WebKit. what’s new?
 
OpenDaylight OpenStack Integration
OpenDaylight OpenStack IntegrationOpenDaylight OpenStack Integration
OpenDaylight OpenStack Integration
 
Sprint 16 report
Sprint 16 reportSprint 16 report
Sprint 16 report
 

Viewers also liked

Doctor search service with Geo2tag, Bezyazychnyy, Krinkin
Doctor search service with Geo2tag, Bezyazychnyy, Krinkin Doctor search service with Geo2tag, Bezyazychnyy, Krinkin
Doctor search service with Geo2tag, Bezyazychnyy, Krinkin
OSLL
 
Json protocol, Geo2tag REST API fundamentals
Json protocol, Geo2tag REST API fundamentalsJson protocol, Geo2tag REST API fundamentals
Json protocol, Geo2tag REST API fundamentals
OSLL
 
Geo2tag performance evaluation, Zaslavsky, Krinkin
Geo2tag performance evaluation, Zaslavsky, Krinkin Geo2tag performance evaluation, Zaslavsky, Krinkin
Geo2tag performance evaluation, Zaslavsky, Krinkin
OSLL
 
Lbs for transport monitoring based on geo2tag
Lbs for transport monitoring based on geo2tagLbs for transport monitoring based on geo2tag
Lbs for transport monitoring based on geo2tag
OSLL
 
Smart-m3 Security Model
Smart-m3 Security Model Smart-m3 Security Model
Smart-m3 Security Model
OSLL
 

Viewers also liked (20)

Студентам и не только. Как выступить с докладом по своей научной работе
Студентам и не только. Как выступить с докладом по своей научной работеСтудентам и не только. Как выступить с докладом по своей научной работе
Студентам и не только. Как выступить с докладом по своей научной работе
 
Implementation of the new REST API for Open Source LBS-platform Geo2Tag
Implementation of the new REST API for Open Source LBS-platform Geo2TagImplementation of the new REST API for Open Source LBS-platform Geo2Tag
Implementation of the new REST API for Open Source LBS-platform Geo2Tag
 
[MDBCI] Mariadb continuous integration tool
[MDBCI] Mariadb continuous integration tool[MDBCI] Mariadb continuous integration tool
[MDBCI] Mariadb continuous integration tool
 
Testing with Selenium
Testing with SeleniumTesting with Selenium
Testing with Selenium
 
Block-level compression in Linux. Pro et contra
Block-level compression in Linux. Pro et contraBlock-level compression in Linux. Pro et contra
Block-level compression in Linux. Pro et contra
 
Hemodynamic response function at rest and effects of autonomic nervous system...
Hemodynamic response function at rest and effects of autonomic nervous system...Hemodynamic response function at rest and effects of autonomic nervous system...
Hemodynamic response function at rest and effects of autonomic nervous system...
 
Cooperative as a commons
Cooperative as a commonsCooperative as a commons
Cooperative as a commons
 
Flood Sensor Foxx Manual
Flood Sensor Foxx ManualFlood Sensor Foxx Manual
Flood Sensor Foxx Manual
 
Travelcamp Kryzysy w social media i podróże
Travelcamp Kryzysy w social media i podróżeTravelcamp Kryzysy w social media i podróże
Travelcamp Kryzysy w social media i podróże
 
Doctor search service with Geo2tag, Bezyazychnyy, Krinkin
Doctor search service with Geo2tag, Bezyazychnyy, Krinkin Doctor search service with Geo2tag, Bezyazychnyy, Krinkin
Doctor search service with Geo2tag, Bezyazychnyy, Krinkin
 
Exer mask 2_filter_variation
Exer mask 2_filter_variationExer mask 2_filter_variation
Exer mask 2_filter_variation
 
Json protocol, Geo2tag REST API fundamentals
Json protocol, Geo2tag REST API fundamentalsJson protocol, Geo2tag REST API fundamentals
Json protocol, Geo2tag REST API fundamentals
 
Na acrobat pdf
Na acrobat pdfNa acrobat pdf
Na acrobat pdf
 
Na pp
Na ppNa pp
Na pp
 
Middle Ages primary level presentation
Middle Ages primary level presentationMiddle Ages primary level presentation
Middle Ages primary level presentation
 
Geo2tag performance evaluation, Zaslavsky, Krinkin
Geo2tag performance evaluation, Zaslavsky, Krinkin Geo2tag performance evaluation, Zaslavsky, Krinkin
Geo2tag performance evaluation, Zaslavsky, Krinkin
 
Governo rodrigues alves
Governo rodrigues alvesGoverno rodrigues alves
Governo rodrigues alves
 
Lbs for transport monitoring based on geo2tag
Lbs for transport monitoring based on geo2tagLbs for transport monitoring based on geo2tag
Lbs for transport monitoring based on geo2tag
 
Smart-m3 Security Model
Smart-m3 Security Model Smart-m3 Security Model
Smart-m3 Security Model
 
O imperialismo definições
O imperialismo   definiçõesO imperialismo   definições
O imperialismo definições
 

Similar to Full Automated Continuous Integration and Testing Infrastructure for Maxscale and MariaDB

“Parallelizing Machine Learning Applications in the Cloud with Kubernetes: A ...
“Parallelizing Machine Learning Applications in the Cloud with Kubernetes: A ...“Parallelizing Machine Learning Applications in the Cloud with Kubernetes: A ...
“Parallelizing Machine Learning Applications in the Cloud with Kubernetes: A ...
Edge AI and Vision Alliance
 
Resume-SystemsDBA-Brian Wigton
Resume-SystemsDBA-Brian WigtonResume-SystemsDBA-Brian Wigton
Resume-SystemsDBA-Brian Wigton
Brian Wigton
 
Why Kubernetes as a container orchestrator is a right choice for running spar...
Why Kubernetes as a container orchestrator is a right choice for running spar...Why Kubernetes as a container orchestrator is a right choice for running spar...
Why Kubernetes as a container orchestrator is a right choice for running spar...
DataWorks Summit
 
20141111_SOS3_Gallo
20141111_SOS3_Gallo20141111_SOS3_Gallo
20141111_SOS3_Gallo
Andrea Gallo
 
Azure development
Azure developmentAzure development
Azure development
wseye
 

Similar to Full Automated Continuous Integration and Testing Infrastructure for Maxscale and MariaDB (20)

Midwest PHP Presentation - New MSQL Features
Midwest PHP Presentation - New MSQL FeaturesMidwest PHP Presentation - New MSQL Features
Midwest PHP Presentation - New MSQL Features
 
Microservices @ Work - A Practice Report of Developing Microservices
Microservices @ Work - A Practice Report of Developing MicroservicesMicroservices @ Work - A Practice Report of Developing Microservices
Microservices @ Work - A Practice Report of Developing Microservices
 
“Parallelizing Machine Learning Applications in the Cloud with Kubernetes: A ...
“Parallelizing Machine Learning Applications in the Cloud with Kubernetes: A ...“Parallelizing Machine Learning Applications in the Cloud with Kubernetes: A ...
“Parallelizing Machine Learning Applications in the Cloud with Kubernetes: A ...
 
Nginx conference 2015
Nginx conference 2015Nginx conference 2015
Nginx conference 2015
 
Expanding your options with the MQ Appliance
Expanding your options with the MQ ApplianceExpanding your options with the MQ Appliance
Expanding your options with the MQ Appliance
 
Breaking the Monolith - Microservice Extraction at SoundCloud
Breaking the Monolith - Microservice Extraction at SoundCloudBreaking the Monolith - Microservice Extraction at SoundCloud
Breaking the Monolith - Microservice Extraction at SoundCloud
 
Operational Best Practices in the Cloud
Operational Best Practices in the CloudOperational Best Practices in the Cloud
Operational Best Practices in the Cloud
 
Resume-SystemsDBA-Brian Wigton
Resume-SystemsDBA-Brian WigtonResume-SystemsDBA-Brian Wigton
Resume-SystemsDBA-Brian Wigton
 
CV_RishabhDixit
CV_RishabhDixitCV_RishabhDixit
CV_RishabhDixit
 
Migrate to the Latest WSO2 Micro Integrator to Unlock All-new Features
Migrate to the Latest WSO2 Micro Integrator to Unlock All-new FeaturesMigrate to the Latest WSO2 Micro Integrator to Unlock All-new Features
Migrate to the Latest WSO2 Micro Integrator to Unlock All-new Features
 
Principles of Reproducible Workflows (U-DAWS) nfcamp2019
Principles of Reproducible Workflows (U-DAWS) nfcamp2019Principles of Reproducible Workflows (U-DAWS) nfcamp2019
Principles of Reproducible Workflows (U-DAWS) nfcamp2019
 
Wordpress deployment on aws
Wordpress deployment on awsWordpress deployment on aws
Wordpress deployment on aws
 
Software Delivery in 2016 - A Continuous Delivery Approach
Software Delivery in 2016 - A Continuous Delivery ApproachSoftware Delivery in 2016 - A Continuous Delivery Approach
Software Delivery in 2016 - A Continuous Delivery Approach
 
OSDC 2019 | KubeVirt: Converge IT infrastructure into one single Kubernetes p...
OSDC 2019 | KubeVirt: Converge IT infrastructure into one single Kubernetes p...OSDC 2019 | KubeVirt: Converge IT infrastructure into one single Kubernetes p...
OSDC 2019 | KubeVirt: Converge IT infrastructure into one single Kubernetes p...
 
Effective administration of IBM Integration Bus - Sanjay Nagchowdhury
Effective administration of IBM Integration Bus - Sanjay NagchowdhuryEffective administration of IBM Integration Bus - Sanjay Nagchowdhury
Effective administration of IBM Integration Bus - Sanjay Nagchowdhury
 
Why Kubernetes as a container orchestrator is a right choice for running spar...
Why Kubernetes as a container orchestrator is a right choice for running spar...Why Kubernetes as a container orchestrator is a right choice for running spar...
Why Kubernetes as a container orchestrator is a right choice for running spar...
 
Red Hat multi-cluster management & what's new in OpenShift
Red Hat multi-cluster management & what's new in OpenShiftRed Hat multi-cluster management & what's new in OpenShift
Red Hat multi-cluster management & what's new in OpenShift
 
VMworld 2013: Maximize Database Performance in Your Software-Defined Data Center
VMworld 2013: Maximize Database Performance in Your Software-Defined Data CenterVMworld 2013: Maximize Database Performance in Your Software-Defined Data Center
VMworld 2013: Maximize Database Performance in Your Software-Defined Data Center
 
20141111_SOS3_Gallo
20141111_SOS3_Gallo20141111_SOS3_Gallo
20141111_SOS3_Gallo
 
Azure development
Azure developmentAzure development
Azure development
 

More from OSLL

Fruct14 sholokhova
Fruct14 sholokhovaFruct14 sholokhova
Fruct14 sholokhova
OSLL
 
SECR'13 Lightweight linux shared libraries profiling
SECR'13 Lightweight linux shared libraries profilingSECR'13 Lightweight linux shared libraries profiling
SECR'13 Lightweight linux shared libraries profiling
OSLL
 
Smart-M3 and Geo2Tag integration
Smart-M3 and Geo2Tag integrationSmart-M3 and Geo2Tag integration
Smart-M3 and Geo2Tag integration
OSLL
 
HTML5 Intro and Tizen Web API
HTML5 Intro and Tizen Web APIHTML5 Intro and Tizen Web API
HTML5 Intro and Tizen Web API
OSLL
 

More from OSLL (20)

SLAM Constructor Framework for ROS
SLAM Constructor Framework for ROSSLAM Constructor Framework for ROS
SLAM Constructor Framework for ROS
 
MOOCs Virtual Lab in Modern Education
MOOCs Virtual Lab in Modern EducationMOOCs Virtual Lab in Modern Education
MOOCs Virtual Lab in Modern Education
 
Работа с геоданными в MongoDb
Работа с геоданными в MongoDbРабота с геоданными в MongoDb
Работа с геоданными в MongoDb
 
Microservice architecture for Geo2Tag
Microservice architecture for Geo2TagMicroservice architecture for Geo2Tag
Microservice architecture for Geo2Tag
 
Fast Artificial Landmark Detection for indoor mobile robots AIMAVIG'2015
Fast Artificial Landmark Detection for indoor mobile robots AIMAVIG'2015Fast Artificial Landmark Detection for indoor mobile robots AIMAVIG'2015
Fast Artificial Landmark Detection for indoor mobile robots AIMAVIG'2015
 
Обзор файловой системы GlusterFS
Обзор файловой системы GlusterFSОбзор файловой системы GlusterFS
Обзор файловой системы GlusterFS
 
Обзор Btrfs
Обзор BtrfsОбзор Btrfs
Обзор Btrfs
 
Обзор архитектуры [файловой] системы Ceph
Обзор архитектуры [файловой] системы CephОбзор архитектуры [файловой] системы Ceph
Обзор архитектуры [файловой] системы Ceph
 
Linuxvirt seminar-csc-2015
Linuxvirt seminar-csc-2015Linuxvirt seminar-csc-2015
Linuxvirt seminar-csc-2015
 
Обзор Linux Control Groups
Обзор Linux Control GroupsОбзор Linux Control Groups
Обзор Linux Control Groups
 
Raspberry Pi robot with ROS
Raspberry Pi robot with ROSRaspberry Pi robot with ROS
Raspberry Pi robot with ROS
 
Пространства имен Linux (linux namespaces)
Пространства имен Linux (linux namespaces)Пространства имен Linux (linux namespaces)
Пространства имен Linux (linux namespaces)
 
Кратчайшее введение в docker по-русски
Кратчайшее введение в docker по-русскиКратчайшее введение в docker по-русски
Кратчайшее введение в docker по-русски
 
Virtual-HSM: Virtualization of Hardware Security Modules in Linux Containers
Virtual-HSM: Virtualization of Hardware Security Modules in Linux ContainersVirtual-HSM: Virtualization of Hardware Security Modules in Linux Containers
Virtual-HSM: Virtualization of Hardware Security Modules in Linux Containers
 
Source code analyzer
Source code analyzer Source code analyzer
Source code analyzer
 
Fruct14 sholokhova
Fruct14 sholokhovaFruct14 sholokhova
Fruct14 sholokhova
 
SECR'13 Lightweight linux shared libraries profiling
SECR'13 Lightweight linux shared libraries profilingSECR'13 Lightweight linux shared libraries profiling
SECR'13 Lightweight linux shared libraries profiling
 
Smart-M3 and Geo2Tag integration
Smart-M3 and Geo2Tag integrationSmart-M3 and Geo2Tag integration
Smart-M3 and Geo2Tag integration
 
HTML5 Intro and Tizen Web API
HTML5 Intro and Tizen Web APIHTML5 Intro and Tizen Web API
HTML5 Intro and Tizen Web API
 
Fruct13 geo2tag-training
Fruct13 geo2tag-trainingFruct13 geo2tag-training
Fruct13 geo2tag-training
 

Recently uploaded

AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
Alluxio, Inc.
 

Recently uploaded (20)

Workforce Efficiency with Employee Time Tracking Software.pdf
Workforce Efficiency with Employee Time Tracking Software.pdfWorkforce Efficiency with Employee Time Tracking Software.pdf
Workforce Efficiency with Employee Time Tracking Software.pdf
 
Facemoji Keyboard released its 2023 State of Emoji report, outlining the most...
Facemoji Keyboard released its 2023 State of Emoji report, outlining the most...Facemoji Keyboard released its 2023 State of Emoji report, outlining the most...
Facemoji Keyboard released its 2023 State of Emoji report, outlining the most...
 
Secure Software Ecosystem Teqnation 2024
Secure Software Ecosystem Teqnation 2024Secure Software Ecosystem Teqnation 2024
Secure Software Ecosystem Teqnation 2024
 
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
 
A Guideline to Gorgias to to Re:amaze Data Migration
A Guideline to Gorgias to to Re:amaze Data MigrationA Guideline to Gorgias to to Re:amaze Data Migration
A Guideline to Gorgias to to Re:amaze Data Migration
 
How to install and activate eGrabber JobGrabber
How to install and activate eGrabber JobGrabberHow to install and activate eGrabber JobGrabber
How to install and activate eGrabber JobGrabber
 
Tree in the Forest - Managing Details in BDD Scenarios (live2test 2024)
Tree in the Forest - Managing Details in BDD Scenarios (live2test 2024)Tree in the Forest - Managing Details in BDD Scenarios (live2test 2024)
Tree in the Forest - Managing Details in BDD Scenarios (live2test 2024)
 
COMPUTER AND ITS COMPONENTS PPT.by naitik sharma Class 9th A mittal internati...
COMPUTER AND ITS COMPONENTS PPT.by naitik sharma Class 9th A mittal internati...COMPUTER AND ITS COMPONENTS PPT.by naitik sharma Class 9th A mittal internati...
COMPUTER AND ITS COMPONENTS PPT.by naitik sharma Class 9th A mittal internati...
 
AI/ML Infra Meetup | Perspective on Deep Learning Framework
AI/ML Infra Meetup | Perspective on Deep Learning FrameworkAI/ML Infra Meetup | Perspective on Deep Learning Framework
AI/ML Infra Meetup | Perspective on Deep Learning Framework
 
how-to-download-files-safely-from-the-internet.pdf
how-to-download-files-safely-from-the-internet.pdfhow-to-download-files-safely-from-the-internet.pdf
how-to-download-files-safely-from-the-internet.pdf
 
IT Software Development Resume, Vaibhav jha 2024
IT Software Development Resume, Vaibhav jha 2024IT Software Development Resume, Vaibhav jha 2024
IT Software Development Resume, Vaibhav jha 2024
 
APVP,apvp apvp High quality supplier safe spot transport, 98% purity
APVP,apvp apvp High quality supplier safe spot transport, 98% purityAPVP,apvp apvp High quality supplier safe spot transport, 98% purity
APVP,apvp apvp High quality supplier safe spot transport, 98% purity
 
Top Mobile App Development Companies 2024
Top Mobile App Development Companies 2024Top Mobile App Development Companies 2024
Top Mobile App Development Companies 2024
 
Implementing KPIs and Right Metrics for Agile Delivery Teams.pdf
Implementing KPIs and Right Metrics for Agile Delivery Teams.pdfImplementing KPIs and Right Metrics for Agile Delivery Teams.pdf
Implementing KPIs and Right Metrics for Agile Delivery Teams.pdf
 
Crafting the Perfect Measurement Sheet with PLM Integration
Crafting the Perfect Measurement Sheet with PLM IntegrationCrafting the Perfect Measurement Sheet with PLM Integration
Crafting the Perfect Measurement Sheet with PLM Integration
 
AI/ML Infra Meetup | Reducing Prefill for LLM Serving in RAG
AI/ML Infra Meetup | Reducing Prefill for LLM Serving in RAGAI/ML Infra Meetup | Reducing Prefill for LLM Serving in RAG
AI/ML Infra Meetup | Reducing Prefill for LLM Serving in RAG
 
10 Essential Software Testing Tools You Need to Know About.pdf
10 Essential Software Testing Tools You Need to Know About.pdf10 Essential Software Testing Tools You Need to Know About.pdf
10 Essential Software Testing Tools You Need to Know About.pdf
 
AI Hackathon.pptx
AI                        Hackathon.pptxAI                        Hackathon.pptx
AI Hackathon.pptx
 
CompTIA Security+ (Study Notes) for cs.pdf
CompTIA Security+ (Study Notes) for cs.pdfCompTIA Security+ (Study Notes) for cs.pdf
CompTIA Security+ (Study Notes) for cs.pdf
 
A Guideline to Zendesk to Re:amaze Data Migration
A Guideline to Zendesk to Re:amaze Data MigrationA Guideline to Zendesk to Re:amaze Data Migration
A Guideline to Zendesk to Re:amaze Data Migration
 

Full Automated Continuous Integration and Testing Infrastructure for Maxscale and MariaDB

  • 1. Full Automated Continuous Integration and Testing Infrastructure for Maxscale and MariaDB Mark Zaslavskiy1,3 , Alexander Kaluzhniy1,2 , Tatyana Berlenko1,2 , Ilfat Kinyaev1,2 , Kirill Krinkin1,2 Timofey Turenko MariaDB Corporation Ab 1 FRUCT LLC 2 Saint-Petersburg State Electrotechnical University «LETI» 3 ITMO University Saint-Petersburg, Russia
  • 2. Motivation Quality assurance procedure for distributed database management systems is time and resource consuming because growing variety of: ● Supported product versions, ● Use cases, ● Environment options (OS and software dependencies versions), ● RDBMS configuration options, ● Network configurations. 2
  • 3. Maxscale ● Intelligent DB proxy for the MariaDB; ● Provides increased level of availability, scalability and security for MariaDB/MySQL cluster. The work aims to provide solution for automating integration tests and environment management for Maxscale and backend database. 3
  • 4. Testing tasks ● Build and publish Maxscale binary packages (rpm and deb). ● Run and test. Install Maxscale packages on a clean virtual environment and execute integration tests. ● Upgrade test. Install new Maxscale version on a virtual machine with old one and validate update. 4
  • 5. Previous solution ● A set of Bash scripts with hardcoded parameters (IPs, VM number). ● Virtualization providers: Libvirt/QEMU and Amazon Web Services ● Limited error processing. ● Limited results processing. ● Single ssh key for all test runs. 5
  • 6. Previous infrastructure - libvirt/QEMU ● Sequence of procedures for preparing machines: ○ preconfigure image; ○ copy image; ○ bring up machines one by one; ○ config each machine network. ● Disadvantages: ○ VM preparation is slow. ○ Network configuration is done by script. 6
  • 7. Previous infrastructure - AWS ● Algorithm ○ Bring up 9 AWS instances. ○ Gather AWS machines data. ● Disadvantages: ○ Manual cleanup after tests. 7
  • 8. Solution requirements ● Provide reliable and easy extendable test automation instrument. ● Support variety of: ○ virtualization providers, ○ OS, ○ products. ● VM management: ○ reliability, ○ automatic network configuration, ○ smart cleanup (collect artifacts and destroy VMs). 8
  • 9. Proposed solution - MDBCI MDBCI (MariaDB Continuous Interface) - ● a set of tools for testing MariaDb and Maxscale, ● domain-specific Ruby wrapper around Vagrant. The main features of MDBCI: ● Support of Docker, Libvirt, VirtualBox, AWS and PPC. ● Automatic and robust creation of VM set by configuration template. ● Automatic deploy MariaDb/Galera/Maxscale to VM nodes, running configuration procedures. ● Products repository management on all available platforms. 9
  • 10. MDBCI additional features ● Parsing and storing of performance (sysbench) and regression (CTest) testing results. ○ Deep integration with Jenkins testing jobs; ○ All test runs are processed and stored into special database, which allows to compare different product commits/settings. ● Snapshots and cloning interfaces for Docker and Libvirt configurations. 10
  • 11. Configuration launch usecase 1. Create a config file. 2. Download needed Vagrant boxes. 3. Generate Vagrant config file by MDBCI config. 4. Run configuration using MDBCI. 5. After successful launch of configuration all VM network information is exported to file. 6. Further VM control can be done with MDBCI or Vagrant. 7. (Optional) Create clone of currently running VMs. 8. (Optional) Create snapshot of currently running VMs. 11
  • 13. Evaluation ● Goal - measure VM launch fails ratio on AWS configuration. ● Experiments steps 1. Test configuration using MDBCI command generate. 2. 10 sequential launches of the generated configuration using “vagrant up” command. 3. 10 sequential launches of the generated configuration using “mdbci up” command. 4. Calculation of failed launches percentage for each instrument. 13
  • 14. Evaluation ● Number of successfully running machines after per test configuration launch 14
  • 15. Evaluation ● Time of test configuration launches 15
  • 16. Conclusion ● MDBCI allowed to overcome limitations of the previous test automation: nontransparent debug interfaces, limited support of virtualization providers. ● MDBCI fully integrated to Maxscale development process. ● Future development of MDBCI includes ○ embedding new virtualization providers, ○ different performance benchmarks support, ○ interfaces for multi provider configurations are planned. 16
  • 17. Links Questions: mark.zaslavskiy@fruct.org Source ● https://github.com/OSLL/mdbci Maxscale ● https://github.com/mariadb-corporation/maxscale ● https://mariadb.com/products/mariadb-maxscale 17
  • 18. Configuration examples { "galera1" : { "hostname" : "galera1", "box" : "ubuntu_trusty_libvirt", "product" : { "name": "galera", "version": "5.5", "cnf_template" : "server1.cnf", "cnf_template_path": "/home/vagrant/cnf" } }, "maxscale" : { "hostname" : "maxscale", "box" : "ubuntu_trusty_libvirt", "product" : { "name" : "maxscale" }, "memory_size" : "1024" } } 18