DevOpsとは
開発者(Development)と運用者(Operations)の3文字を取ってつなげたかばん語で読み方は「デブオプス」
DevOpsには、明確な定義がなく、開発手法やツールを使って 開発者(Development)と運用者(Operations)が
互いに協力しあい密接に連携することで、
より柔軟かつスピーディーに システムを開発する手法であり考え方であり概念である
この言葉が世に知れ渡った瞬間
2009年にオライリー主催の「Velocity 2009」というイベントにて
Flickrのエンジニアのセッションの中で登場した以下の内容から広まったとされている
「10+ Deploys Per Day: Dev and Ops Cooperation at Flickr」
http://www.slideshare.net/jallspaw/10-deploys-per-day-dev-and-ops-cooperation-at-flickr
Dev(開発者)のミッションは『システムに新しい機能を追加すること』、この一方で、
Ops(運用者)のミッションは『システムの安定稼働させること』、
安定稼働しているシステムは変更を加えなければ問題なく動き続けることができるので、
運用者はシステムの変更をを加えたがらない、といった対立構造が作られてしまった
とはいえ、DevもOpsも目指すところは一緒なわけで
『価値の高いシステムを迅速かつ安全確実にユーザーに届ける』こと。
こういった、目指す場所が同じにもかかわらず、手段が異なるためお互い対立してしまうという問題。
そこでこれを解決する為にDevOpsという考え方が必要となり、
この考え方は現在の現場では欠かせないものとなる。
システム開発にDevOpsが常に必要とされいる
色々な開発ツール(バージョン管理やCI/CDツール)などを用いて、テスト、ビルド、デプロイなどの
開発から運用までの一連の作業を自動化したりすることにより、
ヒューマンエラーを防ぐ、イコール信頼性と生産性の高い開発が可能となる
DevOpsを実施することにより、開発者と運用者の隔たりをなくすことが可能になると考えられている。
この言葉をよく知らなかった人も、現場でなにげなく使ってるあれもそれもDevOpsのひとつということ。
これはDevOpsは開発、運用、テストのなどの部門間の協力の概念であることから、
単独で「DevOpsツール」というようなものはなく、複数のツールから構成されるためである。
そして、DevOpsのプラクティスは多岐にわたり
コード : コードの開発とレビュー、バージョン管理ツール、コードのマージ
ビルド : 継続的インテグレーション、継続的デプロイメント、ビルドステータス
テスト : パフォーマンスを決定するためのテストと結果
パッケージ : 案件リポジトリ、アプリの展開前ステージング
リリース : 変更管理、リリース承認、リリース自動化
コンフィギュレーション : インフラストラクチャの設定と管理、インフラストラクチャとしてのコードのツール
モニター : アプリの性能監視、エンドユーザーエクスペリエンス
などなど…
また、これを実行するプロダクトも様々な製品が有料、無料で出ているので、
色々組み合わせて、プロジェクトに最適なものを選んでいくことになるだろう
『DevOpsの概念なくして開発なし』
コメント