ITパスポート 2019年 秋期 問55
問題文
ソフトウェア開発におけるDevOpsに関する記述として、最も適切なものはどれか。
選択肢
ア:開発側が重要な機能のプロトタイプを作成し、顧客とともにその性能を実測して妥当性を評価する。
イ:開発側と運用側が密接に連携し、自動化ツールなどを活用して機能などの導入や更新を迅速に進める。(正解)
ウ:開発側のプロジェクトマネージャが、開発の各工程でその工程の完了を判断した上で次工程に進む方式で、ソフトウェアの開発を行う。
エ:利用者のニーズの変化に柔軟に対応するために、開発側がソフトウェアを小さな単位に分割し、固定した期間で繰り返しながら開発する。
🔒 解説は解答すると表示されます
ソフトウェア開発におけるDevOpsに関する記述として、最も適切なものはどれか。【ITパスポート 解説】
正解の理由
選択肢の中で最も適切なのは、イです。DevOpsは「開発(Development)と運用(Operations)」をつなげる文化・考え方と一連の手法です。開発側と運用側が密に連携し、自動化ツールを使ってソフトウェアの導入や更新を短時間で安全に行うことを目的とします。継続的インテグレーションや継続的デリバリー(CI/CD:Continuous Integration/Continuous Delivery)や、インフラをコードで管理する仕組み(IaC:Infrastructure as Code)などの自動化が典型的な手段です。したがって、「開発と運用が密接に連携し、自動化ツールなどを活用して機能などの導入や更新を迅速に進める」という記述がDevOpsの本質をよく表しています。
(用語補足)
- DevOps:Development(開発)+Operations(運用)の合成語。開発と運用の共同作業や自動化でリリース速度や品質を向上させる考え方。
- CI(Continuous Integration:継続的インテグレーション):複数の開発者が作業したソースコードを頻繁に統合し、自動で動作確認すること。
- CD(Continuous Delivery / Continuous Deployment:継続的デリバリー/継続的デプロイ):自動でビルドやテストを行い、運用環境への展開までスムーズに行う手法。
- IaC(Infrastructure as Code:インフラをコード化):サーバやネットワーク設定をコードで管理し、自動で環境を再現する手法。
解法ステップ
- 問題文のキーワードを探す:「開発側と運用側」「密接に連携」「自動化」「導入や更新を迅速に」。
- そのキーワードが示す概念を思い出す:開発と運用の連携+自動化=DevOps。
- 他の選択肢と比較する:プロトタイピング、ウォーターフォール、アジャイル(スクラム)などの説明と照らし合わせて除外する。
- 最も合致する選択肢があればそれを選ぶ。今回の場合はイが該当します。
選択肢別の誤答解説
-
ア: 「開発側が重要な機能のプロトタイプを作成し、顧客とともにその性能を実測して妥当性を評価する。」
- これはプロトタイピングやユーザ評価(ベータテスト、ユーザテスト)に近い説明です。顧客と一緒に性能を試す点はユーザ評価手法であり、DevOpsの核心である「運用と連携して自動化で速く展開する」という説明とは異なります。
-
イ(正解): 「開発側と運用側が密接に連携し、自動化ツールなどを活用して機能などの導入や更新を迅速に進める。」
- DevOpsの定義に合致します。協力・自動化・継続的な配信がポイントです。
-
ウ: 「開発側のプロジェクトマネージャが、開発の各工程でその工程の完了を判断した上で次工程に進む方式で、ソフトウェアの開発を行う。」
- これはウォーターフォール型開発(段階的に工程を進める手法)の説明です。DevOpsは組織文化と自動化でリリースを高速化する点が中心で、ウォーターフォールとは異なります。
-
エ: 「利用者のニーズの変化に柔軟に対応するために、開発側がソフトウェアを小さな単位に分割し、固定した期間で繰り返しながら開発する。」
- これはアジャイル開発(例:スクラム)の説明です。短い反復(スプリント)で改善する点はアジャイルの特徴。DevOpsはアジャイルと組み合わせることが多いですが、説明自体はアジャイルのものです。
よくある誤解
-
DevOps = ツールの導入だけ
- 自動化ツールは重要ですが、DevOpsは文化や組織の協力(チーム間のコミュニケーションや責任共有)も含みます。ツールだけ入れても効果は限定的です。
-
DevOps とアジャイルは同じもの
- 似ている点はありますが、アジャイルは主に「開発プロセス(計画・実装・レビュー)」の方法論で、DevOpsは「開発と運用の連携とデリバリの自動化」に重点があります。両者は補完関係です。
-
DevOpsは運用を不要にする
- 運用の役割は変わります(自動化やコード化が進む)が、監視・リカバリ・インシデント対応などの運用は依然重要です。
補足コラム
- DevOps導入でよく使われる代表的な仕組みやツール(説明付き)
- CIツール(例:Jenkins、GitLab CI):自動でビルドやテストを実行する。
- コンテナ(例:Docker):アプリと実行環境をひとまとめにして移動・再現を容易にする。
- コンテナオーケストレーション(例:Kubernetes):多数のコンテナを効率的に管理・運用する。
- 構成管理&IaC(例:Ansible、Terraform):サーバ設定やネットワーク設定をコードで記述し、自動で環境を用意する。
- 監視・ログ(例:Prometheus、ELK):システムの状態を監視し、問題の早期発見に使う。
- 指標(メトリクス)の例:デプロイ頻度、変更の失敗率、復旧時間(MTTR: Mean Time To Recovery)。DevOpsはこれらの改善を目指します。
FAQ
Q1: DevOpsは小さな会社でも導入できますか?
A1: できます。規模に応じて自動化の範囲や担当を調整すれば効果があります。小さなチームではツールの導入と役割の共有で迅速化が期待できます。
A1: できます。規模に応じて自動化の範囲や担当を調整すれば効果があります。小さなチームではツールの導入と役割の共有で迅速化が期待できます。
Q2: DevOpsを始める最初の一歩は何ですか?
A2: 小さな自動化から始めるのがおすすめです。例えば、ソースコードの自動テストや自動ビルドの導入(CI)から取り組むと効果が見えやすいです。
A2: 小さな自動化から始めるのがおすすめです。例えば、ソースコードの自動テストや自動ビルドの導入(CI)から取り組むと効果が見えやすいです。
Q3: DevOpsにはどんなスキルが必要ですか?
A3: 開発スキルに加え、運用の基礎(サーバやネットワークの理解)、自動化ツールの扱い、そしてチーム間のコミュニケーション力が重要です。
A3: 開発スキルに加え、運用の基礎(サーバやネットワークの理解)、自動化ツールの扱い、そしてチーム間のコミュニケーション力が重要です。
Q4: DevOpsで「自動化」が重要な理由は何ですか?
A4: 手作業を自動化することで人為ミスを減らし、テストや展開を早く・繰り返し実行できるため、品質とリリース速度が両立できます。
A4: 手作業を自動化することで人為ミスを減らし、テストや展開を早く・繰り返し実行できるため、品質とリリース速度が両立できます。
関連キーワード: DevOps、CI/CD、継続的インテグレーション、継続的デリバリー、IaC、自動化、アジャイル、ウォーターフォール、コンテナ、監視、デプロイ頻度、MTTR

\ せっかくなら /
ITパスポートを
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

