インフラエンジニアとプログラマには大きな壁があります。
仕事の内容自体にも大きな差がありますが、知識における差も非常に多く、両方を極めるというのは非常に難しいです。
インフラエンジニアとアプリケーションエンジニアの違いについて以前記事を書きました。
違いについて書きましたが、個人的にはインフラエンジニアもプログラミング言語で1つくらいはコーディング出来る方が良いと思います。
今回はその理由について書いていきたいと思います。
中にはインフラエンジニアが嫌でアプリをやりたい人もいると思います。
また、逆もしかりでプログラマからインフラエンジニアになりたい人もいるかもしれません。
それではインフラエンジニアがプログラミングが出来た方が良いメリットを中心に書いていきます。
インフラエンジニアもプログラミング出来た方が良い理由3つ
時代はOSSになりつつある
今の時代はOSSの商用利用や開発がかなり進んでいます。
それに伴いコミュニティの活発化やソースコードの公開も増えています。
QiitaやGitHUBのようなコミュニティはITエンジニアであれば目にする事も多いと思います。
また、エンジニアの評価軸にこういったコミュニティの活動も含まれてきました。
自作アプリの公開やコミュニティでの活動も採用や転職などの評価に加味されるようになってきました。
そして、そのコミュニティの多くは開発系が多くプログラミングスキルが必要です。
インフラエンジニアとしてApacheやOpenStackが使えても開発スキルは身に着きません。
こういったコミュニティで活動していくにはプログラミング言語が必須です。
C言語だけではなく他の言語でもOSS製品は多くあります。
そういった啓蒙活動をしたい気持ちがあればプログラミング言語を覚えるのは必要なプロセスです。
また、大手ベンダもOSS化とサブスクリプション制度への移行が活発です。
サブスクリプションとは、所謂課金制で無料で使えるものにさらに性能を求める場合は課金を課す仕組みです。
つまり、今までは有償だったものも無料化しさらにソースがオープンになることもあります。
そしてオープンになった時に積極的に開発するにはプログラミング言語が必須です。
ITエンジニアとしてより評価を高めるのには開発スキルが必須です。
インタプリタ型であればPython、プログラミング言語で.NETあたりから入ると汎用的で実用的かもしれません。
インフラもアプリが管理していく
インフラエンジニアの仕事もアプリケーションによって自動化が進んでいく時代です。
VMwareなどもそうですが、コマンドラインで仮想マシンが作成できるので十分にアプリケーションで自動化する事が出来ます。
それまでは担当のサーバエンジニアが手で構築したりしていましたが、予算や工数があれば自動化している会社もどんどん増えています。
RubyやPythonを用いて自動化する事が多いですが自作のアプリケーションを作ることも可能です。
これが何を指すかと言えば、インフラの仕組みを詳しく理解している人がコーディング出来る場合、新しい製品を生み出す事が出来るという事です。
AnsibleやDockerを使うのも良いですが、それらの仕組みのデメリットを修正したければ開発コミュニティに参加できますし、自作する事も可能です。
インフラがアプリによって管理される時代ではプログラムをかけた方が良いのは間違いないです。
向き不向きももちろんあるので、プログラミングに興味のあるインフラエンジニアは積極的に勉強してみてはいかがでしょうか。
インフラエンジニアがアプリによって淘汰されることはありませんが、1つは得意なプログラミング言語を持っている方がエンジニアとしては非常に希少価値が高いと思います。
クラウドを利用するとインフラは重要ではない
インフラエンジニアの多くは、オンプレミスのシステムや機器を管理していると思います。
パブリッククラウドでインフラ周りの設定を専門にやっている人もいるかもしれませんが、それではオンプレの経験値は積めません。
ある種「クラウドエンジニア」と勝手に名付けてしまいますが、そのような位置づけになると思います。
そして何よりアプリを作成するにあたりクラウドを利用するとインフラは重要ではありません。
もちろん、帯域やサーバリソースなど基本的なパラメータは重要です。
冗長構成なども重要な要素であります。
しかし、重要なのは開発環境を整備するまでのランニングコストなどを含めての部分です。
クラウドではアプリをデプロイするだけで利用出来てしまう事もあります。
つまり、オンプレのようにスペックや構築が必要なくアプリケーションを公開することが出来るのです。
そこに、インフラエンジニアは登場しません。
そのように利用している会社や企業も多いのではないでしょうか。
クラウドベースでの開発をする会社も多くなっているのでアプリについて知識を持っておくのはリスクヘッジになります。
全てクラウドにシステムを移行する会社も出てくるかもしれません。
もしそのような時代へ移ってしまう場合は、やはりプログラマとしても活動できるような予備知識はあった方が良いと思います。
最後に
インフラエンジニアがプログラミング言語を覚えた方が良い理由について書いてみました。
個人的にですが、仕事でエンジニアをしていても、趣味のようにコミュニティで活動できる方がエンジニアとしてのやりがいや楽しさが増えると思います。
また、そういった「趣味」となっていた活動が評価される時代になってきました。
OSSに関しても積極的な商用利用も増えているので、そういった開発コミュニティでコミッターになれなくとも活動できれば十分「開発者」と言えます。
インフラエンジニアでも気力があればぜひプログラミング言語を覚えてみましょう。