中小企業ITエンジニア学習日誌ークラウド・運用エンジニアに必要なスキル整理
みなさんこんにちは。ぶんです。
そろそろ、クラウドリソースの運用・管理に関するエンジニアに必要な力を整理してみようと思います。
(一応教育をやりたいので)
案外ググっても見つからなかったので、誰かのためになるかと思い、書いてみようと思います。
自己紹介はこちら↓
マガジンはこちら↓
前回
リリースプロセスのコード化について書きました。
クラウド・運用エンジニアへの具体的な経路
私の場合は、まずはWebアプリの開発エンジニアからスタートしました。
完全未経験でしたが、一年ほどでまあまあの機能の実装を任せてもらえるようになりました。
(機会があれば、Webエンジニアのスキルマップ作ってみたいです)
そんなある日、リリースなどを管理していたエンジニアが急に辞めることになり、私に白羽の矢がたちました。
これがクラウド・運用エンジニア(?)としてのキャリアの始まりです。
必要なスキル
ざっと列挙しておこうと思います。
まだまだ抜けはありますが、とりあえず実務は回ってます。
が、まだ足りない?
クラウドリソースのIaC化
Terraformなど。監視
どんなメトリクスを取っておくか?ネットワーク
プロトコル、DNSなど各種ミドルウェア
実装面ではなく、設定という側面で
Webサーバー、データベースなど仮想化技術
Dockerなどコンテナオーケストレーション
複数のコンテナをうまくデプロイするツールなど。
Kubernetesなど?コンピュータ技術概要
メモリ・CPUの仕組みなど各クラウドプロバイダーに関する知識
ベンダ資格など?(私は持っていませんが…)Linux基礎知識
仮想マシンで運用する場合、必要そう。セキュリティ
私がよくわかってないので、要学習。設計
インフラ構成を考えるため。構成管理
Ansibleみたいなツール。
あとは、あるといいかもくらいのものも。
ITIL
運用を含めたベストプラクティスを覚える。DevOps
あるといいかもどころか、必須か?
デプロイなどのパイプラインを作っていく。コーディング技術
各アプリケーションの設定変更とかに使ったりします。
コーディング技術とかは必要?
役割が厳密に分かれる組織なら、Webエンジニアほどはシビアに必要ないのでは無いかと考えています。
ただし、私はリリース(運用)まで担当しているため、結局は必要になっています。
ここらへんは正直わたしはよくわかりません。
Webエンジニアをやっている側面もあるので、私はコーディングも普通にやっている…くらいの曖昧な感じです。
余談
まとめたものの、私もまだ2ヶ月弱というくらいのレベル感なので、上記を全て抑えているわけではないです。
例えば、各ミドルウェアの詳細な設定・チューニングなどはよくわかっていません。
(そもそも、他のエンジニアの仕事かも?)
とはいえ、とりあえずこれくらいさらっておけば、中規模なWebサービスくらいは運用できそうです。
クラウドリソースのIaCも書いておきましたが、必須かどうかはちょっとよくわかりません…
コンテナオーケストレーションも、クラウドプロバイダーのマネージドサービスで事足りる場合があるかもしれません。
まとめ
クラウドや運用に携わるにあたり、どんなスキルが必要か整理してみました。
どなたかの一助となれば幸いです。
サポートいただけますと幸いです。さらなる励みにして精進します。