There are several things you need to consider when creating an appliance. The one thing you don't want to be in the business of is maintaining the OS. So pick an OS that is considered stable and secure. When installing the OS, only include those packages absolutely required for your application. Always pick stable versions of any application frameworks. Ideally you'll use something that is relatively mainstream. Once again, you should be supporting your application, not the framework.
A non-exhaustive list would include things like:
- Picking a stable, supported, secure OS.
- Choosing commodity, off the shelf hardware. Parts should be easy to find and replace.
- Don't install unused packages.
- Figure out how you'll patch / update your software once deployed.
- Provide a Web-base configuration option so you don't have to log into the shell to change settings.
- Make log files available via a web front end for the same reason as above.
- bootstrap your application during start up.
- Determine how you'll secure your web front end and the appliance in general.
- Provide a way to migrate your application to another appliance in case of general hardware failure.
- Does your app merit clustering and failover?
- Make backing up your application easy and pain free. Ideally your users won't have to shutdown the app to backup their data.