Upgrade to Pro — share decks privately, control downloads, hide ads and more …

An @benbalter-centric history 
of GitHub Pages and Autoblog

An @benbalter-centric history 
of GitHub Pages and Autoblog

A behind the scenes look at how GitHub Pages came about and how it works today

Ben Balter

May 02, 2015
Tweet

More Decks by Ben Balter

Other Decks in Technology

Transcript

  1. !
    An @benbalter-centric history 

    of GitHub Pages and Autoblog
    Ben Balter
    @benbalter
    [email protected]
    government.github.com

    View full-size slide

  2. !
    @benbalter
    WordPress core
    contributor
    GSoC
    WP Document Revisions

    View full-size slide

  3. October 2008 - “Jekyll” Launches

    View full-size slide

  4. October 2008 - Autoblog Launches

    View full-size slide

  5. November 2008 - Conveyor Launches

    View full-size slide

  6. November 2008 - Jekyll Launches

    View full-size slide

  7. December 2008 - Pages Launches

    View full-size slide

  8. December 2008 - Disable Jekyll

    View full-size slide

  9. January 2009 - CNAMEs

    View full-size slide

  10. April 2009 - Config Files

    View full-size slide

  11. !
    Fast forward to 2012…

    View full-size slide

  12. ‣ In the past, building websites with features like consistent templates
    and lists of aggregated content meant setting up complex content
    management systems. These CMSs consisted of templating logic,
    application code, and content databases so they could assemble
    webpages each time they were requested by site visitors. They
    were complicated systems that depend on many separate
    applications working together, like a web server to route page
    requests to a PHP application that uses pre-defined page layout
    templates to format content that’s stored in a MySQL database.
    Serving a page request required at least three separate applications
    all working together — any one failing would bring down the
    system…

    View full-size slide

  13. ‣ From open source frameworks like Drupal, Wordpress, and
    Expression Engine to multi-million dollar proprietary applications
    that the government and big corporations procure from companies
    that also build tanks and battle ships, these systems produce the
    same exact output: HTML, CSS, and JavaScript files that web
    browsers know how to format into the webpages we see. Additional
    features like RSS or JSON API feeds are just new templates for the
    same content, and backend workflow modules like those for
    embedded media and handling email notifications are really separate
    systems that introduce complexity when integrated with the
    publishing system.

    View full-size slide

  14. By October I was fed up
    • 130 outages over 6 months (24+ hours of downtime)
    • AWS, Nginx, microcache, APC, opcode, page, and object cache,
    Varnish, buzzwords++
    • WTF is a weekend?!

    View full-size slide

  15. Feb 2013 - I want moar!

    View full-size slide

  16. March 2013 - The inside man

    View full-size slide

  17. Pulling back the curtain

    View full-size slide

  18. Every developer has an itch

    View full-size slide

  19. April - down the rabbit hole

    View full-size slide

  20. May - Jekyll 1.0

    View full-size slide

  21. August - GitHub Pages Gem

    View full-size slide

  22. October - A lightbulb

    View full-size slide

  23. November - Gem-based plugins, Ruby

    View full-size slide

  24. December - CDN

    View full-size slide

  25. December - Tutorial

    View full-size slide

  26. December - Build feedback

    View full-size slide

  27. Feb 2014 - Metadata, mentions,
    emoji, and redirects

    View full-size slide

  28. June - Docker

    View full-size slide

  29. July 2014 - Jekyll 2.0

    View full-size slide

  30. September - Pages Health Check

    View full-size slide

  31. January - GitHub Help

    View full-size slide

  32. GitHub Pages Architecture
    GitHub.com -> Pages Worker -> File Server
    File Server -> Front End Server -> CDN

    View full-size slide

  33. !
    Eight lessons learned hacking on GitHub
    Pages for six months
    http://git.io/vJ8uj

    View full-size slide

  34. !
    An @benbalter-centric history 

    of GitHub Pages and Autoblog
    Ben Balter
    @benbalter
    [email protected]
    government.github.com

    View full-size slide