logoalt Hacker News

toast0today at 11:23 AM0 repliesview on HN

> I cannot imagine any reason why somebody would want to use RELEASE for production.

I used FreeBSD at Yahoo and WhatsApp, using RELEASE at both. I'm sure there were some times where some groups were running other than RELEASE (and they were running Yahoo builds anyway), but at both places when I was there, we didn't have habit of upgrading the OS. To my knowledge, none of the servers I ran at Yahoo had an OS update installed, I'm not sure there was a procedure; we would get a server it would have the then latest Y! FreeBSD build, we would install our stuff and go for 3-5 years until the server was sent to recycling. Most of our servers never rebooted.

That pattern doesn't really fly today, lots of kernel security fixes and what nots, so you've got to do updates and reboots. At the time, running a miminal kernel and minimal services meant most security updates were for things not on our machines or could be updated without rebooting or doing a full upgrade cycle.

Using RELEASE makes it easy to understand what host has what, rather than -STABLE from whatever day it was installed. This is pretty handy when you've got a mixed fleet of whatever was current when they were installed.

Towards the end of my time at WhatsApp, I did work on keeping our fleet more current, mostly because we had more servers where they didn't need hardware upgrades for a long time, so they didn't get OS refeshes. Running 4 different major versions is irritating in ways that are most easily addressed by doing the upgrade work.

The only time we ran outside of -RELEASE at WhatsApp was very ocassionally to confirm kernel patches we wanted to upstream, but we didn't have a lot of patches, not all of them were important to upstream, and many of them didn't need a report from CURRENT.

Some releases would have important upgrades that really helped some workloads so we'd push those, but at least I would find those out from reading release notes, not following development closely. Or sometimes we'd find out by accident... if a server lost its disk and we set up the replacement with a newer release and perf was significantly different, we'd try to figure out what changed and if perf was better, we might upgrade the other servers for that workload.