GitHub Enterprise Integration with AWS

Cf7b553387b247d737c60cfceabb2cea?s=47 Naoto Takai
January 23, 2013

GitHub Enterprise Integration with AWS

How COOKPAD uses GitHub Enterprise to build COOKPAD.

Cf7b553387b247d737c60cfceabb2cea?s=128

Naoto Takai

January 23, 2013
Tweet

Transcript

  1. 7.

    ✓Intel Core i7 2600K ✓16 GB Memory ✓80 licenses ✓300+

    repositories Github Enterprise VMWare ESXi Helper NAS +
  2. 9.

    We used Git with SSH Developer Git Server CI Server

    App Server 1. push 2. pull 3. tag 4. pull 5. deploy LAN AWS
  3. 10.

    We does not use github.com for main project ‣Our security

    policy ‣Concerns about service availability
  4. 11.

    ✗ Our code base is growing ✗ Hard to track

    changes in the code base ✗ Review was very hard (w/ Review Board)
  5. 12.
  6. 13.

    We are using GitHub Enterprise since April 2012 but it

    was a bit difficult for our environments...
  7. 14.

    Our servers are on AWS, but GitHub Enterprise does not

    work on it. ‣Need to communicate with the servers on AWS such as LDAP, SMTP, etc... ‣Need to access from external network. ‣Without changing deploy process
  8. 15.

    Our servers are on AWS, but GitHub Enterprise does not

    work on it. ‣Need to communicate with the servers on AWS such as LDAP, SMTP, etc... ‣Need to access from external network. ‣Without changing deploy process
  9. 18.

    GitHub LDAP SMTP Accessing AWS: LAN AWS Helper Gateway SSH

    Tunnel (autossh) GitHub Enterprise does not support SSH tunneling
  10. 19.

    Our servers are on AWS, but GitHub Enterprise does not

    work on it. ‣Need to communicate with the servers on AWS such as LDAP, SMTP, etc... ‣Need to access from external network. ‣Without changing deploy process
  11. 22.

    Developer Access from External: LAN AWS GitHub Gateway SSH Tunnel

    (autossh) Reverse Proxy Internet Developer Tips ‣ DNS lookup Helper
  12. 23.

    Developer Access from External (SSH): LAN AWS GitHub Gateway SSH

    Tunnel (autossh) Internet Developer Tips: SSH con g hack Host github-enterprise Hostname gateway CheckHostIP no StrictHostKeyChecking no port 2222 Helper
  13. 24.

    Our servers are on AWS, but GitHub Enterprise does not

    work on it. ‣Need to communicate with the servers on AWS such as LDAP, SMTP, etc... ‣Need to access from external network. ‣Without changing deploy process
  14. 25.

    Developer Git Server CI Server App Server 1. push 2.

    pull 3. tag 4. pull 5. deploy LAN AWS Deploy Process (old):
  15. 26.

    Deploy Process (new): Developer GitHub Gateway SSH Tunnel (autossh) CI

    Server Helper LAN AWS App Server Git Server 3. pull 4. tag 1. push 2. push 5. pull 6. deploy ✓We can deploy app even if GitHub Enterprise is down. ✓All commits are mirrored in the git server.
  16. 30.

    require 'sinatra' require 'json' post '/update' do payload = JSON.parse(params[:payload])

    project = payload['repository']['name'] cmd = "cd #{project} " "&& git remote prune origin " + "&& git fetch -q " + "&& git push -q --mirror git-server" `#{cmd}` end
  17. 33.