Traefik (pronounced like traffic) is a modern HTTP reverse proxy and load balancer made to deploy microservices with ease. It supports several backends (Docker, Swarm, Kubernetes, Marathon, Mesos, Consul, Etcd, Zookeeper, BoltDB, Eureka, Amazon DynamoDB, Rest API, file…) to manage its configuration automatically and dynamically. I wanted to deploy it on Kubernetes for its interesting features like: Connect to Kubernetes API to listen changes and perform on the fly updates Automatic SSL management through Let’s encrypt (SNI) Prometheus native integration HTTP/2 support I really like HAProxy, but in a Kubernetes case, it’s not the recommended solution because of its lake of features.
Continue reading

Kubernetes is an open-source system for automating deployment, scaling, and management of containerized applications. I’m using it for Nousmotards and decided to build an Ansible role for it to make it simpler to deploy. Why did I built it as other projects like Kargo already exists? I just wanted a simple and maintainable role based on CoreOS official documentation. That’s what I did: This role bootstrap a Kubernetes cluster based on CoreOS Container Linux for production usages.
Continue reading

As you certainly seen, the blog has been migrated :-). Visualy there is a big change and technically it’s the same. I was fed up about maintaining Wordpress with its stack (Nginx / php-fpm / MariaDB) for a mostly static blog. I was thinking about migrating from Wordpress to something in markdown since several years but didn’t know exactly which solution I wanted to choose. I really enjoyed using Wordpress but wanted to keep hands on my blog and didn’t want to switch to full hosted Wordpress because of its limitations (image size etc…).
Continue reading

  CoreOS is a lightweight Linux operating system designed for clustered deployments providing automation, security, and scalability for your most critical applications. I’ve been playing with CoreOS to replace Debian hosts which run Docker containers on Nousmotards project. CoreOS helps on simplifying bare metal deployment and avoid managing OS upgrade. As I’m still an Ansible lover, I’ve made 2 roles: CoreOS Ansible: Ansible role to deploy pypy to CoreOS to be able to get Ansible prerequisites CoreOS: Ansible CoreOS role to deploy CoreOS on bare metal servers If you want to quickly look at the result:
Continue reading

Long time since my last post. This one is not very technical post, but it’s a nice to have solution if you use grep usually. Are not you fed up to type vim and search the line after a grep command ? If yes, this post is for you. First of all, you may know that an alternative more user friendly to grep exist, called ag (perf comparison). I really like ag and grep, but something make me loose my time since several years and I’m pretty sure it’s your case too.
Continue reading

Some of you may not be familiar with the terms “Rolling upgrade” or “Rolling restart”. This is the action of upgrading or restarting a cluster without service interruption (alias zero downtime). In most cases, this is done node by node, but in fact it depends of the technology you’re managing and the number of active nodes in your cluster. At Nousmotards we have several Java Spring Boot applications running. Restarting one application can take up to 1 min.
Continue reading

  In my previous post, I talked about how to speed up reads and writes coupling Redis with Neo4J. Now I want to share with you how it’s possible to unload your server and use Elasticsearch to speed up news feed and user wall. 1/ Show me your news feed A news feed is the main page of traditional social networks. Its main goal is to show you all recents updates from your friends and your interests.
Continue reading

Author's picture

Pierre Mavro / Deimosfr


SRE Lead DevOps at Criteo  •  Nousmotards Co-Founder

Paris - France