Friday, November 20, 2009

Protect your site at all costs

As the holiday season is upon us with less than a week to Thanksgiving it is smart to remember the value of ecommerce infrastructure redundancy. While many companies do a good job of avoiding a single device at the web/app/database server layers there are plenty out there that don't protect some other from other pitfalls. Here are some important things to think about:
  • Third party API's - Most sites do not handle all functions that a site needs to perform themselves. For instance, it is both expensive and impractical to host tax calculations internally. If your site is using third parties it makes sense to follow some best practices including
    • Make sure your front end has a graceful experience if the API is unavailable.
    • For sensitive and critical API's like credit card processing consider routing traffic over a private line.
    • Review and know your API service level agreements. If there are issues at midnight you want to know who to call.
  •  Network Devices - Devices like routers, firewalls, switches, etc. are the hops between your customers and your web site. If it is important enough to have redudancy at the server levels isn't it just as important to do the same thing here?
  • N+1 - One mistake some folks fall into is building out an environment that has redundancy but is venerable to device failure. For instance, if your site has 4 web servers and at full volume all machines are fully utilized you are at risk. Losing a single machine could potentially cripple your site. Get to know the concept of N+1 and you will sleep better.
I think back to the outage earlier this year of credit card processor that got me thinking about how important it is to have all your bases covered in the critical portions of your site. Just ask the owners of all those ecommerce sites that were unable to take orders during the downtime due to their dependency on the service.

1 comment:

  1. Smart thoughts - I definitely think the API piece is important and a lot of folks forget to handle API problems (like availability or errors) gracefully. That's a key to doing business. I also agree that you need to build redundancy into all parts of the solution - you're only as strong as your weakest link.