お首が長いのよお首が長いのよ

チラシの裏よりお届けするソフトウェアエンジニアとして成長したい人のためのブログ

2018-08-27

「インフラエンジニアのスキルチェックリスト」をやってみた

◎:できる。よくやる

〇:やったことある

△:やったことない。

×:苦手。無理。パスしたい

DB設計

それでもSIerとして求められているのはOracleの率が高いんだよなあ

  • △要件からDB定義を作成できる
  • 〇ER図を作成できる
  • 〇第3正規化まで正規化できる
  • △パフォーマンスを意識したインデックス設定ができる

パッケージ管理

緊急で必要なったときぐらいだからほぼわからん。 ていうかこんなのやる必要あるの?ってものが大半。

  • △RPMビルド環境がつくれる
  • △specファイルが書ける
  • 〇独自YUMレポジトリを構築できる ⇒ミラーリポジトリ、カスタマイズリポジトリなら。
  • △debパッケージも作成できる

Webサーバー構築

HTTP/2はまだ弱い

  • ◎Apache・NginxでWebサーバーを構築できる
  • ◎リバースプロキシを設定できる
  • ◎エラーログが読める
  • ◎バーチャルホストが設定できる
  • 〇Rewriteのルールが記述できる
  • ◎HTTPSのWebサーバーを立てられる
  • △HTTP/2化できる
  • △負荷分散計画が立てられる

DBサーバー構築

  • ◎MySQL / PostgreSQLでDBサーバーを構築できる
  • ×DBサーバーのパフォーマンスチューニングができる
  • ×ボトルネックとなっているクエリを特定し改善案が立てられる
  • ◎DBレプリケーションが構築できる ⇒MongoDBなら
  • △DB MasterのHA化ができる
  • △DBの水平分割・垂直分割を組める
  • △準同期レプリケーションが組める
  • △レプリケーションが停止した場合に原因対処と復旧ができる

DNSサーバー構築

  • ◎DNSの仕組みを理解している
  • ◎BINDでDNSサーバーを構築できる
  • ◎ゾーンファイルを記述できる
  • 〇DNSスレーブサーバーを構築できる
  • ◎浸透と言わない

メールサーバー構築

この辺はどうしてもプロパイだの制約でメールサーバ構築して遊べなかったりで経験値が少ないな

  • △Postfix / qmailで送信メールサーバーが構築できる
  • △Dovecotで受信メールサーバーが構築できる
  • 〇メールサーバーのエラーログが読める
  • △バーチャルエイリアスが設定できる
  • △POP before SMTPが設定できる
  • △IMAPが設定できる
  • △SSL証明書を用いてPOP3 / IMAPSが設定できる
  • △スパムメールに対応できる

キャッシュサーバー

  • △Varnishでキャッシュサーバーを構築できる
  • △キャッシュ設計を立案できる
  • △KVSサーバーを構築できる
  • △CDNを利用した環境を構築できる
  • △CDN各社の特性を理解しコスト計算ができる

ロードバランサー

素人なのでHAProxy大好きマン

  • △ipvsadm + keepalivedでLVSを構築できる
  • △PacemakerでHAIPを構成できる
  • ◎HAProxyでプロキシサーバーを構築できる
  • 〇ヘルスチェックスクリプトを記述できる
  • 〇BIG-IPの設定ができる

監視サーバー

ところでJP! AJS3の話はどこ行った? ジョブ運用したり監視ができないと話にならないケースが多いぞ

  • ◎Zabbixで監視サーバーを構築できる
  • 〇Zabbixプラグインを活用することができる
  • ◎Zabbixエージェントをカスタマイズできる
  • ◎Zabbixの閾値やトリガー調整ができる
  • ◎Zabbixオートディスカバリを設定できる
  • ◎障害時にリモートコマンドを発行する設定ができる
  • ◎アラートをカスタマイズできる
  • 〇Muninでリソース監視ができる

ログ管理

ログのローテーションとかsplunkとかはなくていいの?って感じ まぁできたとしてもrsyslogに飛ばすぐらいだな

  • ◎Fluentdを使ったログ収集ができる
  • △Fluentdプラグインを活用できる
  • 〇td-agentを活用できる
  • △Elasticsearchなどと組み合わせてログ分析ができる
  • △Kibanaで可視化できる

AWS

ちょっと踏み込んだところになると弱い印象

Azureも似たようなことならできる

  • ◎EC2インスタンスを運用できる
  • ◎オンデマンド・スポットインスタンス・リザーブドインスタンスの特性を理解している
  • ◎AmazonLinuxとCentOSの違いを理解している
  • ◎セキュリティグループの設定ができる
  • ◎オートスケールの設計や設定ができる
  • ◎ELB / ALBの特性の違いを理解して活用できる
  • △Pre-Warming状態でELBを待機させる際の負荷の見積もりが作成できる
  • 〇AMIが作成できる
  • 〇S3 / EBSを用いたストレージ計画を策定できる
  • 〇RDSの特性を理解して運用できる
  • △DynamoDBをKVSとして活用できる
  • △Route53 + CloudFrontを使ってコスト管理しつつCDN環境を構築できる
  • △Lambdaを用いてサーバーレスアーキテクチャを構築できる
  • △AWS API Gatewayを使ったAPI作成ができる
  • △ElastiCacheを用いたキャッシュ設計を構築できる
  • △CodeDeployによるコードデプロイ環境を構築できる
  • 〇CloudWatchによる監視アラートを設定できる
  • ◎VPCによるネットワーク環境整備やVPN環境構築ができる
  • ◎IAMを管理できる
  • 〇SDKとAPIを使ってAWSツールを開発できる
  • △CloudFormationでAWSの構成管理ができる
  • △料金シミュレートができて効率的なコスト管理ができる

仮想化

VMwareはVCP-DCV持ち

  • 〇XenやKVMを使った仮想化環境を構築できる
  • 〇OpenStackを使った仮想化環境を構築して運用できる
  • 〇NovaやNeutronなどのコンポーネントの特性を理解している
  • ◎VMware vSphereを使って仮想化環境を構築して運用できる

Docker

  • ◎Dockerで開発環境が構築できる
  • ◎Dockerfileが記述できる
  • ◎docker containerのコマンドを理解している
  • ◎Docker Composeを活用することができる
  • △Docker環境を本番化できる
  • △KubernetesでDockerクラスタを管理できる

Ansible

もうちょっと踏み込んで書くとgroupの使い方とかfactsとかも活用する機会は多い

  • ◎Ansibleで構成管理ができる
  • ◎Playbookを記述できる
  • △Ansible Vaultを活用して暗号化できる

ストレージ

これ本当にストレージの項目か…? OSの話だろって感じなので自分ができることを後半に追加

  • ◎CUIでパーティション操作ができる
  • ◎各ファイルシステムの特性を理解している
  • △誤って削除したファイルの救出方法を知っている
  • ◎容量が肥大化しているファイルを特定できる
  • △ディスクI/Oを計測しボトルネックを特定できる
  • ◎ファイルマスクを理解している
  • ◎ファイルのタイムスタンプを変更できる
  • △RAID0〜RAID10までのRAID構成が組める
  • 〇ソフトウェアRAIDとハードウェアRAIDの特性の違いを理解している
  • 〇NFS環境が構築できる
  • ◎Samba環境を構築できる
  • △lsyncdを使ってファイル同期環境が構築できる
  • △テープドライブのCUI操作ができる

(以下追加)

  • 〇ゾーニング/マスキングの概念を理解でき、任意のエンタープライズストレージで設定できる
  • 〇SAN環境が設計・構築できる
  • 〇ストレージ使用容量増加予測ができる
  • ◎ストレージ間レプリケーションの設定ができる

ネットワーク

  • ◎ネットワークレイヤーの違いを理解している
  • ◎ルーターとL3スイッチ、ネットワークハブとL2スイッチの違いを説明できる
  • △NICの特性を理解している
  • 〇BGPを理解している
  • 〇DHCPのルールを設定できる
  • ◎オートネゴシエーションの特性を理解しオン・オフともに設定できる
  • ◎WireSharkなどのパケットキャプチャツールを使用することができる
  • 〇iperfなどでネットワーク速度を計測できる
  • 〇Cisco IOSをCLIで設定できる
  • △OpenFlowを理解している
  • 〇ネットワークのボトルネックを特定できる
  • 〇YAMAHA RTXシリーズをCLIで設定できる。Luaで拡張できる
  • ◎タグベースVLANやポートベースVLANを構築できる
  • ◎PPTP / IPsecのVPNを構築できる

メモリ

  • △RegisterdとUnbufferedの特性の違いを説明できる
  • ◎バッファメモリを理解している
  • △ECCの特性を理解している
  • 〇Swapの特性を理解している
  • ◎ページキャッシュの確認とクリア方法を理解している

ラック

  • 〇サーバーのラッキングができる
  • 〇消費電力計算と電源に応じた最適なラック設計ができる
  • 〇エアフロー予測ができる
  • △美しい配線ができる
  • ×寒さに強い

バックアップ(オリジナルから追加)

いやバックアップもインフラ屋の仕事としてやらされるでしょ。 というわけでここも自分のできることを整理して追加 たぶんここにないことが出来ないことなんだろうなと思う

  • ◎バックアップ取得容量増加予測が建てられる
  • ◎フル、差分、増分の違いがわかる
  • ◎永久増分バックアップは何かわかる
  • ◎要件に応じて最適なバックアップ取得方法を検討できる
  • ◎災害対策シナリオを想定した設計ができる
  • ◎ストレージによるバックアップとソフトウェアを用いたバックアップを組み合わせて設計できる

基本的なことは「あーこうすればいいよね」ぐらいだけど、細かいところはググらないと厳しい。

まだまだ知らないこともあるし、もっと◎を増やしていきたい

よかったらシェアしてください!