PHPNews

Removing jQuery from GitHub.com frontend

We have recently completed a milestone where we were able to drop jQuery as a dependency of the frontend code for GitHub.com. This marks the end of a gradual, years-long transition of increasingly decoupling from jQuery until we were able to completely remove the library. In this post, we will explain a bit of history …

Continue reading »

Written by GitHub Engineering - - Aggregated on Thursday September 6, 2018


GLB: GitHub’s open source load balancer

At GitHub, we serve tens of thousands of requests every second out of our network edge, operating on GitHub’s metal cloud . We’ve previously introduced GLB , our scalable load balancing solution for bare metal datacenters, which powers the majority of GitHub’s public web and git traffic, as well as fronting some of …

Continue reading »

Written by GitHub Engineering - - Aggregated on Wednesday August 8, 2018


MySQL High Availability at GitHub

GitHub uses MySQL as its main datastore for all things non- git , and its availability is critical to GitHub’s operation. The site itself, GitHub’s API, authentication and more, all require database access. We run multiple MySQL clusters serving our different services and tasks. Our clusters use classic master-replica…

Continue reading »

Written by GitHub Engineering - - Aggregated on Wednesday June 20, 2018


Performance Impact of Removing OOBGC

Until last week, GitHub used an Out of Band Garbage Collector (OOBGC) in production. Since removing it, we decreased CPU time across our production machines by 10%. Let’s talk about what an OOBGC is, when to use it, and when not to use it. Then follow up with some statistics about the impact of removing it from …

Continue reading »

Written by GitHub Engineering - - Aggregated on Friday May 18, 2018


February 28th DDoS Incident Report

On Wednesday, February 28, 2018 GitHub.com was unavailable from 17:21 to 17:26 UTC and intermittently unavailable from 17:26 to 17:30 UTC due to a distributed denial-of-service (DDoS) attack. We understand how much you rely on GitHub and we know the availability of our service is of critical importance to our users. …

Continue reading »

Written by GitHub Engineering - - Aggregated on Thursday March 1, 2018


Weak cryptographic standards removal notice

Last year we announced the deprecation of several weak cryptographic standards. Then we provided a status update toward the end of last year outlining some changes we’d made to make the transition easier for clients. We quickly approached the February 1, 2018 cutoff date we mentioned in previous posts and, as a …

Continue reading »

Written by GitHub Engineering - - Aggregated on Thursday February 1, 2018


Stretching Spokes

GitHub’s Spokes system stores multiple distributed copies of Git repositories. This article discusses how we got Spokes replication to span widely separated datacenters. Background: Spokes GitHub developed a system called Spokes to store multiple replicas of our users’ Git repositories and to keep the replicas …

Continue reading »

Written by GitHub Engineering - - Aggregated on Friday October 13, 2017


Evolution of GitHub’s data centers

Over the past 18 months we’ve made a significant investment in GitHub’s physical infrastructure. The goal of this work is to improve the redundancy and global availability of our system. In doing so we’ve solidified the foundation upon which we will expand our compute and storage footprint in support of our growing …

Continue reading »

Written by GitHub Engineering - - Aggregated on Thursday October 12, 2017


GitHub Debug

GitHub is proud to handle thousands of requests per second from our millions of users. The Internet, however, can be a fickle beast of cables and sparks, and sometimes those requests don’t happen very fast (or at all). While we’re happy to help you troubleshoot connection issues to us, we also know our users like …

Continue reading »

Written by GitHub Engineering - - Aggregated on Tuesday September 19, 2017


Keeping an eye on our network

Visibility is essential to effectively operating complex systems. As our network has grown, we’ve had to improve the the way we collect data about it to keep up. Key to these improvements has been the ability to tag metrics. Tagging has allowed us to build dashboards that start at a high level and facilitate drilling …

Continue reading »

Written by GitHub Engineering - - Aggregated on Tuesday September 5, 2017


Kubernetes at GitHub

Over the last year, GitHub has gradually evolved the infrastructure that runs the Ruby on Rails application responsible for github.com and api.github.com . We reached a big milestone recently: all web and API requests are served by containers running in Kubernetes clusters deployed on our metal cloud . Moving a …

Continue reading »

Written by GitHub Engineering - - Aggregated on Wednesday August 16, 2017


Soft U2F

In an effort to increase the adoption of FIDO U2F second factor authentication, we’re releasing Soft U2F : a software-based U2F authenticator for macOS. We’ve long been interested in promoting better user security through two-factor authentication on GitHub.com. Initially, we added support for TOTP …

Continue reading »

Written by GitHub Engineering - - Aggregated on Thursday July 20, 2017


DNS Infrastructure at GitHub

At GitHub we recently revamped how we do DNS from the ground up. This included both how we interact with external DNS providers and how we serve records internally to our hosts. To do this, we had to design and build a new DNS infrastructure that could scale with GitHub’s growth and across many data centers. …

Continue reading »

Written by GitHub Engineering - - Aggregated on Wednesday May 31, 2017