「この前新人が消しちゃいけないファイルを消しちゃって。。。」
エンジニアの勉強会やミートアップに参加して会場の方と話をしていると、結構よくこんなこと聞きます。
特に、Wordpress開発をメインとしているウェブ制作会社さんなんかでは、FTPでサーバーのファイルを直接編集する。もしくは、デプロイの時にFTPでファイルを書き換えているようです。
LittlePocket.Labも初期の状態はそのような方法でサーバーを更新していました。
しかし、ウェブ制作からウェブ開発にシフトしたタイミングでその辺の開発フローが大きく変化しました。
Gitの採用
LittlePocket.Labでは、創業初期こそFTPを使っていましたが、本当に初期の初期だけでした。
現在はFTPは一切使っていません。
ではどうやって開発・デプロイしているのか。
その全てのフローで、Gitを採用しています。
具体的には、GitLabを使った開発フローをメインにしています。
Gitはチーム開発を効率化する
Git最大の魅力はチーム開発ですよね。
変更した箇所を見やすくハイライトしてくれるし、レビュー機能も充実してる。
自分以外の人の目が通るっていうのはとても大事なことですよね。
そして、自分の作業が他の人に影響を与えないっていうのも大きな要素です。
それだけで、消しちゃいけないものを消しちゃった!なんていうことがなくなります。
GitLabはデプロイをなくしてくれる
GitというよりGitLabの機能なのですが、CICDというものが存在します。
GitLabでmainブランチが更新されると、自動で任意のサーバーにmainブランチの任意のディレクトリが上書きされるというものです。
これにより、常にサーバー内のファイルとGitLabのmainブランチが一致している状態をキープすることができます。
しかもmainブランチにマージされた時に自動でデプロイされるので、新人がサーバーを触るみたいな危険なことがなくなります。
Gitを使うリスク
ここまでGitの魅力を紹介しましたが、もちろんデメリットもありますね。
まず、そもそもGitを使えるようになるまでに数ヶ月かかってしまいます。いわゆる学習コストですね。ただ、一度覚えてしまえばどこの会社でも通用するので便利です。
次に、定期的なメンテナンスが必要になってきます。先ほどCICDを使った自動デプロイを紹介しましたが、「一度作ってしまえば終わり」というわけにはいきません。CICDで使用している各種ツールやサーバーの設定などが変われば、それに応じて臨機応変にアップデートしていかなくてはいけません。
具体的には、Linux, シェルコマンドのようなインフラ関係の知識から、バックエンド、フロントエンドまで総合的な知識が必要になります。
まとめ
学習コストが高いように見えますが、Gitは全てのプログラム言語やフレームワークを横断する技術です。現代のウェブ開発現場ではほぼ必須で導入されていますので、基礎技術として取り入れた方が良いです。