Columnコラム

DevOpsを最短距離で実現する
「GitLab」の使い方

2021年2月8日

ご相談・無料お見積り

DX(デジタルトランスフォーメーション)が、重要な経営戦略に位置付けられるようになった現代で注目されているのがDevOpsです。NRI(野村総合研究所)が提供するアプリケーション開発支援ツール「GitLab」は、単一のアプリケーションで、DevOpsのライフサイクル全般に対応し、ソフトウェア開発サイクルを高速化するとして利用者を拡大しています。このコラムでは、GitLabの大規模開発に有効な機能と、開発業務の効率化・自動化を実現するNRIの「aslead DevOps」の概要を紹介します。

DevOps実現に必要な機能が揃った、アプリケーション開発支援ツール「GitLab」

近年、AI(人口知能)やビッグデータなどのデジタル技術を駆使して、ビジネスに変革をもたらすDXを、重要な経営戦略の1つに位置付ける企業が増え、ビジネスの競争優位性を左右する時代になっています。このような環境変化に、サービス開発の現場では、プロセスの迅速性や品質向上、コスト削減が同時に求められるようになり、既存の開発体制を大きく見直すことも必要になりました。組織やチームで大規模なアプリケーション開発を行う場合、役割の異なるメンバー同士のコミュニケーションを重視して、コラボレーションと知識共有を促進することが重要です。そうした中で、日本でも実践され始めているのがDevOpsです。

DevOpsとは、エンドユーザに対して、確実にビジネスの価値を届け続けることを目的に、開発担当と運用担当が連携・協調し、柔軟かつ迅速にシステムを開発する開発文化のこと。

NRIがおすすめするGitLabは、このDevOpsを実現するための必要な機能が揃っているアプリケーション開発支援ツールです。高い生産性や包括的なガバナンスが評価され、世界中の10万以上の組織で使用されています。

Git由来の開発ツールに比べ、GitLabが優れている3つのポイント

GitLabの特長は数多く存在しますが、ここでは主に次の3つを紹介します。

1. ソフトウェアデリバリーのライフサイクル全体をオールインワンでカバー!

Git(分散型バージョン管理システム)をベースとしたソースコード管理機能によって、ソフトウェアデリバリーのライフサイクルを可視化・最適化し、デリバリー速度と生産性を大幅に向上します。

また、Ultimateプランに変更することで、プラニング機能が有効となり、プロジェクトの進捗管理を最適化するとともに、CI(継続的インテグレーション)機能による自動テスト、静的/動的セキュリティテスト、コード品質分析結果の迅速なフィードバックなどを実現。さらに、パイプラインに組み込まれたCD(継続的デリバリー)機能によってリリースおよびデリバリーを自動化し、デリバリーサイクルを短縮します。つまり、GitLabは通常のDevOpsをカバーすることはもちろん、セキュリティを考慮したシステム設計を前提に運用や保守を行うDevSecOpsの要件まで対応可能にするツールといえます。

2. 頻繁なバージョンアップで、常に最新機能をキャッチアップ!

GitLabは他のGit由来ツールに比べて最新機能のリリースサイクルが早いのも特長です。月に1度マイナーバージョンアップを実施するとともに、毎年メジャーバージョンアップも実施し、その迅速な機能拡充と最新のセキュリティ対応によって、開発ライフサイクル全体を支援できるよう常に進化し続けています。GitLab社の開発チームは開発文化のモダン化やプロセスの変革につながるベストプラクティスを製品開発に反映しています。

3. 小さく始め、大規模プロジェクトにも対応する、柔軟なスケールアウトを実現!

GitLabはOSS(オープンソースソフトウェア)のため、無償版で使い始めることが可能です。また、開発プロジェクトの規模や機能拡張の必要に応じて有償版も用意されており、「Starter」(1ユーザー:48米ドル/年)、「Premium」(1ユーザー:228米ドル/年)、「Ultimate」(1ユーザー:1188米ドル/年)などから選択することができます。

GitLabのUI画面の例

図:GitLabのUI画面の例

大規模プロジェクトで真価を発揮するGitLabの使い方

GitLabは、小~中規模開発のみならず、大規模開発でも有効な機能が多く搭載されています。例えば、プロジェクトの権限制御(下図内①)や、パイプライン化により手順を標準化して、戻り率の低下、作業の高速化を実現する機能(下図内②)などは、無償のCoreバージョンでも利用できます。

しかし、開発メンバーが100人を超えるような大規模プロジェクトには、有償版の利用をおすすめします。Starter以上のエディションでは、チームでのDevOpsの実践を促進する機能が数多く利用可能になっています。例えば、ブランチ(プロジェクト本体に影響を与えずに、プログラムの修正や機能の追加を行う分岐ポインタ)をマージ(結合)する前に、チームメンバーにブランチの更新内容をレビューして、そのフィードバックを共有させることができるMerge Requestという機能で、承認作業が可能になります。そのコードレビューをする際に、複数の承認者をアサインする機能や(下図内③)、品質チェックに利用できるコード品質レポートが活用できます(下図内④)。

大規模プロジェクトで実感するGitLabの使い方の例

図:大規模プロジェクトで実感するGitlabの使い方の例

GitLabを効果的に活用するNRIの「aslead DevOps」

GitLabの有償版をお手頃の価格で使いやすくし、ほかの機能と容易に連携できるようにして開発生産性を高めたのが、NRIの開発管理ソリューション「aslead DevOps」です。NRIが長年手掛けてきた金融業界向けの、極めてセキュアなシステム開発から生み出されたノウハウを基に、ソースコード・モジュールの管理やCI/CD機能・品質分析などのポートフォリオを、NRI独自のプラグイン(ツール横断での認証、監視機能など)で統合。大規模エンタープライズビジネスで求められる機能・サポートを提供します。開発業務の効率化・自動化を実現することで、生産性を向上することを目的としています。

aslead DevOpsでは、GitLabのほかに、次のツール類がラインナップされています。

  • モジュール・コンテナ管理ツール「Sonatype Nexus」:複数のサブプロジェクトが動く大規模開発において、独自のパッケージリポジトリやコンテナレジストリを構築し、ライブラリの依存性解決を自動化します。
  • ビルド・デプロイなどのジョブ実行ツール「GitLab Runner」:GitLab上でのプッシュ(追加や変更履歴をリポジトリに保存すること)を検知すると、GitLab RunnerがジョブのCI/CDパイプラインを実行します。
  • ソースコード分析ツール「SonarQube」(オプション):重複コードの検出や循環的複雑度の計測、脆弱性の検出、issueの管理などを実行します。
  • APIテストツール「Karate」(オプション):APIテストの自動化やモック(仮のクラス生成)、パフォーマンステストなどを、単一のフレームワークに統合します。

NRIでは、次のような課題をお持ちの開発組織・チームを、aslead DevOpsでサポートしたいと考えています。

  • ライブラリ管理サーバを、オンプレミス環境に構築するよりもSaaSで利用したい。
  • ソースコードやモジュールのバージョンが適切に管理されておらず、ライブラリ管理がうまくいっていないと感じている。
  • 定型作業を手順で行っており、CIツールを導入して自動化したい。
  • 開発したソースコードを静的解析することで、自動的にルール違反を検知し、品質担保したい。

このようなお悩みをお持ちなら、ぜひ、NRIにご相談ください。

GitLabなら、asleadにお任せください

ご相談・無料お見積り

お問い合わせ

asleadに関するご相談は、メールにてお気軽にお問い合わせください。

お問い合わせフォーム ※個人情報は、お問い合わせ対応に利用致します。
お問い合わせ