Architecture for the Web/Cloud
Why design for failure when nothing fails? (everything fails...)
Build security in all layers. (do not trust)
Leverage alternative processing/storage. (redundancy pays off)
Implement elasticity. (flexibility, scalability, easy restart)
Think parallel. (decoupling data from computation, load balancing, distribution)
Loose coupling helps. (do not reinvent the wheel, use existing solutions).
Don't fear constraints, solve them. (memory, CPU, distribution, ...)
Use caching. (performance)
Design Best Practices
Input handling validation.
Prevent Cross-Site Scripting.
Prevent SQL Injection attacks.
Apply authentication.
Cross-Site Request Forgery mitigation.
Session management (log-out or cookie attacks).
Protect access control attacks (admin interfaces).
Use cryptography.
Apply error handling
Protect against known attacks (e.g. AJAX or Flash)
Initialize variables properly.
Do not ignore values returned by functions.
Avoid integer overflows.
Last updated