Search code examples
agileproduction-environmentrelease-management

How do companies like facebook release features slowly to portions of their user base?


I like how facebook releases features incrementally and not all at once to their entire user base. I get that this can be replicated with a bunch if statements smattered all throughout your code, but there needs to be a better way to do this. Perhaps that really is all they are doing, but that seems rather inelegant. Does anyone know if there is an industry standard for an architecture than can incrementally release features to portions of a user base?

On that same note, I have a feeling that all of their employees see an entirely different completely beta view of the site. So it seems that they are able to deem certain portions of their website as beta and others as production and have some sort of access control list to guide what people see? That seems like it would be slow.

Thanks!


Solution

  • Facebook has a lot of servers so they can apply new features only on some of them. Also they have some servers where they test new features before commiting to the production.