WIP articles

This commit is contained in:
Quentin 2024-02-22 20:19:39 +01:00
parent d46fc4ee01
commit 65ec82dd13
Signed by: quentin
GPG key ID: E9602264D639FF68
4 changed files with 115 additions and 0 deletions

View file

@ -0,0 +1,57 @@
+++
title="Aerogramme in the modern email track at FOSDEM'24"
date=2024-02-05
+++
*FOSDEM is the European conference for FLOSS developpers. It was the first time Aerogramme was discussed publicly.
If you missed the presentation, a recording and the slides are available.*
<!-- more -->
---
## Recording
<div class="video">
<video controls="controls" width="75%">
<source src="https://video.fosdem.org/2024/h2213/fosdem-2024-2642--servers-aerogramme-a-multi-region-imap-server.av1.webm" type="video/webm; codecs=&quot;av01.0.08M.08.0.110.01.01.01.0&quot;">
<source src="https://video.fosdem.org/2024/h2213/fosdem-2024-2642--servers-aerogramme-a-multi-region-imap-server.mp4" type="video/mp4">
</video>
</div>
## Transcript
*(slide 1)* Aerogramme is a multi-region IMAP server, in this talk we will discuss what a "multi-region IMAP server" means and why it's important.
*(slide 2)*
Let's start with some context, my name is Quentin. I have a PhD in distributed system,
and this talk will be a lot about PhD distributed system because something I know.
I try to work as much as possible for a collective named Deuxfleurs where we try to build a low-tech Internet.
If you want to know more about our project, check yesterday talk about Garage.
Aerogramme is part of Deuxfleurs' strategy, and a very nice thing, this project is supported by NLnet.
*(slide 3)*
First, the problem we want to solve: we want to make other people available when it would be otherwise
impossible (due to geographical distances for example). We can achieve this goal only if the underlying system is working:
so we will talk a lot about availability and reliability.
*(slide 4)*
Today's talk is about 3 main ideas: 1) we should not trust the cloud & hosting providers as they can fail. 2) there is some space to explore alternative IMAP server designs and 3) and finally I will try to convince you that such new designs can work in the real life
*(slide 5)*
In the title talk, I speak about "multi-region", and so we must define first what is a "region".
On the slide is depicted the Google Cloud Platform (GCP) region in Paris: it's made of 3 datacenters.
Last april, the whole region, the 3 datacenters were unavailable for 3 weeks.
The outage lasted for 3 weeks for some services, and it was due to a fire in one datacenter.
And due to tight connections between the 3 datacenters, the 2 others ones were unusable due to a software problem.
3 weeks without emails, you imagine it can make your life very hard if you need to do some important stuff, like seeking a new job.
*(rest of the transcript is missing currently)*
## Links
- [Download Slides](https://fosdem.org/2024/events/attachments/fosdem-2024-2642--servers-aerogramme-a-multi-region-imap-server/slides/22665/aerogramme_vmnrj3Q.pdf)
- [Aerogramme Talk Page](https://fosdem.org/2024/schedule/event/fosdem-2024-2642--servers-aerogramme-a-multi-region-imap-server/)
- [Modern Email Track](https://fosdem.org/2024/schedule/track/modern-email/)
- [2024 edition main page](https://fosdem.org/2024/)

Binary file not shown.

After

Width:  |  Height:  |  Size: 76 KiB

View file

@ -0,0 +1,58 @@
+++
title="Aerogramme 0.2.2: predictability & user testing"
date=2024-02-22
+++
*Let's review how Aerogramme performances became more predictable, why it's important, and showcase how user testing helped surface bugs.*
<!-- more -->
---
This minor version of Aerogramme put the focus on 2 aspects of the software: predictable performances & collecting user feedbacks.
In the following, I describe both aspect in details.
## More predictable performances
![Fetch resource usage for Aerograme 0.2.1 & 0.2.2](fetch-full.png)
![Search resource usage for Aerograme 0.2.1 & 0.2.2](search-full.png)
*TODO AWS SDK*
## Users feedbacks
*Dovecot AUTH continuation inlining* - When a username + password is short,
the Dovecot SASL Auth protocol allows the client (here Postfix)
to send the base64 inlined, without having to wait for the continuation.
It was not supported by Aerogramme and was preventing some users from authenticating.
*Pipelining limits (reported by Nicolas)* - Pipeling limit set to 3.
Avoiding DoS resources. But failing some honest clients like Mutt.
Bumped to 64, will be watched in the next months.
*SASL Auth subtleties (reported by Nicolas)* - Authorization can be empty, or can be set to the same value as Authentication.
Second case not handled but required by Fair Email (thx Nicolas)
*Thunderbird Autodiscovery issues (reported by LX & Nicolas)* - K9 stable does not support `%EMAILLOCALPART%`.
K9 beta (6.714) does not support some values marked as obsolete in the `authentication` field: `plain` is not supported anymore, `password-cleartext` must be used instead.
Content-Type is important also, if a wrong one is sent, content is silently ignored by some clients.
*Broken LITERAL+ (reported by Maxime)* - It was not possible to copy more than one email at once to an Aerogramme mailbox.
It was due to the fact we were using an old version of imap-flow that was not correctly supporting LITERAL+.
Upgrading imap-flow to the latest version fixed the problem.
*Broken IDLE (reported by Maxime)* - After updating imap-flow, we started noticing some timeouts in Thunderbird due to IDLE bugs.
When IDLE was implemented in Aerogramme, the code was not ready in imap-flow,
and thus I used some hacks. But upgrading the library broke my hacks for the best: now
imap-flow supports IDLE out of the box, and thus Aerogramme code is now cleaner and more maintainable.
Some others quality of life feedbacks not reported here have been made by MrFlos & Nicolas, thanks to all the people that took part in this debugging adventure.
## Download and test the new version
```
docker run registry.deuxfleurs.org/aerogramme:0.2.2
```
[Download](/download/) - [Changelog](#)

Binary file not shown.

After

Width:  |  Height:  |  Size: 76 KiB