TVer Technologies TechBlog

TVer Technologies TechBlog

GitLabのススメ

サーバエンジニアの @toritori0318です。 今回は弊社で利用しているコラボレーションツール GitLab の特徴を紹介してみようと思います。
一言で言うと GitLabべんり! と言いたいだけの記事です :)

f:id:tt-torii:20200708145640p:plain
https://about.gitlab.com/press/


GitLab=GitHubクローン?

f:id:tt-torii:20200708145715p:plain

巷では GitLabってGitHubのクローンでしょ? といった印象を持たれる方が多いかと思いますが、実はそれだけではないんです。

GitLabではなんと以下のような多くの機能が標準で同梱されています。お得すぎ!

  • ほぼGitHubクローン
  • ほぼGist機能(Snippet)
  • ほぼGitHub Pages機能(GitLab Pages)
  • CI/CD
  • Docker Container Registory
  • Heroku Review Apps風機能
  • かんばんIssue管理
  • Slackクローン(Mattermost)
  • モニタリングツール同梱(Prometheus)

一部の機能はConfig設定が必要だったりしますが、パッケージインストールコマンド一発でほぼほぼこれらの環境が利用できるのは素晴らしいですね!
特に大企業の場合は外部サービスに依存できないなどの制限があったりしますし、そのような環境だととても有用なのではないでしょうか。
さらにエンタープライズ向けとしてより便利な機能が提供されています。(Issue Group, カスタマイズ, バーンダウンチャート / MR code climate連携 / ...)

ホスティングバージョン

https://gitlab.com/

上記URLでホスティングバージョンを利用することも可能です。
しかも無料バージョンでもかなりの機能が無制限で利用可能となっております。
自前で持ちたくない方でも気軽に利用できますね。

OSSバージョン インストール/アップグレード

https://about.gitlab.com/installation/

公式ページを見ると様々な環境でのインストール方式が公開されています。
基本的にはapt-getやyumなどのパッケージインストーラを利用するとほぼ一発で利用可能となるでしょう。
Docker/k8sなどへの構築も公式でサポートされています。

アップグレードの際も、たとえばubuntuであれば

sudo apt-get update
sudo apt-get install gitlab-ce
# ci 利用時は以下も実行
sudo apt-get install gitlab-runner

のみで完了します。

実はパッケージインストーラの内部ではChefが利用されており、これだけ複雑な機能を持っていても冪等性を担保したアップグレード/マイグレーションを可能にしています。素晴らしいですね!
弊社でもいつもこの手順でアップグレードを行っていますが、問題が出たことはほとんどありません。1

リリースサイクルについて

GitLabでは 毎月22日にバージョンアップデートリリース されており、定期的なアップグレードが日々行われています。
毎月新機能がリリースされるのは結構楽しみだったりします :)

Conversational Developmentについて

GitLabで目指している開発スタイルです。
くわしくは こちらの記事 で紹介されていますのでご参照下さい。
日々リリースされている機能を見ていると「なるほど、最終的にはこれを目指しているんだなー」というのが伝わっています。
これが実現できるとなかなか面白そうですね!

まとめ

以上、GitLabの紹介でした。
今回は詳細まで触れられませんでしたが、ソースコード管理 / MR(PR) / CI / Docker Registory / Issue / Snippet が利用できるだけでかなり便利だと思います!
みなさんも是非つかってみてください〜

TVer Technologiesではフロントエンド/バックエンド/分析系問わず随時エンジニアを募集しております!
もし興味がありましたらお気軽にお問い合わせ下さい。
Wantedly

Ref



  1. 一度だけ、中抜けバージョンを一気にアップグレードしようとした時にDBマイグレーションで問題が出たことがあります。ただし、そのときも元のバージョンにダウングレードし直し、その後一つ一つバージョンをインストールし直すことで問題なくアップグレードすることが出来ました。