The advantages of using an hosted solution is that you don't need to care about installing, configuring and, mostly important, monitoring the application.
The provider will take care of all system administration tasks for you. Conversely, usually you can't pretend the same customization level provided by self-installed applications.
An other very good reason to use an hosted service is that you usually don't need to care about upgrading your application. You usually get access to the most updated version sooner than using your self-installed version because the provider will applies all the security patches for you.
An installed application is a good choice if:
- you don't have administration / sysadm skills
- you prefer to focus on using your application rather than maintaining it
- you don't need very high level of customizations
- you don't mind to store your data elsewhere
- your needs fit the provider's plans
On the other side, an installed application means you have full control of how the application works and where the data is stored. While you get more control, you also need to maintain your application. It means that you are responsible for all the security, maintenance, standard and not standard tasks.
This is a good choice if:
- the application needs to have a full integration with other services
- you need full control of how your application works
- you don't mind to spend a reasonable amount of time maintaining the application
- your needs don't fit the provider's plan or your resource usage will require a too expensive plan