外注を前提とした開発環境(仮想環境)について
解決したいこと
バックエンド開発やインフラに強くない外注先を前提とした開発環境の整備についてご相談をさせて下さい。
弊社では、様々な企業や個人と業務を進めることが非常に多く、相手先の都合も踏まえた開発環境の整備について悩んでいます。
前提
- 対象者は一般的な制作会社。
- 弊社では、スクラッチ開発からWordpress等のCMSを扱った案件が多数。
- 業務の分担は様々。フロントエンドの一部分から、機能の追加開発、設計のみなども依頼したりします。
- GITは必ず使う。CI等のツールは案件の管理予算に合わせて都度検討。
- デプロイ方法や本番環境は案件によって異なるので、ここでは考えないとする。
問題点/目的
- 小規模案件で管理コストが気になる
- 外注先でバックエンドやインフラに明るくない企業が多い(依頼内容にもよりますが)
- 本番に近い環境を常に維持したい
- 外注先に環境整備の手間をかけさせたくない
- 案件が多いため、弊社での管理コストも抑えたい
現在の管理方法
- 仮想環境はDockerを使う。案件に合わせた内容を都度用意。
- 案件が多いため、DockerHubでイメージを管理は困難。docker-composeの内容をクライアントPCで常にビルドしてもらう。
- dockerに関わる設定ファイルもGITで管理(プロジェクトの一部として扱う)
現在の管理方法のメリット
- 仮想環境のセットアップ内容を弊社側で管理できる。変更を加えて再ビルドして頂くという流れ。
- 本番に近い環境を利用できるため、外注によるトラブルを軽減できる。
- インフラに明るくない外注先でも何とか成り立つ。(丁寧なドキュメントを用意、Zoom等でサポート)
質問内容
Dockerを実行する環境による、イメージをビルドできない問題
弊社で用意している環境の多くは、x86環境を前提としたものになっています。
M1が盛り上がっている今では、ARMをサポートするイメージを用意する方法しか残されていないか、より良い解決法があるのかなど、アドバイスをお願い致します。
Dockerのイメージを管理できない問題
上記の問題にも関連しますが、小規模案件が多数存在している中、案件ごとのイメージをDockerHubで管理するのは現実的ではありません。
Docker Registryを使った管理方法を導入することに関するご意見をお伺いできればと思います。
外注先の手間が減らない問題
イメージのビルドに時間がかかってしまったり、上記の問題でビルドできなかったりなど、両者ともサポートに関わるコストがかかっています。
イメージを管理できる仕組みさえあれば解決する問題かどうかも踏まえて、アドバイスを頂けると助かります。
「そもそもこうじゃない!」というご意見もお願いします
他社での管理方法やご自身の経験談など、様々なご回答を募集しています。貴重なお時間を頂いて恐縮ではございますが、ご検討下さいませ。
最後に
スクラッチ開発などの規模の大きい案件ほど発生しない問題だと思っていますが、小規模な案件も同様の基準で管理したいとなると、
管理コストや技術的な問題点が浮き彫りになっています。
他社でも考えられる問題ではありましたので、敢えて公の場で議論できればと思い、こちらに投稿致しました。
0