Appearance
GitLabについて

はじめに
昨今、DXを推進させるために、開発チームと運用チームがお互い協力して、開発スピードを向上させることを目指す仕組みとして、DevOpsを導入する企業が増えています。DevOpsの実現にはツール選定が非常に重要です。
この記事では、GitLabの概要やサービスの成り立ち、混同されがちなGitHub(ギットハブ)との違い、GitLabで実現できることを紹介していきます。DevOpsの導入を検討している方はもちろん、とりあえずGitLabとは何かを知りたいという方にもご参考いただける内容になっています。
GitLab(ギットラボ)とは?
GitLabは、ソースコードのバージョン管理システムであるGitを利用したサービスで、ソースコードの管理以外にもCI/CD(継続的インテグレーション / 継続的デリバリー)、プロジェクト管理、セキュリティといった複合的な機能を持ち合わせています。いわゆるオールインワンのDevOpsプラットフォームと呼ばれるものです。
DevOpsを実現するためには、開発・運用における各プロセスを効率的に進めるためにツールの導入が不可欠です。各ベンダーからツールを選んでツールチェーンを構築する方法もありますが、GitLabを利用するとDevOpsにおいて必要となる基本機能を網羅することができます。つまり、極端に言うと、GitLabを導入すればDevOpsを実現するための土台は整うというサービスです。ただし、ツールを導入しただけで、DevOpsを実現できるわけではないため、あくまでDevOpsに必要な開発環境を整えることができるという風に認識していただければと思います。
昨今、DevOpsというスタイルが広く受け入れられるようになったこともGitLabの成長を後押しし、現在ではGoldman Sachsや、Siemens、NVIDIA、NASA、Alibabaなどの非ソフトウェア系の企業を含む世界的大企業がGitLabを導入しています。日本でもソニーなどの大手企業がGitLabを利用して、ソフトウェア開発プロセスの効率化を進めています。
DevOpsとは?
開発(Development)と運用(Operations)を組み合わせた言葉で、ソフトウェア開発をスムーズに進め、開発スピードを向上させるために、開発チームと運用チームが協力しあおうという考え方です。この考え方が広まった背景には、移り変わりの早い市場のニーズに対応していくために、ユーザーの声を迅速に取り入れ、開発プロセスを素早く回すべきというソフトウェア開発における昨今の流れがあります。
GitHubとGitLabの違い
よく比較されるサービスとしてGitHubがあります。どちらもソースコード管理システムであるGitを利用しているサービスですが、サービスのコンセプトや想定利用シーンに違いがあります。そのため、どちらのサービスが適しているかは、自社の環境や用途によって検討する必要があります。
GitHub:世界最大の開発者コミュニティ
GitHubはGitのソースコード管理の機能を利用しつつ、世界中の開発者との共同開発やコミュニケーションができるサービスです。そのため、オープンソースプロジェクトを立ち上げたり、既存のプロジェクトに協力したりする場合に適しています。また、他の開発者のソースコードを参考にしたり、自分が書いたソースコードを共有できるため、開発の参考にしたり自身のスキルアップにも活用することができます。
基本的にクラウドベースのウェブサービスのみでGitHubは提供されています。(ただし、大企業向けのEnterpriseプランでは限定的にオンプレミス版を提供しています。)全ユーザーが同じプラットフォーム上でプロジェクトを共有することになるため、セキュリティが厳しい企業は利用が難しい場合もあります。
GitLab:オールインワンのDevOpsプラットフォーム
GitHubが社外のコラボレーションを得意としているのに対し、GitLabは組織内におけるソフトウェア開発プロセス全般をスムーズに進めるための環境構築に最適なサービスです。DevOpsを実践するためには、DevOpsライフサイクルと呼ばれるソフトウェア開発における各プロセス(計画、コード作成、ビルド、テスト、リリース、デプロイ、運用、モニタリング)をシームレスに繋げていくことが重要になります。GitLabはこのような各プロセスにおいて必要な機能を幅広くカバーしているのが特徴です。特に、セキュリティ機能やプロジェクト管理機能が充実しており、大規模なプロジェクトや複雑な開発プロセスの一元管理に向いています。
GitLabはプロダクトとして提供されており、自社サーバーにインストールして使用することができるため、セキュリティポリシーが厳しい組織や、クラウドサービスの使用を制限している環境でも利用することができます。