DevOpsとは
Development and Operationsの略。開発(Dev)担当者と運用(Ops)担当者が、開発手法やツールを使って緊密に協力・連携して開発を柔軟・迅速に進める仕組み。
DevOpsを導入することにより、市場投入までの時間の短縮、高い顧客満足度の創出、改良された製品の品質向上、ソフトウェアデリバリー・プロセスの自動化、信頼性の高いリリース、生産性や効率の改善、開発能力の育成、組織改革の強化などの相乗効果が生まれる。
DevOpsが重視されるようになった背景
開発チームと運用チームの目指す方向性が相反してしまうことがあった。
- 開発者は、アプリの利便性を高めたい。
- 運用者は、安定的な運用をしたい。
DevOpsのメリット
- スピードの向上
- アジャイル開発などの非ウォーターフォールモデルの開発手法を採用することにより、機能ごとのリリースをスピーディにできる。
- テスト期間を短縮し、早期にリリースできる。
- 生産性の向上
- リリースサイクルが短く、ユーザーからのフィードバックを早期に得て改善点を修正できる。
- 開発・運用の連携により効率的な情報のやり取りをする体制ができる。
- ツールを使うことで、煩雑な作業の生産性を向上。Excel管理からの脱却.
- 信頼性の向上
- 小さな規模で開発する手法であるため、バグや不具合を見つけやすく、見つけた場合も迅速に対応できる。
- テスト、ビルド、デプロイなどのこれまで人間が行なっていた作業を自動化することで、ヒューマンエラーを防ぐことができる。
DevOpsを実現する開発手法
- アジャイル
- スクラム
- エクストリームプログラミング
- 機能駆動型開発
- リーンソフトウェア開発
- 継続的インテグレーション(CI)
- バージョン管理システムにソースコードをコミットした段階で自動的にソースコードのビルドとテストを実行することで、早期にバグを検出する。
- 継続的デリバリー(CD)
- 全ての変更に対していつでも本番リリースが可能な状態を保証する。
- ステージングまで自動化し、本番環境へのデプロイの決定は人間が行う。
DevOpsを実現するツール
バージョン管理システム
ブランチ管理プラクティス
チケット管理システム
CIツール
- Jenkins
- Circle CI
- GitLab CI
- GitHub Actions
CDツール
- Docker
- Vagrant
- Ansible
- Selenium
参考