20
Ensuring MariaDB Server’s longevity, an open build system for the community Vlad Bogolin Developer @MariaDB Foundation MariaDB Day Brussels 02 February 2020

system for the community longevity, an open build Ensuring … · 2020-05-04 · No buildbot related configurations are necessary on the physical machines - only the build master

  • Upload
    others

  • View
    6

  • Download
    0

Embed Size (px)

Citation preview

Page 1: system for the community longevity, an open build Ensuring … · 2020-05-04 · No buildbot related configurations are necessary on the physical machines - only the build master

Ensuring MariaDB Server’s longevity, an open build system for the communityVlad BogolinDeveloper @MariaDB Foundation

MariaDB DayBrussels 02 February 2020

Page 2: system for the community longevity, an open build Ensuring … · 2020-05-04 · No buildbot related configurations are necessary on the physical machines - only the build master

Why do we need continuous integration and testing?

2Ensuring MariaDB Server’s longevityhttps://mariadb.org

Page 3: system for the community longevity, an open build Ensuring … · 2020-05-04 · No buildbot related configurations are necessary on the physical machines - only the build master

Benefits of continuous integration and automated testing

● Regularly integrating small code changes into the MariaDB server

● Run tests after each change○ Tests can be run on multiple platforms, ensuring that code changes

made on one platform do not cause failures on other platforms○ Lowers the risk of test failures involved with each push

3Ensuring MariaDB Server’s longevityhttps://mariadb.org

Page 4: system for the community longevity, an open build Ensuring … · 2020-05-04 · No buildbot related configurations are necessary on the physical machines - only the build master

Benefits of continuous integration and automated testing (2)

● Gives developers immediate feedback on their work

● Automated package management on multiple platforms

4Ensuring MariaDB Server’s longevityhttps://mariadb.org

Page 5: system for the community longevity, an open build Ensuring … · 2020-05-04 · No buildbot related configurations are necessary on the physical machines - only the build master

Challenges of continuous integration and automated testing

● The process can be repeated as frequently as available computing resources allow:○ Hardware availability- different architectures require different

physical machines

○ Time limitations - developers want to see the results as soon as possible

5Ensuring MariaDB Server’s longevityhttps://mariadb.org

Page 6: system for the community longevity, an open build Ensuring … · 2020-05-04 · No buildbot related configurations are necessary on the physical machines - only the build master

How testing is done for the MariaDB server?

6Ensuring MariaDB Server’s longevityhttps://mariadb.org

Page 7: system for the community longevity, an open build Ensuring … · 2020-05-04 · No buildbot related configurations are necessary on the physical machines - only the build master

● mysql-test-run is the standard testing toolkit for MariaDB Server

● Run queries against one or more servers and compare their output

to the expected one

● This checks both behaviour and data consistency

7

MariaDB server testing

Ensuring MariaDB Server’s longevityhttps://mariadb.org

Page 8: system for the community longevity, an open build Ensuring … · 2020-05-04 · No buildbot related configurations are necessary on the physical machines - only the build master

Continuous Integration and testing for MariaDB

8Ensuring MariaDB Server’s longevityhttps://mariadb.org

Page 9: system for the community longevity, an open build Ensuring … · 2020-05-04 · No buildbot related configurations are necessary on the physical machines - only the build master

9

Buildbot overview

Ensuring MariaDB Server’s longevityhttps://mariadb.org

*Picture used from buildbot.net

Page 10: system for the community longevity, an open build Ensuring … · 2020-05-04 · No buildbot related configurations are necessary on the physical machines - only the build master

● changes/repository

○ Any change that occurs in the source code (commit)

● build master

○ The process that checks for changes and schedules builds

● worker

○ The environment used for testing which is run on a physical machine

● build

○ The actual configuration that is tested

10

Buildbot keywords

Ensuring MariaDB Server’s longevityhttps://mariadb.org

Page 11: system for the community longevity, an open build Ensuring … · 2020-05-04 · No buildbot related configurations are necessary on the physical machines - only the build master

● Uses Docker

● Each worker is a docker container running on a host machine

● The worker process is started by the build master when a change

is detected

● The build environment is defined in dockerfiles

11

MariaDB buildbot configurations

Ensuring MariaDB Server’s longevityhttps://mariadb.org

Page 12: system for the community longevity, an open build Ensuring … · 2020-05-04 · No buildbot related configurations are necessary on the physical machines - only the build master

● Benefits of using docker

○ Dockerfiles provide an easy way of re-creating a testing

environment

○ No buildbot related configurations are necessary on the physical

machines - only the build master needs to be configured

■ Easy to add new hardware

● Challenges

○ Docker needs to be accessed remotely - ensure TLS authentication

12

MariaDB buildbot configurations (2)

Ensuring MariaDB Server’s longevityhttps://mariadb.org

Page 13: system for the community longevity, an open build Ensuring … · 2020-05-04 · No buildbot related configurations are necessary on the physical machines - only the build master

● Custom templates for main dashboards

13

MariaDB buildbot customizations

Ensuring MariaDB Server’s longevityhttps://mariadb.org

Page 14: system for the community longevity, an open build Ensuring … · 2020-05-04 · No buildbot related configurations are necessary on the physical machines - only the build master

14

MariaDB buildbot - buildbot.mariadb.org

Ensuring MariaDB Server’s longevityhttps://mariadb.org

Page 15: system for the community longevity, an open build Ensuring … · 2020-05-04 · No buildbot related configurations are necessary on the physical machines - only the build master

● Platforms:

○ x86_64, Power and ARM gracefully donated by

15

MariaDB buildbot - current platforms

Ensuring MariaDB Server’s longevityhttps://mariadb.org

Page 16: system for the community longevity, an open build Ensuring … · 2020-05-04 · No buildbot related configurations are necessary on the physical machines - only the build master

● Operating Systems

○ Debian, Ubuntu, CentOS, RHEL-7, Fedora, OpenSUSE, Windows

16

MariaDB buildbot - current operating systems

Ensuring MariaDB Server’s longevityhttps://mariadb.org

Page 17: system for the community longevity, an open build Ensuring … · 2020-05-04 · No buildbot related configurations are necessary on the physical machines - only the build master

● Running tests for pull-requests as well. Contributors can check the

correctness of their patches directly on GitHub!

17

MariaDB buildbot - GitHub integration

Ensuring MariaDB Server’s longevityhttps://mariadb.org

Page 18: system for the community longevity, an open build Ensuring … · 2020-05-04 · No buildbot related configurations are necessary on the physical machines - only the build master

● More build configurations, operating systems and platforms

● Gated branches

● Automated packaging

● Cross-reference tool

○ allows searching for test failures in previous test runs

18

MariaDB buildbot - coming soon

Ensuring MariaDB Server’s longevityhttps://mariadb.org

Page 19: system for the community longevity, an open build Ensuring … · 2020-05-04 · No buildbot related configurations are necessary on the physical machines - only the build master

Questions?

19Ensuring MariaDB Server’s longevityhttps://mariadb.org

Page 20: system for the community longevity, an open build Ensuring … · 2020-05-04 · No buildbot related configurations are necessary on the physical machines - only the build master

20

Sponsors

Ensuring MariaDB Server’s longevityhttps://mariadb.org