システムエンジニアと言っても扱う技術や知識は分野によって異なります。
一般的にエンジニアのイメージが強いのがプログラマですが、サーバやネットワークを扱うインフラエンジニアもいます。
また更に細分化すると、プログラマであってもWeb系、ERP、業務アプリケーションからC#、Javaなど開発言語までかなり細かく分類できます。
私はインフラエンジニアの側面が強いエンジニアですが、どちらかと言えばサーバサイドです。
インフラエンジニアとしての業務が多い私ですがネットワーク系の作業は苦痛です。
出来なくはないのですが、やりたいとも楽しいとも思いません。
これはネットワークの知識や技術を貶めたいわけではなく単純に私には向いていない仕事だからです。
フリーランスになってからはネットワーク案件は一切受け付けないようになりました。
今回は私がネットワーク系の業務が苦手な理由を紹介したいと思います。
私の苦手な理由に共感が出来た人は同じようにネットワークは向かないかもしれません。
逆に私が得意とするデータベースもまた苦手な人が多いでしょう。
好きだと感じる技術でないと仕事が苦痛にしかならない技術分野です。
好きな技術で仕事が出来る方が長く続いて専門性も高くなることが多いと言えるでしょう。
私がネットワークが苦手な理由
ベンダー(種類)が多すぎる
まずネットワークに言えるのは機器の種類が業界の中でもかなり多い分野です。
製品区分については少なくとも以下はあります。
- ハブ
- ルータ
- スイッチ
- L3スイッチ
- ロードバランサ
- 無線機器
- VPN装置
- セキュリティ関連(FWなど)
少なくとも上記に関して私は構築含めて作業をした経験があります。
さらに、これらの製品群で主要なベンダーも非常に多いです。
- Cisco
- Juniper
- A10
- HPE
- Brocade(買収済み)
- Alteon
- アライドテレシス
- 日立
- 富士通
- NEC
- ヤマハ
あくまで私が触れてきたベンダーだけでもこの数です。
ベンダーと製品群で掛け算をするとものすごい数です。
国内外で製造されているので技術も似ていたり異なっていたりイマイチ覚えきれません。
ネットワークの知識などは一緒なのですが設定の仕方がバラバラで覚えきれませんでした。
CiscoとA10は似ているものがありましたがJuniperは別物です。
また、ロードバランサもAlteonはコマンドがどちらかとサーバ寄りのものありました。
VIPやサーバグループの考え方が一緒でも知識が全く異なります。
BIG-IP(F5社)も簡単に触ったことがありますがあまり覚えていないので、ここまで書いた通り覚えきれていません。
さらに無線機器もあるのでもう限界です。
私はネットワークだけは他の人にお任せしたいと思っています。
正直ネットワークを極めたい気持ちもなければ頼まれてもやりたくないと思ってしまいます。
責任が大きすぎる
ネットワークは言ってしまえばシステムやインターネットを繋ぐ道です。
道がなくなってしまえば当然、アクセスが出来なくなることを意味します。
もちろん、冗長構成をとって安全に作業することが前提になります。
しかしそれでもシングル構成の顧客もいれば作業ミスの影響が広範囲になる事が多いです。
私がプロではないからかもしれませんが、影響規模が大きくて結構苦痛です。
叱責されるほどのミスをした経験はありませんが、緊張して震えながら作業していたこともあります。
アプリ改修の失敗はシステム利用者のみですが、ネットワーク失敗はネットワークを利用する人全員に影響が出ます。
大規模な案件であればあるほどミスがクリティカルになっていきます。
サーバやアプリの方が責任がないと言っているわけではありません。
各システム全て重要なものであって、安易に停止させて良いとは思っていません。
しかし万が一の影響規模を考えるとあまり前向きに取り組めないのが本音です。
結構簡単に壊れる
サーバも壊れないわけではないですが、ネットワーク機器は数が多く壊れやすいことが多いと思います。
特に停電などによって数台壊れることもあるあるかもしれません。
これは私のただの怠慢ですが頻繁に保守対応するのが面倒だと感じます。
基幹系のスイッチやルータは冗長構成を取りますがそれ以外はあまりお金をおかていない会社も多かったです。
急に通信できなくなった時に、とりあえずで再起動したり予備機を持って行ったり、保守調整を入れたりする頻度はサーバより絶対的に多いです。
数が多いので尚更壊れやすいと感じてしまいますが、実際は5年以上ずっと動いているものもあったりします。
(国産機器は結構優秀だと思います)
結線が面倒に感じる
機器を接続する結線ですがきちんと整線しないと他の作業時に邪魔になる事があります。
ラックで機器設置などをする人は、ほとんどがケーブルはスマートにまとめる事を意識していると思います。
サーバと違い、ネットワークは多くのケーブルを接続しなければいけません。
一本一本、自分の目と感覚で綺麗にケーブルを整えるのが面倒くさかったです。
SAN Switchの構築作業でも正直面倒だと思いました。
物理機器の現地作業があまり好きではない私は、ネットワークはやはり苦痛です。
ネットワーク機器は数も多ければ、1台当たりのケーブル数も当然多くなります。
私にとって上手く整線が出来るというのは何もメリットではありませんでした。
私は正直データセンターに移動したりするのが嫌で、出来ればオフィスや自宅で仕事がしたいです。
データベース関係の作業をする場合、機器のある現地になど行かなくて良いです。
サーバも仮想なら、ホストの更改がない限り行かなくても良いです。
出来れば無駄に移動したくないのが本音です。
ネットワーク以外が苦痛じゃない理由
データベースは単純に好きである
私はデータベースに関しては単純に好きです。
Oracle RACなどはインフラエンジニア寄りのスキルなので現地作業ももちろんあります。
しかし、肝心の「データベース」に関してはミドルウェアである通りアプリとインフラの中間です。
データの加工や集計や分析などデータベースが扱えると様々な業務が出来るようになります。
SQLが書けるのでアプリ寄りの仕事をすることもあります。
そのおかげでTomcatの知識も身に付きましたし、ミドルウェアは隣接するソフトの知識も必要不可欠です。
データベースのインストールと構築もサーバに関する知識が当然必要です。
データベースそのものも好きですが他にも知識がたくさん身につくのが楽しいです。
ネットワークの知識も身につかないこともありませんが大した知識にはなりません。
ロードバランサを使わないとか、FWでポートを開けるとか基礎以下の知識です。
SQL Serverも扱いますがOracleと比較しながら学ぶことが出来ます。
個人的にはデータベースの仕事に「移動」は伴わないので楽でもあります。
サーバは初めて上流工程を経験した知識
サーバに関して非常に思い入れのある分野です。
私がIT業界に入り、一番最初に困難に直面したのはLinuxの存在でした。
ITを学ばずに業界に入り、数か月の状態でTeratermに映るLinuxは恐怖そのものでした。
初めて触れたLinuxでは何をしているか何もわからず何が起きているかも全く分かりませんでした。
当然だと思います。
コマンドベースのLinuxは学習していないと何もわからなくて当然です。
しかしその経験が今に繋がっています。
Linuxに触れて「これが技術か」と感じたことで積極的に学ぼうと前向きな気持ちを持つきっかけになりました。
その1年後には設計構築プロジェクトを担当して否応なしに詳しくなりました。
初めて経験した上流工程の技術はやはり補正があります。
その後、SPARCやSolaris、AIX、Windowsと経験して晴れてサーバエンジニアになりました。
しかしVMwareだけは好きではありません。
相性の問題でしょうが、私はVMwareのバグを引くことが多くて良い思い出が少ないです。
また昔は「Ctl+Alt」でいちいちコンソールを抜けないといけなくて「仮想化って意外と不便」と感じたこともあります。
確かに仮想化はコスト的にも運用的にもメリットですが相性が悪いのであまり好きではないです。(仕事ではもちろん今でも触っています)
アプリ開発は楽しいけど飽きやすい
アプリ開発は経験値は少ないですがやったこともあります。
ネットワークのように苦手意識はないのですが飽きてしまうことが多いです。
シェルスクリプトのように簡単なコーディングでやりたいことが出来ない事も多く躓くこともまだ多い分野です。
しかし成果物が目に見えるので楽しいと感じることが多いです。
インフラ系の仕事では成果物は中々目につきません。
それこそネットワークなんて実機にアクセスする他は直感的に感じることが出来ません。
しかしアプリケーションは目の前で動くので直感的に「頑張ったなー」と思うことが出来ます。
ただひたすらプログラミングするのには飽きてきてしまいます。
これも私の性格の問題でしかありません。
インフラ系はウォーターフォール型の開発のように作業が完了したら終了です。
しかしアジャイル開発のように断続的に開発をするプログラミングは常に同じ技術に縛られたりするので飽きが出てきます。
Web系も同じと言って良いかもしれません。
しかし開発系の最大のメリットであるノマドワークやクラウドソーシングをするなら開発業務は辞められません。
楽しかったり飽きたりと脳内が忙しいですがメリットが大きいと感じます。
少なくとも飽きてしまうだけで嫌でも苦手でもないのでやる気が継続する案件や言語を学んでいきたいですね。
性格によって技術の好き嫌いが出てしまうのも仕方ないです。
最後に
私がネットワークが苦手な理由を紹介してきました。
このように技術には向き不向きがあります。
そして経験値や思い出によっても好き嫌いが出てきてしまいます。
私の得意なデータベースも、アプリの人によっては苦手な人もいるかもしれません。
あとはSEなら経験したことがある人が多いかもしれませんが「やらかす」と嫌いになってしまう製品や技術もあります。
少なくとも技術が好きじゃないとやっていくことが厳しい世界でもあるので好きだと思える技術は大切にしましょう。