こんにちは。日本ヒューレットパッカードのオープンソース、Linuxテクノロジーエバンジェリストの古賀政純です。前回の記事では、DockerfileがDockerイメージを自動ビルドする強力な仕組みを提供することをご紹介しました。今回は、さらにDockerfileがもたらす開発業務の時間短縮についてご紹介します。
IT基盤構築や開発業務の時間短縮を阻む要因
IT基盤構築や開発の時間短縮を実現するには、その時間短縮の障壁を知っておく必要があります。IT基盤構築や開発業務の時間短縮を阻む要因には、OSの更新作業、人間の手動オペレーションの介入、煩雑な作業許認可の仕組み(例えば、作業内容ごとに存在する作業承認印)、電話やメールでのあいまいな指示、目視が必要な紙の手順書など、さまざまなものが存在します。
また、IT基盤構築の自動化ツールや開発支援ツールがシステム全体で標準化されないことなども時間短縮を阻む一因として挙げられます。
IT基盤構築や開発業務を非効率化にする要因
例えば、「オープンソースソフトウェアで標準化する」というCIOやIT部門長の大号令が出たものの、営業部門用システムでは、オープンソースソフトウェアのAnsible(アンシブル)を採用、別の財務部門用システムではChef(シェフ)を採用、また別の開発部門では、Dockerfileを採用といった具合に、部門ごとに採用する自動化の仕組みが異なってしまうことがあります。
自動化というIT基盤の構築にとって非常に重要な要素に注目しているにもかかわらず、小さい単位の部署ごとに個別最適化されていまい、全体最適化がなかなか進まない例です。このようなシステムは、部門ごとに自動化ができているものの、全く特性の異なるIT基盤が別々に乱立し、異なる自動化ツールで個別システムが乱立します。
結果的に、別の部署のシステムが効率的に動いているのかどうかを把握できず、IT資源に空きがあってもそれを活用、流用できないといった「サイロ化」(※)が進んでしまい、全体最適の観点では、非効率なシステムになる可能性があります。
(※)IT基盤の全社最適化という観点では、できるだけ、標準化を目指さなければなりません。ただし、物理システムの種類や規模、稼働できるミドルウェアやツール類は、社内の各部門システムに求められる可用性や機密性の高低によって異なるため、自動化を行うシステムとそうでないシステム(自動化ができない例外システム)の整理も必要です。例外システムと標準化できるシステムを両輪で検討しますが、サイロ化されているIT基盤において、重複した業務がないか、共有IT資源の有効利用が可能かどうか、有事の際の自動化(高可用性システムによるサービスの継続等)をどこまで担保するのかなどの仕分けを行った上での標準化が必要です。
サイロ化するIT基盤
また、OSの導入作業、OSの更新作業、パッチの適用などのメンテナンス作業もシステム停止を伴うことが多く、開発業務などに影響を与えることも少なくありません。OS自体の更新作業は、IT部門の運用担当者が行います。この時、ソフトウェアの更新作業や、更新されたソフトウェアの動作テストに時間がかかる場合があります。
運用上、どうしても人間による手動のオペレーションが介入することが少なくありません。これは、Dockerに限った話ではありませんが、システム全体の更新作業は、サービス停止を伴うことが多く、特に人間の手動介入や目視によるソフトウェアの動作確認などは、作業工程も多く、ミスも発生しやすいため、IT部門の負担が非常に大きくなります。
セキュリティパッチの適用、データのバックアップ、バグ対応など、致命的なシステム障害に陥らないためには、どうしてもシステムの停止が必要になる。特に、OS更新作業やパッチ適用作業は、システムの停止を伴うことが多い