GitLabとは?:イノベーションのためのOne DevOpsプラットフォーム
クラウドネイティブNow

近年、企業全体のDXをスムーズに進めるためにDevOps(デブオプス)が注目されています。これは、システムの開発と運用の境目をなるべく取り払い、協働しつつ迅速にサービスのリリースに活かしていく取り組みです。「GitLab(ギットラボ)」は、このDevOpsのためのプラットフォームとして、ソフトウェアのライフサイクルを加速させ、事業スピードを抜本的に改善するソフトウェア開発支援環境です。GitLabのGitとは、プログラムのソースコードなどに対する変更履歴を記録・追跡するための分散型バージョン管理システムです。このGitを利用した著名なサービスであるGitHub(ギットハブ)のようなサービスを社内などのクローズド環境に独自構築できるため、コストやセキュリティの観点でGitHubが使えない企業から注目を集めています。GitHubについては「GitHubとは?」で詳しく説明していますので併せてご覧ください。

本ページではGitLabとはどのようなものかについて概要を解説します。

DevOpsとは

GitLabの説明の前にまずはDevOpsについて簡単に解説します。

DevOpsとは開発チームと運用チームが協力しあってシステムを開発・運用することでビジネスの価値を高めるための様々な取り組みを示す概念

DevOpsとは、ソフトウェア開発の手法のひとつで、開発チーム(Development)と運用チーム(Operations)が協力しあってシステムを開発・運用することで、ビジネスの価値を高めるための様々な取り組みを示す概念です。DevOpsについては「クラウドネイティブアプリケーションの要 ~DevOpsとは?~」で詳しく説明していますので併せてご覧ください。

DevOpsを実現するためのツールチェーン

DevOpsのツールチェーンとは、アプリケーション開発とデプロイのタスクを自動化するツールセットです。ツールチェーンはスケーラビリティーに優れたソリューションで、自動インテグレーション・テスト・デジタルアセットの管理・脆弱性スキャンといったツール群で構成されます。また、アジャイルプランニングやDevOpsデリバリーといった実証済みの手法によって、アプリケーションデリバリーの合理化、高速化、堅牢性および信頼性の向上が図れます。これらによりアプリケーションの継続的デプロイと構成が可能になります。

バラバラのツールで構成されたシステム

ツールチェーンインテグレーションに伴う問題点

開発工程が一連の流れで進められるツールチェーンを活用することで迅速な開発に繋がりますが、一方で開発の全体工程に複雑さをもたらす要因にもなりえます。加えて、プロジェクト管理や開発・テスト・運用といったチームが別々のツールを導入するといっそう複雑さが増します。こうしたツールチェーンではツールの管理作業に大事な工数が浪費されることになります。このようなDevOpsツールチェーンの管理オーバーヘッドは、「ツールチェーンタックス(ツールチェーンに伴う負担)」のようなものです。
理想となるツールは、クリーンでモダンなソフトウェア開発環境です。つまり、数十もの様々なツールやカスタム・インテグレーションの管理における無駄やオーバーヘッドを伴うことなく、アプリケーションのビルド、テスト、デリバリーを迅速に行える効率的で管理しやすい必要十分な機能を備えたソフトウェア開発環境なのです。

ツールチェーンインテグレーションに伴う問題点

One DevOpsプラットフォームの必要性

では、具体的にはどのような開発環境なのか?答えはソフトウェア開発ライフサイクル(SDLC:Software Development Life Cycle)全体に可視性をもたらすシングルアプリケーション、つまりOne DevOpsプラットフォームがベストであると考えています。そのOne DevOpsプラットフォームがGitLabなのです。
GitLabによって全てを一元的に管理できればワークフローのボトルネックを特定し、各要素がデプロイスピードに与える影響を評価するのも簡単です。総合的なツールならではの信頼できる唯一の情報源(Single Source of Truth)を作成でき、各ステップを素早く監視してエラーを見逃す可能性を削減することができます。

GitLab = One DevOpsプラットフォーム

GitLabは組織全体(ソフトウェア、運用、IT、セキュリティ、ビジネス)が、エンドツーエンドの統一システム全体で、完全な透明性、一貫性、トレーサビリティをもって、ソフトウェアを共同で計画、ビルド、保護、デプロイできるようにするDevOpsプラットフォームです。

単一アプリケーションであるGitLab

GitLabを使用することで、企業はDevOpsの可能性を最大限引き出し、大規模な変革とイノベーションを速度と確信をもって実現することができます。

GitLabは3年以内に407%のROIを達成

シングルアプリケーションであるGitLabは、次のような独自の価値をデリバリー・チームにもたらします。

  • ツールチェーン全体における単一の共通ユーザーエクスペリエンス
  • 共通のセキュリティおよびアクセスモデル
  • 信頼できる唯一の情報源に基づいた開発作業のレポートと管理
  • コンプライアンスと監査の簡素化
  • 管理職から開発者および開発パートナーやエンドユーザーまで全ての人が1つの会話に参加
  • 統一されたガバナンスモデル

GitLabにはさまざまな機能がありますが、代表的な機能は以下のとおりです。

計画

計画

作成

作成

検証

検証

パッケージ

パッケージ

セキュリティ

セキュリティ

リリース

リリース

構成、設定

構成、設定

モニター

モニター

防御

防御

管理

管理

チーム計画 ソースコード管理 継続的インテグレーション(CI) パッケージレジストリー SAST 継続的デリバリー 自動DevOps 指標 コンテナスキャン サブグループ
ポートフォリオ管理 コードレビュー コードテストとカバレッジ コンテナレジストリー 秘密の検出 ページ Kubernetes管理 事故管理 セキュリティオーケストレーション イベントの監査
サービスデスク ウィキ 性能試験 Helm Chartレジストリー コード品質 高度な展開 展開管理 オンコールスケジュール管理 監査レポート
要件管理 Web IDE マージトレイン 依存関係プロキシー DAST 機能フラグ ChatOps トレース コンプライアンス管理
品質管理 スニペット アプリケーションを確認する Git LFS APIセキュリティ 証拠を公開する コードとしてのインフラストラクチャー エラー追跡 DevOpsレポート
デザインマネジメント シークレットマネジメント ファジングテスト オーケストレーションをリリース 製品分析 バリューストリーム管理
依存関係のスキャン 環境管理
ライセンスコンプライアンス
脆弱性管理

GitLabを利用するシーン

GitLabを利用するとプロジェクトにどのような変革を起こすことができるのか、いくつかの事例を見てみましょう。

リポジトリー、Wikiによる、コミュニケーションを改善

Before

  • プロジェクトごとのノウハウが分断して開発ナレッジの共有ができていない
  • リポジトリーサーバーが乱立してプロジェクトごとに設計書やソースコードのバージョン管理が混乱
  • サーバーの乱立でインフラ運用コストが肥大化

After

  • プロジェクトごとのノウハウをWikiで共有して開発ナレッジの集約・共有
  • リポジトリーサーバーを集約してGitによるプロジェクトごとの設計書やソースコードのバージョンを管理
  • サーバー集約によりインフラ運用コストを削減

協業・共同・委託など開発効率化、明確化

Before

  • メールやFTPなどによる資産を受け渡し
  • 資産の変更や訂正を目視とコピー&ペーストによるマージに頼る
  • メールや会議など記録に残しづらいやりとりが散見
  • 権限管理が難しく誤削除などの誤操作を起こす

After

  • Gitリポジトリーによる資産の受け渡し
  • Merge Request(注1)を活用したレビュー、自動テスト、自動マージ
  • Issue(注2)、Wiki(注3)によるやり取りの記録
  • Merge Rule(注4)、Protectedブランチ(注5)による独自のレビューや承認フローの実現

パイプライン、IaC、BlueGreenデプロイメントなどの実現

Before

  • 運用チームが手作業で開発チームから受け取った開発資産を環境に適用する
  • コマンドラインベースの手順書を作成して目視でレビュー
  • 一部の運用は特定の人の環境に限定される

After

  • Pipeline(注6)によって、開発チームの資産を自動テスト、デプロイする
  • コードベースの手順を作成し適用前に自動テストする
  • Pipelineによる運用の脱属人化を実現

組織を超える課題管理、脱Excelを実現

Before

  • Excelシートを利用して課題管理を行うために課題の共有・更新が難しい
  • 組織を越えたタスク管理が難しい

After

  • IssueとBoard(注7)機能により視覚的に課題を管理
  • Epic(注8)、Roadmap(注9)の機能でプロジェクトを越えた大きな課題を視覚的に管理

ビジネスやプロジェクトの費用対効果(ROI)を計測する

Before

  • 各ステップでの対応時間の集計が難しい
  • 全体の課題解決時間やバグ改修コストを把握しづらい
  • 各メンバーの活動頻度を把握し難い

After

  • Value Stream(注10)によりIssueの解決時間やPipelineの実行時間を自動的に集計
  • Burndown/Burnup chart(注11)、Value Streamによるプロジェクトの状態、課題解決状況、組織のROIを計測してActivity(注12)でユーザーの活動を見える化
  • 注1
    Merge Request:開発者がターゲットブランチへ元ブランチの変更を反映する機能です。
  • 注2
    Issue:プロジェクト推進中の課題を可視化して、管理する機能です。
  • 注3
    Wiki:プロジェクト推進中にドキュメント情報を保存する場所です。
  • 注4
    Merge Rule:独自のMergeルールを設定する機能です。
  • 注5
    Protectedブランチ:改ざんや誤操作などを防ぎソースコードを保護する機能です。
  • 注6
    Pipeline:CI/CDを実現するためにジョブの設定・実行・結果を確認する機能です。
  • 注7
    Board:Issueを分類して可視化するカンバン機能です。
  • 注8
    Epic:プロジェクトを越えて複数のIssueを管理する機能です。
  • 注9
    Roadmap:組織における各マイルストーンや課題の進捗を時間軸で可視化する機能です。
  • 注10
    Value Stream:プロジェクト/組織に、各種課題解決、Commit時間、Pipeline実行時間などの分析機能です。プロジェクトのROI分析に役立つ機能です。
  • 注11
    Burndown / Burnup chart:Issueの作成状況、クローズ状況を時間軸で可視化する機能です。
  • 注12
    Activity:ユーザーの活動を見える化する機能です。

富士通の提供するGitLab Enterprise Edition製品

富士通はデジタルアプリケーションプラットフォーム「FUJITSU Hybrid IT Service Digital Application Platform」およびオンプレミスからの移行に最適なVMware vSphere®基盤のクラウド「FUJITSU Hybrid IT Service FJcloud-V」を提供しており、GitLab社よりGitLab Selected Partnerに認定されています。GitLab社のマネージドサービスプロバイダーとして、お客様ごとのプライベートなGitLabの環境を提供するマネージドサービス「DevOps with GitLab(図中①の部分)」および、その機能を拡充するための「GitLab Enterprise Edition(図中②の部分)」を提供しています。

富士通の提供するGitLab

当社が提供するGitLab Enterprise Editionは適用先に応じて2種類提供しています。

  • GitLab Enterprise Edition Subscription:図中②-1の部分でFJcloud-V環境で提供します。なお、FJcloud-V環境には、IaaS / PaaS / DevOps / Hatoba / 専有コンポーネント / プライベートリージョン / ゾーンが含まれます。
  • GitLab Enterprise Edition ライセンス:図中②-2の部分で適用先の制限はありません。

DevOps with GitLabとGitLab.comの機能比較

GitLab社がSaaSで提供するGitLab.comとDevOps with GitLabの違いは下表のとおりです。特にDevOps with GitLabでは、GitLab管理機能およびネットワーク設定の独自ドメイン設定を自社要件に合わせてカスタマイズできる点と、ネットワーク設定およびシステム構成を専用インスタンスでセキュリティ強化している点が優れています。

  GitLab.com(GitLab社提供SaaS) DevOps with GitLab
GitLab一般機能 DevOpsライフサイクル 正式提供 正式提供
CI実行 Shared Runnerの提供あり
(別サーバーの場合無制限)
無制限
(要・別サーバー)
GitLab管理機能 GitLab.rbカスタマイズ 未提供 提供予定
(正式提供の予定)
Admin Area利用 未提供 正式提供
ネットワーク設定 独自ドメイン設定 未提供 正式提供
プライベートLAN 未提供 提供予定
(正式提供の予定)
独自ファイアウォール設定 未提供 正式提供
システム構成 GitLabインスタンス 共有インスタンス
(他の顧客様も同一GitLabを利用)
専有インスタンス
インフラ運用 サーバー運用 不要 不要
バージョンアップ 対応 不要 不要
サポート サポート窓口 GitLabサポート
(英文)
富士通サポート
(日本語)

GitLab Enterprise Editionのライセンス種類

当社では「DevOps with GitLab」と組み合わせて利用できるGitLab Enterprise Editionのライセンスを提供しています。

Free(DevOps with GitLabにて提供) Premium Ultimate
アプリケーションのビルド・デプロイ・実行をサポート インクリメンタルなデプロイやKubernetes管理などの高度なサポートによって、ITの進化を加速 優先度、セキュリティ、リスク、コンプライアンスを管理すると同時に、デリバリーを最適化

主な機能

  • コミュニティーサポート
  • 統合されたCI/CD
  • 課題ボード
  • 任意のマージリクエスト承認
  • Wikiによるプロジェクトのドキュメント
  • プロジェクト管理のバリューストリーム分析
  • Mattermostとの連携

Freeの機能に加えて

  • 複数グループの課題ボード
  • エピック/ロードマップ/マージリクエストのルール設定
  • プッシュルール / リポジトリプルミラーリング
  • 災害復旧機能 / 監査イベント
  • LDAP / ADサーバーのサポート
  • 複数プロジェクトのパイプライングラフ
  • 高可用性のアーキテクチャをサポート
  • GitLab Geoでグローバルな分散型チームをサポート
  • パフォーマンス・バーンダウンチャート
  • パフォーマンステスト / 環境ダッシュボード

Premiumの機能に加えて

  • 依存関係スキャン
  • 動的アプリケーションセキュリティテスト
  • 機密情報の検出 / 脆弱性管理
  • セキュリティダッシュボード
  • コンテナネットワークポリシーの管理
  • コンテナの脆弱性スキャン
  • コンプライアンスダッシュボード
  • クレデンシャルイベント
  • 障害発生時の自動ロールバック
  複数プロジェクトの管理が必要な組織向け 複数プロジェクト管理に加え、セキュリティやコンプライアンス管理も重視する組織向け

関連情報

当社が提供する「GitLab Enterprise Edition 関連製品」の詳細は下記ページをご覧ください。

  • 謝辞
    本ページで使用している一部の図につきましてはGitLabのホームページ(https://about.gitlab.com/)より引用いたしました。

本コンテンツに関するお問い合わせ

お電話でのお問い合わせ

富士通コンタクトライン(総合窓口)

0120-933-200

受付時間:9時~12時および13時~17時30分
(土曜日・日曜日・祝日・当社指定の休業日を除く)

Webでのお問い合わせ

当社はセキュリティ保護の観点からSSL技術を使用しております。

ページの先頭へ