eddiejaoude / Zend-Framework--Doctrine-ORM--PHPUnit--Ant--Jenkins-CI--TDD-

[DEPRECATED for ZF2 & Composer] Best practice Zend Framework (ZF) skeleton / base with Doctrine2 integration : High code coverage & build scripts using TDD. Issues section ar e used for project planning (features etc)
http://www.jaoudestudios.com
158 stars 40 forks source link

Multitenancy / Multi-Tenant Architecture #80

Open michaelalber opened 13 years ago

michaelalber commented 13 years ago

A multi-tenant architecture would allow taking the ZFBP base and building specific solutions for clients that are easier to maintain and profitable. I assume that a single installation 'hosting' a dozen sites is better (less time consuming to make updates, initial setup, etc.) than having a dozen copies of code on one or more servers. I also assume that the number of smaller to mid-size companies, organizations, etc. that need quality web based solutions is quite larger. That these companies, organizations generally can't afford to pay a freelance developer / consultant a large amount of money to develop and maintain a web sites, etc. A SAAS / Long Tail / Multi-Tenant solution would allow for a cost effective and profitable option for them and 'us'.

-- References http://en.wikipedia.org/wiki/Multitenancy http://msdn.microsoft.com/en-us/library/aa479069.aspx http://msdn.microsoft.com/en-us/library/aa479086.aspx http://en.wikipedia.org/wiki/Long_Tail http://www.saasblogs.com/business/saas-business-profitability-build-for-the-long-tail-and-get-the-rest-for-free-almost/

eddiejaoude commented 13 years ago

Sorry, I understand what you are suggesting?

michaelalber commented 13 years ago

It might be an advantage to allow ZFBP to including the ability to handle multiple sites with a single installation (ie multiple config, themes).

michaelalber commented 13 years ago

assume: ZFBP is installed in /home/zfbpcommon

http://www.mysite.com DocumentRoot = /home/zfbpcommon/public Config File = /home/zfbpcommon/application/configs/application.{unique_id}.ini Media Files Path = /home/zfbpcommon/public/media/{unique_id}/files and /home/zfbpcommon/public/media/{unique_id}/images (flash, media, etc.)

http://www.myothersite.com DocumentRoot = /home/zfbpcommon/public Config File = /home/zfbpcommon/application/configs/application.{unique_id}.ini Media Files = = /home/zfbpcommon/public/media/{unique_id}/files and /home/zfbpcommon/public/media/{unique_id}/images etc.

maybe the {unique_id} is a universally unique identifier (UUID) - http://en.wikipedia.org/wiki/Universally_unique_identifier based on the MSDN articles above each site's data is stored in its own DB, or each record in a common DB/Tables has a site id (most likely the same UUID as above)

michaelalber commented 13 years ago

note: maybe as Root you could log into a site's admin interface, and there would be a drop down that would allow you to switch between sites (UUID), something like when managing multiple sites on a single VPS, cPanel will allow you to jump from account/site to account/site.

eddiejaoude commented 13 years ago

Now I understand what you mean. Interesting idea. Definitely something for thought/discussion.