Welcome to The Web Platform, an on-going series of blog posts about the environment that you need to create and nurture to run your web-based application in.
This is a list of the topics that I’m planning to cover over the coming weeks and months. As topics are covered, I’ll add links to the postings to this page, so that over time this page builds up into what I hope will become a comprehensive guide.
I’m always on the look-out for new topics that need to be covered. If there’s a particular gap you’d like to see covered, please leave a comment on this page, and I’ll do my best to get it covered for you if I can.
I’m also extremely interested in hearing your own experiences on all of the topics that I’m blogging about. Your feedback, whether its by comments left on each blog post, or direct email to stuart (at) stuartherbert.com, is always most welcome.
Best regards,
Stu
Welcome
- Introduction
- Web Platform 101
- Architecture: Application Servers vs CGI Model
Building Blocks
Servers are a bit like LEGO blocks; they come in all shapes and sizes, and you can stick them together in all sorts of wonderful ways to solve your problems and build your own masterpiece.
This section covers the six classic ways of grouping servers together.
- Six Classic Ways To Group Your Web Servers
- Shared Hosting
- Single Server
- Separate Web Server and Database Server
- Web Farms
- Clustered Servers
- Three Tier Architecture
Deployment Options
Servers can be grouped in many ways, and there are different ways that those groups can be installed, or deployed. The different deployment options trade complexity and cost for improved uptime, resilience, and business continuity.
This section looks at five classic ways to deploy servers.
- Direct Internet Connection
- DMZ
- Multiple DMZs
- Split Site
- Failover
Hardware To Deploy
What goes in a server matters, as does what goes around it.
This section looks at what makes a difference when spec’ing a server, and the additional hardware components you might need to make your server(s) work.
- Commodity Hardware
- Blade Servers
- CPU: The Need For Speed
- Multi-processor Machines
- RAM: Making Room
- Disk: Space And Waiting
- Firewalls
- Load Balancers
Runtime Environment
The hardware goes hand-in-hand with the software that you’re going to run on it. One of the great advantages of the open-source languages that power the web is that you’re not locked into just one platform.
This section looks at the options for deploying on the two most popular platforms today: Linux and Windows.
- Choosing A Platform: Windows vs Linux
- LAMP: Linux, Apache, MySQL and PHP
- WIMP: Windows Server, IIS, MySQL and PHP
- WISP: Windows Server, IIS, SQL Server and PHP
- PHP Extensions
- Memcached
- Zend Platform
- Virtualization
Designing A Deployment
In every project, the time eventually comes to make a decision so that hardware can be purchased and cabled up to the Internet. Get it wrong, and your website could be struggling under the weight of your users, or thousands of dollars could be wasted on hardware that’s sitting there completely idle.
This section looks at how you can decide what to spend your money on, and how to work with a client to come to that decision.
- Determining Who To Talk To
- When To Talk To Them
- Determining Capacity
- Determining Resilience
- Determining Security
- Meeting A Budget
Performance Killers
Over the last twenty years, as hardware has gotten cheaper, the mantra “You can always throw more hardware at it” has become more and more popular. But hardware is expensive, and so is the cost of hosting it and looking after it. Keep your costs down by making your web-based application lean, mean, and hungry for users rather than a fat lady that’s just hungry for hardware.
In no particular order, this section looks at different areas of hardware and software that affect the performance of your web-based application.
- Load Testing
- Performance Profiling
- DNS
- Database Queries
- Code Complexity
- Memory Usage
- Thrashing - Over-using Virtual Memory
- Disk I/O
- Network Queues
- Offline Processing
- Browser Caching
- The Number of HTTP Requests
- SSL Requests
- Runaway Code
- PHP Crashes
- Caching PHP Objects
- Compiling PHP From Source
- Data Imports
- Mixed Purpose
Cluster Killers
Your application is lean and mean, and you’ve built the right platform to deploy it to. But does your application play well when it runs on multiple servers?
In no particular order, this section looks at different areas where your solution as a whole could run into trouble, and what you can do about it.
- Code Construction
- Code Deployment
- Session Management
- Fault Finding
- Sharing Data
- Security
- Data Integrity
- Hardware Replacement
- Too Many Responsibilities
- Capacity Management

3 Comments
November 20th, 2007 at 10:48 pm
[...] Series: The Web Platform [...]
November 27th, 2007 at 10:50 pm
[...] Series: The Web Platform [...]
November 28th, 2007 at 1:42 pm
[...] article is part of The Web Platform, an on-going series of blog posts about the environment that you need to create and nurture to run [...]