Slide 1

Slide 1 text

! An @benbalter-centric history 
 of GitHub Pages and Autoblog Ben Balter @benbalter [email protected] government.github.com

Slide 2

Slide 2 text

! @benbalter WordPress core contributor GSoC WP Document Revisions

Slide 3

Slide 3 text

October 2008 - “Jekyll” Launches

Slide 4

Slide 4 text

October 2008 - Autoblog Launches

Slide 5

Slide 5 text

November 2008 - Conveyor Launches

Slide 6

Slide 6 text

November 2008 - Jekyll Launches

Slide 7

Slide 7 text

December 2008 - Pages Launches

Slide 8

Slide 8 text

December 2008 - Disable Jekyll

Slide 9

Slide 9 text

January 2009 - CNAMEs

Slide 10

Slide 10 text

April 2009 - Config Files

Slide 11

Slide 11 text

! Fast forward to 2012…

Slide 12

Slide 12 text

No content

Slide 13

Slide 13 text

‣ 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…

Slide 14

Slide 14 text

‣ 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.

Slide 15

Slide 15 text

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?!

Slide 16

Slide 16 text

!

Slide 17

Slide 17 text

!

Slide 18

Slide 18 text

Feb 2013 - I want moar!

Slide 19

Slide 19 text

March 2013 - The inside man

Slide 20

Slide 20 text

Pulling back the curtain

Slide 21

Slide 21 text

Every developer has an itch

Slide 22

Slide 22 text

April - down the rabbit hole

Slide 23

Slide 23 text

May - Jekyll 1.0

Slide 24

Slide 24 text

August - GitHub Pages Gem

Slide 25

Slide 25 text

October - A lightbulb

Slide 26

Slide 26 text

November - Gem-based plugins, Ruby

Slide 27

Slide 27 text

December - CDN

Slide 28

Slide 28 text

December - Tutorial

Slide 29

Slide 29 text

December - Build feedback

Slide 30

Slide 30 text

Feb 2014 - Metadata, mentions, emoji, and redirects

Slide 31

Slide 31 text

June - Docker

Slide 32

Slide 32 text

May - Docs

Slide 33

Slide 33 text

July 2014 - Jekyll 2.0

Slide 34

Slide 34 text

September - Pages Health Check

Slide 35

Slide 35 text

January - GitHub Help

Slide 36

Slide 36 text

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

Slide 37

Slide 37 text

No content

Slide 38

Slide 38 text

No content

Slide 39

Slide 39 text

No content

Slide 40

Slide 40 text

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

Slide 41

Slide 41 text

! An @benbalter-centric history 
 of GitHub Pages and Autoblog Ben Balter @benbalter [email protected] government.github.com