実務および哲学としての DevOps には、開発者とIT運用者間のコミュニケーションとチームワークが含まれます。伝統的には、開発部門と運用部門は2つの異なるチームであり、ソフトウェアで問題が発生すると互いに相手の責任を問うような事態になりがちです。DevOps はそのような非生産的なことを避けて、両部門が協力し合うことを目指します。結果として、より安定した信頼できるソフトウェアを顧客に提供することができるようになります。
DevOps において、継続的デリバリー (Continuous Delivery、CD)は、アジャイルな方法を使用してプロセスをカプセル化し、ソフトウェアのリリースに短期間で対処することを意味します。CD でよく使われるアーキテクチャとして、マイクロサービスの使用があります。マイクロサービスは、レゴのように、特化されたブロック、固有の機能を備えた個々のピースから成り立ち、迅速にシステム構築することができます。
パイプライン
DevOps にはいくつかの異なる構成要素がありますが、継続的デリバリーは重要な構成要素の1つです。CD では、新しいコードをパイプラインに投入し、自動化を介してさまざまな段階でテストを行い、最終的に本稼働システムに安全に組み込めるようにします。こうすることで、ソフトウェア自体の安定性が増すとともに、顧客へのリリースがより速やかに行えます。パイプライン用のツールはたくさんありますが、中でも Azure Pipelines は、特に Microsoft ユーザーには、よく利用されています。
ソフトウェアリリースのスピード
敏速なソフトウェアリリースは、DevOps と CD の顕著な特徴です。アジャイルなプロセスを通して顧客からのフィードバックを常時チェックし、遅滞なく、必要な変更を加えたり、顧客が望む機能をリリースしたりすることを目指します。CD において顧客からのフィードバックは特に重要で、ユーザーテストで確認しながらどう変更するのが適切なのかを模索します。ソフトウェア作成とリリースの前後での自動化プロセスが、リリースまでのスピードアップにつながります。
テスト
ソフトウェア・デリバリーの自動化は、大量の様々なテストを可能にするので、実稼働の際に問題が生じる可能性が最小限に抑えられます。DevOps での不具合は、理想としてはコードが運用環境にリリースされる前に検出されるべきもので、そのために種々のテストが実施されます。継続的デリバリーにおいては、テストがコードの中に書かれており、バージョン管理も設定され更新されるので、高い確率でリリース前にバグを発見することが可能です。CD のテストには様々な段階があります。たとえば、成果物の実際の構築は、Jenkins のようなツールを使用してパイプラインでテストされます。
まとめ
DevOps カルチャーの重要な部分を占めるのは、新しいソフトウェアやソフトウェア機能を迅速にリリースできるようにする継続的デリバリーです。継続的デリバリーは継続的統合 (Continuous Integration、CI) と密接に関連しており、CI/CD と呼ばれることもよくあります。継続的統合では、Git のようなツールを使って複数の開発者が同じリポジトリを共有できるので、効率的なバージョン管理ができます。これからの効率的なソフトウェアの開発と展開のために、DevOps は定着していくでしょう。この潮流の基盤にあるのが継続的デリバリーです。