Вот как мы делаем это для интернет-магазина Angrybirds:
Английская презентация на Magento Imagine 2012.
Немецкая презентация на Meet Magento # 6.12
Нынешний немецкий "PHP Magazin" также имеет 6-страничную статью (на немецком языке) с некоторыми подробностями
Прочитав все презентации Фабрицио, связанные выше, много раз, я думаю, что этот ответ действительно лучший, хотя я согласен, что он мог бы использовать больше объяснений и извлечение ключевых идей из презентаций (тем более что оригинальная первая ссылка уже был 404'd к тому времени, когда я разместил это обновление).
Единственное, что я хотел бы добавить к ключевым концепциям в презентациях, - это то, что современные достижения в технологиях AWS / конкурента предполагают некоторые изменения ... например, тот факт, что Cloudfront теперь поддерживает gzip для повышения производительности CDN, хотя и не так быстро, как и это дает вам бесплатное завершение SSL как предложения CloudFlare . DNS Route 53 также не такой быстрый или многофункциональный, как CloudFlares, и при этом AWS не имеет сопоставимого брандмауэра веб-приложений или защиты DDOS, которые все включены в предложения CloudFlare ...
Есть несколько других возможных способов улучшить оригинальную презентацию Фабрицио, но я не был бы хорошим консультантом, если бы отдал все, что я знал в каждом сообщении StackExchange, на которое я ответил, теперь я буду? Кроме того, некоторые из новейших предложений существенно изменили бы предложения в оригинальных презентациях, и все они STILL предлагают отличную производительность, даже если бы из AWS можно было выжать еще больше с использованием различных опций.
Краткое изложение основных понятий :
Точно знайте свои узкие места : и оптимизируйте соответствующим образом. Каждый уровень стека имеет определенные узкие места (пропускная способность, процессор, база данных), и для устранения узких мест на каждом уровне требуется отдельное решение, оптимизированное для каждой конкретной задачи, хотя на самом деле кэширование является общим элементом на каждом уровне, что приводит к ...
Cache All the Things : по возможности используйте системы AWS (Elasticache для кэширования данных типа Redis / Memcache, изображения Cloudfront для кэширования, js и css, ближайшие к конечным пользователям через CDN) и Varnish для ускорения ответов экземпляров сервера на начальный уровень активов кеширование запросов от CDN. Кроме того, обязательно выполняйте сжатие и минимизацию в своих системах развертывания ПЕРЕД развертыванием в CDN
Важное значение имеет автомасштабирование : спрос меняется чаще и быстрее, чем вы можете контролировать и реагировать вручную. Адаптация к этим изменениям в режиме реального времени требует использования средств автоматизации, доступных в AWS, таких как группы автоматического масштабирования, чтобы ускорить работу частей системы, которые лучше всего подходят для этой задачи. AWS делает это прозрачно для CloudFront CDN, DNS-адресов Route 53, Elastic Load Balancers и S3 Bucket. Вы должны справиться с этим путем определения размеров и автоматического масштабирования для экземпляров EC2, а также просто определения размера / настройки для уровней RDS и Elasticache.
Автоматизация - единственный способ эффективно связать все это вместе : с таким количеством взаимосвязанных компонентов, некоторые из которых должны быть инициализированы во время развертывания, а некоторые сразу после развертывания, управление системой, настроенной для оптимальной производительности, требует автоматизации. Использование развертывания и системной автоматизации для очистки кэша, его прогрева, обработки изображений и т. Д. - единственный разумный способ управлять этим множеством различных подсистем и поддерживать их в хорошем состоянии и без проблем.
Но на самом деле даже это невозможно без автоматизации тестирования : с таким количеством движущихся частей что-то сломается практически при любом изменении. И вам нужно будет измениться, чтобы идти в ногу с событиями в Magento и AWS. И так будет часто . Таким образом, чтобы минимизировать стоимость изменений, все формы тестирования должны быть как реализованы, так и полностью автоматизированы - от модульных тестов до интеграционных тестов и функциональных тестов на основе Selenium реального сайта, запущенного в реальных конфигурациях тестирования, имитирующих производственную среду. Теперь вы ДЕЙСТВИТЕЛЬНО рады, что автоматизировали все процессы развертывания, верно?