DevOpsとは?
ビジネスやプロジェクトを成功させるために組織文化とツールの両面で改善してビジネスアジリティ(変化の早い現代に置いて企業文化をその変化へ対応させること)とリスクを低減する活動です。
DevOpsが求められる背景
例えば、今はAIやIoT等の新技術を活用するようになったりして企業間での競争が激化する時代になっています。そこで、早い時代の変化に対応するために各企業で製品だけでなく開発プロセスや開発体制の品質向上も求められています。
DevOpsの構成要素
組織文化
組織メンバーのアイディアを素早くビジネスに展開することが求められています。そのためにメンバ間のコラボレーションやコミュニケーション(組織において一緒に協力しあい、作り上げるチーム開発体制)が重要になります。
ツール
継続的改善と品質を向上させ、リスクを低減するツールが求められています。DevOps分野では様々なツールがあるのでまずはDevOpsを支える開発ライフサイクルやCICD(継続的インテグレーションや継続的デプロイ)の全体像を把握した上で、各ツールが扱っている機能を組み合わせて構築することが重要になります。
また、機能面だけでなくそのツールを利用するメンバーのスキルやメンバ同士で合意した上でツールを採用することがDevOpsを推進する上で大切になります。
開発ライフサイクルとは?
DevOpsにおいては開発ライフサイクルを理解することが基礎になります。
具体的に開発ライフサイクルとは「ビジネス要求を定義し開発者のコード作成から本番へのデプロイ、リリース後のフィードバックを基にさらなる開発を進めるサイクル」を指します。
CICD(継続的インテグレーションや継続的デプロイ)とは?
DevOpsにおいて特に重要な要素になります。詳しくは下記の記事で解説しています。
DevOpsを実現するためのステップ
1.現状の課題を洗い出す。
メンバー間で日頃のリリースプロセスに関する課題を洗い出します。
2.目標や優先順位を設定する。
メンバ間で作業や優先順位が異なるので共通の目標に難しいのが現状です。そこでチーム内で共通の目標や優先順位を決定します。
3.チーム内で浸透させる。
チームメンバーに誰もがチームの一員であることを認識してもらう必要があります。また遠隔で作業をしてもらっている人等もいる場合は、文化も異なることが多いので多様性を意識する必要があります。
ただ、人は急な変化を嫌うのも事実であり現実でもあるので少しずつ改善していく意識を持つことも重要です。
4.ロードマップを策定する。
全員の役割の結果どのようなビジネス的価値を生むかを共有する必要があります。具体的なロードマップを策定して、必要であれば定期的に見直したりします。
ツール
DevOpsには用途に応じて様々なツールがあります。
分野 | 説明 | 製品例 |
---|---|---|
コミュニケーションツール | チーム内やビジネス間でのコミュニケーションに使います。 | Slack |
バージョン管理ツール | ソースやドキュメントの変更履歴管理に使います。 | GitHub、Bitbucket |
チケット管理ツール | 課題管理、スケジュール管理等をメンバ間で共有します。 | JIRA、Redmine、Trac |
CIツール | バージョン管理、テスト、ビルドツールと連携して自動的にそれらを全て行ってくれるツールです。チケット管理ツールやコミュニケーションツールにフィードバックを行う機能もあります。 | Jekins、CircleCI、TravisCI |
ビルドツール | ソースのコンパイルやDB設定等の実行可能アプリを自動的に生成してくれるツールです。 | Docker |
テストツール | 自動テストツールです。 | Selenium、Rspec、JUnit |
成果物管理ツール | ビルドツールによって生成された成果物を管理するツールです。ここに管理されている成果物をデプロイツールによりそのまま本番環境へデプロイします。 | Docker Registory |
デプロイツール | 成果物をデプロイするためのツールです。 | Ansible、Chef、Capistrano、Docker |
監視ツール | アプリやサービスの状態を監視してくれるツールです。 | Splunk、Prometheus |
この記事へのコメントはありません。