Software Defined 時代には、プログラムが書けないと!
最近は、Software Defined xxxxx というニュースや広告を見ない日は無いほど、様々なものが Software Defined に移行しつつある。
Software Defined Network, Software Defined Storage, Software Defined Infrastracture, Software Defined Datacenter などなど。
また、現在開催中の CA Technologies 社のイベントのテーマも、Business Rewritten by SOftware だ。 まさに全てが Software Defined に向かっている。
このよく使われているこの Software Defined とは、いったい何だろうか?
従来、専用のハードウェアによって実装されていたものを、x86サーバー等の汎用的なハードウェア上でソフトウェアによって実装したものを呼ぶことが多いようだ。 また、従来手作業で行っていた種々の作業をソフトウェアで定義したり制御したりする場合にも使われている。 または、従来は手作業で行えないほどに複雑であったり、大量であったり、高速であったりしたためにできなかったことを、ソフトウェアによって実現することも Software Defined だろう。
これらのことから Software Defined を定義してみると、
「Software Defined」とは、「専用ハードウェアや手作業で行っていたことを、ソフトウェアで定義・制御することによって実現する」こと。
と言えそうだ。
ソフトウェアで定義・制御されている多くの Software Defined xxxxx には外部からのコントロールや連携のための API が実装されており、作業の自動化や効率化が今まで以上に進めやすくなっている。 一方で、従来煩雑であった構築・維持保守・運用の手間は削減されている。
先日の ONF の Meet-up でも、「近い将来、ネットワークエンジニアの仕事はなくなるのではないか?」という声も上がっていた。
この危機感は、まさにネットワークの設計・構築・維持保守作業が劇的に簡単になったことを実体験しているネットワークエンジニアが感じていることだ。
Software Defined 時代におけるこれからのITインフラエンジニア(サーバーエンジニア、ネットワークエンジニアなど)は単なる各技術領域についての専門性だけでなく、APIを駆使して自動化、効率化、連携など様々な負荷機能を自ら実装できることが求められるだろうし、そのために最低限のプログラミングスキルが必須となりそうだ。
そう、ITエンジニアだったら、プログラムくらい書けないと! である。
そういえば、慶応大学でIT入試が導入されるという記事も見かけた気がする。 みんな、プログラミングやろう!