How we deploy new features
There’s been some recent discussion about rolling out new features. Ross at Flickr talked about using flags and flippers. Forrst mentioned their use of user buckets. The nice thing about…
There’s been some recent discussion about rolling out new features. Ross at Flickr talked about using flags and flippers. Forrst mentioned their use of user buckets.
The nice thing about these techniques is that they’re simple and easy to tweak to meet your specific needs. Before launching Orgs, we relied on user feature flags to determine which users had beta access. However, we didn’t want to worry about enabling Orgs for all of the user’s fellow team members. This lead to a few UI if statements like this:
<% if @user.has_orgs? || @user.organizations.size > 0 -%>
<a href="...">Organizations</a><!-- link to organizations tab -->
We deploy a lot, but I don’t like littering the commit history with small configuration tweaks.
Replacing the Downloads server recently gave me a chance to try a slightly new technique: Using Redis for configuration management:
def use_nodeload?
case GitHub::Config[:nodeload]
when 'public' then current_repository.public?
when 'all' then true
else false
end
end
At one point, I was even sending a percentage of traffic to the new server to see how it handled things. If there were bugs, I could easily tweak the value in Redis without redeploying anything. If we need buckets, we could use Redis’ awesome Set commands.
![](https://github.blog/wp-content/uploads/2010/07/20100708-r5rqp4gch9fx5rqqrf3i4m9hhn.jpg)
Written by
Related posts
![](https://github.blog/wp-content/uploads/2023/09/screencapture-innovationgraph-github-2023-09-20-15_44_54-1.png?resize=400%2C212)
How researchers are using GitHub Innovation Graph data to estimate the impact of ChatGPT
An interview with economic researchers who are applying causal inference techniques to analyze the effect of generative AI tools on software development activity.
![](https://github.blog/wp-content/uploads/2024/01/Enterprise-DarkMode-1.png?resize=400%2C212)
GitHub Availability Report: June 2024
In June, we experienced two incidents that resulted in degraded performance across GitHub services.
![](https://github.blog/wp-content/uploads/2024/06/AI-DarkMode-4.png?resize=400%2C212)
Advancing responsible practices for open source AI
Outcomes from the Partnership on AI and GitHub workshop.