現在のように細分化されたネットワークエンジニアがどのように分化していったのかを振り返ってみましょう。
この時期のネットワークエンジニアは、厳密にはネットワーク機器≒サーバでも有り、ネットワークはアプリケーションをユーザに提供するという観点から、サーバのアプリケーション(Web、FTP、メール等)やミドルウェア(データベース、アプリケーション)の知識を必要とされました。そのため、この時期のネットワークエンジニアは、TCP/IPを使用したすべてのアプリケーションに精通し、アプリケーションを冗長化するための仕組みを理解してることが求められました。 つまり、初期のネットワークエンジニアは、厳密にはサーバサイドエンジニアであり、しかもプログラマーでもありました。しかし、コンピュータの進歩と普及が進むにつれて、各アプリケーションやミドルウェアやOS、ネットワークの知識が増大していきます。特に顕著だったのは、システムをネットワーク上で冗長化、負荷分散する仕組みの進歩です。またこれに伴って複数のサーバで単一データを共有したり、レプリケーションをし合ったりする要件も出てきました。 こうした進歩に伴って、ネットワーク機器レベルで、システムを冗長化する仕組みが生まれてきます。さらにシステムの冗長化や負荷分散に伴って増加するサーバ数、それにアクセスするクライアント数の増加が物理ネットワークプレイヤーと論理ネットワークプレイヤーを理解し設計、構築する事ができるエンジニアが求められていきます。この段階で広義な意味でのネットワークエンジニアが誕生します。 サーバサイドエンジニアから分化したネットワークエンジニアですが、サーバ側の仕組みの複雑さが増大するのに合わせて、ネットワーク接続されたサーバ(OS)を最適化するエンジニア、ネットワーク経由でアプリケーションを提供するミドルウェアに特化したエンジニア、各アプリケーション毎のチューニングや設計に特化したエンジニアに分化していきます。その分化に伴って、利用者がエンジニアであり続けることが困難となり、利用者はアプリケーションの利用に特化し、その設計、構築、運用、保守はネットワークエンジニアが担当するようになります。 広義な意味でのネットワークエンジニアとは、サーバ(OS)やサーバに関わるアプリケーション、ミドルウェア、サーバやクライアントPCが接続されるネットワークなど担当するエンジニアを指します。また、1990年代の後半までは、こうしたネットワークエンジニアはその運用や保守を担当していました。 ネットワークエンジニアには高度なスキルセットが求められる一方で、そうした人材の育成には多くの時間とコストが必要となりました。また、各メーカーから発売されるアプリケーションやミドルウェア、ネットワーク機器はますます高度化していきます。そのため、ネットワークエンジニアを設計と構築に特化させ、かつプロダクトごとの知識をもたせるようになります。これにはメーカー公認資格などの復旧も後押しをします。そこでメーカーや技術レイヤー毎にネットワークエンジニアが細分化されていきます。 現在では、プラットフォームエンジニアやインフラエンジニアという呼び方でこうしたOSエンジニア、アプリケーションエンジニア、ミドルウェアエンジニア、狭義のネットワークエンジニアをまとめるようになっていきます。また、更にこうしたシステム全般を販売する会社の増加に伴って、提案、販売を支援する人(プレセールスエンジニア)、販売する人(セールスエンジニア)、販売後の設計をする人(アーキテクト)、構築する人(ポストセールスエンジニア)、運用する人(オペレーター)、保守する人(カスタマーエンジニア)などに更に分かれています。 現在私の理解では、ネットワークに接続される機器やシステムなどを全般的に設計、構築する人をネットワークエンジニア、或いはプラットフォームエンジニア、インフラエンジニアと呼称し、その対象はかなりの範囲になります。