セルフホスト Git サービスをオススメする理由:Linux 使い(略)Advent Calendar 2024
はじめに
これは「Linux 使いになりたい人のための Advent Calendar 2024」の記事です。
筆者は、Web エンジニアを志望する人には、セルフホスト Git サービスを稼働させて利用することをオススメしています。もし Git を使ったことがないなら、Git を学ぶときに、セルフホスト Git サービスを稼働させることも視野に含めながら学習するのが効率的だと考えています。
Web エンジニア志望者に必要な知識
Web エンジニア志望者に必要な知識としては、次のようなものがあります。
- Web アプリ開発に使うプログラミング言語の知識
- Web アプリ実行環境についての知識
- Web サービスの運用についての知識
- プログラム開発環境についての知識
- プログラム開発方法についての知識
こういった知識のうちで、最初に身につけたほうが良いものに、バージョン管理システムの使い方というものがあります。バージョン管理システムが使えれば、自分が作成したものの履歴を簡単に管理することができるので、無駄なファイル管理やバックアップ作業をする必要がありません。
最近、人気のあるバージョン管理システム
最近、バージョン管理システムで人気があるのは Git になります。ですから、これを使えるようになるのがオススメです。
ここで、Git を使えるようになるということは、git
コマンドが使えるようになれば良いということなのですが、コマンドラインツールの使い方を覚えるのは大変です。
コマンドラインツールだけではなく、GitHub のように Web ベースで使えるクラウドサービスがあるので、こういったものを使いながら Git について学んだ方が、理解しやすいです。
ただし、こういったクラウドサービスはアカウントを作成しないといけません。あまり使い慣れていないときから、クラウドサービスのようなものを使い始めると、何か失敗したときの対応が非常に面倒なことになったりします。
そういったことを考えると、できるだけ手元で環境を用意して、何かがあっても個人の責任で対応できる範囲としておくのが安心でしょう。
ということで、GitHub を使う参考書で Git を学ぶことを選んだとしても、セルフホスト Git サービスの環境を用意して、好き勝手にビルド・アンド・スクラップを繰り返せるようにしておくと良いと考えています。
セルフホスト Git サービス
ここで、世の中には、GitHub のような Web ベースで使える セルフホスト Git サービス用のソフトウェアがいくつかあって、OSS(Open Source Software、オープンソースソフトウェア)として公開されています。具体的には次のものがあります。
- GitLab
- Gitea
- Forgejo
- GitBucket
Web エンジニアを目指している人は、将来は GitHub のような Web サービスに関わることになるのですから、せっかくなら手元で個人で何か Web サービスを動かしてみると良いはずです。手元で日常的に Web サービスを稼働させることで、Web サービスに関係する知識やスキルを身につけやすくなるのです。
最近は Docker や WSL といった仮想環境が手軽に使えるようになっていて、セルフホスト Git サービスを稼働させることが手軽にできます。これを、本格的に手元で運用しようとすると、どんどんハードルが高くなって大変になるのですが、試しに動かして見るだけなら、拍子抜けするぐらいに簡単です。
セルフホスト Git サービスを動かすにあたってハードルが少し高くなるのは、Docker や WSL といった仮想環境についての知識が要求されるところになります。
とはいえ、以前だと Linux マシンを用意するところからだったのが、最近は、少し高性能な Windows マシンがあったら仮想環境を用意して、すぐに Web サービス向けのサービスを動かして試せるようになっています。良い時代になりました。
Web システムと Git を一緒に学ぶ
こう説明すると、Git を知らないところから、Git を学びつつ、セルフホスト Git サービスの稼働方法も学ぶというのは意外とハードルが低そうだと感じませんか。
Web エンジニアを目指すのなら、いずれは何らかの Web サービスを稼働させる方法について理解する必要があります。また、ソースコードの管理には Git を使うのがデファクトスタンダードとなっているので、これも使えるようになる必要があります。
いずれは、どちらもできるようにならないといけないわけですから、少しずつでも必要性を感じたところで、関連する技術を身につけていくのが良いはずです。
筆者は、Web エンジニアを目指している人が、これから Git について本気で学びたいと思うなら、Git が提供する機能について知るだけでなく、その機能を使い倒すための Web システムの環境の構築についても興味を持つはずだと考えています。なぜなら、Web エンジニアは自分で開発した Web アプリをサービスとして提供できることが要求されるので、その仕組みに関しての知識も必要となるからです。
クラウドサービスで提供されている GitHub のようなソフトウェアを、自分で開発して提供するためには、どんな技術が必要なのかを学びたいと考えている Web エンジニア志望者は多いことでしょう。著者は、そういった人が Git を学ぶなら、GitHub のようなものを個人環境で動かせるようになるところまでやってみるのが良いと考えています。そうすることで、Web サービスを提供する時に必要な技術について自然と学ぶことができるようになります。
Git 利用のメリット
さて、ここで、Git について本気で学んでいくと、自然と普段から Git を活用して開発作業するのが当たり前になっていきます。そうすると、開発作業に限らず、ファイルのバージョン管理を Git でするようになります。Git を使うことでファイル管理がとても楽になります。Git を使うことのメリットを列挙すると次のようになります。
- バックアップ管理がしやすい
- ファイルの変更履歴の確認がしやすい
- 複数のマシンでファイルの同期がしやすい
- パソコン移行時にファイル移行がしやすい
- 事故によるファイル消失がしにくい
Git を使う場合は、GitHub などのクラウドサービスを使う前提とすることも多いですが、基本的に Git で個人用のファイルを管理するのが当たり前になってくると、GitHub のようなクラウドサービスで管理するのは適さないものがあるときに困ることになります。普段から Git を使うのが当たり前になると、個人でも GitHub のような環境があると便利だと思うようになります。
筆者はデスクトップマシン、ノートパソコン、寝室用 2 in 1 パソコンと複数のパソコンを利用していて、これらのパソコン間でのファイル同期には Git を使っています。新しいパソコンを購入したときは Git を使えるようにして、最新のデータを新しいパソコンへ取り込むだけでファイルの移行作業はおしまいです。また、デスクトップマシンに Git 用の専用仮想マシンを用意していて、その仮想マシンを定期的にバックアップすることで、より安全なファイル管理となるようにしています。
おわりに
この記事では、Web エンジニアを志望する人には、セルフホスト Git サービスを稼働させて利用することをオススメしました。駆け出しエンジニアだと、実際に Web サービスを公開して運用するといったことに辿り着くのは、なかなか難しいはずです。実績をつくるのも大変でしょう。
ここでオススメしている「セルフホスト Git サービスの稼働」というのは、利用者は自分しかおらず、動かすだけならすぐにできるようになります。筆者がススメているのは、「それだけでやめずに、自分が利用者となって、そのサービスを継続的に運用しつづけること」になります。こういう経験に価値があるのです。
「こういった環境を用意して、小さな Web サービスを日常的に動かして続けていること」は、小さいながらも立派な実績となります。少なくとも、「座学で使い方を学びました」というだけの人と比較したら、経験は上になるはずです。
最初から、高度な Web サービスを運用できる人はいません。手元で自分が使う Web サービスを持つことで、Web サービスを運用するためのスキルが身につくのです。既存のソフトウェアを動かして運用しつづけることができたら、次は、実際に自分が開発した Web アプリを運用するという、次のステップへもスムーズに進むことができるはずです。
Web サービスにおいては、運用と開発は両輪ですから、両方の技術について、バランス良く学んでいくことが大切です。Git だけ学ぶ、Web サーバー構築だけ学ぶ、というより、両方を組み合わせて効率よく学んでいきたいものですね。
Discussion