I would like add my 1 cent, When a Production Environment is designed, consider to have application and database on different servers as rule of thumb. It will give following benefits directly or in directly:
- Overall better performance (Your Application has more resources)
- More reliable system (Crashing or Chocking of one may not effect other. Of course application may not work as per need, but one component)
- Dedicated Resources as per need (You may allocate CPU/RAM/Storage to each server as per need)
- Better security (only on exception that you are allowing Database connection outside your machine, but this can be mitigated with IP address based firewall restrictions or similar approaches)
- Must requirement to achieve Highly Available (HA)
- Systems Easy to address Disaster Recovery (DR) needs
- Only DisadvantagesIn my opinion only disadvantages are more cost and more servers to manage.
Thanks and Reagrd, Imran Javed Zia