a next-gen continuous integration solution to improve software delivery

24
A Next-Gen Continuous Integration Solution to Improve Software Delivery Arnold Bechtoldt Karlsruhe, 28.04.2016

Upload: christina-rasimus

Post on 16-Apr-2017

82 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: A Next-Gen Continuous Integration Solution to Improve Software Delivery

A Next-Gen Continuous Integration Solution to Improve Software Delivery

Arnold Bechtoldt

Karlsruhe, 28.04.2016

Page 2: A Next-Gen Continuous Integration Solution to Improve Software Delivery

Arnold Bechtoldt Systems Engineer & Consultant @ inovex

〉  Software-Defined Datacenters

〉  Infrastructure as Code

〉  Continuous Integration/Delivery

〉  High Availability & Scale-Out

2

Page 3: A Next-Gen Continuous Integration Solution to Improve Software Delivery

Scenario

Page 4: A Next-Gen Continuous Integration Solution to Improve Software Delivery

〉  Groupware system 〉  Several components/languages/teams/feature sets

〉  Advanced architecture

The Product

4

Page 5: A Next-Gen Continuous Integration Solution to Improve Software Delivery

Test Matrix

5

Rails-FE

Mail-MW

Calendar-MW

DBMS

K/V 1

K/V 2

MDA Mail-Store

MDA IMAP/POP Proxy

Mail-FTS

MTA Mail-In

MTA Mail-Out

Customer Feature Set 1

Customer Feature Set 2

Customer Feature Set 3

Customer Feature Set 4

...

v1

v2

v3

v4

...

X X

Page 6: A Next-Gen Continuous Integration Solution to Improve Software Delivery

Stories from Real World

Page 7: A Next-Gen Continuous Integration Solution to Improve Software Delivery

We can‘t run integration tests in parallel.

Page 8: A Next-Gen Continuous Integration Solution to Improve Software Delivery

Running all of our tests takes ages.

Page 9: A Next-Gen Continuous Integration Solution to Improve Software Delivery

Our integration tests are fragile.

Page 10: A Next-Gen Continuous Integration Solution to Improve Software Delivery

Producing a bugfix release is hard work.

Page 11: A Next-Gen Continuous Integration Solution to Improve Software Delivery

Time For A Plan

Page 12: A Next-Gen Continuous Integration Solution to Improve Software Delivery

〉  Git-Pushes go to feature/bugfix branches 〉  Every Git-Push triggers a test

〉  Tests run in prod-like environments

〉  Tests run in isolated/dedicated environments

〉  Automate (almost) everything

〉  Increase & maintain (infra) test coverage

The Plan

12

Page 13: A Next-Gen Continuous Integration Solution to Improve Software Delivery

The Plan: Building A Private Travis CI Clone

13

Page 14: A Next-Gen Continuous Integration Solution to Improve Software Delivery

14

Gitlab Jenkins

CI Pipeline

Master

Git Push

Jenkins

Jenkins

Jenkins

Slaves

Artifactory

Hooks

Status Report

Docker-Compose

Parallelization (MatrixJob)

Job Groovy DSL

confd Dockerfile + Bash Script

Mac OS/Linux/Windows User

Page 15: A Next-Gen Continuous Integration Solution to Improve Software Delivery

Toolset

15

Tool Purpose Gitlab Git Repository Server Docker Container Technology Bash + Confd Image/Container Configuration Docker-Compose Container/Service Management Artifactory Artifact Repository Jenkins CI Pipeline

Page 16: A Next-Gen Continuous Integration Solution to Improve Software Delivery

Conclusions

Page 17: A Next-Gen Continuous Integration Solution to Improve Software Delivery

〉  Don‘t underestimate the effort for CI/CD preparation 〉  Isolated integration testing at ludicrous speed

〉  Infrastructure as Code improves documentation

〉  Similarity to production leads to faster bugfixing

〉  Parallel testing increases work efficiency

Conclusions

17

Page 18: A Next-Gen Continuous Integration Solution to Improve Software Delivery

A voice in my head..

18

Page 19: A Next-Gen Continuous Integration Solution to Improve Software Delivery
Page 20: A Next-Gen Continuous Integration Solution to Improve Software Delivery
Page 21: A Next-Gen Continuous Integration Solution to Improve Software Delivery
Page 22: A Next-Gen Continuous Integration Solution to Improve Software Delivery

22

We are hiring!

www.inovexperts.com

Page 23: A Next-Gen Continuous Integration Solution to Improve Software Delivery

Q&A

Page 24: A Next-Gen Continuous Integration Solution to Improve Software Delivery

Arnold Bechtoldt inovex GmbH

[email protected]

CC BY-NC-ND inovex.de +ArnoldBechtoldtGER

github.com/bechtoldt

arbe.io youtube.com/inovexGmbH