I'm working on consolidating our company's various information systems into a single web based application. No small feat, but one that we're going to gradually roll out and improve upon as time goes on.
The application is divided into two areas - a staff only portal, for the Intranet, as well as a public portal for customers to access.
I have no problems creating this, but I'm not sure as how to go about hosting it. Security is the biggest concern that I have. Given that our database will be hosting sensitive information (and you can be sure that I will be encrypting and hashing all the important stuff as well as all the usual XSS/CSRF/SQL Injection)
Do I run both applications and the database on the same server? Do I run the internal stuff internally where I can keep it safe, and have the public system make calls via a Web API?
What's the best balance of maintainability, security, and performance in this instance?