Splitting Light: Season 2 - Episode 33


Splitting light

Season 2 Episode 33

Over-engineering bandwidth

If you are no longer interested in the newsletter, please unsubscribe​

Late February 2019

​
The second element was to bill the bandwidth. Specifically the outgoing one.

In my original design of the billing component I had thought that we needed a “high performing” database to handle the bandwidth calculations. I had chosen ScyllaDB because friends had good things to say about it. It was a reimplementation of Cassandra but in C++. The problem, for us, was that no one in the team had used Cassandra or ScyllaDB in the first place. We had to learn how to install it, how to connect to it and how to perform requests to it.

The idea behind using that database was to capture every request’s metadata. For a GET that would be the number of bytes from a bucket sent back. Store this metadata and then process it aggregated according to IP ranges. With this we could bill depending on the destination IP range.

Marian (a) worked on this. It was not easy. The querying syntax was harder. My instructions were not clear. The other element was actually capturing those metadata. This required careful hooking into the OpenStack code. We would send the metadata over UDP, for the same reason as logs. I would rather have a free working cluster than a paying non-functioning one. When Alexandre (b) stepped in to help, he assessed that we didn’t need ScyllaDB. So we swapped it for a postgres. Simple database, simple inserts.

I remember creating the query to aggregate requests based on the bucket and user identifier. Bucketing the data by ip range. It was not a simple request but it worked. I had exported the ranges from the DCIM and inserted them inside the postgres database.

Why did we want to capture and then process? Why did we want a two step logic? That was in case we made a mistake with IP ranges. We would be able to re-compute the aggregated telemetry. We quickly pushed to production.

I was disappointed in Marian. But that was entirely my fault. I had too high expectations for a student. I had pushed a very complex subject to him. With no help. Maybe part of it was the competition between Epitech and School 42? I thought because he was from Epitech he would have succeeded in doing a very senior task?

The real problem was that I didn’t allocate time and attention properly. It’s now my deepest regret of that first half of 2019. Not taking the time to lift people up to their potential.

Next we needed to push Paris forward.

(1) Picture of Scaleway’s Lille office: https://officesnapshots.com/2019/09/16/scaleway-offices-lille/​

(a) Marian Gappa: then part time intern, now DevOps consultant at Zenika

(b) Alexandre Merle: then DevOps, now Software engineer

If you have missed it, you can read the previous episode here​

To pair with :

  • All your love - Jakob
  • Confessions d'une Glitter Addict (Not translated to English) by Diglee

Vincent Auclair

Connect with me on your favorite network!

​

Payson, Payson, AZ 85541
​Unsubscribe · Preferences​

Symbol Sled

Business, tech, and life by a nerd. New every Tuesday: Splitting Light: The Prism of Growth and Discovery.

Read more from Symbol Sled

Splitting light Season 3 Episode 15 Covid19 bracket If you are no longer interested in the newsletter, please unsubscribe March to June 2020 Covid19 fell upon us. Interestingly a few days before the first lockdown, both Djazia and I got very sick. Most likely Covid. For me, this pandemic changed my life in ways I did not expect. For the first time I started to work remotely, like everyone who had a desk job. Even though I had had a work laptop since I had joined Scaleway it was the first time...

Direct and Indirect usage of Object storage

Splitting light Season 3 Episode 14 Attribution If you are no longer interested in the newsletter, please unsubscribe March 2019 The object storage product is both a user facing product and an infrastructure product. The compute team used it to store images and client virtual machines backups. The registry used it to store container images. The databases team to store client database backups. And so on for nearly every product and service at Scaleway. Both direct and indirect usage of Object...

Splitting light Season 3 Episode 13 Bills reconciliation If you are no longer interested in the newsletter, please unsubscribe January to March 2019 When you have a complex system there are always going to be discrepancies between them. In our case the discrepancies were in the billing systems. We had five different data sources. None agreed on the numbers. Let me introduce our five systems. Observability of the disk usage as well as the incoming and outgoing bandwidth. The client...