(Photo by:Matti Piiroinen)
このような方におススメ
- DevOps経験での転職を考えている
- クラウド環境を前提にした仕事に興味がある
転職サイトなどでDevOps経験者募集の求人情報を見かけるようになりました。開発規模と運用規模が大きくなってきたから、または成長を見込んでいるサービスを運営している企業でDevOps担当が必要とされています。
本記事では求人情報から2015年今現在のDevOpsで必要とされているスキルと経験を見て行きたいと思います。
Chefなど構成管理ツールの経験
DevOpsの代表格と言えるどの求人でも必須となっている項目です。Chef / Puppet / Ansibleの実務経験がある、または他同様のツールでの実務経験が求められます。経験者の母数が少ないためか、試した事がある、興味がある人の募集も散見できます。
クラウドサービス(AWS/Heroku/Azure等)の利用経験
オンプレミスよりもAWS/Azure等のパブリッククラウド利用経験が重要視されます。構成管理ツールを使いパブリッククラウドにアプリケーションを設置する前提の求人が多く見られます。
(Photo by:Intel Free Press)
クラウドサービスのインスタンス管理、アカウント管理、セキュリティ確保は各社独自の仕組みになっているため、求人先が利用しているクラウドサービスに合わせて学習しなおす必要がありそうです。
クラウドサービスの利用には毎月使った分だけの費用が発生しますので、課金量を計算してプロビジョニングしないと大変な事になります。そのためにはクラウドサービスの利用経験がある上で正しい計算が求められますので、パブリッククラウド未経験で業務をこなすのは不安があるのかも知れません。
スクリプト言語でのプログラミングの経験
どこまでのスキルが必要と明記している求人はあまり見かけませんでしたが、スクリプト言語でのプログラミング経験は必須です。ほとんどの構成管理ツールはスクリプト言語で設定情報を記述します。シェルスクリプトの利用機会も多い為、サーバーサイドでシェルを使ったプログラミング経験もあると歓迎されます。
(Photo by:AGeekMom)
開発者と運用の距離が近いのがDevOpsの特徴のため、開発者とアプリケーションの構成について不自由なくコミュニケーションを取るためには一定のプログラミング経験が必要になると判断している求人も多そうです。
サーバー負荷、スケーラビリティ確保の経験
クラウドサービスと構成管理ツールを合わせて使う目的に、負荷状況に応じたスケーラビリティ確保があります。サーバーのパフォーマンスチューニングによって解決する問題と、ロードバランサーを使い負荷分散させて解決する問題の両方が存在しますが、どちらかというと後者の負荷分散スキルが求められているようです。
Linuxサーバーの保守・運用経験
パブリッククラウド上サーバーの保守メンテというイメージがあまり持たれませんが、クラウド上のインスタンスに新しく環境構築し、そこから保守・運用を行うためにはLinuxサーバー運用の知識と経験が必要になってきます。脆弱性が見付かった際にはパッチを当てる等の対応が当然求められますので、トラブルを抑えたサービス運営のために必要となります。
インフラ・ネットワークの理解
構成管理ツールやOpenStackを利用するには、インフラ・ネットワークの知識がある程度必要になってきます。24時間365日稼働するサービスの場合は堅牢なネットワーク設計が求められます。
パブリッククラウドではCISCOやYAMAHA等の特定ネットワーク機器の知識が求められることは少なくなりますが、これらを使ったようなネットワーク設計をクラウド上で行いますので、ネットワークエンジニアの経験があると役に立ちそうです。
ビジネスへの興味
「ビジネスに興味ある人歓迎」と書かれている求人を多く見かけます。これはスキルや経験ではないため具体性に欠けますが、ビジネスとDevOpsは密接な関係にあると見込んでの記載だと思われます。
経営者・役員経験があってもビジネスに興味がない場合も多くありますし、ユーザーの声を体で理解しているカスタマーサポートを兼務していたプログラマが速くビジネスを理解する場合もあります。この項目は応募者が自己アピールする点になると思われます。
(Photo by:Sebastiaan ter Burg)
LinkedInで見られるDevOpsの求人概要
ここまでは日本国内のDevOpsに関する求人情報でした。海外ではどのような求人情報が見られるでしょうか。LinkedInで見つかったDevOps求人情報を列挙します。日本国内の求人と比べると具体的に利用技術が指定されてあり、分かり易いものが多かったです。
- 構成管理ツール(Chef/Puppet等)
- Linuxサーバー運用経験(アプリケーションサーバー)
- スクリプト言語を使った開発経験(Python/Ruby/JavaScript等)
- 24時間365日稼働のインフラ構築
- DevOpsの経験3年以上
- AWSなどパブリッククラウド運用
- クラウドのパフォーマンスモニタリング
- 障害対応スキル/バックアップ構築
- アプリケーションサーバー構築
- 高負荷サービスの運用経験
- データベースデザイン、データベースチューニング
- システム、アプリケーション、ネットワークのセキュリティスキル
(Photo by:kev-shine)
まとめ・要約
インフラか、開発か、デリバリーのいずれかで求められるスキルが若干異なってきますが、大筋求められるスキルは似通っています。全般的にはネットワークエンジニア・インフラエンジニアをDevOpsエンジニアと呼び換えている印象です。
フルスタックエンジニアと似ている印象を受けますが、大きく異なるのはDevOpsエンジニアには実装能力がさほど求められていない点です。フルスタックエンジニアはアプリケーションを開発して環境構築まで行いますが、DevOpsエンジニアには作られた安定したアプリケーションの配信・運用が求められています。
本記事で挙げられているスキルを全部高レベルで習得しているエンジニアを採用するとなると結構大変だと思います。まだ登場して間もない技術も多く含まれていますので、これから数年かけて必要スキルと持ったエンジニアが育ち始めると、求人側・求職側ともに1つの職種として安定すると思われます。
本ブログは、Git / Subversionのクラウド型ホスティングサービス「tracpath(トラックパス)」を提供している株式会社オープングルーヴが運営しています。
エンタープライズ向け Git / Subversion 導入や DevOps による開発の効率化を検討している法人様必見!
「tracpath(トラックパス)」は、企業内の情報システム部門や、ソフトウェア開発・アプリケーション開発チームに対して、開発の効率化を支援し、品質向上を実現します。
さらに、システム運用の効率化・自動化支援サービスも提供しています。
”つくる情熱を支えるサービス”を提供し、まるで専属のインフラエンジニアのように、あなたのチームを支えていきます。
No Comments