GitLab Meetup Tokyo #1に参加しました。 #gitlabjp

GitLabといえばちょうど一カ月前に騒がせたこの事件。

- [GitLab.comが操作ミスで本番データベース喪失。5つあったはずのバックアップ手段は役立たず、頼みの綱は6時間前に偶然取ったスナップショット － Publickey](http://www.publickey1.jp/blog/17/gitlabcom56.html)
- [GitLab復旧実況中継 #savegitlab - Togetterまとめ](https://togetter.com/li/1076845)

**「日本でMeetupがあるといわれたら行くしかないでしょ！」**と思い参加してきました。

- [GitLab Meetup Tokyo #1 - connpass](https://gitlab-jp.connpass.com/event/49755/)
- [GitLab Meetup Tokyo #1 #gitlabjp - Togetterまとめ](https://togetter.com/li/1086484)

##発表枠(15-20分)

### [@tnir](https://twitter.com/tn961ir) 「[開発統合プラットフォームとしてのGitLabと今後の展開](http://qiita.com/tnir/items/ebfb2d8c04bcda6491cb)」

- GitLabとはもとはGitのレポジトリサービスでしたが、
  最近はCIやCD、コンテナ化を含めたプラットフォーム化を進めている統合プラットフォームです。
- Git歴は10年くらい。GitHubは公開時から。GitLabはあんまり興味がなかったが、たまたま所属していた
2013年から～2014年から管理者として運用。2015年はGitLab.comもユーザーに。OSSのコントリビュートもしてる。
- 開催理由
  - 日本語の情報があまりなく、あっても古い。
  - GitLab.comが話題になっていたからでなく、準備していたら事件がおきた。
  - DockerMeetupでワークフローで使ったらやろうという話になっていたから。
- GitLabのイメージ
  - 「インストールが大変」「ウェブプリが遅い」「GitLab.comでデータロスト」
- GitLabの種類...4種類ある
  - GitLab CE: OSS。無料。
  - GitLab EE: 商用ソフトウェア。有料。
  - GitLab.com
  - GitHos.io
- パフォーマンス
  - 2014年後半/2015年に著しかったが2016年1月からモニタリング導入でそれ以降改善されてきた。
- インストール
  - [omnibus-gitlab](https://gitlab.com/gitlab-org/omnibus-gitlab)が一番手軽なインストール
  - RPM/debパッケージ両方あるし、アップグレードのケアもある。Dockerはまだ試せてません。
  - ソースからのインストールはやめた方がいい。
- Document
  - [GitLab Documentation - GitLab Documentation](http://docs.gitlab.com/)が最近リニューアル。英語さえできれば貢献できる。気づいたらMergeRequestを！
  - 日本語のコミュニティに伝えてそこから貢献することも。
- DBはPostgreSQLがデフォルトだが、MySQLを使っている企業も。
- Rails/一部Goでできている。JS部分はjQueryも数多く残るが、Vue.jsに移行中...
- コミットしない貢献方法
  - **GitLab Pagesでイイね!vote。イイね大事。**
- OSSに貢献してよりよいツール・プラットフォームを使いましょう。社内パッチは是非MR/PRを！
- バージョンアップ
  - DBのバックアップは必須だが、それ以外は基本触らないので無理して取る必要はない。基本手順書通りに行えば問題ない。
  - db:migrationがあるので、無停止でバックアップを行うのはほぼ無理。

(感想) イイね！はGitLabに限らず、個人で使ってるOSSとかでもどんどん押して行って応援したいと思った。

### [@catatsuy](https://twitter.com/catatsuy) 「[GitLabの実践的な運用 #gitlabjp](http://qiita.com/catatsuy/items/b7fda84ca9cb3dbcdc79)」
- かたついと呼ばれています。[GitLabの運用方法をドーンと公開！！ - pixiv inside](http://inside.pixiv.net/entry/2016/12/17/100000)書きました。
- 1台が前提です。gitリポジトリが同じServerにある必要があるので、複数台はよろしくない。強めのサーバーで立てたほうがよいです。
- Redisはキャッシュとセッションとresqueのキューが入っているので最悪吹っ飛んでも大丈夫。
- PostgreSQLを推奨。ドキュメントにも記載。そもそもRailsは事実上PostgreSQL推奨。
  - Rails MySQLの知見は「Rails kamipo」で検索。
- 基本的にGitLabのバックアップはコマンドを実行するだけなので、ソースコードを読んだ方が良い。
- **貧者のGHEと呼ばれた時代もありましたが、ソースコードを読めたり、柔軟なインフラ構成が取れるなどほかにはないメリットがあります。みなさんでGitLabを盛り上げていきましょう！**

(感想) ソースコード読んで管理できるのは強みだよなと思った。GitHubがGitLabから逆輸入してるものあるみたいだしOSS凄い。


### [@hiroponz](https://twitter.com/hiroponz79) 「[GitLabコミュニティーへのコントリビュート](https://docs.google.com/presentation/d/1K6Ws7hHDdgiIlBKTtM6aB7tzasp5pE-yQPpX-ylKYDY/edit#slide=id.p)」
- 仙台から来ました。RoRでWeb開発しています。OSS活動でGitLabのコントリビュートしてます。
- [GitLabのこれまでとこれから：新春特別企画｜gihyo.jp … 技術評論社](http://gihyo.jp/dev/column/newyear/2017/gitlab) 書きました。
- GitLab CEは開発に参加できる→CEにマージされたコードはEEにマージされる→GitLab.comの開発に参加できる！
- 類似プロジェクト
  - 開発リソース: GitLab: 約160名。 他のOSS: 個人プロジェクト。
  - 必要なマシンスペック: Gogs < GitBucket < GitLab
  - 大規模利用: GitLab: 数千ユーザー程度なら大丈夫。 他のOSS: よくわからない。
- GitLab5.1の[MVP](https://about.gitlab.com/mvp/)に選ばれました。(基本的に栄誉賞で何かを貰えるわけではない)
  - 選ばれた人は比較的GitLabの社員になっている。
- コントリビュートするメリット
  - GitLabが便利に&効果的な使用方法を学べる。
  - Railsが身につく。
  - 英語ができるように。
  - 多分転職の時にプラス。
- コントリビュートの仕方
  - [gitlabhq/CONTRIBUTING.md at master](https://github.com/gitlabhq/gitlabhq/blob/master/CONTRIBUTING.md)を熟読しましょう(長いです。)
  - ライセンスには気を付けましょう。CEはOSSだが、EEは商用ライセンス。機械翻訳からのコピペはNG
  - 礼儀正しく。「レビューしてくれてありがとう」という気持ちで。
  - **GitLabの企業価値の一つは「Kindness」**

(感想) ドキュメントのtypoのMR/PRが最初でもいいからどんどんコントリビュートした方がいいと思った。

### [@sue445](https://twitter.com/sue445) 「[ここがすごいよGitLab CI #gitlabjp](https://sue445.gitlab.io/gitlab-meetup-tokyo-1/#/)」
- すえよしGoといいます。Goのエンジニアです。ドリコムのプリキュアの人です。**絶対にTwitterをフォローしないでください！**
- ひたすらGitLabをホメる発表です。
- 2012年12月導入。1800リポジトリ、49グループ、Gitリポジトリ450GB
- Rubyの2.1～2.4をサポート。yamlを使うと複数のDockerを使える。
  - ビルドパラメータの軸が2つ以上ある場合、JenkinsやTravisCI使った方がいい。
- まとめ
  - GitLab CIはyamlだけでビルドの並列・直列実行が簡単。
  - GitLabの他にビルドを実行するRunnerを用意すればいいので、既存リポジトリへの導入が楽。

(感想) 絶対にフォローしてはいけない。


## GitLab LT枠(5分)

### LT 1: [@uchienneo](https://twitter.com/uchienneo) 「GitLabによるPixivのプロジェクト運営」
- だいたいPHP書いてます。
- タスク管理ツール、何がベストなのか難しい。
  - pixivではTrello・GitHub/GitLabのissue・ホワイトボード
  - **開発タスクではGitHub/GitLabのようにソースコードと一体になっているのが楽。**
- [pixivision - おもしろいもん観たいじゃん](http://www.pixivision.net/ja/)ではissue管理にGitLab issuesを使用している。Board, Milestone, etc...

(感想)GitHub/GitLabのissuesいいよね。


### LT 2: @jvasseur 「[GitLab CI with docker-in-docker](https://www.slideshare.net/secret/oS6viMY5jWmmuF)」
- JBと読んでください。DevOpsメインです。
- 独立した環境で動かしたい→**Docker runnerでええやん！**
- Dockerの中でDockerを動かす。"Docker in Docker"
- 大きなイメージをPULLして動かすと時間がかかる→無理やりキャッシュしたりすると破滅すると。
- DINDを止めて、docker shell使ってください。

(感想)「Docker runnerでええやん！」の万能感凄すぎ。


### LT 3: [@Kirika_K2](https://twitter.com/Kirika_K2)「[LVMのスナップショット機能でGitLabのバックアップを取得する](https://www.slideshare.net/MakiToshio/ss-72735571)
」

- Ruby, 時々Golang
- LVM(GOGICAL VOLUME MANAGER)複数の物理ディスクをグループにまとめて論理としてディスクを扱う。
- LVMを使うと一貫性のあるディスク情報を保存できる。
- データベースのバックアップ
  - PostgreSQLのスナップショットでバックアップを取得できる。
  - 「PostgreSQLオンラインバックアップ」あたりで調べてください。

(感想) LVMあんまり意識してなかったけどUbuntuで使ってたかも。勉強しよう。

### LT 4: [@jeffi7](https://twitter.com/jeffi7) 「[GitLab Meetup Tokyo #1 LT:「わりと大きい会社でGitLabをホスティングしてみた話」](https://www.slideshare.net/inosuke/gitlab-meetup-tokyo-1-lt-gitlab)」
- 社内の「製品」開発部門向けにサービスを提供してます。
- 「社内メンバーがGitLabがいい！」→「チームの決定には従いましょう！従ってほんとによかった！」
- RubyはコードはおろかRails環境つくれる人がいない→救世主現る！"Docker Version1.0"がでた！
- DBはPostgreSQLに移行検討中……

(感想) チームを信じて任せてくれるマネージャーがいる環境っていいなぁ。


## 懇親会
~~行ってきます。~~
行ってきました。短い時間でしたが、個人的に以前お世話になった方にご挨拶できたり、発表者の方と話せたりと有意義な時間を過ごさせていただきました。


## 次回Meetup予定
既に募集開始してました。

- [GitLab Meetup Tokyo #2 - connpass](https://gitlab-jp.connpass.com/event/52276/)