Note di Matteo


Note

Interessante il postmortem di Incident.io per l'outage AWS di ottobre in us-east-1:

We’re hosted in multiple regions of Google Cloud and so the majority of our product was unaffected by the outage. However, we do depend on third parties for some aspects of our platform, who themselves are hosted in AWS, or have their own dependencies that are.

Il paradosso è che Incident.io serve proprio nelle occasioni in cui ci sono outage, e molte feature avevano problemi, incluso il sistema di autenticazione, il bot di trascrizione dei meeting, le notifiche via SMS e le chiamate, ma soprattutto l'impossibilità di fare deployment di codice perché Docker Hub era offline.

We use Google Container Registry to host our built docker images, which wasn’t impacted by the AWS outage at all, so we were surprised to see failures. We quickly realised however, that the issue actually lay with our base image (golang-1.24.9-alpine). Crucially, this resolved to a Docker registry image, and Docker runs their registry on AWS.

I tentativi di aggirare il problema non sono andati a buon fine e non c'erano nell'immediato alternative che non avessero una dipendenza su AWS.

Differentemente il servizio Ably (API realtime) aveva un sistema multi-region che è funzionato correttamente:

During this week’s AWS us-east-1 outage, Ably maintained full service continuity with no customer impact. This was our multi-region architecture working exactly as designed; error rates were negligibly low and unchanged throughout.

#186 /
30 novembre 2025
/
11:53
/ #cloud#aws

E la Svizzera invece ha ora una posizione ufficiale sull'evitare i servizi cloud USA all'interno delle autorità statali:

The Conference of Swiss Data Protection Officers, Privatim, has severely restricted the usability of international cloud services – particularly hyperscalers like AWS, Google, or Microsoft – for federal authorities in a resolution. At its core, the resolution from Monday amounts to a de facto ban on the use of these services as comprehensive Software-as-a-Service (SaaS) solutions whenever particularly sensitive or legally confidential personal data is involved. For the most part, authorities will likely only be able to use applications like the widespread Microsoft 365 as online storage.

#185 /
30 novembre 2025
/
11:41
/ #cloud

Questione da tenere d'occhio: una sentenza in Canada chiede a OVHcloud di fornire dati sotto il controllo della parent company globale di OVH, con sede in Francia. Fornire quei dati sarebbe illegale per la legge francese, ma se OVH non si rende conforme alla sentenza starebbe violando la legge canadese. Dove è presente con un'entità locale indipendente per i servizi cloud.

#184 /
30 novembre 2025
/
11:39
/ #cloud#ovh

A volte Codex CLI è veramente stupido:

I need to inspect each file that imports '$lib/app/responses/domains-groups', but I failed due to quoting the route path incorrectly. I haven’t modified anything yet.

E si ferma.

#183 /
29 novembre 2025
/
16:17
/ #ai#openai#codex

Ennesima prova che la città 30 funziona. Dati di Bologna nel primo anno (2024):

  • -13% incidenti
  • -50% morti
  • -11% feriti
  • -30% feriti in codice rosso
  • -13% flussi veicolari
  • +10% flussi di biciclette
  • +30% uso urbano del sistema ferroviario
  • il tempo di viaggio medio in auto aumenta in quantità irrilevante, da 16 minuti a 16 minuti e 54 secondi
  • nessun aumento dell'inquinamento atmosferico, NO2 -31%
  • limite rispettato nel 60% dei casi a un anno dall'inizio, in linea con Amsterdam
  • nessuna variazione nei tempi di percorrenza delle ambulanze
#182 /
28 novembre 2025
/
23:03
/ #mobilità

Assurdi i numeri del blocco spoofing mobile:

Un altro operatore ha fornito anche il totale delle chiamate. Dal 19 al 23 novembre, su un totale di 17 milioni, 8,3 milioni sono state chiamate spoofing annullate dal filtro. 1,7 milioni al giorno. Circa il 50%. [...]

Per una telco ci sono solo i dati del 21 novembre, e sono impressionanti. Su circa 3,15 milioni di chiamate mobili, 2,9 milioni sono state bloccate, ovverosia circa il 90% delle chiamate ricevute.

Un altro gestore, tra il 20 e il 23, ha bloccato circa 650.000 chiamate su un totale di circa 940.000 chiamate da mobile. Anche qui siamo su una percentuale molto alta, circa il 70%.

(DDay)

#181 /
25 novembre 2025
/
17:23

Video.js 10

Nel 2026 uscirà Video.js 10, nuova versione dell'ultrapopolare player video JavaScript. Sarà essenzialmente riprogettato fondendo concetti di Plyr, Media Chrome e Vidstack per renderlo compatibile con lo sviluppo moderno a componenti/React.

#180 /
25 novembre 2025
/
09:54
/ #video#web-dev

Statistiche CDN77:

Hit a new daily peak, serving over 20M HTTP requests per second straight from our CDN77 network.

20M. Every second.

Wild. And our Logs team (data & storage eng): "Ok, nice benchmark, give us more". Respect!

We store logs with 1+2 redundancy.

That is 60 000 000 lines per second. The fun's only beginning.

#179 /
24 novembre 2025
/
15:05
/ #cdn

It’s human nature to provoke especially if it has no consequences. On X being a provocateur comes with financial reward. So of course civility breaks down and discourse becomes increasingly toxic because you make money with little to no social consequences.

You can either have constructive, civil discourse with context of identity, be rewarded for putting your neck on the line or preserve your privacy & anonymity, continue to be a provocateur but with nothing to gain from it.

You just have to stop incentivizing anonymous posting with $$$.

Apoorva Govind

#178 /
24 novembre 2025
/
15:04
/ #internet#social

Dal postmortem di Cloudflare:

Il motivo delle fluttuazioni iniziali di errori 5xx è dovuto al deployment di un file di configurazione errato del "bot score" della Bot Protection:

As a result, every five minutes there was a chance of either a good or a bad set of configuration files being generated and rapidly propagated across the network.

E infine veniva sempre deployato il file errato, globalmente e istantaneamente (la stessa causa di altri precedenti outage globali di Cloudflare):

The model takes as input a “feature” configuration file. A feature, in this context, is an individual trait used by the machine learning model to make a prediction about whether the request was automated or not. The feature configuration file is a collection of individual features.

This feature file is refreshed every few minutes and published to our entire network and allows us to react to variations in traffic flows across the Internet. It allows us to react to new types of bots and new bot attacks. So it’s critical that it is rolled out frequently and rapidly as bad actors change their tactics quickly.

Il motivo per cui alcuni siti non erano affetti:

Customers deployed on the new FL2 proxy engine, observed HTTP 5xx errors. Customers on our old proxy engine, known as FL, did not see errors, but bot scores were not generated correctly, resulting in all traffic receiving a bot score of zero. Customers that had rules deployed to block bots would have seen large numbers of false positives.

Il file di configurazione conteneva dei dati errati perché per via di un cambio di configurazione la query ClickHouse estraeva più dati del dovuto. Il proxy edge lanciava un'eccezione perché non si aspettava quella quantità di dati:

Cosa c'era quindi che non andava:

  • La query era errata (ok, può capitare).
  • Non c'era validazione dell'output della query (feature duplicate), che finiva quindi direttamente deployato globalmente, a quanto pare.
  • Sull'edge c'era un limite fisso di 200 feature attese, ma non c'era nessuna validazione che il file ne avesse effettivamente di meno.
  • Non c'era nemmeno "fail safe" nel caso in cui succedesse.

EDIT: su Hacker News osservazioni molto simili:

They failed on so many levels here.

How can you write the proxy without handling the config containing more than the maximum features limit you set yourself?

How can the database export query not have a limit set if there is a hard limit on number of features?

Why do they do non-critical changes in production before testing in a stage environment?

Why did they think this was a cyberattack and only after two hours realize it was the config file?

Why are they that afraid of a botnet? Does not leave me confident that they will handle the next Aisuru attack.

#172 /
19 novembre 2025
/
11:08
/ #cloudflare#cdn

Anche Resend durante l'outage Cloudflare ha iniziato a lavorare per sostituire Cloudflare con AWS CloudFront, ma alla fine non l'ha fatto e preferisce avere l'edge AWS (dove c'è il resto dell'infrastruttura) solo come failover.

The CloudFront solution was not deployed, but the runbook was created. If the incident were to recur, we could switch to the fallback within 60 seconds. We continued to monitor and then closed the status page.

#171 /
19 novembre 2025
/
09:35
/ #cloudflare#cdn#cloud

Rivoluzione dei prezzi di AWS CloudFront, 50 TB per 15$ (in su), prima sarebbe costato oltre 4.000 $:

#170 /
19 novembre 2025
/
09:33
/ #aws#cdn

Di recente Google ha cambiato la policy di peering per quanto riguarda Google Cloud e YouTube:

  • Niente più nuovi peering negli IXP pubblici.
  • PNI min. 100 Gbps su traffico minimo di 10 Gbps di picco (settlement free).
  • Per tutto il resto il consiglio è di affidarsi a uno degli ISP "certificati" di questa lista (IP transit a pagamento, presumo), che hanno almeno due interconnessioni in almeno un'area metropolitana di Google.

(video)

Private peering allows a network to connect directly with Google over a dedicated physical link known as a private network interconnect (PNI).

Google offers 100G and 400G private peering (PNI) at the facilities listed in our PeeringDB entry. Note that this type of direct peering occurs at common physical locations, and both Google and any peering network bear their own costs in reaching any such location.

Google no longer accepts new peering requests at internet exchanges (IXPs). However, Google maintains dedicated connectivity to the internet exchanges (IXPs) listed in our PeeringDB entry. We also maintain existing BGP sessions across internet exchanges where we are connected. For networks who do not meet our PNI requirements Google will serve those networks via indirect paths.

(peering.google.com)

#169 /
18 novembre 2025
/
22:42
/ #reti#google

Altra testimonianza di come il routing Cloudflare sia pessimo sui piani più economici (producendo 150+ ms di latenza evitabile scegliendo nodi a migliaia di km di distanza), un problema che essenzialmente non esiste con le altre CDN:

#168 /
18 novembre 2025
/
20:48
/ #cloudflare#cdn

In my experience, the people who are excited about AI art also happen to be some of the most talentless fucking people I've ever met. They're middle managers, executives, or marketers whose LinkedIn bio reads: "I'm the Chief Brand Officer of User Engagement at DataRectal, but what I really am is a storyteller".

AI art is an interesting technology because despite its growing popularity, nobody seems to want it.

Matthew Inman, fumettista, in un fumetto sulle immagini/video generati con AI.

#167 /
18 novembre 2025
/
18:29
/ #ai

A dimostrazione di #164, ho notato che diversi siti hanno disattivato Cloudflare visto il prolungarsi dei problemi: Mailtrap, Instatus, X. E allora cosa era lì a fare?

#165 /
18 novembre 2025
/
15:23
/ #cdn#cloudflare

Cloudflare KO da quasi due ore e la differenza rispetto a quando us-east-1 di AWS è down è che i disservizi Cloudflare tendono ad essere globali e quindi più impattanti.

La quantità di siti impattati che sto osservando mi sembra maggiore rispetto all'outage AWS del mese scorso. A questo giro noto cloud provider con i siti in crisi (Netsons), servizi di status page (Instatus), di rilevamento errori (Bugsnag), di invio email (Mailtrap, Resend) che usano Cloudflare magari senza nemmeno averne bisogno, magari perché "lo usano tutti", "costa poco", e senza un'adeguata valutazione di cosa comporta far passare l'intero traffico non cifrato attraverso un'azienda che non ha una reputazione di affidabilità. A questo giro anche ChatGPT, X e N26.

Magari anche con l'illusione che Cloudflare serva a qualcosa out of the box nel gestire gli attacchi DDoS. Non lo è: gli attacchi L3/L4 li gestisce tipicamente ogni provider di rilievo (almeno fino a una certa scala) e non è per questo necessario Cloudflare, mentre è noto a chi ci è passato che Cloudflare ha l'abitudine di passare alla origin gli attacchi L7 anche significativi (decine di migliaia di richieste al secondo), fuori pattern e con origin palesemente in crisi. Di certo è un utile, flessibile e soprattutto accessibile firewall edge a scalabilità infinita che avrebbe bisogno di più competizione.

#164 /
18 novembre 2025
/
14:42
/ #cdn#cloud#cloudflare

La region OVHcloud di Milano con 3 AZ è live.

#163 /
18 novembre 2025
/
12:08
/ #cloud#ovh

Review your own git pull requests

When you create a pull request in GitHub, click on the Files changed tab, and scroll through the diff. Anywhere you’ve done something new that’s not already explained by in-code comments, add a comment in the GUI about what you did and why.

  • Often, it’s stuff that’s not important enough for in-code commentary, but is useful for the reviewer to know.
  • Sometimes, it’s stuff that should actually be documented in the code, and this is a good time to go back and add it.
  • Every now and then, you’ll notice a bug in your own code because you’re reading it with fresh eyes, in a different format than your text editor.

It’s a simple behavior change that adds maybe 5 or 10 minutes to the time it takes to setup a PR, but it’s saved me so many headaches, and makes life for whoever reviews your PR a lot easier, too!

(Chris Ferdinandi)

#161 /
17 novembre 2025
/
22:56
/ #dev#git