GitHub Infrastructure Tom Preston-Werner @mojombo Monday, October - - PowerPoint PPT Presentation

github infrastructure
SMART_READER_LITE
LIVE PREVIEW

GitHub Infrastructure Tom Preston-Werner @mojombo Monday, October - - PowerPoint PPT Presentation

GitHub Infrastructure Tom Preston-Werner @mojombo Monday, October 4, 2010 Git? Monday, October 4, 2010 Tom PJ Chris Monday, October 4, 2010 C1 Monday, October 4, 2010 C1 C2 Monday, October 4, 2010 C1 C2 C3 C4 Monday, October 4,


slide-1
SLIDE 1

Tom Preston-Werner

@mojombo

GitHub Infrastructure

Monday, October 4, 2010
slide-2
SLIDE 2

Git?

Monday, October 4, 2010
slide-3
SLIDE 3

Tom Chris PJ

Monday, October 4, 2010
slide-4
SLIDE 4

C1

Monday, October 4, 2010
slide-5
SLIDE 5

C1 C2

Monday, October 4, 2010
slide-6
SLIDE 6

C1 C2 C3 C4

Monday, October 4, 2010
slide-7
SLIDE 7

C1 C2 C3 C4 C5

Monday, October 4, 2010
slide-8
SLIDE 8

C1 C2 C3 C4 C5 master

Monday, October 4, 2010
slide-9
SLIDE 9

C1 C2 C3 C4 C5 master C6

Monday, October 4, 2010
slide-10
SLIDE 10

GitHub?

Monday, October 4, 2010
slide-11
SLIDE 11 Monday, October 4, 2010
slide-12
SLIDE 12 Monday, October 4, 2010
slide-13
SLIDE 13 Monday, October 4, 2010
slide-14
SLIDE 14 Monday, October 4, 2010
slide-15
SLIDE 15 Monday, October 4, 2010
slide-16
SLIDE 16 Monday, October 4, 2010
slide-17
SLIDE 17 Monday, October 4, 2010
slide-18
SLIDE 18 Monday, October 4, 2010
slide-19
SLIDE 19 Monday, October 4, 2010
slide-20
SLIDE 20 Monday, October 4, 2010
slide-21
SLIDE 21 Monday, October 4, 2010
slide-22
SLIDE 22 Monday, October 4, 2010
slide-23
SLIDE 23 Monday, October 4, 2010
slide-24
SLIDE 24 Monday, October 4, 2010
slide-25
SLIDE 25

Infrastructure

Monday, October 4, 2010
slide-26
SLIDE 26

HTTP, Git, SSH

Monday, October 4, 2010
slide-27
SLIDE 27

32

Monday, October 4, 2010
slide-28
SLIDE 28

Ruby

Monday, October 4, 2010
slide-29
SLIDE 29

Ruby on Rails

Monday, October 4, 2010
slide-30
SLIDE 30

HTTP

Load Balancer

Frontend

! 6

nginx Unicorn Unicorn Worker

! 15

Monday, October 4, 2010
slide-31
SLIDE 31 Load Balancer

Frontend

! 6

nginx Unicorn Unicorn Worker

! 15

Monday, October 4, 2010
slide-32
SLIDE 32

Unicorn

http://unicorn.bogomips.org

Load Balancer

Frontend

! 6

nginx Unicorn Unicorn Worker

! 15

Monday, October 4, 2010
slide-33
SLIDE 33

HTTP

Frontend

nginx Unicorn Unicorn Worker

Memcache

memcached

Database

MySQL

Monday, October 4, 2010
slide-34
SLIDE 34

Memcache

http://memcached.org

Frontend

nginx Unicorn Unicorn Worker

Memcache

memcached

Database

MySQL Monday, October 4, 2010
slide-35
SLIDE 35

MySQL

http://www.mysql.com/

Frontend

nginx Unicorn Unicorn Worker

Memcache

memcached

Database

MySQL Monday, October 4, 2010
slide-36
SLIDE 36

HTTP

Frontend

Unicorn Worker

File Server

! 8

HAProxy ProxyMachine

! 2 Database

Redis

Monday, October 4, 2010
slide-37
SLIDE 37

Grit

http://github.com/mojombo/grit

Frontend Unicorn Worker File Server

! 8

HAProxy ProxyMachine ! 2 Database Redis Monday, October 4, 2010
slide-38
SLIDE 38

BERT/BERT-RPC

http://bert-rpc.org

Frontend Unicorn Worker File Server

! 8

HAProxy ProxyMachine ! 2 Database Redis Monday, October 4, 2010
slide-39
SLIDE 39

{call, smoke, rpc, [rev_list, <<"mojombo/jekyll.git">>, 20, [{bert,dict, [{max_count,1}]}, <<"master">> ] ] }

Monday, October 4, 2010
slide-40
SLIDE 40

HAProxy

http://haproxy.1wt.eu/

Frontend Unicorn Worker File Server

! 8

HAProxy ProxyMachine ! 2 Database Redis Monday, October 4, 2010
slide-41
SLIDE 41

ProxyMachine

http://github.com/mojombo/proxymachine

Frontend Unicorn Worker File Server

! 8

HAProxy ProxyMachine ! 2 Database Redis Monday, October 4, 2010
slide-42
SLIDE 42

{call, smoke, rpc, [rev_list, <<"mojombo/jekyll.git">>, 20, [{bert,dict, [{max_count,1}]}, <<"master">> ] ] }

Monday, October 4, 2010
slide-43
SLIDE 43

Redis

http://code.google.com/p/redis

Frontend Unicorn Worker File Server

! 8

HAProxy ProxyMachine ! 2 Database Redis Monday, October 4, 2010
slide-44
SLIDE 44

“mojombo” “fs2” “defunkt” “fs1” “schacon” “fs7”

Monday, October 4, 2010
slide-45
SLIDE 45

Chimney

Frontend Unicorn Worker File Server

! 8

HAProxy ProxyMachine ! 2 Database Redis Monday, October 4, 2010
slide-46
SLIDE 46

BERT-RPC Server 2 BERT-RPC Client Redis ProxyMachine BERT-RPC Server 1 BERT-RPC Server 3

Monday, October 4, 2010
slide-47
SLIDE 47

BERT-RPC Server 2 BERT-RPC Client Redis ProxyMachine BERT-RPC Server 1 BERT-RPC Server 3

Monday, October 4, 2010
slide-48
SLIDE 48

BERT-RPC Server 2 BERT-RPC Client Redis ProxyMachine BERT-RPC Server 1 BERT-RPC Server 3

?

Monday, October 4, 2010
slide-49
SLIDE 49

BERT-RPC Server 2 BERT-RPC Client Redis ProxyMachine BERT-RPC Server 1 BERT-RPC Server 3

? 2

Monday, October 4, 2010
slide-50
SLIDE 50

BERT-RPC Server 2 BERT-RPC Client Redis ProxyMachine BERT-RPC Server 1 BERT-RPC Server 3

Monday, October 4, 2010
slide-51
SLIDE 51

BERT-RPC Server 2 BERT-RPC Client Redis ProxyMachine BERT-RPC Server 1 BERT-RPC Server 3

Monday, October 4, 2010
slide-52
SLIDE 52

BERT-RPC Server 2 BERT-RPC Client Redis ProxyMachine BERT-RPC Server 1 BERT-RPC Server 3

Monday, October 4, 2010
slide-53
SLIDE 53

BERT-RPC Server 2 BERT-RPC Client Redis ProxyMachine BERT-RPC Server 1 BERT-RPC Server 3

Monday, October 4, 2010
slide-54
SLIDE 54

HTTP

Frontend File Server

ProxyMachine HAProxy Ernie Handler

! 2 ! 15

Monday, October 4, 2010
slide-55
SLIDE 55

Ernie

http://github.com/mojombo/ernie

Frontend File Server

ProxyMachine HAProxy Ernie Handler

! 2 ! 15

Monday, October 4, 2010
slide-56
SLIDE 56

Frontend File Server

ProxyMachine HAProxy Ernie Handler

! 2 ! 15

Grit

http://github.com/mojombo/grit

Monday, October 4, 2010
slide-57
SLIDE 57

Git

Load Balancer

Frontend

HAProxy Proxymachine

Database

Redis

File Server

HAProxy Git Daemon

! 2

Monday, October 4, 2010
slide-58
SLIDE 58

SSH

Load Balancer

Frontend

SSHD Gerve

Database

Redis

File Server

SSH Git Shell Monday, October 4, 2010
slide-59
SLIDE 59

Other Pieces

Monday, October 4, 2010
slide-60
SLIDE 60

DRBD

http://www.drbd.org/

Monday, October 4, 2010
slide-61
SLIDE 61

fs1 mc1 DRBD fs2 mc2 DRBD fs3 mc3 DRBD

Monday, October 4, 2010
slide-62
SLIDE 62

Resque

http://github.com/defunkt/resque

Monday, October 4, 2010
slide-63
SLIDE 63 Monday, October 4, 2010
slide-64
SLIDE 64

Librato

http://librato.com/

Monday, October 4, 2010
slide-65
SLIDE 65

Status Bar

Monday, October 4, 2010
slide-66
SLIDE 66

THANKS, ÅRHUS

@mojombo

Monday, October 4, 2010