~/talk

Have I Been Pwned: Serving billions of requests and terabytes of data without going broke!

Talkat NDC Oslo 2023 · 2023-05-22..05-26· [devops-and-delivery, security]
slides:none on file

Have I Been Pwned’s Pwned Passwords API grows to about 5 billion requests per month and stores ~850 million password hashes (~126 TB transferred if uncached), which would cost >$12,600/month on Azure. The solution uses Cloudflare CDN, Cloudflare Cache Reserve (R2) in front of Azure Blob/Table storage and Azure Functions with URL normalization and pre-compression to preserve Content-Length. After changes cache hit reaches 99.9999%, monthly cost drops to roughly $16.50, a ~99% saving; caveats include CDN item-size limits (15 GB) and the need for cache invalidation.

AI-written summary · about

  1. 0:00Start
  2. 2:02Law enforcement and governments
  3. 4:27Pwned Passwords API
  4. 8:09"hunter2" - A short story from IRC
  5. 8:56"hunter2" example
  6. 9:41Core Hosting Environment
  7. 14:45Cloudflare Caching
  8. 17:01Initial Implementation Results
  9. 17:39Great success!
  10. 18:14What happened?
  11. 22:22New problems
  12. 23:18How can we get the hit rate back up
  13. 23:41How does it work?
  14. 24:22Cache Reserve Requirements
  15. 25:01The case of the missing Content-Length
  16. 28:03Compress the response before Azure does!
  17. 29:51Let's wrap it up!
  18. 31:39Recap
  19. 34:38Questions?
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.