2. ツールとテクノロジの広範な理解
DevOpsの世界では新しいテクノロジやツールが次から次へと登場するが、Sadasivan氏によると、有能なDevOpsエンジニアなら、以下の分野の新しいテクノロジやツールを広範に理解しておくべきだという。
ソース管理(「Git」「Bitbucket」「Svn」「VSTS」など)
継続的インテグレーション(「Jenkins」「Bamboo」「VSTS」など)
インフラストラクチャ自動化(「Puppet」「Chef」「Ansible」など)
デプロイ自動化とオーケストレーション(「Jenkins」「VSTS」「Octopus Deploy」など)
コンテナの概念(「LXD」「Docker」)
オーケストレーション(「Kubernetes」「Mesos」「Swarm」)
クラウド(「AWS」「Azure」「Google Cloud」「Openstack」など)
優秀なDevOpsエンジニアは常に好奇心を持っている、とAutomic SoftwareのテクノロジエバンジェリストのRon Gidron氏は話す。新しいことを絶えず学習するためには、常に疑問を尋ねて、答えに耳を傾けることで新たなアイデアを生み出し、新たな挑戦を歓迎しなければならない、とGidron氏は言い添えた。
3. セキュリティトレーニング
WhiteHat SecurityのThreat Research Centerのバイスプレジデントを務めるRyan O'Leary氏によると、開発と運用を統合するのは、コードの開発とデプロイを合理化する効果的な方法だが、サイクルが早くなるので、以前よりはるかに早く脆弱性がコードに紛れ込む可能性もあるという。
したがって、DevOpsエンジニアには、セキュアなコードを記述して、アプリケーションを攻撃から保護する能力や、一般的なサイバーセキュリティ脆弱性から保護する能力が求められる、とO'Leary氏は述べた。
企業がDevSecOpsに移行する中で、セキュアなソフトウェアを後から追加するのではなく、最初から組み込むことが重要になっている、とSynopsys Software Integrity GroupのシニアプリンシパルコンサルタントMeera Subbarao氏は話す。
「DevOpsプロセスの要件段階でセキュリティアクティビティを実施しよう。プロセスの中でセキュリティに対応するタイミングが早ければ早いほど、問題の解決にかかるコストは少なくて済む。DevOpsプロフェッショナルは、専門のセキュリティプロフェッショナルである必要はないが、ソフトウェアセキュリティのトレーニングを受けることは極めて有効だ」(Subbarao氏)
4. インフラストラクチャ自動化ツールの使用経験
多くのテクノロジ環境と同様に、DevOpsでも自動化は重要な要素である、とDaticalのDevOpsエンジニアであるJames Giles IV氏は話す。システムアドミニストレーターやエンジニアが従来行ってきた手動タスクの多くは、「Python」や「Ruby」といったスクリプト言語や「Node.js」などを使って自動化することが可能だ。「こうして人間的要素を排除し、チームがそれで節約した時間をチームと会社のより広範な目標に費やせるようにすることで、一貫した手動タスクのパフォーマンスを実現できる」(Giles氏)