Yapc2012資料

44,764 views

Published on

後で画像を追加する。

0 Comments
20 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
44,764
On SlideShare
0
From Embeds
0
Number of Embeds
40,371
Actions
Shares
0
Downloads
42
Comments
0
Likes
20
Embeds 0
No embeds

No notes for slide
  • \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
  • 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 MacGUIのGitクライアントアプリです。黒い画面を使わずに簡単にGitが使えます。インストールhttp://mac.github.com/ からできます。IDとPASSWORDだけで公開 と秘密 は不要です。 * windowsもちゃんとあります。
    22. 22. OctoDroidAndroid用のGitHubクライアントです。認証機能がついているので、ログインしないとみれない情報もみれます。
    23. 23. 何故GitHubに移したのか?
    24. 24. GitHubに移行するまで (個人的に色々試してみました。)SVN → Gitosis → Gitlite → Plack-App-GitSmartHttp → GitHubPlack-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. ご清聴ありがとうございました。

    ×