Things beginners should do at first:
Here’s a free extensions stack that will get you started:
- Replace your slow, file-based cache with a super-fast Redis-backed cache
- Get a very good FPC that replaces $900+ ones running.
- Minify and compress your assets
- Get better session storage, too. With tagging support(optional because you can do this with database storage instead of file storage).
all of these can be installed using modman.
This is probably only half the battle though. You really need to learn how to manage the server aspect as well.
- Manage assets TTL correctly (e.g. if your product images do not change much, get them to expire in 2 years or so)
- try out the PageSpeed apache or nginx module by Google
- Get a good CDN, start with Cloudflare.
Now, go forth and do a good amount of research then to meld all these elements together.
If anyone is wondering why Turpentine and Varnish is not a part of our suggestion(s), well, using them in conjunction with any FPC yields to unexpected caching and over-optimizations unless you really know how to actually make it work in synergy. Plus scripting Varnish really well is really way, way down the line, and the added difficulty to support SSL is another problem. Let’s not confuse the beginner, shall we?
Things you should do :
We are a Magento developer and aforementioned are all very good advice, and is almost identical to our standard setup. We would add to this:
- Remember to delete old files in “var/session/”. Create a simple cron job to delete, say, 20 day old files in that folder. Why? Because server will refuse to write new files when inode table is full. And itwill fill up on a decently trafficked site.
- Watch your MySQL server closely. Use scripts liketuning-primer and mysqltuner for advice on what server variables to tweak.
- Profile your sites using Xdebug on your dev server. It will teach you a whole lot when it comes to identifying what calls are resource intensive. It will make you a better developer.
- Install Munin plugins to monitor your server. Remember the PHP and PHP APC related ones.
- Always run PHP as a FastCGI Process Manager (FPM) and consider using Nginx if you are not using Varnish. Get comfortable playing around with FPM pool config (number of child servers to start, how many processes per pool to run etc.)
Things you should take care of:
- Never use shared hosting. It’s critical you have root access.
- Do not modify core code. It makes upgrading terrible.
- Use modman. (We also use git sudmodules to keep our extensions separate from the core code.)
- Use apc opcode cache.
- Use redis as your caching layer.
- Ideally use varnish to at least serve your product pages (although this does cause issues with messages and any other page content which should not be cached).
- Use OnePica ImageCDN.
- Depending on the size of your product catalog, whether you have to import products from a legacy system, how often products need to be changed, etc. you may want to consider Unirgy Rapidflow Pro.