GitHub is the world’s largest code hosting repository, utilized by over 8million designers and developers that collaborate on projects. First launched in 2007 by Tom Preston-Werner, Chris Wanstrath, and PJ Hyett in San Francisco, it has grown to be accepted worldwide among designers and developers of all aptitudes. They have adopted the fitting slogan “build software better, together.”
GitHub’s web-based economy is redefining teamwork, by making it increasingly easy for developers to work remotely to contribute to team efforts privately through paid plans, or free accounts that host open-source projects. GitHub is mostly used for code, but GitHub is not solely for programmers, in fact, they state that any “knowledge worker” (defined as almost any professional who makes use of a computer) can benefit. The GitHub repository supports an array of file types-from 3D render files, PSD (Photoshop) files, documentation (like Word) and wikis, issue tracking, geospatial data, and Gantt charts. GitHub even services the enterprise, GitHub Enterprise is similar to GitHub’s public service, but it’s been refined for utilization by large-scale enterprise software development teams where they host their repositories behind a protective firewall. They have recently opened their doors to college students, along with a number of other companies that offer services such as domain name registration, in an effort to bring new developers into the GitHub community with the GitHub Developer Pack. They are offering the opportunity to collaboration, code review, and code management for open source and private projects in a Micro account (normally $7/month) with five private repositories while a student is enrolled in school with a current college email.
The majority of GitHub’s server infrastructure runs Ubuntu and is managed with Puppet. GitHub needs the ability to make changes quickly, especially security updates and deployment of new features, so they utilize Puppet software. The software that runs GitHub was written using Ruby on Rails and Erlang by GitHub, Inc. by developers and co-founders Chris Wanstrath, PJ Hyett, and Tom Preston-Werner.”The real star of our network, aside from out ops team, is Hubot,” says GitHub’s security monitoring expert, Scott Roberts, “Hubot is GitHub’s home grown chatbot. He does everything from finding silly pictures to deploying GitHub itself and to helping us search through our logs. Hubot has really been a game changer for us and how we run GitHub. We also use Puppet on our OS X desktops too, a project we released called Boxen. It’s been an effective way for us to manage a geographically distributed fleet of laptops, as made it easy for our developers to collaborate on projects.” Regarding in-house security, Roberts goes on to say that “one of the keys to protecting projects from these types of attacks is protecting the key accounts that manage the project. Without authenticated access to a project it’s impossible for bad guys to inject malicious code or trojaned downloads. We’ve made a lot of changes to make it easier for users to protect their accounts, such as providing a two factor authentication option last year and improving organization controls.”
The future certainly has a lot in store for GitHub, as more developers and designers gather to collaborate, test, debug, and create projects. Roberts’ “approach is always that the 2nd time you do a task is a coincidence, but by the third time you should be thinking about how to make something automated and repeatable. We do this using Hubot for many tasks, Boxen for Hubber systems, and Puppet for our servers,” he says. “In my mind security is all about preparing for the emergencies, and one of the best ways to do that is to make sure that the simple things are out of the way.”