ITパスポート 2023年 問40
問題文
ソフトウェア開発におけるDevOpsに関する記述として、最も適切なものはどれか。
選択肢
ア:運用側で利用する画面のイメージを明確にするために、開発側が要件定義段階でプロトタイプを作成する。
イ:開発側が、設計・開発・テストの工程を順に実施して、システムに必要な全ての機能及び品質を揃えてから運用側に引き渡す。
ウ:開発側と運用側が密接に連携し、自動化ツールなどを取り入れることによって、仕様変更要求などに対して迅速かつ柔軟に対応する。(正解)
エ:一つのプログラムを2人の開発者が共同で開発することによって、生産性と信頼性を向上させる。
🔒 解説は解答すると表示されます
ソフトウェア開発におけるDevOpsに関する記述【ITパスポート 解説】
正解の理由
DevOps(Development + Operations:開発と運用の連携を表す考え方)は、開発側と運用側が密に協力して、作業の自動化や効率化を進めることで、仕様変更などに迅速かつ柔軟に対応することを目的とします。自動化ツール(手作業を自動で行うソフトウェア)や継続的な仕組みを取り入れることで、リリースの頻度を上げ、品質を維持しながら素早く改善できます。
選択肢 ウ は「開発側と運用側が密接に連携し、自動化ツールなどを取り入れることで迅速・柔軟に対応する」と述べています。これは DevOps の本質を簡潔に表しているため、正解です。
解法ステップ
- 「DevOps」の意味を思い出す
- DevOps = Development(開発) + Operations(運用)。協力と自動化で迅速な開発・運用を目指す考え方。
- 各選択肢のキーワードを拾う
- 連携、自動化、迅速・柔軟、順次工程(ウォーターフォール)、共同開発(ペアプログラミング)など。
- DevOps の要点(協働+自動化+継続的な改善)に一致する選択肢を選ぶ
- 一致するのは ウ。他は一部の観点は正しくても DevOps 全体を表していない。
選択肢別の誤答解説
- ア: 「運用側で利用する画面を明確にするために、開発側がプロトタイプを作る」
- プロトタイプ作成は有益ですが、一方的に開発側が作るだけでは「開発と運用の密な協働」とは言えません。DevOps は両者の継続的な協働を重視します。
- イ: 「開発→設計→テストを順に実施してから運用へ引き渡す」
- これはウォーターフォール型(順序立てて開発する手法)です。DevOps は継続的な統合とデリバリーを通じて短いサイクルで変更を出していくので、矛盾します。
- エ: 「一つのプログラムを2人で共同開発する」
- これはペアプログラミング(開発手法の一つ)で、生産性や品質に寄与しますが、DevOps の定義(開発と運用の連携、運用の自動化)とは別の次元の話です。
よくある誤解
- 「DevOps = ツールを入れればいい」
- ツールは重要ですが、文化(組織の協力のしかた)やプロセスの変更も必要です。ツールだけでは効果が出にくいです。
- 「DevOps は開発側が運用を全部やること」
- 目的は役割を無くすことではなく、両者が協力して自動化や共通の責任を持つことです。
- 「短いサイクルだから設計や品質を無視してよい」
- 逆にテスト自動化や監視を強化して品質を保ちながら早く回すのが狙いです。
補足コラム
- CI/CD(継続的インテグレーション / 継続的デリバリー)とは?
- 継続的インテグレーション(Continuous Integration:CI)は、開発者が頻繁にコードを統合(マージ)し、自動でビルドやテストを行う仕組みです。継続的デリバリー(Continuous Delivery:CD)は、その成果を自動で本番近い環境まで届ける仕組みです。これにより変更の差分を小さく保ち、問題発生時の原因特定が容易になります。
- インフラストラクチャ as Code(Infrastructure as Code:IaC)とは?
- インフラ(サーバやネットワークの構成)をテキストのコードで管理し、自動で構築・変更する考え方です。手作業のミスを減らし再現性を高めます。
- よく使われるツール例(一言説明)
- Jenkins:CI を自動化するツール。
- GitHub Actions:GitHub 上で自動作業(CI/CD)を行う仕組み。
- Docker:コンテナ(アプリを軽く独立して動かす技術)を作るための技術。
- Ansible:サーバ構成を自動化するツール(構成管理)。
- Kubernetes:コンテナを大規模に管理・運用するための仕組み。
- これらは DevOps 的な自動化を支える代表的な道具です。導入は目的に合わせて選びます。
FAQ
Q. DevOps は全ての会社で必要ですか?
A. すべてではありませんが、頻繁に機能改善やリリースを行うサービスでは効果が大きいです。業務特性や組織の成熟度を見て導入を判断します。
A. すべてではありませんが、頻繁に機能改善やリリースを行うサービスでは効果が大きいです。業務特性や組織の成熟度を見て導入を判断します。
Q. 小さなチームでも DevOps を始められますか?
A. はい。小さいチームの方が意思決定が早く、CI/CD や自動化を導入しやすいこともあります。まずは自動テストやデプロイの自動化から始めると良いです。
A. はい。小さいチームの方が意思決定が早く、CI/CD や自動化を導入しやすいこともあります。まずは自動テストやデプロイの自動化から始めると良いです。
Q. 学ぶ順番は?
A. 基本はバージョン管理(Git)の理解 → 簡単な自動化(CIの導入)→ コンテナや IaC と進めると実務で使いやすくなります。
A. 基本はバージョン管理(Git)の理解 → 簡単な自動化(CIの導入)→ コンテナや IaC と進めると実務で使いやすくなります。
関連キーワード: DevOps、CI/CD、継続的インテグレーション、継続的デリバリー、自動化、Infrastructure as Code、IaC、コンテナ、Docker、Kubernetes、デプロイ、モニタリング、運用と開発の連携

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

