havn't been here a while, nice new forums/wiki! Hope this is the right place to post then...
Okay, we're at JBoss 4.2 and EJB 3 with mulitple JEE5 applications at the moment and we are planning to create a real production environment. After looking around and thinking I came up with the following solution in mind:
Description from bottom to top
- Internetrequests coming to a firewall/router/gateway
- Splits between www.domain.com and *.domain.com/*
- www.domain.com forwards to company homepage
- All other requests go to the front-end appliance
- The front-end load-balances/rewrites requests (fixed sessions) based upon subdomain
- variant: by suffix, e.g. applications.domain.com/one
- For one.domain.com one of the back-end appliances is choosen to process request
- At any time a new instance per application should be instantiatable without interruption
- Works similar for two.domain.com and three.domain.com
- At any time a new application can be added along with its subdomain for the front-end
- No interruption of service for any already running applications
- All back-ends write to one master database
- The master database replicates to one slave per application
- Each application has its own tables
- All back-ends read only from the slave databases
- In case of master db failure, a slave can step in
- In case of slave db failure, another slave can step in
- When a new application is deployed, a new slave databases can be added
- Comes with new table at the master database
- No interruption of service
- Scales in any direction
- Fast response to errors
- Easy managable/monitorable
- Simple backup strategy
So, does it make sense at all? If no, what is wrong and if yes, how can I accomplish this setup?
I'd like to go to JDK 6, JBoss 6 and EJB3 on the technology site, MySQL for database.
Thanks for you're time and answers,
Added picture as attachment... Didn't look good in the thread...
Schema.png 61.5 KB