こんにちは「なかむら」です。みなさんGit使っていますか。
Gitというとコード管理がイメージされ、アプリ開発の方々には馴染みがあると思いますが、インフラエンジニアの方々はどうでしょうか。今日はそんなインフラエンジニアでもGitが必要になってきているよね、という話をしようかなと思っています。
本記事の想定読者
Gitを使ったことないインフラエンジニア
Git:アプリケーション開発における主要な役割
Gitは、バージョン管理システムとして広く使われています。主にアプリケーション開発の分野で利用され、コードの変更を追跡し、複数の開発者が同時に作業できるようにすることが主な目的です。Gitの柔軟性とマージ機能は、複雑なアプリケーションの開発において不可欠な要素となっています。現代のアプリケーション開発においてGitを使わないことはほとんどなく、標準的なツールになっているのではないでしょうか。(レガシーシステムはわかりませんが)
インフラ領域におけるGitの利用の拡大
では、インフラ領域ではどのような使われ方がされているのでしょうか。
聞いたことある方は多いと思いますが、IaC(Infrastructure as Code)があげられます。インフラの構成をコードとして管理するこの方式は、クラウドネイティブの考え方として今やインフラ領域を迅速に構築、展開するためには必須です。AutoScalingなんかはこれありきですね。
これらはGitを利用してこれらのコードのバージョン管理を行うことが一般的です。Gitを使う事でアプリ開発と同じような管理がなされるわけです。
また、技術文書をマークダウン形式で管理し、Gitを通じてこれらの文書の変更履歴を追跡することも、情報の共有とコラボレーションの効率を向上させます。
Word、Excelで管理していると変更管理が煩雑なのは経験されている方は多いのではないでしょうか。そのあたりもGitで解決されるわけです。
※以下、読み飛ばし可
コラム:インフラエンジニアとSREの役割の違い
SRE(Site Reliability Engineering)という言葉をご存知でしょうか。会社によってはインフラチームがSREチームなんて呼ばれるようになったりしていることもあります。
インフラエンジニアは、通常、サーバ、ネットワーク、ストレージなどの物理的または仮想的なインフラの設計、構築、管理に焦点を当てています。一方、SREは、システムの信頼性、スケーラビリティ、自動化の維持と向上に注力し、インフラの運用におけるソフトウェアエンジニアリングの原則を取り入れることが特徴です。ですので、クラウド主流の昨今では前者のインフラエンジニアというよりはもう少し上のレイヤに注力するSREのほうがコードを書きますし、Gitとの親和性も高いのだと思います。
インフラエンジニアから見たGitのいいところ
他にも以下のような点でインフラの管理におけるGitの使用は、多くの利点があると考えられます。
エラーが発生した場合に迅速に原因を特定し、以前の安定したバージョンに戻すことができる
インフラの変更に関する透明性と一貫性が向上
セキュリティとコンプライアンス管理ツールとして有用
CI/CD(継続的インテグレーションと継続的デリバリー)実現に重要な役割
このあたりは今までのインフラ屋ではあまりやってない(敬遠されていた?)部分なのではないかと思います。
まとめ
このように、インフラの分野においても、Gitの重要性は高まっています。昔に比べたらかなり増えてきているアジャイル開発においては特に必須なのではないでしょうか。現代のテクノロジー環境においては、柔軟性と適応性が求められ、Gitはその両方を提供するツールです。
正直、インフラ屋の中にはなるべくコードに触れずにGUI、せいぜいLinuxのコマンドやWindowsのpowershellで戦ってきた人も多いのではないかと思いますが、そうも言っていられなくなるのかもしれません。
Gitの使い始めを学ぶにあたっては、たくさんのサイトやYouTubeなども出ていますので、興味持ったかたは是非Gitに触れてみてください。
【今日の格言】
「あなたが変化を起こしたいのなら、その変化になりなさい。」
マハトマ・ガンジー
Comments