Stan Chollet

Chapter Lead Core API @ Dailymotion

Orléans Tech / CNCF Paris

https://stan.life

Story

an opinionated way to launch common tasks on your project.

Stan Chollet - @tsunammis - https://stan.life

Gazr.io

from

to

PHP

800k lines of code

Python 2.x

Python 3.x

PHP 7

monolith architecture

micro-services architecture

Scala

Golang

...

from a 10 years old monolith to a brand new micro-service architecture

Why "Gazr"?

an opinionated way to launch common tasks on your project.

Stan Chollet - @tsunammis - https://stan.life

Gazr.io

from

to

monolith architecture

micro-services architecture

run tests

~$ phpunit src/*

09:55 AM

run tests

~$ phpunit src/*

run tests

~$ phpunit src/*

10:05 AM

11:52 AM

run tests

~$ phpunit src/*

02:45 PM

run tests

~$ phpunit src/*

04:36 PM

run tests on service #1 (PHP)

~$ phpunit src/*

09:55 AM

run tests on service #2 (Python)

~$ py.test -s tests .

run tests on service #3 (Python)

~$ python -m unittest app

10:05 AM

11:52 AM

run tests on service #4 (Golang)

~$ go test -run ''

02:45 PM

run tests on service #1 (PHP)

~$ phpunit ???

04:36 PM

Why "Gazr"?

an opinionated way to launch common tasks on your project.

Stan Chollet - @tsunammis - https://stan.life

Gazr.io

  • Hard to maintain a lot of different CI pipelines

  • Hard to deal with many technologies on our laptop

  • Onboarding process different from each team/project

How?

an opinionated way to launch common tasks on your project.

Stan Chollet - @tsunammis - https://stan.life

Gazr.io

A container runtime as the only dependency on the developer's laptop.

we are using docker

makefile as the global interface

# Check lint, code styling rules
make style

# Cyclomatic complexity check
make complexity

# Format code.
make format

# Launch test
make test

make test-unit
make test-functional
make test-integration

# Locally run the application
make run

# Hot reloading for development.
make watch

an opinionated way to launch common tasks on your project

How?

an opinionated way to launch common tasks on your project.

Stan Chollet - @tsunammis - https://stan.life

Gazr.io

What?

an opinionated way to launch common tasks on your project.

Stan Chollet - @tsunammis - https://stan.life

Gazr.io

  • Improve project and technology switching
  • Fast onboarding process for newcomers
  • Homogenize the CI Pipeline
  • Bring consistency between development and production environments

Now?

an opinionated way to launch common tasks on your project.

Stan Chollet - @tsunammis - https://stan.life

Gazr.io

run tests on service #1 (PHP)

~$ make test

09:55 AM

run tests on service #2 (Python)

~$ make test

run tests on service #3 (Python)

~$ make test

10:05 AM

11:52 AM

run tests on service #4 (Golang)

~$ make test

02:45 PM

run tests on service #1 (PHP)

~$ make test

04:36 PM

Thanks

https://gazr.io

@tsunammis

Gazr [Gather]

By Stan Chollet

Gazr [Gather]

gazr, pronounced "Gather", is an opinionated way to launch common tasks on your project.

  • 1,829