O slideshow foi denunciado.
Seu SlideShare está sendo baixado. ×
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio

Confira estes a seguir

1 de 71 Anúncio

Mais Conteúdo rRelacionado

Diapositivos para si (20)

Semelhante a Yapc2012資料 (20)

Anúncio

Yapc2012資料

  1. 1. GitHubを使った 開発とデプロイ 2012/09/28 YAPC資料
  2. 2. 自己紹介 • twitter_id: @matsukena • 松尾健司/Kenji Matsuo • paperboy&co.でロリポップの開発やってます。 • 普段はperlとかph やってます。
  3. 3. 今日の内容 • GitHubの機能紹介 • GitHubに移行したしている背景 • How To Svn to GitHub • デプロイの自動化に向けて
  4. 4. GitHubってなに? • gitのプロジェクトホスティングサービス • gitのリポジトリを自分で作って公開できる • web上から変更履歴などが参照可能 • GitHubで公開されているOSSのコードをforkして開 発する事が可能 • 100Mまで無料で使える • プライベートレポジトリも作成可能(有料) *出展はてなキーワード: http://d.hatena.ne.jp/keyword/GitHub
  5. 5. GitHubの機能紹介
  6. 6. contibutors このファイルに関係している人が誰 かわかります。
  7. 7. blame そのコードを誰が書いたかが表示さ れます。
  8. 8. history そのファイルのにどんな歴史があっ たのか? もちろんどのような変更があったか も表示されます。
  9. 9. その場で編集 gitなんて使えなくてもその場で編集 できます。
  10. 10. Issues バグ報告、機能の追加、方向性の議 論をしたい時にも。
  11. 11. Pull Request 自分の変更をFork元に取り込んでほ しい時に。 もちろん議論したい時にも。
  12. 12. gist リポジトリを作る程でもないものを 公開したい時に。
  13. 13. Graphs いろんな情報を可視化してくれます。 • Contributors: ストーキングに便利w • Commit Activity: 週にどれくらいコミットされてるかを1年分のグラフ • Code Frequency: コードの行数に対する増減のグラフ • Impact: 書いたコードの追加・削除がリポジトリにどれくらいの影響を与 えてるか視覚的にグラフ表示 • Punchcard: 何曜日の何時に頻繁にコミットが行われているか表示
  14. 14. 小ネタ
  15. 15. GitHub 404ページ マウスに追従します。 iPhoneだとジャイロセンサーに 反応します。
  16. 16. キーボードショートカット GitHubはキーボードで操作できます。 ”?”を入力するとhelpがでます。
  17. 17. 画像の差分 画像の差分だって、みれます。
  18. 18. GitHubを使う時に知って 得する便利ツール
  19. 19. hubコマンド ・GitHubの操作をコマンドラインでできるようになります。 インストール $ brew install hub もしくは $ curl http://defunkt.io/hub/standalone -sLo ~/bin/hub && chmod +x ~/bin/hub
  20. 20. hubコマンド よく使うオプション。 $ hub browse [user/repo] browseは打ちにくいのでseeにエイリアスするといいかも。 $ hub clone user/repo $ hub pull-request 他にもあるのでREADMEを読んでください。 url https://github.com/defunkt/hub/blob/master/README.md
  21. 21. デザイナーさんの為のGithub for Mac GUIのGitクライアントアプリです。 黒い画面を使わずに簡単にGitが使えます。 インストール http://mac.github.com/ からできます。 IDとPASSWORDだけで 公開 と秘密 は不要です。 * windowsもちゃんとあります。
  22. 22. OctoDroid Android用のGitHubクライアントです。 認証機能がついているので、ログインしないとみれな い情報もみれます。
  23. 23. 何故GitHubに移したのか?
  24. 24. GitHubに移行するまで (個人的に色々試してみました。) SVN → Gitosis → Gitlite → Plack-App-GitSmartHttp → GitHub Plack-App-GitSmartHttpは手軽な感じがすごく 便利でした。 http://search.cpan.org/~yamamoto/Plack-App-GitSmartHttp-0.02/
  25. 25. • 人数が増えて、マージ・ブランチするの が面倒。 • 何故かコミットされてないファイルとか あってちゃんと整理したかった。 • Gitサーバの管理をしなくていい。 • 社外でもソースがみれる。 • やりたいという気持ち ← これが大事
  26. 26. GitHubへの移行について 問題になった事
  27. 27. GitHubがメンテナンス中 になる事がある。
  28. 28. 解決策! • リポジトリをbitbucketに同期して冗長化する。 • wikiについてもローカルにバックアップを作成する。 どちらのスクリプトも@gosukenatorさんが書いてくださりました。 ありがとうござます。
  29. 29. デザイナーさんもgitを覚 えてもらう必要がある。
  30. 30. 解決策!! • 社内で勉強会を開く。 • GitHub for MacなどのGUIのtoolを使う。     (黒い画面なんて嫌って人向け) • 初心者向けのサイトも増えてきたので、     実際にやってもらうのが一番 master ブランチさへ変更しなければ なんとでもなる!
  31. 31. 移行のタイミングが 難しい。
  32. 32. 解決策!!1 • やると決めたら時期を決めて作業を行う。 • プロジェクトのリリースをその日だけ止めてもらう。 • あとは一気にやってしまう。(勢い大事)
  33. 33. 移行の タイミングは 上長と 要相談!!1
  34. 34. 本当にコードを社外に置 いて大丈夫なの?
  35. 35. 解決策? • セキュリティポリシーを読んでみましょう。 url https://help.github.com/articles/github-security • GitHubのコード自身もGitHubにホスティグしてます。 • 24*7でオンサイトのスタッフが不正な侵入を防ぐ為詰めています。 • 物理的なセキュリティは独立した監査法人による監査をうけています。 • 不正なシステムアクセスをブロックする為、専用のファイアウォールとVPNを利用しています。 • ラックスペース社によって管理されたバックアップソリーションによってデータは保護されています。 • 不正なシステムアクセスから保護する為さらなるレイヤーとして専用の侵入検知装置を導入しています。 などなど・・・
  36. 36. それでも脆弱性はあった りするので・・・ *でも利用できると便利!!!
  37. 37. 偉い人に 要相談!!1
  38. 38. 社外ホスティングサービスに コードを持ち出せない場合は    GitHub Enterpriseを利用しましょう。
  39. 39. How To SVN to GitHub
  40. 40. git svnコマンド svnのリポジトリをgitコマンドで 直接さわれるようになります。
  41. 41. ①auther変換定義ファイルを作る ②svnリポジトリからgitでコードを引っ張りだす ③localに作業用レポジトリを切る ④svnのtrunkを作業リポジトリのmasterとしてpush ⑤svnのbranchを作業リポジトリのbranchとしてpush ⑥svnのtagを作業リポジトリのtagとしてpush ⑦作業リポジトリを丸ごとremoteへpush
  42. 42. デプロイ自動化に向けて
  43. 43. 開発チームで やりたかった事
  44. 44. 旧開発環境
  45. 45. • FTPとかもうオワコンだしwww • 手動でやるとあげ忘れたりするし。 • 面倒なことはやりたくない。 • リリースするのに時間がかかる。 • エクセルファイルでリリースするファイ ルを管理された・・・
  46. 46. これはなんとか、 解決しないと・・・
  47. 47. やりたい事は、手作業を減らして、 リリースまでの作業をもっと楽にする。 (開発の速度を上げる)
  48. 48. 新開発環境
  49. 49. • デプロイを自動化する。 • 個人個人のテスト環境を作る。 • もちろんGitHubで管理。 • あえてgit-flowは使わない。
  50. 50. デプロイを自動化 cpistrano, webistranoで簡単にデプロイ デプロイ時はircに通知 Ikachanが大活躍です! FTPとはサヨナラ 環境は、@kentaroさんに用意して頂きました。 ありがとうございます。
  51. 51. これでみんな HAPPYになれる (はず。。。)
  52. 52. インフラチームで やりたかった事
  53. 53. インフラの処理では結構 Perlが使われてる。 (開発チームはPH )
  54. 54. 実際動いているPerlの処理 • server-api • qpsmtpd • sendmail の wrapper • その他 cron で動いているbatch処理
  55. 55. server-apiの話 ・@gosukenatorさん、 @hibomaさんが作ってくださった  サーバサイドのAPI。 ・ロリポップのリニューアル時から運用。 ・運用は福岡支社の方で、主に僕が担当。 ・開発がサーバサイドの事を気にしなくていいように、  webとサーバの中間レイヤーのAPIとして作成されました。
  56. 56. server-apiの今後の話 • rpmで管理してるけど、修正加えるたび にパッケージ作るのが面倒。 • HTTPエンジンベースなのでPSGIに置き 換えたい。 • Perlのバージョンもあげたいっ!!1
  57. 57. って思ってましたが。 すいません。 間に合いませんでした。 来年までには必ず!
  58. 58. 弊社での個人的な 悩み事。
  59. 59. 実はペパボ福岡支社には Perlを書く人が 僕しかいないのです!!1
  60. 60. そして東京本社の方は ルビーストになっていく。
  61. 61. 社内IRCはこんな感じ。
  62. 62. Rubyのチャンネル
  63. 63. Perlのチャンネル
  64. 64. ぼっちとか嫌だ!!1 レビューしてほしい!
  65. 65. ここでも 偉い人に 相談!!1
  66. 66. GitHubを利用すれば場所が離れてても簡 単にレビューしてもらえる。 ソーシャルコーディング 万歳!
  67. 67. これで僕はぼっち、 じゃない!!1
  68. 68. GitHubはSNSです! みんなで楽しくプロ ジェクトを進めて行き ましょう。
  69. 69. といっても福岡支社には Perlを書いてくれる人が いないので・・・
  70. 70. ご清聴ありがとうござい ました。

Notas do Editor

  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n

×