数年前になんとなく面白がって書いてた「Linux系インフラエンジニア3年目のスキルを見抜く50の質問(ホスティングの場合)」というのが、昔の資料をあさってると出てきて、意外と面白かったので少しだけ手を加えて(古い情報とかあったので)公開しようと思います。
意外とリアルなものがあって懐かしい気分になりました。過去に書いた以下の記事もどうぞ参考にして下さい。
Linux系インフラエンジニア3年目のスキルを見抜く50の質問(ホスティングの場合)
追記: 設問1があまりによくないので、@tagomorisさんのアドバイスを頂きつつ変更しました。1を消して3を追加しています。ありがとうございます!
2000台以上のサーバー運用経験はありますか?
- サーバやネットワーク機器のキッティング経験はありますか?
- サーバやネットワーク機器の交換を現地のデータセンター職員に指示し実行するための機器管理に必要な要素を理解していますか?
- 外れロットのハードウェアを引いてしまう可能性を考えた調達計画を立てられますか? また引いてしまった場合のリプレースについて具体的なプランが想像できますか?
- サーバ間で通信ができない場合、L2とL3等レイヤーの違いを元に調査できますか?
- サーバ内にスタティックルートを記述しなければならない状況をネットワーク構成例を挙げて説明できますか?
- 幾つかのNAT超え技術を理解していますか?
- 主要なサーバー(HTTP、HTTPS、POP、IMAP、SMTP、DNS、FTP、DHCP、NFS、LDAP、NTP、SYSLOG)構築経験はありますか?
- コンテナやVM環境を仕様に基づきデプロイツール等を利用して作成することはできますか?
- DRBD+Heartbeat、MySQLレプリケーション等を用いたクラスターを構築したことはありますか?
- Webやメール、FTPの高負荷に対応する手法を複数説明できますか?
- MySQLやPostgreSQLの状況に応じたバックアップや高負荷対応手法を説明できますか?
- OSSを利用してサイト内冗長構成やデータセンター間冗長構成をとったスケールアウト型のシステムを構築したことはありますか?
- データセンター間冗長構成の欠点をパフォーマンスの観点から述べられますか?
- 故障管理・ドキュメント管理・監視システムを連携させ、改善のためのサイクルを適切にまわせますか?
- 開発と運用を完全に分離する事の良し悪しを説明できますか?
- gitあるいはGitHubは使えますか?
- screenやvim、bashrc等それに類似するソフトウェアを自分なりに設定して使用していますか?
- インフラのシステム維持管理や監視・運用のためのプログラムを作成した経験はありますか?
- 4000行以上のLLを開発・保守した経験はありますか?
- サーバーの要塞化経験はありますか?
- Linuxを一からコンパイルし構築(LFSやBLFS等)したことはありますか?
- Unix系のファイルシステム階層基準を理解していますか?
- カーネルの再コンパイルやチューニングの経験はありますか?
- カーネルのログからカーネルソースコードや技術書を元にログの原因を特定・改修したことはありますか?
- システムコールを利用したプログラムをC言語で記述したことはありますか?
- autoconfやautomakeによりconfigureやMakefileを作成できますか?
- LinuxのパーミッションやLinux Capabilityについての説明、あるいはコーディングをしたことはありますか?
- プロセス間通信についての理解、あるいはコーディングをしたことはありますか?
- マルチプロセス、マルチスレッドの特徴についての理解、あるいはコーディングをしたことはありますか?
- 非同期I/O、ノンブロッキングI/O、IOの多重化の違いを説明できますか?
- ApacheのネームベースとIPベースの良し悪しを説明できますか?
- Apacheのネームベース構成を取った場合、注意すべき項目をセキュリティと運用面から説明できますか?
- Apacheの動的コンテンツや静的コンテンツ、及び、それらの実行方式の違いから生じるセキュリティ上のリスクを説明できますか?
- Apacheのソースコードレベルでの理解はありますか?
- Apacheモジュールを開発・保守することはできますか?
- Apacheそのものを改修することはできますか?
- SMTPの複数の認証方式を説明できますか?
- 複数ドメインでMTAを共有する場合の良し悪しを説明できますか?
- Milterを実装することはできますか?
- パケットのTCP/IPヘッダ情報の構成を理解していますか?
- データ構造や探索・整列アルゴリズムの基礎を理解していますか?
- インターネット技術に関する論文を10以上読んだことはありますか?
- インターネット技術に関する論文あるいは記事や書籍を書いたことはありますか?
- 海外のカンファレンスに参加したことはりますか?
- 英語で発表したことはありますか?
- おおよその完成物までのタスク・工数を想定して全体のスケジュールを作成できますか?
- 上司の全体スケジュールが誤っていた場合、上記のスケジュールを元に速やかに改善を提案できますか?
- MSProject等のWBS管理ソフトで複数人のスケジュール管理はできますか?
- 仮にMSWordを使う場合、スタイルや校閲機能を利用したドキュメントを作成できますか?
- 各部署のトップが集まる会議で技術的な説明を適切かつ冷静にプレゼンできますか?
最後に
どうでしょう?色々抜けはあると思いますし偏りはあると思いますが、久々に眺めると色々復習しないといけない箇所が出てきますね。アルゴリズムとか色々忘れてる気がしたので頑張ります。後やっぱり仕事していないとわからない内容とか、どんどん忘れててきててよくないですね。