【重要】システム開発仕様変更に関する対話まとめ
Web巡回・Chatwork通知機能のテスト環境構築と本番移行方針について
ご担当者様
仕様変更があり、運用するサーバーがDockerが使えない(root権限がない)と判明しました。
既存のVPS/Ubuntu/Nginx/uWSGI/Flask/SQLite/Blueprintシステムに、昨日までのテスト内容を追加することになります。
できるだけ干渉せずに分離したテスト環境を設置することは可能でしょうか?
また、運用する際にPythonからPHPにコード変更して処理を実装することは可能でしょうか?
AIアシスタント
承知いたしました。新たな制約とご要望について理解しました。
技術的には可能ですが、いくつかの課題があります。
Dockerを使わない場合、PHPとMySQLを直接サーバーにインストールし、Nginxでルーティングを設定することになります。これはシステム全体に影響を与えます。
PythonからPHPへのコード変更は、「ロジックを再実装する」形での移植になります。
ご担当者様
ちょっとイメージしづらいのですが、依頼者のサーバーはroot権限がなくPHP/MySQLでのコーディングを望んでいます。
こちらのサーバーはFlask/SQLite/Pythonでコーディングしているので、そのままテスト環境をシステム内で処理したい。
テストが終了すれば、PHPとMySQLシステムに変更して依頼者のサーバーに移転・運用するという条件です。
こちらのサーバーでroot権限を使わない状態で構築しないと移転が難しくなる気がします。
AIアシスタント
ご要望を明確に理解しました。
「root権限なしでの移転」を最優先するご意向ですね。
この制約下でのPHP/MySQLの直接導入は困難が多く、特にNginxの設定変更にはroot権限が必要です。
そのため、「Pythonでテストし、PHPに移植(再実装)」という方針が最も現実的と考えられます。
ご担当者様
依頼の環境を考えるとメンテナンスの心配がネックにある気がします。
Python、PHPどちらでもメンテナンスできるように考えているようです。
時間がかかることは問題としていないので、じっくりPythonでテストして、少しずつ移転する予定なのかなと思います。
一番良いのは同じ環境にして更新するたびに同期するですけど、PHPのロジックが複雑になると自信がありません。
AIアシスタント
ご希望を詳細に把握できました。
「Python、PHPどちらでもメンテナンス可能にしたい」「じっくりPythonでテストし、その後PHPに移植」という方針を最優先します。
提案されるテスト環境構築方針(まとめ)
- データベース: こちらのテスト環境はMySQLを継続して使用します。
- 理由: PHP版でもMySQLを使用するため、データベーススキーマを共通化できます。
- 権限の制約: こちらの環境ではDockerコンテナでMySQLを運用し続けます。依頼者のサーバーでは、既存のMySQLインスタンスにテーブルを構築してもらう形になります。
- 干渉: Dockerコンテナなので、既存のFlaskアプリケーションへの干渉は最小限です。
- ロジックの実装: Pythonで開発・テストを行い、PHPへは「移植(再実装)」します。
- 理由: 慣れているPythonでまずロジックを確立することで、PHPでの開発リスクを低減します。
- Pythonでの実装:
- Web巡回・通知スクリプトは独立したPythonスクリプトとして開発し、既存のFlaskアプリとは別のディレクトリ(例:
~/web-monitor-app-py/
)に配置します。
- FlaskのBlueprintとしてWebインターフェース(ホームページ登録、ユーザー登録、巡回履歴表示など)を開発し、Web経由でのテスト実行や設定管理を可能にします。
- ユーザーレベルのCronジョブからこのPythonスクリプトを定期的に呼び出すことで、巡回を自動化します。
- PHPへの移植(最終的な本番環境用): Pythonでロジックが安定したら、そのロジックをPHPで再実装(移植)します。依頼者のサーバーのPHP CLI環境または既存Webサーバー経由で稼働させます。
このアプローチにより、開発・テストのしやすさを確保しつつ、最終的なroot権限なし環境への移転と、将来的なPython・PHP両方でのメンテナンス対応の可能性を考慮します。