LoginSignup
3
3

More than 1 year has passed since last update.

GitLabの初心者が読む記事

Last updated at Posted at 2021-05-30
1 / 23

Gitを知っている人向けにGitLabの説明資料を書いてみました。


GitLabとは

  • GitLab社が公開しているGitによる分散バージョン管理システムのホスティングサービス
  • DevOpsのライフサイクル全体をカバーするオールインワンのアプリケーションで、GitLabだけで、DevOpsを実践するために必要なツールを揃えることができる。

Gitのホスティングサービス?

  • リモートリポジトリを格納するサーバの場所を貸し出すサービス。
  • チーム開発時は各メンバーがホスティングサービスのリポジトリをPush&Pullして開発を進める。
  • 分散管理なのでローカルとサーバーの二か所以上にファイルを格納できるため、一つのリポジトリが破損しても、その他のリポジトリから復旧できるので、可用性を確保できる。

DevOps?

「開発者と運用者が協力し合い、ユーザーに迅速かつ継続的にプロダクトやサービスの提供を行う」こと、上手く実現することで開発も運用も効率性が向上し、ユーザーにより良いサービスを迅速に提供することができる。


GitLabの特徴

  • 自社サーバでもオンプレミス運用ができるので、企業で利用する場合は社内のセキュリティルールに準拠できる。
  • Web版としてSaaSサービスも利用することができる。
  • DevOpsの実現のためのアジャイル開発に用いるツールが豊富に揃っており、単一のプラットフォームでDevOpsを実現できる。

GitLabの機能

Git以外にも色々機能があります。


Docker等その他ツールと連携可能

image.png

その他にも無数にあり、書ききれないため以下をご参照ください。


ジョブ自動実行機能

事前にスクリプトの内容とジョブを定義しておけば、自動的に処理を実行できる。
この機能を利用することで、開発したプログラムのテストを実行する等、様々なCI/CDを実現することができる。
※CI/CD:日々開発したソースコードなどを構成管理ファイルにコミットし、ビルドやテスト、デプロイを自動的に実行すること


ソースコードの管理

ソースコードの閲覧および変更履歴の確認
リポジトリへのアクセス管理
ブランチの閲覧・操作


コードレビュー

コードへの注釈コメント
レビュー済みコードのマージ
コンフリクトの解消
レビューが終わっていないとmasterブランチにマージできないという制限をかけることもできる。


チケット管理

タスクごとにチケットを発行し、課題等の解決に役立てる。


アジャイル開発で使用するGitLabの機能

アジャイル開発 GitLabの機能
ユーザーストーリー Issues
タスク To-Do List
エピック Epics
見積もり Weight
プロダクトバックログ Issue lists,prioritised labels
スプリント Milestones
バーンダウンチャート Burndown Chart
アジャイルボード Issue Boards

Issues(ユーザーストーリー)

顧客がやりたいことが簡潔に纏め、開発者と顧客の間で、顧客の言葉を使いながら、要件を整理し、互いの共通認識を作るために使用する。
image.png


To-Do List(タスク)

Issueのうち、個別のタスクを作成するツール。
image.png


Epics(エピック)

関連するユーザーストーリーのまとめて記述する。
例:iPhone 端末対応と Android 端末対応は「モバイル対応」というエピックでカテゴリ分けする。
image.png


Weight(見積もり)

ユーザーストーリーの規模を表すストーリーポイントを記述する。
image.png


Issue lists(プロダクトバックログ)

ビジネスや顧客のニーズを反映させたユーザーストーリーを優先度付けして一覧にする。
image.png


prioritised labels(プロダクトバックログ)

同上
image.png


Milestones(スプリント)

スプリントのスタート日や期日を設定して、Milestoneの中にIssueを配置する。
image.png


Burndown Charts(バーンダウンチャート)

スプリントの残工数を把握するために利用する。
image.png


Issue Boards(アジャイルボード)

各タスクの進捗状況を表示し、スプリントの状態を確認する。
image.png


GitHubとの違い

競合製品のGitHubとの違いは以下の通り。
- GitHubでは、複数のツールをつなぎ合わせてエンドツーエンドのDevOpsソリューションを提供する必要があります。
- GitLabはDevOpsのための単一プラットフォームを提供し、さまざまなツールがあらかじめ統合されている。
- GitHubは多くの場合、2000人を超えるユーザーに対応できないが、32000人を超えるユーザーまでスケール可能。
- GitHubのダウンタイムは4時間に及ぶこともあるが、GitLabはゼロダウンタイムのアップグレードを提供しています。
- GitHub自体はオープンソースではないため、製品の改善はGitHubに依存しているが、GitLabはOSSなのでエコシステムが確立している。
- GitHub + CircleCIという構成をとった場合、GUIが2種類になるが、GitLabは1画面で完結する。


参考

本投稿を作成するにあたり、下記サイトを参考および画像を引用しました。

3
3
1

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
3
3