Meetup #15 @BlaBlacar: Persistent storage and testing strategies with k8s

About this event

Let's begin 2018 with a meetup !

This first meetup of 2018 will be hosted by Blablacar. We would like to thank them for their sponsoring.

Please find the agenda below:

Building an end-to-end testing strategy on top of Kubernetes in a world of microservices.

Sébastien Lavallée:
Sébastien is a tech enthousiast. As a Senior backend developper, he worked on multiple architectures and languages granting him the ability to be a chameleon of the code. At meetic he is a Green Lantern of the developpers often looking out for good practices and the well being of the code.

Sébastien Le Gall:
As a tech lead backend, Sébastien works both on the Meetic microservices development using PHP, the event bus stack using Scala and the automatization concerning the development environments and the CI/CD chain. Sébastien also use Go a lot when it comes to build tooling that make the developers life better.

3 years ago, Meetic chose to rebuild it's backend architecture using microservices and an event driven strategy. As we where moving along our old legacy application, testing features became gradually a pain, especially when those features rely on multiple changes across multiple components. Whatever the number of application you manage, unit testing is easy, as well as functional testing on a microservice. A good gherkin framework and a set of docker container can do the job. The real challenge is set in end-to-end testing even more when a feature can involve up to 60 different components.

To solve that issue, Meetic is building a Kubernetes strategy around testing. To do such a thing we need to :

- Be able to generate a docker container for each pull-request on any component of the stack
- Be able to create a full testing environment in the simplest way
- Be able to launch automated test on this newly created environment
- Have a clean-up process to destroy testing environment after tests To separate the various testing environment, we chose to use Kubernetes Namespaces each containing a variant of the Meetic stack. But when it comes to Kubernetes, managing multiple namespaces can be hard. Yaml configuration files need to be shared in a way that each people / automated job can access to them and modify them without impacting others.

This is typically why Meetic chose to develop it's own tool to manage namespace through a cli tool, or a REST API on which we can plug a friendly UI.

In this talk we will tell you the story of our CI/CD evolution to satisfy the need to create a docker container for each new pull request. And we will show you how to make end-to-end testing easier using Blackbeard, the tool we developed to handle the need to manage namespaces inspired by Helm.

Persistent Storage with Kubernetes in Production - Which Solution and Why? SPEAKER:
Cheryl Hung:
Product manager, StorageOS
Cheryl is an ex-Google software engineer with a passion for developer tools, experience and community. She founded the Cloud Native London meetup and codes, writes and speaks about containers, storage and cloud computing.

Persistent storage often seems like a confusing plethora of options, from local volumes, NFS, distributed storage like Ceph, cloud storage such as AWS’s EBS and S3, to volume plugins with Docker and Kubernetes integration. This talk compares and contrasts the most popular solutions, and lays out the eight principles for cloud native storage.

Hope to see you there :)
The CNCP organization team


Tuesday, Jan 16
7:00 PM - 9:30 PM (CET)


6 rue Ménars Paris