コンテンツにスキップ

VCS Provider

VCS (Version Control System; バージョン管理システム)は、ファイル群の変更履歴を格納するシステムです。 変更はコミットあるいはリビジョンと呼ばれるグループにまとめて行われ、個々のリビジョンは過去のリビジョンと比較やマージが可能で、容易な復元もできます。

VCSにソースコードや構成・設定情報、そしてコード化されたインフラ環境といった全ての情報を格納しておけば、それはシステムの状態と歴史を格納したリポジトリになります。 アプリケーションと環境の全てをVCSに記録することで、問題の原因となった変更を素早く知ることができるとともに、問題のなかった状態への素早いロールバックも可能です。

このようなサービスの全ての情報がわかるリポジトリを作ることができれば、バリューストリームに関わる全ての人のコミュニケーションの助けになります。 開発や運用、情報セキュリティに関わる人たちが互いの変更を見ることができれば、互いの仕事・学びの可視性が向上し、チーム全体の成長を加速します。

このように、VCSはサービス開発には不可欠な要素です。そして、VCSの機能を提供するサービス (例えば、BitBucketGitHub) のことをVCS Providerと呼びます。 EponaではOperation-Lessの見地、およびDevOpsとの親和性から、 SaaSのVCS ProviderとしてGitLab.comに対応しています。


📝 なぜGitLabなのか?

VCS ProviderとしてはGitHubがメジャーであり、SaaSでもあるためEponaのOperation-Lessの見地からも合致しています。 GitLabを選んでいるのは、ソースコードをSaaSに預けることが困難なケースも考慮し、プライベートなネットワークにも導入しやすくなることを狙っています。


コード、ドキュメントをGitで管理できる

VCSにはCVSApache Subversionなど様々なプロダクトがありますが、 GitLabはその名の示す通り、Gitを利用できるVCS Providerです。

Gitは現在において広く使われているVCSであり、その隆盛の理由の1つが開発者同士の並行開発の容易性、そしてそれがもたらす開発スピードの向上です。 分散型バージョン管理システムであることや、軽量なブランチや高度な差分検出・マージといった特徴により、複数人が同時並行して同じ箇所を開発できます。 他の人の作業と独立して自分の作業を行えることは、よりアジリティのあるサービス改善につながるでしょう。

またGitLabは、Gitの操作とDevOpsのプラクティスを統合してくれます。ソースコードをマージしたタイミングでデプロイメントパイプラインを 起動するといった仕組みにより、高度な開発プロセスも実現できます。 そしてそれらの改善の過程はサービスの辿ってきた履歴として保存され、後になって振り返ることも、復元もできます。 「後になって復元できる」という安心感は、よりリスクを取った開発も可能とするでしょう。

Merge Requestの形でピアレビューを行える

VCS Providerの持つMerge Requestは、開発者が自身のリポジトリにPUSHした変更や機能追加をチームの リポジトリに取り込んでもらうための要求を出す機能です。

ℹ️ Merge Requestは、VCS ProviderによってはPull Requestとも呼ばれます。

ℹ️ GitLabのMerge Requestについてはこちらを参照してください。

Merge Requestが送信されると、チームメンバーはその内容や含まれているコードの変更などを確認できます。また、そこには 機能追加の内容やソースコードの差分について議論するための機能があります。ソースコードの行単位でコメントをつけることも可能で、 開発者同士で効率的なコミュニケーションを取ることができます。

サービスの品質担保はサービスを開発・運用するサービスチームの責任であり、そのサービスの課題や問題を誰より知っているのは、そのサービスを開発・運用しているサービスチームに他なりません。 チームの日常の開発・運用の中にレビューを組み込みましょう。このようなピアレビューの仕組みはサービスの品質を向上させるだけで無く、 コンテキストの共有やスキルの伝搬に繋がり、チーム力を向上させます。


※ このドキュメントはクリエイティブコモンズ(Creative Commons) 4.0 の「表示—継承」に準拠しています。

※ このドキュメントに記載されている会社名、製品名は、各社の登録商標または商標です。

© 2021 TIS Inc.