16
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

開発統合プラットフォームとしてのGitLabと今後の展開

Posted at
1 / 52

GitレポジトリからCI/CD・コンテナ化を含めた開発統合プラットフォームとしてのGitLabと今後の展開

Takuya Noguchi
@tnir / Tw: @tn961ir
GitLab Meetup Tokyo #1 2017-03-02


@tnir: gitlab.com/tnir

  • 20y+ Software Engineer (Digital Transformation)
    • 2006-: Git user
    • 2008-: GitHub/Bitbucket user
    • 2013-: GitLab CE user
    • 2014-: GitLab CE admin
    • 2015-: GitLab.com user/GitLab contributor

なぜ今GitLab Meetup?


なぜ今GitLab Meetupを開くのか

  • 日本語の情報がなかったから
    • あっても古い

なぜ今GitLab Meetupを開くのか

  • 日本語の情報がなかったから
  • GitLab.comが話題になったから

なぜ今GitLab Meetupを開くのか

  • 日本語の情報がなかったから
  • GitLab.comが話題になったから
  • (準備していたらGitLab.com事件が起きた)
  • 2016年3月のDocker MeetupでGitLabを使ったワークフローが思った以上に反応あったから

GitLab.JP

  • 2016年11月に仙台で発足
  • 2015年12月/2016年12月にもGitLab/GitLab.com 勉強会が開催されている
  • 東京でもJPイベントをやろう!→今回

Contents

  • 製品の位置付け
  • エディション
  • 歴史
  • 最近のトピック
  • 管理
  • ドキュメント
  • 開発
  • 管理者やってみた
  • 今後のコミュニティ

GitLab


よく聞くGitLabのイメージ

  • インストールが大変

よく聞くGitLabのイメージ

  • インストールが大変
  • ウェブアプリが遅い

よく聞くGitLabのイメージ

  • インストールが大変
  • ウェブアプリが遅い
  • 2017年1月にGitLab.comでデータロストが発生した

GitLabの歴史

  • Git: 2005
  • GitHub: 2008
  • Bitbucket (Git support): 2010
  • GitLab: 2011
  • GitLab.com: 2012

GitLab.comの競合

  • GitHub + it's ecosystem (CI, linter etc.)
  • Bitbucket + it's ecosystem
  • AWS CodeCommit (+α)
  • MS Visual Studio Team Services (VSTS)
  • GCP Source Repositories

GitLab CE/EEの競合


GitLab CE/EE

  • Most starred Rails-based app on GitHub until 2016
    • discourse is now No.1

201702-gitlab-star-on-github.png via https://goo.gl/58haC1

4種のGitLab

  • GitLab Community Edition (CE)
  • GitLab Enterprise Edition (EE)
  • GitLab.com
  • GitHost.io

GitHost


GitLab CE/EEマイルストーン 1

  • 1.0: 2011-10
  • 2.0: 2011-12
  • 3.0: 2012-10
  • 4.0: 2012-12
  • 5.0: 2013-03
  • 6.0: 2013-08

GitLab CE/EEマイルストーン 2

  • 6.0: 2013-08
  • 7.0: 2014-06
  • (raised $0.12M)
  • (raised $1.5M)
  • 8.0: 2015-09
  • (raised $4M)
  • (raised $20M)
  • 9.0: 2017-03 (plan)

GitLab CE Q1 '16

2016年、12個のメジャーリリース(8.4-8.15)

  • ビルドアーティファクトブラウザ, ファイルファインダ
  • TODO
  • シークレットイシュー, ラベル購読

GitLab CE Q2 '16

  • LICENSEテンプレート, 期日(Due Date), cherry-picking
  • CIのPipeline対応, GitLab Container Registry, .gitignoreテンプレート
  • Environments, 優先的ラベル, ナビゲーションデザイン, U2F

GitLab CE Q3 '16

  • ワイルドカードbranch保護, マニュアルCI実行
  • Issue Board(kanban), Merge Conflict修正UI, MR Dicsussion解決済みフラグ, Pipelineグラフ, Slashコマンド, Koding統合
  • Cycle Analytics, Merge Requestバージョン管理

GitLab CE Q4 '16

  • Merge Conflict修正エディタ
  • 工数管理, ChatOps w/Mattermost, Review Apps
  • Auto Deploy (oc), Web Terminal (Kubernetes), LaTeX support in Markdown

パフォーマンス

  • 2014年後半/2015年くらいからパフォーマンス劣化が著しくなってきた。
  • 2016年1月にInfluxDBを利用したPerformance Monitoringが導入された。
  • 2016年はかなりパフォーマンスが改善した。
  • 2016年後半: Prometheus導入。
  • .comのメトリクスは monitor.gitlab.net で確認できる。

Administration


Admin tips

  • omnibus-gitlabが一番手軽なインストール
    • RPM/debパッケージ
    • Dockerもサポート
      • でもまだ巨大コンテナイメージ
    • アップグレードのケアもある
  • ソースコードからのインストールは止めたほうがいい

PostgreSQL

  • デフォルトのデータベース
  • (MySQLで運用されている例も多いと聞く)
  • pg 9.2が利用されてきた。pg 9.6へのアップグレードプランを用意
  • 来月のGL 9.0で9.6がデフォルトに :tada:

Redis


Container Registry

  • GitLab Container Registry
    • docker/distribution-backed

Monitoring

  • かなり改善されたもののまだパフォーマンスの問題は残っている。
    • front: Grafana
    • back: InfluxDB/Prometheus
gitlab-monitoring-ci.png via http://monitor.gitlab.net/dashboard/db/ci

Docs

  • ドキュメント大事
  • docs.gitlab.comが最近リニューアル
  • 改善ポイントあり
  • 英語さえできれば貢献できる

開発

  • OSSなので、GitLab.com上でコントリビュート可
  • 累計1,500人以上のコミット
  • 日本人らしきコントリビュータは少ない
  • GitLab Development Kitで簡単に環境構築できる

開発 (2) App/Backend

  • 普通のRailsアプリ
  • 一部Go
  • Ruby/Goエンジニアなら貢献できる

開発 (3) Front-end

  • 歴史の長い一般的なRailsアプリケーションの通り、JSはjQueryも数多く残るが、ES2015ify、Vue.jsへの移行もどんどん進んでいる
  • テスト: Jasmine+Karma
  • あとは普通にSCSS, HAML
  • 今Vue.js乗せ換えたい人に特にオススメ

開発 (4) UI/UX/Design

  • 資金調達後かなりデザイナー/UI/UXエンジニアが増えて改善が進んだ
  • GL社員がちょっと多すぎ感も否めない

開発 (5) Packaging/Middleware

  • パッケージングはchef/omnibusパッケージを利用
  • ChefエンジニアやDevOpsエンジニアなら貢献できる

コミットしない貢献方法


GitLab Pagesの例

  • プライベート版GitHub Pagesが構築可能
  • (GitLab.comでは以前から提供中)
  • EEのみで導入されたが、100 :thumbsup: votesによりCEにやってきた。
    • :thumbsup: 大事

個人的な野望

  • Cloud-native
  • Serverless

実際に250人チームで運用して分かったこと


前提

  • 社員、常駐業務委託、社外パートナー多数
  • サーバサイド:iOS/Androidアプリ=50%:50%
  • 250 users
  • 600 projects
  • 100 groups

分かったこと

  • Gitの習熟度が人それぞれ
  • (サーバサイド)DockerやRegistryの理解も人それぞれ
  • CI/CDについても人それぞれ
  • 高品質・均質化のためにトレーニングが効果的
    • GitLab Docsが有効
    • でも日本語訳がない :sob: :sob: :sob:

バグフィックス

  • 昼、レポートを受けて起票
  • 夜、家で修正・MRを出す
  • (繰り返し)

今後に向けて

  • 組織の方針とGitLab Inc.の方針が合致した結果、GitLabに乗ってうまくやってこれた
    • CI/CD
    • Docker/Kubernetes/OpenShift(/Web Terminal)
    • InfluxDB(/Prometheus)
  • 組織ごとに主体的な開発戦略が必要

今日伝えたかったこと

  • ネガティブなイメージもあったGitLabはかなり改善されて大規模な導入ケースもでてきた。
  • OSSに対して貢献してよりよいツール・プラットフォームを使いましょう。
  • 社内パッチはぜひMRの形にしてください。

宣伝


宣伝 1

アイリッジはエンジニア(特にSRE/CPE)募集中。

201703_iridge-rec-sre.png 201703_iridge-rec-cpe.png

宣伝 2: 4/11(火) GitLab Meetup Tokyo #2開催決定

  • 於: リクルート 41F アカデミーホール
  • https://gitlab-jp.connpass.com/event/52276/
  • 今から募集開始
    • トーク 4件
    • LT 5件
    • スポンサー 4社
  • 一般参加は~~明日から募集(予定)~~だったけど、会場の熱気に押されて今日から募集開始しました。

16
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
16
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?