Dockerコンテナは新技術のゆりかご!サーバーレスやCI/CDの実現へ
-Dockerコンテナと関連技術をやさしく解説 (その3)
Dockerコンテナの登場は、新たな応用技術を生み出すことにつながった。連載3回目となる今回は、その代表例であるサーバーレスコンピューティングとCI/CDを紹介する。
サーバーレスによりコンピューター資源が効率化
Dockerに代表されるコンテナ型仮想化技術は、それまでの仮想化技術よりも軽量、つまりファイル容量が小さく起動が高速であること。そしてDockerfileと呼ばれる構成ファイルによって内容が定義され、パッケージ化が容易で可搬性が高いことといった特長があることを本連載記事で紹介してきました。
●なぜDockerコンテナは注目されるようになったのか?ーDockerコンテナと関連技術をやさしく解説 (その1)
●軽いだけではない!ソフトウェアをパッケージにまとめる機能とは?Dockerコンテナと関連技術をやさしく解説 (その2)
これらの特長を備えた新たな基盤技術の登場は、新たなサービスやアプリケーションの登場の呼び水となりました。ここではその代表的なものとして、サーバーレス基盤とCI/CDを紹介しましょう。
これまでソフトウェアというのは、起動し続けておくことが基本でした。例えばプログラムAとプログラムBが連携する場合、プログラムAとプログラムBはどちらも起動させておき、プログラムAからBへデータを送信する、あるいはその逆を行う、などの処理を行うのが一般的です。プログラムは「起動させておくことが通常状態」というのが、現状の多くのシステムのあり方なのです。
一方、サーバーレスコンピューティング(以下、サーバーレス)を用いたシステムでは事情が異なります。プログラムは「起動させていないことが通常状態」になるのです。
プログラムAとプログラムBが連携する場合、プログラムAからプログラムBへデータを転送するときだけプログラムBが起動し、その処理が終わればプログラムBは終了することになります。プログラムAも処理を必要とするときだけ起動され、処理が終われば終了します。
サーバーレスは瞬時に起動するという特長を持つコンテナ技術を基盤に採用することで、普及が始まりました。サーバーレスの利点は必要なときにしかプログラムが起動しないため、それ以外の時間では余計なCPUやメモリを消費することがなく、コンピューティングリソースを非常に効率良く使えることです。
具体的には、1つのコンピューター上で従来よりもたくさんのシステムを稼働させることができるようになります。同時に、クラウドのユーザーにとってはプログラムが起動しているときだけ料金が発生するため、これまで常にプログラムが起動して発生していたクラウドの利用料金が、サーバーレスによって劇的に下がる可能性があるのです。
これからのシステムは多数のソフトウェアが連携して実現されると見られています。コンテナの技術的な特長をシステム基盤に利用したサーバーレスは、そうした新たなアーキテクチャのシステム基盤として非常に有望です。
すでにAmazon Web Services(AWS)の「AWS Lambda」やMicrosoft Azureの「Azure Functions」、Google Cloudの「Google Cloud Functions」など、大手クラウドではこのサーバーレスコンピューティングは標準的な機能として用意されています。
CI/CDにより迅速な開発サイクルが可能に
コンテナの登場によって急速に広まりつつある、もう1つの代表例が「CI/CD」でしょう。CI/CDは一般にITエンジニアの間で「シーアイ・シーディー」と発音されます。「Continuous Integration/Continuous Deploy」の略で、日本語にすると「継続的統合/継続的デリバリ」と訳されます。
現代のソフトウェア開発では、迅速にソフトウェアを開発し、それを顧客に提供(デリバリ)して使ってもらい、フィードバックを受け、ソフトウェアを改善し、改善したソフトウェアをすぐにまた顧客に提供するという開発サイクルを、素早く回すことが重要だとされています。
このサイクルを素早く回す上で、CI/CDは重要な手段となっています。
CI/CDではプログラマーが開発しているソースコードはコンテナの上に保存され、そこでビルドが実行され、テストが実行され、テストが問題なく通ったら最新のコンテナイメージがレジストリに保存され、そのレジストリから本番環境のコンテナにデプロイされます。つまり、CI/CDの一連の流れはすべてコンテナの上で行われることが事実上の標準となっています。
これは、Dockerfileによる構成の容易さや軽量さによる迅速なビルド、実行、そして開発環境やテスト環境、本番環境にまたがる可搬性(ポータビリティ)の高い環境の構築が容易といったコンテナの特長が、CI/CDを実現する上で大事なポイントになるわけです。
ピンチアウトで拡大
※このコラムは不定期連載です。
※会社名および商標名は、それぞれの会社の商標あるいは登録商標です。
-
新野淳一/Junichi Niino
ブログメディア「Publickey」( http://www.publickey1.jp/ )運営者。IT系の雑誌編集者、オンラインメディア発行人を経て独立。新しいオンラインメディアの可能性を追求。