GitLabとは?:イノベーションのためのOne DevOpsプラットフォーム
クラウドネイティブNow
近年、企業全体のDXをスムーズに進めるためにDevOps(デブオプス)が注目されています。これは、システムの開発と運用の境目をなるべく取り払い、協働しつつ迅速にサービスのリリースに活かしていく取り組みです。「GitLab(ギットラボ)」は、このDevOpsのためのプラットフォームとして、ソフトウェアのライフサイクルを加速させ、事業スピードを抜本的に改善するソフトウェア開発支援環境です。GitLabのGitとは、プログラムのソースコードなどに対する変更履歴を記録・追跡するための分散型バージョン管理システムです。このGitを利用した著名なサービスであるGitHub(ギットハブ)のようなサービスを社内などのクローズド環境に独自構築できるため、コストやセキュリティの観点でGitHubが使えない企業から注目を集めています。GitHubについては「GitHubとは?」で詳しく説明していますので併せてご覧ください。
本ページではGitLabとはどのようなものかについて概要を解説します。
DevOpsとは
GitLabの説明の前にまずは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を使用することで、企業はDevOpsの可能性を最大限引き出し、大規模な変革とイノベーションを速度と確信をもって実現することができます。
シングルアプリケーションである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などによる資産を受け渡し
- 資産の変更や訂正を目視とコピー&ペーストによるマージに頼る
- メールや会議など記録に残しづらいやりとりが散見
- 権限管理が難しく誤削除などの誤操作を起こす
パイプライン、IaC、BlueGreenデプロイメントなどの実現
Before
- 運用チームが手作業で開発チームから受け取った開発資産を環境に適用する
- コマンドラインベースの手順書を作成して目視でレビュー
- 一部の運用は特定の人の環境に限定される
After
- Pipeline(注6)によって、開発チームの資産を自動テスト、デプロイする
- コードベースの手順を作成し適用前に自動テストする
- Pipelineによる運用の脱属人化を実現
組織を超える課題管理、脱Excelを実現
Before
- Excelシートを利用して課題管理を行うために課題の共有・更新が難しい
- 組織を越えたタスク管理が難しい
ビジネスやプロジェクトの費用対効果(ROI)を計測する
Before
- 各ステップでの対応時間の集計が難しい
- 全体の課題解決時間やバグ改修コストを把握しづらい
- 各メンバーの活動頻度を把握し難い
-
注1Merge Request:開発者がターゲットブランチへ元ブランチの変更を反映する機能です。
-
注2Issue:プロジェクト推進中の課題を可視化して、管理する機能です。
-
注3Wiki:プロジェクト推進中にドキュメント情報を保存する場所です。
-
注4Merge Rule:独自のMergeルールを設定する機能です。
-
注5Protectedブランチ:改ざんや誤操作などを防ぎソースコードを保護する機能です。
-
注6Pipeline:CI/CDを実現するためにジョブの設定・実行・結果を確認する機能です。
-
注7Board:Issueを分類して可視化するカンバン機能です。
-
注8Epic:プロジェクトを越えて複数のIssueを管理する機能です。
-
注9Roadmap:組織における各マイルストーンや課題の進捗を時間軸で可視化する機能です。
-
注10Value Stream:プロジェクト/組織に、各種課題解決、Commit時間、Pipeline実行時間などの分析機能です。プロジェクトのROI分析に役立つ機能です。
-
注11Burndown / Burnup chart:Issueの作成状況、クローズ状況を時間軸で可視化する機能です。
-
注12Activity:ユーザーの活動を見える化する機能です。
富士通の提供する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 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の進化を加速 | 優先度、セキュリティ、リスク、コンプライアンスを管理すると同時に、デリバリーを最適化 |
主な機能
|
Freeの機能に加えて
|
Premiumの機能に加えて
|
複数プロジェクトの管理が必要な組織向け | 複数プロジェクト管理に加え、セキュリティやコンプライアンス管理も重視する組織向け |
関連情報
当社が提供する「GitLab Enterprise Edition 関連製品」の詳細は下記ページをご覧ください。
-
謝辞本ページで使用している一部の図につきましてはGitLabのホームページ(https://about.gitlab.com/)より引用いたしました。
本コンテンツに関するお問い合わせ
お電話でのお問い合わせ
Webでのお問い合わせ
当社はセキュリティ保護の観点からSSL技術を使用しております。