GitLabの運用方法を入門者向けに解説!GitHubとの違いも比較。ダウンロード、日本語化する方法も紹介!
GitLabのロゴはキツネではなくタヌキだそうです。時々話題に上る上、GitLabのマージリクエストで議論が交わされることもあります。
共通の目標を達成するため、集団で行動する賢い動物を象徴しているそうです。
本記事では最初にGitLabの運用に必要な考え方や知識を説明しましょう。GitLabとDevOpsは切り離せない関係にあるのです。
またDevOpsの開発手法に沿い、GitLabの機能紹介をしていきます。
最後にGitLab.comではなくオンプレミス版のGitLabの運用を検討されている方向けに、サーバー選定やダウンロードについて解説します。
GitLabが目指すサービス
GitLabはGitHubと同じGitホスティングサービスです。Gitリポジトリの管理機能を中心に、開発を支援する様々な機能を提供しています。
これらの機能を全て使う必要はありません。しかし導入機能の取捨選択をするためには、機能の存在理由や目的を知らなければなりません。
GitLabがどのようなサービスか、またどのようなサービスを目指しているのかを見ていきましょう。
GitLabで全部できる
Web開発を行う際のツールの選択肢は多岐に渡ります。弊害としてプロジェクトメンバーは複数の異なるツールを使い分けることになりました。
- カンバンにはTrello
- プロジェクト管理はRedmine
- GitのホスティングサービスはGitHub
- CI/CDツールにはJenkins
特にプロジェクト管理とGitのホスティングサービスとの間の情報の分散は、社内のナレッジベースとしていく上での悩みの種でした。
GitLabにはこれら全ての機能が揃っています。既にGitLabはフルスタックの開発管理ツールといっても過言ではないかもしれません。
DevOpsライフサイクルを支援
GitLabはDevOpsの各工程に入用なツールや機能を提供しています。
DevOps開発を始めるなら、GitLabは有力な選択肢の1つになるでしょう。
詳細については「DevOpsライフサイクルの導入」の項で触れます。
DevOpsの概要
DevOpsでは開発(Development)メンバーと運用(Operations)担当者が相互に連携を取り、協力しながらプロジェクトを進めます。
DevOpsの特徴として「CLAMS」という5つの要素があります。
- Cluture(文化)
- Lean(リーン開発)
- Automation(自動化)
- Measurement(計測)
- Sharing(共有)
ここでの文化はDevOps開発を進めていく上で必要なメンバーへの配慮、互いに尊重し合い、信頼する振る舞いのことです。
またリーン開発は最初に最小限の機能を実装し、ユーザーの反応を計測して効果があるようであれば追加機能を拡充していく開発手法です。
DevOpsは開発手法でありながら開発フローやツールだけでなく、組織のあり方・メンバーの考え方についても言及するものです。
DevOpsについては、そのメリットやツールの選び方などについて以下の記事で詳しく解説しています。ぜひ併せてご参照ください。
DevOpsとは?DevOpsのメリットと適切なツールの選び方を徹底解説!アジャイルとの違いって?資格の難易度もご紹介
GitLabの活用が意味するもの
GitLabに備わる機能を片っ端から利用していくことはできます。
しかしGitLabの活用するということは、DevOpsの考え方を積極的に取り入れていくということです。
本当の意味でGitLabを有効活用するには、DevOpsのライフサイクルと文化を学ぶ必要があります。
DevOpsへの理解を深め、改めてGitLabの機能を眺めると、どのツールがDevOpsでいうところの何を目的として提供されているかが分かる筈です。
DevOpsライフサイクルの導入
DevOpsライフサイクルは「計画・開発・ビルド・テスト・デプロイ・運用・フィードバック」の流れを繰り返します。
GitLabではGitリポジトリの管理だけでなく、カンバンやCI/CDツールの利用ができるようになっています。
カンバンは計画・開発を、CI/CDツールはビルド・テスト・デプロイを行うツールです。
GitLabを活用していけば必然的にこのサイクルを利用することになります。
DevOps文化の受容
GitLabにはIssue・Merge Request・Wikiなどがあります。これらはGitHubなどの他のGitのホスティングサービスにも実装されています。
「プルリクエスト 作法」と検索すると、多くの記事がヒットします。これらで言及されているのは互いに配慮したレビューを行うことです。
またGitLabはSlackなどのチャットツールに通知が行えます。優れた解析・分析ツールから、良い知らせが読み取れるかもしれません。
しかしこれらのツールから得た情報をどのように活用するかはチーム次第です。
先述のDevOpsの文化やリーン開発の概念そのものを、ツールの機能から逆推するのは非常に難しいと思われます。
もし上記の文化を理解せず、配慮に欠けた行動や目的にそぐわないツールの使い方をしたら、プロジェクトは混乱するでしょう。
GitLabを正しく活用するには、DevOps文化を理解した上で受容していかなければなりません。
GitLabを用いた開発
GitLabの機能のうち、開発(Development)メンバーが主に使用する機能について説明します。
- プロジェクト管理
- Gitレポジトリ
- GitLab CI/CD
プロジェクト管理
GitLabでは課題をIssue(イシュー)、Issueをより抽象的な単位でまとめたものをEpic(エピック)と呼んでいます。
GitLabはIssueとEpicを利用して、課題のリスト化・マイルストーンとスプリントの指定・アジャイルボードを利用することが可能です。
またBurndown Chart(バーンダウンチャート)が表示でき、課題の消化率がひと目で把握できるようになっています。
Gitレポジトリ
Gitのホスティングサービスとしての機能も充実。
ソースコードの検索や履歴の表示などの基本機能はもちろん、特定のブランチやタグに対する細かいアクセス制御の設定もできるのです。
またWebアプリ上からIDEを利用してファイル編集が可能です。Gitの柔軟な操作(各種merge・cherry-pick)を行うこともできます。
Merge Requestではpushしたブランチに対してGitLab CI/CDで自動テストを走らせ、成功したらマージするといった動作を設定できます。
GitLab CI/CD
GitLabのCI/CDツールです。テスト・ビルド・デプロイの自動化を行うことが可能です。
GitLabにはDockerコンテナのレジストリも用意されており、GitLab CIからDockerイメージのアップロードやダウンロードができます。
GitLab内では各機能を連携させながら作業を行います。このため他サービスのCI/CDツールを使用するよりも設定が簡単です。
GitLabを用いた運用
GitLabの機能のうち、運用(Operations)担当者が主に使用する機能について説明します。
- アプリケーションの分析・監視
- 各種アプリケーションとのサービス連携
アプリケーションの分析・監視
GitLabでデプロイ後のアプリケーションのパフォーマンス監視やログの確認が可能です。
またオンプレミス版のGitLabを利用している場合は、専用の画面からサーバーの稼働状態を監視できるようになっています。
各種アプリケーションとのサービス連携
SlackやMattermostなどのチャットツールと連携し、リポジトリへの変更やテスト結果の通知を行うように設定できます。
GitLabとGitHubの違い
GitLabとGitHubが有する機能は似ているものです。
GitHubにあるほとんどの機能は名前こそ違うものの、GitLabでも見つけることができます。
となると違うのは運営企業や方針などになってきます。
運営企業が異なる
GitLabはGitLabが運営しているものです。
GitLabはあくまでDevOpsライフサイクルをサポートする方針で活動しています。
一方、GitHubはGitHubが運営しています。
GitHubは2018年にMicrosoftに買収されました。これが原因でGitHubユーザー内でも使い続けるべきかどうか議論が起こったのです。
発表されてすぐGitLabに移行したユーザーもいましたが、GitHubのユーザー数は増加傾向にあります。
またMicrosoftはAzure DevOpsを、GitHubはGitHub Actionsを発表、両者の連携は今後も強化されていくものと見て良いでしょう。
料金や制限に対する考え方
GitHubは一部無料で利用できる機能やサービスはあるものの、基本的には他のサービスと同様、ユーザー数や機能に応じて課金が必要です。
一方、GitLabは様々な機能を無料で公開しています。GitLab.comもそうですし、GitLab CEもそうです。
GitLabは企業戦略として、GitLab.comを最も人気のあるSaaS型クラウドサービスにしたいと考えています。
このため可能な限り無償で制限なく機能を提供していきたいと考えているそうです。
GitHubについては以下の記事でも詳しく解説していますので、GitHubについてより詳しく知りたい方はぜひ併せてご参照ください。
GitHubの概要とメリットを徹底解説!初心者に必要な事前知識とは?基本の使い方も詳しく説明。料金とダウンロード方法も紹介。
GitLabの導入
GitLab導入の際に迷いそうなポイントをピックアップしました。
インストール手順書の内容はGitLabの公式ドキュメントが詳しいので割愛します。
クラウドにEEをインストールするか、GitLab.comを利用するのが良いのではないでしょうか。
自社サーバーかクラウドか
GitLabは自社サーバーやVPSなどで利用する他に、クラウドで運用することが可能です。
オフラインでの運用が前提であれば自社サーバー一択ですが、そうでないならクラウドサービスを検討してみてはいかがでしょうか。
AWS(Amazon Web Services)やGCP(Google Cloud Platform)などにインストールする詳細な手順も公開されています。
GitLabの2つのEdition
GitLabには「GitLab CE(GitLab Community Edition)」と「GitLab EE(GitLab Enterprise Edition)」の2種類の版があります。
GitLab CEはオープンソースのソフトウェアです。
無料で利用することができますが、障害が発生した場合は自力で解決する必要があります。
GitLab EEはGitLab CEをベースに開発されています。
有料ライセンスを購入しなければなりませんが、サポート対応が受けられるようになるので安心です。
また利用できる機能もプランが上がるごとに増えていきます。
ライセンスなしでGitLab EEを使うこともできます。機能的にはGitLab CEの利用と違いはありません。
もし将来的にGitLab EEを使用する可能性があるなら、GitLab EEをインストールしておくと良いでしょう。
GitLabのダウンロード
GitLabのダウンロードリンクとインストールの手順は「Download and install GitLab」のページから確認できます。
沢山のLinuxディストリビューションやクラウドサービスの名前が並んでいます。
オンプレミス版をダウンロードする場合、通常は「GitLab Omnibus package」を選択すれば問題ありません。
日本語のページの情報は古いことがありますので、英語のページを閲覧することをおすすめします。
GitLabの日本語化
GitLabは多言語対応しており、日本語化はユーザー毎に行います。
ユーザーの新規作成後、最初にログインした時点で言語は英語になっている筈です。
変えるには右上のプロフィールアイコンをクリックし「Settings」から設定画面に遷移します。
左側のメニューの下の方にある「Preferences」をクリックすると、テーマや挙動などを変更する画面にとべます。
LocalizationのLanguageから「日本語」を選択後、「Save changes」を押して下さい。
画面を再読込すると日本語で表示されるようになります。
GitLabの運用方法
GitLabで積極的にDevOpsを導入するということは、結果としてGitLabに依存するということです。
ここではオンプレミス版のGitLabを導入する際に、気を付けるべき点について解説していきます。
メンテナンスと障害対策の重要性
GitLabで全ての作業が完結するということは、GitLabがなければ仕事にならなくなってしまう可能性があります。
例えば障害発生によりログインが行えない、サーバーそのものにアクセスできない状態になってしまうと大変です。
オンプレミス版のGitLabを導入する場合は、日々のメンテナンスや障害対応が速やかに行えるインフラエンジニアが居たほうが良いでしょう。
バージョンアップは小まめに
あまりにも放置し続けると管理画面上に「update asap(できるだけ早くアップデート!)」と表示されます。
GitLabには続々と新しい機能が追加されているのです。
またセキュリティに関する修正が含まれていることも往々にしてあります。
GitLabは新しいマイナーバージョンが出る毎に、詳細なアップグレード手順書を公開しています。
古くなったGitLabを更新する作業は非常に大変です。小まめに更新を行いましょう。
おわりに
GitLabのロゴの意味やDevOpsへの理解・姿勢を知ると、何が今のGitLabを作り上げていったのか分かるような気がします。
多少の差こそあれGitLabとGitHubが提供する機能は同じものや似ているものが多く、どちらを採用するか迷う方もいるでしょう。
そのような時は機能やデザインだけでなく、どのような方針で運営されているか、どんなWebサービスを目指しているかを見てみましょう。
もしGitLabを選ぶならまずDevOpsへの理解を深め、それをプロジェクトチームで共有することをおすすめします。
GitLabはプロジェクトの達成を目指し、プロジェクトメンバーが一丸となって開発と運用に取り組むことができるツールです。
toiroフリーランスは、SHIFTグループがプライムとして参画している独自案件をフリーランスエンジニア向けに紹介する唯一のプラットフォームサービスです。
エージェントによるサポートもありますので、ご利用を検討してみてはいかがでしょうか。