cakePHP3でrewriteではまる...
とあるプロジェクトに携わっていてrewriteが効かなくてはまりました。。。
この作業をやるきっから。。。
サービスは、管理画面とユーザーアプリのシンプルなもので
BtoBtoCサービスになります
基本的に私どもがサーバやアプリなどを企業様に提供して、企業様のサービスとしてユーザーが使うといういたってありきたりなスキームなのですが
私がアサインされた時点で、営業が企業様とサービス利用の契約をしてきて
そこから、その企業用の環境構築(WEB/DBホスト、ロードバランサー)をしソースコードの配置、外部サービスの契約をしてテスト確認をし企業様の利用開始となります
つまりは1企業1構成が必要なわけです
ぶっちゃけ愕然としました
だって1クライアントあたりの粗利はおおよそ決まっているので、クライアント数と利益が比例するモデル
例えば極端な話ですが1企業と契約して1人の運用人数が必要であれば、1000企業と契約したら1000人の人が必要になるわけで、企業数と利益が比例型です
一見売り上げは伸びていきますし利益も増えていきます
しかし増えるのに比例して運用コストなども増えています
環境も増え、作業量にともなう人も増えるのですから
アサイン当初からこれじゃあ儲かりませんよと思っていました
とシステムを改修したかったんですが1構成に1企業しか登録できないシステムで作られているのをDBの構造変更からプログラムの変更を伴い大きな改修でその工数は会社は準備してくれませんでした
そんなこんなで数ヶ月
会社が執拗な原価削減を訴えてきて私の担当プロジェクトはこの環境を増やすスタイルではなく、同じ環境を使うことでランニングコストを下げるという方針を出しました
しかし恐らく私の上長は、virtualhostでドキュメントルートを分けてDBを分けてという構想だったと思います
基本的に既存のソースコードは企業ごとの設定(DB情報やメール、決済接続情報など)だけで個別の改修はしない方針
であれば、1000個のドキュメントルートができて変更があればメンテナンス量が増えることになりますので、確かにサーバは抑えるのでランニングは下がりますがメンテナンスが増える可能性があります
ということで私が今回は新規事業に携わりながらの改修になってしまう点と
期間は1ヶ月(工数ではなく新規事業の業務をやりながらの1ヶ月という期間)になり1ヶ月後にはサービス開始の企業が控えています
その時間が限られている中で最大限のコストを削減(というか初期の設計がぬるかっただけだと思いますが。。)案を考えました
・vitualhostでドメインは企業ごとの設定をできるようにする
・DBは企業ごとに分ける(同一ホストでdatabaseを分けます。これは増殖モデル。。)
・ドキュメントルートを分けてソースコードの配置は一つに
流石にDB改修までは時間作れませんでした。。。
対応のメインとしては
・企業の設定が1企業しかできないソースコードの改修
これができれば1環境で複数の企業が使うメンテ抑えた環境ができるわけです
文で書くのは簡単ですね。。。
いや簡単に思えてきた!!!
コメント
コメントを投稿