本文へ移動
Unlogical Systems

Ctrl / ⌘ + K でも開けます

    Unlogical Systems

    Docker を採用する理由

    Dockerは、アプリケーションとその動作環境をコンテナとしてまとめ、どこでも同じように動かすための技術です。杉並区でWebシステム開発を行う弊社が開発環境から本番環境までDockerを採用する理由と保守の考え方を解説します。

    Dockerとは

    Dockerは、アプリケーションと、それを動かすために必要なOSのライブラリや設定をひとまとめにした「コンテナ」を作り、実行するための技術です。コンテナは開発者のパソコンでも、社内のサーバーでも、クラウドでも同じように動くため、「自分の環境では動いたのに本番では動かない」という問題を大幅に減らせます。複数のコンテナ、たとえばWebサーバー、アプリケーション、データベースをまとめて起動する仕組みも用意されており、開発環境の構築を手順書ではなく設定ファイルとして共有できます。

    弊社が採用する理由

    弊社では、ほぼすべての案件で開発環境をDockerで構築し、多くの案件で本番環境もコンテナとして運用しています。開発環境では、PHPやNode.js、データベース、Webサーバーの組み合わせを設定ファイルに記述し、新しく参加する開発者や引き継ぎ先が同じ環境を短時間で再現できるようにしています。AWSを使う案件では、ローカルでAWSの動作を模擬するツールもコンテナで動かし、クラウドの費用をかけずに検証しています。本番環境では、AWSのECS(Fargate)にコンテナを配置する構成を基本とし、ステージング環境と本番環境で同じイメージを使うことで、環境差による不具合を防いでいます。サーバー構築とアプリケーション開発の両方を担うフルスタックエンジニア制では、動作環境そのものをコードとして管理できるDockerが、品質と引き継ぎやすさの両面で欠かせない基盤になっています。

    向いている案件

    • 複数人で開発する、または引き継ぎが想定されるプロジェクトの開発環境
    • 開発・ステージング・本番で同じ動作環境を保ちたいシステム
    • AWSなどのクラウドにコンテナとして配置するアプリケーション
    • 古いシステムの動作環境を再現して調査・保守する場合

    保守・移行の観点

    コンテナの土台となるベースイメージにはOSやPHP、Node.jsなどの版が含まれており、それぞれの保守期限に合わせて更新する必要があります。イメージの脆弱性を自動で検査するツールを継続的インテグレーションに組み込み、定期的に更新する運用をおすすめしています。開発環境の設定ファイルは、実際に手順どおりに環境を再現できるかを定期的に確認しないと陳腐化します。本番でコンテナを運用する場合は、ログの収集と監視、イメージの版管理と切り戻し手順を整えておくことが安定運用の鍵です。

    組み合わせて使う技術

    よくあるご質問

    Dockerを使うと本番サーバーの構成は変わりますか?

    本番でコンテナを使うかどうかは要件次第です。従来のLAMP/LEMP構成のサーバーに配置する案件でも、開発環境だけをDockerで揃えることで環境差による不具合を減らせます。

    納品後、社内でも同じ開発環境を再現できますか?

    はい。環境の設定ファイルと手順書を納品物に含めているため、Dockerが動くパソコンであれば同じ環境を再現できます。引き継ぎや社内での改修にも役立ちます。

    関連するサービス

    関連する開発ガイド

    関連用語: ステージング環境LAMP/LEMPフルスタックエンジニア

    監修: Unlogical Systems合同会社杉並区・西荻窪)公開

    まずは現場のエンジニアにご相談ください

    営業担当ではなく、実際に設計・開発を行うエンジニアが直接お答えします。ご相談・お見積りは無料、1営業日以内にご回答いたします。

    無料でご相談・お見積り

    資料の添付は、送信後に届く受付メールへの返信でお送りいただけます。

    相談・見積りは無料
    1営業日以内にご回答します

    無料で相談する