Timofey Turenko. Kirill Krinkin St-Petersburg Electrotechnical University

Similar documents
Our Puppet Story Patterns and Learnings

DevOps. Building a Continuous Delivery Pipeline

Using Vagrant for Magento development. Alexander

OpenStack CI: flow, tools and more

Amazon Elastic Beanstalk

DevOps Course Content

Cloud-init. Marc Skinner - Principal Solutions Architect Michael Heldebrant - Solutions Architect Red Hat

Automated Configuration of Open Stack Instances at Boot Time

CHEF IN THE CLOUD AND ON THE GROUND

Automating Big Data Benchmarking for Different Architectures with ALOJA

HDFS Cluster Installation Automation for TupleWare

How To Install Eucalyptus (Cont'D) On A Cloud) On An Ubuntu Or Linux (Contd) Or A Windows 7 (Cont') (Cont'T) (Bsd) (Dll) (Amd)

Chef Integration. Chef Integration. with IDERA s Uptime Cloud Monitor. Simple, Smart, Seamless May 10, 2013 IDERA

CLOUD API DOCUMENTATION v2.0. Get list of cloud servers in account

Deployment of Private, Hybrid & Public Clouds with OpenNebula

Open source software for building a private cloud

Using Application Services

Pro Puppet. Jeffrey McCune. James TurnbuII. Apress* m in

CONDOR CLUSTERS ON EC2

McAfee Public Cloud Server Security Suite

Migrating a running service to AWS

How Bigtop Leveraged Docker for Build Automation and One-Click Hadoop Provisioning

DevOoops Increase awareness around DevOps infra security. Gianluca

Servers. Servers. NAT Public Subnet: /20. Internet Gateway. VPC Gateway VPC: /16

Chapter 9 PUBLIC CLOUD LABORATORY. Sucha Smanchat, PhD. Faculty of Information Technology. King Mongkut s University of Technology North Bangkok

HOPS: Hadoop Open Platform-as-a-Service

Of Pets and Cattle and Hearts

"Infrastructure as Code" für Anfänger. XP Days Germany David Völkel

Cisco UCS CPA Workflows

Déployer son propre cloud avec OpenStack. GULL François Deppierraz

The path to the cloud training

Challenges in Deploying Public Clouds

Automated deployment of virtualization-based research models of distributed computer systems

AWS testing results. Testing Procedure. Prepare Target Machine. Prepare modified mosquitto configuration. /etc/mosquitto/mosquitto.

OpenTOSCA Release v1.1. Contact: Documentation Version: March 11, 2014 Current version:

DevShop. Drupal Infrastructure in a Box. Jon Pugh CEO, Founder ThinkDrop Consulting Brooklyn NY

Ansible for AWS. A simple way to provision and manage your Amazon Cloud infrastructure. Yan Kurniawan

1 Keystone OpenStack Identity Service

Introduction to Cloud Computing on Amazon Web Services (AWS) with focus on EC2 and S3. Horst Lueck

JAVA IN THE CLOUD PAAS PLATFORM IN COMPARISON

Release Notes for Fuel and Fuel Web Version 3.0.1

SkySQL Data Suite. A New Open Source Approach to MySQL Distributed Systems. Serge Frezefond V

Mesosphere. In this post. bootstrap_url

Continuous Integration using Docker & Jenkins

IBM Cloud Manager with OpenStack

Building a Kubernetes Cluster with Ansible. Patrick Galbraith, ATG Cloud Computing Expo, NYC, May 2016

ovirt self-hosted engine seamless deployment

DIY Device Cloud Documentation

ArcGIS for Server: In the Cloud

Utilizing Ansible to Manage a Highly Available MySQL Environment

Prepared for: How to Become Cloud Backup Provider

The Total Newbie s Introduction to Heat Orchestration in OpenStack

ST 810, Advanced computing

Ansible in Depth WHITEPAPER. ansible.com

Platform as a Service and Container Clouds

Skip the But it Works on My Machine Excuse with Vagrant

Building a Continuous Integration Pipeline with Docker

KT ucloud storage. Two Years of Life with OpenStack Swift / Jaesuk Ahn, Cloud OS Dev. Team, Korea Telecom

Using SUSE Studio to Build and Deploy Applications on Amazon EC2. Guide. Solution Guide Cloud Computing.

Creating an ESS instance on the Amazon Cloud

Introduction to Openstack, an Open Cloud Computing Platform. Libre Software Meeting

Urbancode Deploy Overview

Building Clouds with OpenNebula 3.2

Creating a dynamic software deployment solution using free/libre software

depl Documentation Release depl contributors

DO NOT DISTRIBUTE. Automating Applications with Continuous Delivery on AWS. Student Guide. Version 1.0

Quick Note 052. Connecting to Digi Remote Manager SM Through Web Proxy

PHP in RPM distribution

Jenkins and Chef Infrastructure CI and Application Deployment

Continuous Delivery for Alfresco Solutions. Satisfied customers and happy developers with!! Continuous Delivery!

Configuring HAproxy as a SwiftStack Load Balancer

Opsview in the Cloud. Monitoring with Amazon Web Services. Opsview Technical Overview

Continuous Integration in the Cloud with Hudson

Developing High-Performance, Scalable, cost effective storage solutions with Intel Cloud Edition Lustre* and Amazon Web Services

Cloud Computing. Adam Barker

CI Pipeline with Docker

The road to lazy monitoring with Icinga2 & Puppet. Tom De

Web Application Firewall

METAARCHIVE & CLOUD COMPUTING

AWS Quick Start Guide. Launch a Linux Virtual Machine Version

GreenSQL AWS Deployment

What s new with Operations Management & Partner MPs

Release Notes for McAfee(R) VirusScan(R) Enterprise for Linux Version Copyright (C) 2014 McAfee, Inc. All Rights Reserved.

A central continuous integration platform

Ansible Tower User Guide

Deep Dive: Infrastructure as Code

Migration Scenario: Migrating Backend Processing Pipeline to the AWS Cloud

Transcription:

11 th Central and Eastern European Software Engineering Conference in Russia - CEE-SECR 2015 October 22-24, Moscow Automatic tool for multi-configuration environment creation for database server and database proxy application testing Timofey Turenko MariaDB Corporation AB Kirill Krinkin St-Petersburg Electrotechnical University

MariaDB & Maxscale

Test environment problem Server and proxy application testing: backend is needed lots of combination of machine configurations and version of backend servers Maxscale example: 12 major linux distributions MariaDB 5.5, 10.0, 10.1, 10.2 MySQL 5.1, 5.5, 5.6, 5.7 different topologies Maxscale itself from CI

Requirements arbitrary number of backend servers; any version of server software can be installed on every backend server; different virtual machine providers have to be supported (Virtual Box, Qemu, different cloud providers); deployment of test environment have to be automated; several test round can be executed in parallel; test environment description have to be clear and human readable.

Configuration example

VM managers, SW manager Vagrant, Terraform, Ansible Chef, Puppet config.vm.synced_folder "/home/vagrant/build-scripts/test-setup-... works? try to write/read it: ### Import AWS Provider access config ### require 'yaml' aws_config = YAML.load_file("../aws-config.yml")['aws'] ## of import AWS Provider access config ### Vagrant configuration block ### #################################### Vagrant.configure(2) do config ### AWS Provider config block ### ############################################# config.vm.box = "dummy" config.vm.define :node0 do node0 node0.vm.provider :aws do aws,override aws.ami = "ami-1c2e8b6b" aws.instance_type = "t1.micro" override.ssh.username = "ec2-user" end ##--- Chef binding --- node0.vm.provision "chef_solo" do chef chef.cookbooks_path = "../recipes/cookbooks/" chef.roles_path = "." chef.add_role "node0" chef.synced_folder_type = "rsync" end #<-- end of chef binding config.vm.provider :aws do aws, override aws.access_key_id = aws_config["access_key_id"] aws.secret_access_key = aws_config["secret_access_key"] aws.keypair_name = aws_config["keypair_name"] aws.region = aws_config["region"] aws.security_groups = aws_config["security_groups"] aws.user_data = aws_config["user_data"] override.ssh.private_key_path = aws_config["pemfile"] override.nfs.functional = false end ## of AWS Provider config block end # -> End definition for machine: node0 config.vm.synced_folder "/home/vagrant/build-scripts/test-setup-... # -> Begin definition for machine: node1 config.vm.define :node1 do node1 node1.vm.provider :aws do aws,override aws.ami = "ami-1c2e8b6b" aws.instance_type = "t1.micro" override.ssh.username = "ec2-user" end ##--- Chef binding ---

Make it readable "node0" : { "hostname" : "node0", "box" : "centos7", "product" : { "name": "mariadb", "version": "10.0", "cnf_template" : "server1.cnf", "cnf_template_path": "/home/vagrant/cnf", "node1" : { "hostname" : "node1", "box" : "rhel7", "product" : { "name": "mysql", "version": "5.6", "cnf_template" : "server2.cnf", "cnf_template_path": "/home/vagrant//cnf" "node2" : { "hostname" : "node2", "box" : "centos7", "product" : { "name": "galera", "version": "5.5", "cnf_template" : "server-galera3.cnf", "cnf_template_path": "/home/vagrant//cnf"

boxes.json { "ubuntu_precise": { "provider": "virtualbox", "box": "chef/ubuntu-12.04", "platform": "ubuntu", "platform_version": "precise", "centos7" : { "provider": "aws", "ami": "ami-1c2e8b6b", "user": "ec2-user", "default_instance_type": "t1.micro", "platform": "centos", "platform_version": "7"

Repository description { "product": "mariadb", "version": "10.0", "repo": "http://yum.mariadb.org/10.0/centos5-amd64", "repo_key": "https://yum.mariadb.org/rpm-gpg-key-mariadb", "platform": "centos", "platform_version": 5 { "product": "mariadb", "version": "10.0.17", "repo": "http://yum.mariadb.org/10.0.17/centos5-amd64", "repo_key": "https://yum.mariadb.org/rpm-gpg-key-mariadb", "platform": "centos", "platform_version": 5 { "product": "mysql", "version": "5.6", "repo": "http://repo.mysql.com/yum/mysql-5.6-community/sles/12/x86_64", "repo_key": "http://repo.mysql.com/rpm-gpg-key-mysql", "platform": "sles", "platform_version": 12 We have a generator for MariaDB, MariaDB enterprise, MariaDB Galera, Maxscale, MySQL

Workflow write template './mdbc generate <name>' './mdbc up <name>' Get all needed info: './mdbc show ' Access machines: './mdbc ssh' or directly via 'ssh' './mdbc destory <name>'

Does it work? 9 and 25 machines configurations 40 test runs every day MariaDB, Maxscale, MariaDB enterprise, MariaDB-Galera VirtualBox, Amazon EC2, QEMU (plans: Docker, DigitalOcean) Developers like it: use./mdbci ssh and see all log, states, core dumps, use my env for debugging

Source https://github.com/osll/mdbci https://github.com:mariadb-corporation/mdbci-repositoryconfig Maxscale https://github.com/mariadb-corporation/maxscale https://mariadb.com/products/mariadb-maxscale