May 16th, 2008Pondering web server design decisions
Due to the fact it is on my task list, I have been pondering the decision points for deploying a new web based application and supporting infrastructure. At a first stab there must be 400 questions which may be in the mix. The trick is to work out which ones are Critical to success, which ones have no impact, which ones can be linked and therefore become a single decision with many results. Does the implementation mean some of these decisions can be made after Go live (VMware lets you add extra resource to a guest operating system)
How much input can the business customer provide?
How much input can the application developer provider?
What assumptions can you make?
How much dynamic processing is going to take place, (this requires MORE CPU than static)?
How many page impressions per hour are going to be required?
How many hits per page are required?
Do they need to host large Files, podcasts, video etc?
Do they need to RUN reports on the Data?
How many concurrent sessions are going to be supported (this may impact memory)?
Is the developer using any .NET memory intensive data manipulation?
Do they require Web HA or a WEB farm?
Do they require SSL?
How do you deal with SSL in Web HA or a Web Farm?
How do you deal with Session state in Web HA or Web Farm?
Will they require HA or web farm in the future, (your design must scale out)?
Is the application data read or data write intensive?
Is the Application Developer trusted to write safe code?
Can you lower the .net trust settings to protect the Os from the application?
Are file uploads required (this can impact scale out)?
Local or NAS based content (NAS content will require extra identity configuration)?
Where do you keep the web server logs?
How long do you keep web server logs?
What level of logging do you use for the Web server?
How much pro-active monitoring do you do?
How much Local disk space do you need?
What extra .NET assemblies are going to be required?
What extra COM components are going to be required?
Does the developer understand he is not going to get console access?
Does the App need scheduled tasks?
Does the APP use DTS and / or SSIS?
Does the App need a large TempDB?
How big is TempDB?
How big are the database logs files?
Does the App need to partition the tables?
DAS or SAN for the data disks?
IF SAN, one big LUN or lots of LUNs (does it make a difference)?
Does the app need database mirroring or Failover cluster?
IF Database mirroring is done, is it HA or high perf?
If database mirroring do you use a witness for auto failover?
Does the app take a data feed from someother system?
is this a linked server?
is this a SSIS job?
is this a regular bulk import?
Are there any BLOB object being used?
Can you trust the App developer to setup indexe on appropriate columns and with correct fill factors?
I will add more when I think about them !