理系学生日記

おまえはいつまで学生気分なのか

「GitLab 実践ガイド」を読んだ

GitLab 実践ガイドを読みました。

全体を通して

GitLab はこれまで使ったこともなく、全体的にどれだけの機能を持っているのか、その目指す思想はどのようなものなのかを知りたくてこの本を読みました。 2018 年 2 月初版発行でまだ 2 年しか経ってはいないものの、全体としてはやや記述が古いところはあります。 例えばプロダクトの思想として謳われている ConvOps については GitLab サイトには言及されていませんし、 現在の GitLab の画面は書籍の中のスクリーンショットの画面とは異なります。

convops site:gitlab.com に一致する情報は見つかりませんでした。

それでも、全体として統合されている機能だったりが体系立てて整理されていることは、GitLab 初心者の自分にとっては有用でした。

プロダクトの長所

オールインワン

ぼくがメリットを感じるのは、「必要なものをすべて提供するぞ」というオールインワン的なプロダクト思想です。

GitLab is a complete DevOps platform, delivered as a single application, fundamentally changing the way Development, Security, and Ops teams collaborate and build software.

Features | GitLab

ロードマップや Issue tracking、バーンダウンチャート、カンバン、タイムトラッキング、Wiki、CI/CD やパッケージレジストリやコンテナレジストリ、SAST や DAST、もちろん VCS、コードレビュー、Wiki と、必要そうなことほぼ全てをサポートしてくれています(このうちのいくつかは SubScription が前提

これらを複数のプロダクトを組み合わせて行おうとすると、どうしてもそのプロダクト間の相性、プロダクト間のバージョンの相性といったことを気にしなければなりません。 それらを利用者が管理し、それぞれのプロダクトのアップデートに追随しながら動作確認をしつつ使っていくのはなかなかにつらい。

オールインワンでこれらが提供されるメリットは、やはり 1 つ入れておけば安心、1 つアップデートすれば他の機能との相性も心配ないという世界観が手に入ることでしょう。

CI/CD

CI/CD がネイティブでサポートされているのはやはりありがたい。 フィードバックを早く頻繁にというのは、もはや開発プロセス上では当たり前のことになっています。ソースコードということになると、VCS でそれを実施するのに適切なのは、やはり commit あるいは push タイミングということになるでしょう。ということは、VCS で commit または push のタイミングをフックし何か処理を行わせることは大きな武器になります。

GitHub であれば GitHub Actions ですが、GitLab であれば GitLab CI/CD です。trunk-based development を実現するためにも、この機能は必須です (それが会社で実現できるかについては棚上げしますが)。

SaaS でもオンプレでも

大きなメリットだなぁと思っているのは、オンプレでも容易に使えることです。 いったんは SaaS 利用を前提に考えていますが、オンプレでこれを使用するときも あまり悩まずにインストールが可能です。インストールしたことないけど。 自社運用それなりに大変だろうけど。

それでも SaaS に預けるのは危険だ、自分たちで守らねばという価値感があるのもわからなくはありません。そういったときに、別プロダクトに切り替えていままで手に入れたノウハウをゼロリセットするよりは、ずっと良いかなと。

もちろん、GitHub にも GitHub Enterprise があり、各種パブリッククラウドや VMWare 等にはインストールできます。はい。

最後に

書籍の感想というよりは GitLab の感想になってしまいましたが、書籍自体は GitLab 各機能がどのようなものであり、どう使うのかを丁寧に解説してくれています。 惜しむべきは、書籍は GitLab の CE や EE を中心としており、gitlab.com の解説ではなかったということ。 まぁアップデートが頻繁でもあり、CE や EE の方が解説すべき内容 (インストールや管理等) が多いので、致し方ないですね。