技術とか戦略とか

SIerで証券レガシーシステムを8年いじってからSESに転職した業務系エンジニアによる技術ブログ。

情報処理技術者試験対策:DevOps

「DevOps」とは、「開発部門と運用部門の連携を密にすることで、新機能や機能改修等のリリースの速度を上げること」を指します。
そして、連携を密にする具体的な方法として、自動化ツールが用いられます。
 
----
 
一般的に、開発部門と運用部門の役割を時系列に並べると、以下のようになります。
システムの開発は開発部門で、開発されたシステムのリリースと運用は運用部門で行います。
 
■開発部門
・開発計画
・設計
・実装
・ビルド(コンパイル、実行ファイル生成)
・テスト
 
■運用部門
・リリース
・監視
・運用作業
 
----------------------
 
以上は一般的な開発部門と運用部門の役割分担ですが、ここで自動化ツールを導入することで、実装からリリースまでの期間を短縮することができます。
ここで用いられる自動化ツールは、継続的インテグレーション(Continuous Integration(CI))、継続的デリバリー(Continuous Delivery(CD))、継続的デプロイ(Continuous Deploy(CD))を実現します。
 
それぞれの説明は以下の通りです。
 
継続的インテグレーション
・実装したソースコードを、既存のソースコードと統合してビルドする。
・ビルドする際、自動的にテストを行い、妥当性を確認する。
ソースコードの統合に伴う問題を自動検知できるため、迅速な統合が可能になる。
 
■継続的デリバリー
継続的インテグレーションに加えて、リリース作業を一部自動化したものである。
・ビルドと自動テストが行われた実行ファイルを、テスト環境へ自動的にリリースする。
・テスト環境でテストを行い、手動で承認した後、本番環境へ自動的にリリースする。
 
■継続的デプロイ
・継続的デリバリーをより発展させ、リリース作業を完全に自動化したものである。
・ビルドと自動テストが行われた実行ファイルを、本番環境へ自動的にリリースする。
 (継続デリバリーとは異なり承認不要)
 
----------------------
 
情報処理技術者試験に関する記事の目次
https://1drv.ms/b/s!AivF3bzWXOzuhG1Xk5hscKYqkLkM