DevOpsを利用した開発と運用の連携性を高める方法とは?
こんな問題はありませんか?
たとえば、結合テスト環境へのモジュールリリース
DevOpsとは?
Development(開発)とOperations(運用)を組み合わせた言葉がDevOpsです。
開発担当者と運用担当者では目的とするゴールが異なって認識されている場合があります。開発者はシステムの「セキュリティの穴を埋めたい」「エラーケースを修正したい」といった目標に向かって作業を進めることが多く、運用者は「安定稼動に影響がないか」「リリース後の問題発生対応をどうするか」といった観点で作業を進める場合があり、開発者と運用者がひとつの目標に向けて品質を確保した運用を行えていない場合があります。
DevOpsの概念は、開発者と運用者に継続的にシステムを改善し続けるプラクティスを設け、見える化を行うことで、システム運用の品質を両者が担保できるようにするところに価値があります。
DevOpsに取り組むことで継続的に運用を高度化!
- 開発者は運用者にパッチを渡して終わりではなく、開発が担保する品質や機能、運用者が保持したい品質テストをプロセスに組み込み定義しておくことで、作業の状態を明確にし、作業の効率化・品質担保・無駄な作業の抑制といった効果を得られます。
- リリースプロセスの定義に合わせたツールを導入することで標準的な品質の担保と個別品質の評価を効率よく実施できるようになります。
- ツールを使用することで、テストの自動化やデプロイの自動化を検討できるようになり、運用高度化の再帰的改善を計画できるようになります。
クラウドシステムに対してDevOpsを取り組む効果とは
ITシステムの運用を行う上で、オンプロミスのシステムを対象にDevOpsに取り組むよりも、クラウドシステムに対して取り組む方がとても効果的です。
オンプレミスのシステム運用では、多くの開発ベンダーが関わっている場合、クリティカルな作業を伴うリリースでは、運用担当者はオンサイト作業のために、数日間に渡って複数のベンダーの作業者の入館手続き対応を行うことがあります。そのためにはスケジュール調整や事後の緊急対応を計画する必要があり、運用担当者にとっては大きな作業負荷ととなります。クラウドシステムは、インターネット上で作業を行うことを前提とした様々なセキュリティサービスがマネージドサービスとして提供されていますので、開発ベンダーがシステムメンテナンスの申請を行い、運用担当者が承認するといったフローもDevOpsのシステムリリースプロセスに組み込んで、記録として残し、問題を後で考察することできます。
DevOps活用効果をイメージしましょう
DevOps活用をイメージしていただくため、いくつかの事例を見てみましょう。
①インフラの構成を一定品質で管理する
例1)環境の構成・設定等をコードスクリプト化しておくことで、リソースを増やしたい場合にスクリプトの実行で常に一定品質のサーバを準備することができます。
例2)サーバの変更をする場合、誰が実行しても反映することができる。知らない人でも設定変更ができ、変更の結果やプロセスの証跡を残すことができます。
②インフラのバージョンを管理・共有する
例1)誰が、何時、何をバージョン変更したのか履歴を残すことで、システムの更新やロールバックを確実に行うことができます。
例2)ソースコード、システム設定などすべての情報を共有し、プロジェクト全体の開発・運用の効率化を期待できます。
例3)様々な会社間で共有することができる
③ワンステップでビルドとデプロイ
例1)モジュールが更新されたら自動でテストを実施して、環境へデプロイできます。
DevOpsをはじめてみましょう
開発者と運用者が継続的にシステムをメンテナンスしていくための概念としてDevOpsを紹介しました。DevOpsをサポートするためのツールはクラウド事業者が提供するサービスやサードベンダーが提供しています。
いきなり、全てのリリースプロセスに対してDevOpsを取り入れるのではなく、例えばバージョン管理だけでも開発者と運用者が共通的に使用するツールを設けることで作業効率と作業ミスが改善しますので、取り組んでみてはいかがでしょうか。
作成日:2022年8月5日