Github Enterprise じゃなくてもいいじゃん

81
Is there any necessity of using Github Enterprise? 2013-01-23 GREE Tech Talk 02 Takafumi ONAKA a.k.a. @onk 1

description

GREE Tech Talk #02 GitHub:E Casual Talk http://techtalk2.labs.gree.jp/

Transcript of Github Enterprise じゃなくてもいいじゃん

Page 1: Github Enterprise じゃなくてもいいじゃん

Is there any necessity of using Github Enterprise?2013-01-23 GREE Tech Talk# 02Takafumi ONAKA a.k.a. @onk

1

Page 2: Github Enterprise じゃなくてもいいじゃん

Sorry

謝罪

2

Page 3: Github Enterprise じゃなくてもいいじゃん

I’m not good at English.So, I use machine translate.

機械翻訳です

3

Page 4: Github Enterprise じゃなくてもいいじゃん

Introducing myself

自己紹介

4

Page 5: Github Enterprise じゃなくてもいいじゃん

5

we're hiring

Page 6: Github Enterprise じゃなくてもいいじゃん

Introducing myself• Name:•@onk•Takafumi ONAKA ( 大仲 能史 )

• Work:•Social Game Developer•Application Engineer

6

Page 7: Github Enterprise じゃなくてもいいじゃん

Today’s talk

今日の話

7

Page 8: Github Enterprise じゃなくてもいいじゃん

In conclusion, Use github enterprise

金があるなら github

enterprise 使え(結論 )

8

Page 9: Github Enterprise じゃなくてもいいじゃん

Gitlab is «poormans github enterprise»

Gitlab は貧者の github enterprise

9

Page 10: Github Enterprise じゃなくてもいいじゃん

ストーリー•暗黒の subversion 期• Github enterprise を試用→挫折• Gitlab との出会い• Subversion からの移行•俺たちの戦いはこれからだ !!

10

Page 11: Github Enterprise じゃなくてもいいじゃん

Dark ages reign of subversion

暗黒の subversion 時代

11

Page 12: Github Enterprise じゃなくてもいいじゃん

Our subversion branches

我々の取っていたブランチ戦略

12

Page 13: Github Enterprise じゃなくてもいいじゃん

3 main branches

13

trunk

stagingrelease

Page 14: Github Enterprise じゃなくてもいいじゃん

Commit to trunk

14

trunk

stagingrelease

Page 15: Github Enterprise じゃなくてもいいじゃん

Cherry pick & test on staging

15

trunk

stagingrelease

Page 16: Github Enterprise じゃなくてもいいじゃん

release

16

trunk

stagingrelease

Page 17: Github Enterprise じゃなくてもいいじゃん

commit

17

trunk

stagingrelease

Page 18: Github Enterprise じゃなくてもいいじゃん

Cherry-pick

18

trunk

stagingrelease

Page 19: Github Enterprise じゃなくてもいいじゃん

release

19

trunk

stagingrelease

Page 20: Github Enterprise じゃなくてもいいじゃん

Many problems

課題がたくさん

20

Page 21: Github Enterprise じゃなくてもいいじゃん

ブランチが切られない•ブランチ作成コストが重い

21

cost of making a branch is high

Page 22: Github Enterprise じゃなくてもいいじゃん

Cherry-pick が職人芸

•数百 commit の中から今回リリースすべき 100commit を見つけ、適切に conflict を解消しつつmerge する

22

Cherry pick requires the skill of an artisan

Page 23: Github Enterprise じゃなくてもいいじゃん

Cherry-pick が職人芸

• 1 アプリに 1 人 merge 職人が必要になる•職人の数しかアプリを作れない

23

So, our make line number is limited

Page 24: Github Enterprise じゃなくてもいいじゃん

膨れ上がるmergeinfo

•未 merge の commit 一覧を頻繁に参照する•`svn mergeinfo --show-revs eligible`

24

Fat svn:mergeinfo

Page 25: Github Enterprise じゃなくてもいいじゃん

膨れ上がるmergeinfo

•遅い• Disk IO 食いすぎ•遅い

25

Slow, slow, slow

Page 26: Github Enterprise じゃなくてもいいじゃん

want to use git

Git にしたい

26

Page 27: Github Enterprise じゃなくてもいいじゃん

Try github enterprise

Github Enterprise の試用→挫折

27

Page 28: Github Enterprise じゃなくてもいいじゃん

github enterprise を

試用

28

Page 29: Github Enterprise じゃなくてもいいじゃん

less use

試してみる程度しか使われない

29

Page 30: Github Enterprise じゃなくてもいいじゃん

まさしくこの状態

30

The tragedy "only I use git, others use svn"

Page 31: Github Enterprise じゃなくてもいいじゃん

Why failure?

敗因分析

31

Page 32: Github Enterprise じゃなくてもいいじゃん

Branch strategy mismatch

ブランチ戦略のミスマッチ

32

Page 33: Github Enterprise じゃなくてもいいじゃん

Shift of application under running is difficult

運用中のアプリの移行が困難

33

Page 34: Github Enterprise じゃなくてもいいじゃん

Long long time of using subversionmade the track record.

長すぎたsubversion期が「回せる」状態を作ってしまった

34

Page 35: Github Enterprise じゃなくてもいいじゃん

“its running”, we get less happiness if shift

「回っている」ので移行する嬉しさが少ない

35

Page 36: Github Enterprise じゃなくてもいいじゃん

Merit / Demerit 36

メリット デメリット・速い・ Pull request駆動開発・今風で嬉しい

・ 200 アカウント分の初期コスト・教育コスト・移行期の運用速度低下

Git を導入すると

Page 37: Github Enterprise じゃなくてもいいじゃん

Merit is “Culture”, Demerit is “Money”

37

メリット デメリット

文化 金

つまり

Page 38: Github Enterprise じゃなくてもいいじゃん

Can’t measure culture to money

文化の価値をお金に換算するこ

とが難しい

38

Page 39: Github Enterprise じゃなくてもいいじゃん

Certainty is missing to make culture

確実性に欠ける

39

Page 40: Github Enterprise じゃなくてもいいじゃん

Use github enterprise request is rejected

Github enterprise の

導入見送り

40

Page 41: Github Enterprise じゃなくてもいいじゃん

Use git without initial cost

イニシャルコストを掛けずになだらかに移行する

41

Page 42: Github Enterprise じゃなくてもいいじゃん

I want to use git and get git cultures

git 文化圏から良い文化を導入したい !!( 切望 )

42

Page 43: Github Enterprise じゃなくてもいいじゃん

How to start using git without initial cost

イニシャルコストを掛けずに始める方法を模索

43

Page 44: Github Enterprise じゃなくてもいいじゃん

Find “gitlab”

Gitlab を選んだ

44

Page 45: Github Enterprise じゃなくてもいいじゃん

選定基準• Github like な web UI•管理も web UI で可能• Pull request 機能があるもの•今後数年主流になりそうなもの

45

Basis of selection:Web UI & pull request

Page 46: Github Enterprise じゃなくてもいいじゃん

When using except github select language and a framework

maintainableby two or more persons.

46

Page 47: Github Enterprise じゃなくてもいいじゃん

i have to continue eating dog food.

VCS というドッグフードを食べ続け

ることになる

47

Page 48: Github Enterprise じゃなくてもいいじゃん

It will fail, if a maintainer is fixed

メンテナが固定されると失敗一直線

48

Page 49: Github Enterprise じゃなくてもいいじゃん

Gitlab is made by Ruby on Rails

Gitlab はRails 製

49

Page 50: Github Enterprise じゃなくてもいいじゃん

80 ruby engineers are in our company.

弊社には Railsエンジニア 80 名

50

Page 51: Github Enterprise じゃなくてもいいじゃん

We can maintain if modern Rails application

モダンな Railsアプリケーションなら余裕で運用できる

51

Page 52: Github Enterprise じゃなくてもいいじゃん

Gitlab is on latest rails and modern libraries

最新の Rails 、今風のライブラ

リ群

52

Page 53: Github Enterprise じゃなくてもいいじゃん

It uses with some corrections

多少の手直しで弊社の使い方に

合いそう

53

Page 54: Github Enterprise じゃなくてもいいじゃん

Judged satisfactory

運用に関しては問題ないと判断

54

Page 55: Github Enterprise じゃなくてもいいじゃん

no necessity if there is even money

お金さえあればしなくていい苦労ですよ !!1

55

Page 56: Github Enterprise じゃなくてもいいじゃん

subversion to gitlab

Subversion からの移行

56

Page 57: Github Enterprise じゃなくてもいいじゃん

Learn from a failure,and make shift strategy

前回の失敗を糧に、真面目に移行戦略を立てた

57

Page 58: Github Enterprise じゃなくてもいいじゃん

Cross commit by git-svn

git-svn によりクロスコミットされ

た状況を作る

58

Page 59: Github Enterprise じゃなくてもいいじゃん

subversion

git

59

trunk

移行期

master

topic

topic

Page 60: Github Enterprise じゃなくてもいいじゃん

Not change release flow during the combined use.

併用期間はリリースに関する運用は変えない

60

Page 61: Github Enterprise じゃなくてもいいじゃん

let everyone used to use git in this period

全員が Git に慣れてもらい、 svn を

離れる準備

61

Page 62: Github Enterprise じゃなくてもいいじゃん

Can release without cherry-pick, throw away svn

リリースフローにcherry-pickを使わない状態を作りsvnを捨てる

62

Page 63: Github Enterprise じゃなくてもいいじゃん

63

Page 64: Github Enterprise じゃなくてもいいじゃん

`git svn fetch` needs some weeks

git svn fetchする数週間

64

Page 65: Github Enterprise じゃなくてもいいじゃん

Gitlab に追加した機能

•全プロジェクトを全ユーザが閲覧可能に• README.md の表示

65

The features we added to gitlab- Authentication change

Page 66: Github Enterprise じゃなくてもいいじゃん

Gitlab に追加した機能

• git-svn によるクロスコミット• Merge Request にdescription追加

66

- Cross commit by using git-svn- Add description for “merge

request”

Page 67: Github Enterprise じゃなくてもいいじゃん

Gitlab に追加した機能

• Push 時に Issue/MR に紐づける•監視

67

- Commit to issue relations- Supervises

Page 68: Github Enterprise じゃなくてもいいじゃん

お金さえあればしなくていい苦労で

すよ !!1(再 )

68

no necessity if there is even money

Page 69: Github Enterprise じゃなくてもいいじゃん

svn→git で弱体化した部分を補強

• Commit mail•各種通知 bot

69

Make some notify bot for git

Page 70: Github Enterprise じゃなくてもいいじゃん

There is more pleasant than making the tool for svn

svn補強ツールを作るより負けた感が少ない (大事

70

Page 71: Github Enterprise じゃなくてもいいじゃん

More improvement!

俺たちの戦いはこれからだ

71

Page 72: Github Enterprise じゃなくてもいいじゃん

Sorry

ごめんなさい

72

Page 73: Github Enterprise じゃなくてもいいじゃん

Now is during the combined use

まだ併用期間の真っただ中です

73

Page 74: Github Enterprise じゃなくてもいいじゃん

Feeling from using gitlab

感じていること

74

Page 75: Github Enterprise じゃなくてもいいじゃん

I’m sure “pull request is JUSTICE”

Merge Requestでのコードレビューは正義だと確信した

75

Page 76: Github Enterprise じゃなくてもいいじゃん

I waited for this flow very long

ようやく正しい手順で開発できるようになった

76

Page 77: Github Enterprise じゃなくてもいいじゃん

Conclusion

まとめ

77

Page 78: Github Enterprise じゃなくてもいいじゃん

Gitlab のメリット•サーバに入れる• Git リポジトリを直接操作可能•柔軟な移行手順を踏める

78

Gitlab’s merit- Can log in to server

- flexible shift procedure can be used

Page 79: Github Enterprise じゃなくてもいいじゃん

まとめ• Pull request のない環境で文化を作るのは難しい• gitlab で文化を作れるようになった• GHE であればしなくてもいい苦労はあるが、 gitlab は妥当な代替

79

Page 80: Github Enterprise じゃなくてもいいじゃん

Thank you

ご清聴ありがとうございました

80

Page 81: Github Enterprise じゃなくてもいいじゃん

U.where(has_question: true).exists?

81