SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

EnterpriseZine(エンタープライズジン)編集部では、情報システム担当、セキュリティ担当の方々向けに、EnterpriseZine Day、Security Online Day、DataTechという、3つのイベントを開催しております。それぞれ編集部独自の切り口で、業界トレンドや最新事例を網羅。最新の動向を知ることができる場として、好評を得ています。

直近開催のイベントはこちら!

EnterpriseZine編集部ではイベントを随時開催しております

EnterpriseZine(エンタープライズジン)編集部では、情報システム担当、セキュリティ担当の方々向けの講座「EnterpriseZine Academy」や、すべてのITパーソンに向けた「新エバンジェリスト養成講座」などの講座を企画しています。EnterpriseZine編集部ならではの切り口・企画・講師セレクトで、明日を担うIT人材の育成をミッションに展開しております。

お申し込み受付中!

Google Cloudが直伝! コンテナ基礎入門

開発者に伝えたいコンテナの利点──アプリケーション開発における繰り返し作業を自動化

第2回:開発者の視点からみた、コンテナ活用のメリットとは?

 第1回 ではコンテナの歴史とインフラ担当者から見たコンテナのメリットについて解説した。本稿では、視点を開発者に変え、コンテナを活用することが開発者にとってどのようなメリットがあるのか説明していく。

開発環境の作成とコンテナ

 第1回でも解説した通り、Dockerを利用したコンテナ環境の構築はDockerfileを作成してコマンドを実行するだけで開発者自らが環境構築できる。プロジェクト開始時にインフラの準備を待つ必要なく、開発作業を素早く立ち上げることが可能だ。コンテナで環境を作成すると、簡単に開発用の端末でコンテナプロセスを立ち上げることもでき、コードの実行とテストを行うために共用の開発環境にデプロイして挙動を確認する必要がなくなる。コーディングと手元での実行、単体テストを細かく行うことができるため、開発の生産性が向上する。

 加えて、テスト用のDBなどもスタブとしてコンテナを用意し、同時にローカルで実行することで、他の開発者のテストに影響を受けることなく、自分のコードの検証をローカルで実行し、効率よく開発を進めることが可能となるのも大きなメリットだ。また、Dockerに慣れている開発者であれば、手順書不要でDockerfileを配布するだけで開発環境を数分で立ち上げることが可能となる。

画像を説明するテキストなくても可
クリックすると拡大します

 また、同じDockerfileを利用し環境構築を行うことができるため、開発者の机上では正しく動作したのに、テスト環境や本番環境では設定が違うために想定外の動作をしてしまう、というよくある環境差異の課題も回避できる。

CI/CDとコンテナ

 CI/CDとは、Continuous Integration(継続的インテグレーション)とContinuous Delivery(継続的デリバリー)を組み合わせた言葉で、アプリケーション開発におけるビルドやテスト、デプロイを自動化し、短期間、高頻度で安全にソフトウェアデリバリーすることを可能とするためのものだ。これらの概念とコンテナとの関わりを解説していく。

画像を説明するテキストなくても可
クリックすると拡大します

Continuous Integrationとコンテナ

 一般的な開発において、アプリケーションのソースコードを作成または修正した場合、自分でビルドして開発環境などでテストを行い、アプリケーションの動作を確認するという作業が日々発生しており、かなりの時間を割いているケースが多い。また、チームで開発する場合は、複数の開発者が同時に同じアプリケーションのソースコードを変更することも多く、他のエンジニアの意図しない変更にともなう不正な挙動や、テスト実行のための共用の開発環境の取り合いという課題も発生している。

画像を説明するテキストなくても可
クリックすると拡大します

 Continuous Integrationにおいては、ツールを利用することでソースコードレポジトリのコードが変更されるたびにビルド、テストを自動で実行し、開発作業の省力化と、不具合の早期発見を目指す。ここで使用するテスト環境としてコンテナの環境を利用することで、複数の変更が同時に発生しても、変更ごとにDockerfileで作成された別々の環境を立ち上げてテストを行うことが可能となるため、不具合の早期発見を実現することができる。

画像を説明するテキストなくても可
クリックすると拡大します

Continuous Deliveryとコンテナ

 今までのデプロイ作業は、利用しているミドルウェアごとにデプロイの方法が違い、デプロイ作業も自動化されていないことが多く、手動でインフラ担当者がデプロイ作業を、アプリケーション開発者が動作確認を実施し、ロールバック作業に備えて完了まで待機している、という手間も人手もかかる作業だったため、数ヵ月に一度まとめて行われるということが多かった。Continuous Deliveryにおいて、コンテナを利用することでコンテナイメージの差し替えという形でデプロイ方法を統一化することができ、デプロイ作業自体もツールで自動化することで人の手を介さないデプロイ作業を実現することが可能となる。また、ロールバックもツールにより自動で前のバージョンのコンテナに差し替えることが可能となり、インフラ担当者の関与は不要でアプリケーションのデプロイを行うことが可能となる。

画像を説明するテキストなくても可
クリックすると拡大します

 上記のようにCI/CDを開発現場に取り入れ、短期間、高頻度なソフトウェアデリバリーを目指す際にはコンテナの採用は不可欠なものとなっており、コンテナを採用することで、これらの効果を最大化することができる。

次のページ
様々なデプロイ手法の活用も

この記事は参考になりましたか?

  • Facebook
  • Twitter
  • Pocket
  • note
Google Cloudが直伝! コンテナ基礎入門連載記事一覧

もっと読む

この記事の著者

安原 稔貴(ヤスハラ トシタカ)

グーグル・クラウド・ジャパン合同会社 技術部長(インフラ、アプリケーション開発)

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

EnterpriseZine(エンタープライズジン)
https://enterprisezine.jp/article/detail/18533 2023/11/06 08:00

Job Board

AD

おすすめ

アクセスランキング

アクセスランキング

イベント

EnterpriseZine(エンタープライズジン)編集部では、情報システム担当、セキュリティ担当の方々向けに、EnterpriseZine Day、Security Online Day、DataTechという、3つのイベントを開催しております。それぞれ編集部独自の切り口で、業界トレンドや最新事例を網羅。最新の動向を知ることができる場として、好評を得ています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング