Java, UX, HTML, CSS, WEB-design

5 простых шагов для тестирования развертывания кэша Varnish с помощью Varnishtest

Краткое описание по статье 5 простых шагов для тестирования развертывания кэша Varnish с помощью Varnishtest

Название: 5 простых шагов для тестирования развертывания кэша Varnish с помощью Varnishtest . Краткое описание: [ad_1] ⭐ Арианна . Дата публикации: 04.02.2022 . Автор: Алишер Валеев .

Для чего создан сайт Novosti-Nedeli.ru

Данный сайт посвящен новостям мира и мира технологий . Также тут вы найдете руководства по различным девайсам.

Сколько лет сайту?

Возраст составляет 3 года

[ad_1]

  • Арианна Аондио

  • 0 Комментарии

5 простых шагов для тестирования развертывания кэша Varnish с помощью Varnishtest

  • 7 минут чтения

  • Кодирование, Производительность, Кэширование, Varnish, Рекламный контент

Краткое резюме ↬

Varnish Cache — это ускоритель HTTP с открытым исходным кодом, который используется для ускорения доставки контента на самых популярных в мире динамических веб-сайтах с большим количеством контента. Однако производительность или скорость, которые новичок в Varnish Cache может ожидать от его развертывания, могут быть довольно туманными. Это верно для пользователей обеих крайностей: от тех, кто играет с исходным кодом для создания более сложных функций, до тех, кто настраивает Varnish Cache, используя настройки по умолчанию.

Varnish Cache — это ускоритель HTTP с открытым исходным кодом, который используется для ускорения доставки контента на некоторых из самых популярных в мире динамических веб-сайтов с большим количеством контента. Однако производительность или скорость, которые новичок в Varnish Cache может ожидать от его развертывания, могут быть довольно туманными.

Это верно для пользователей обеих крайностей: от тех, кто играет с исходным кодом для создания более сложных функций, до тех, кто настраивает Varnish Cache, используя настройки по умолчанию.

тест лака
Кэширование не всегда так просто, как мы думаем. Чтобы справиться с некоторыми ошибками и проблемами, может потребоваться довольно много времени. (Изображение: Лак Кэш)

Представьте, что вы развернули Varnish Cache в соответствии с настройками по умолчанию для быстрой, надежной и масштабируемой доставки веб-контента и контента приложений. Внезапно он перестает вести себя так, как должен. Либо это не кеширование, либо, что еще хуже, из-за плохого кеширования или неправильных политик файлов cookie кешированный личный контент доставляется не тому клиенту.

  • Ускорьте свой мобильный сайт с помощью Varnish
  • HTTPS везде с Nginx, Varnish и Apache
  • Взгляд на современный серверный стек WordPress
  • Секреты блогов WordPress с высокой посещаемостью

Еще после прыжка! Продолжить чтение ниже ↓

В другом сценарии пределы TTL (время жизни) могли быть установлены неправильно. Установите слишком короткое ограничение TTL, и вы получите слишком много нежелательных внутренних выборок, что замедлит работу веб-сайта. Установите слишком большое значение, и объекты будут оставаться в кеше до истечения TTL, используя гораздо больше памяти, чем необходимо.

Получение максимальной производительности от Varnish Cache заключается в использовании его не только для кэширования, но и для инвалидации. В предыдущей статье на Smashing Magazine объяснялись различные способы аннулирования кеша с помощью Varnish Cache. Не каждый метод подходит для каждого веб-сайта. Вы можете обнаружить, что часть контента, который вы удалили со своего веб-сайта, по-прежнему доступна пользователям мобильных устройств.

Мы можем легко избежать всех этих ошибок, запустив тесты. Малоизвестный факт о Varnish Cache заключается в том, что он поставляется с собственным инструментом тестирования под названием Varnishtest. Varnishtest — это программа, управляемая сценариями, которую можно использовать для создания макетов клиентов, имитации транзакций, извлечения содержимого из макетов или реальных серверных частей, взаимодействия с реальной конфигурацией Varnish Cache и подтверждения ожидаемого поведения.

Чтобы обеспечить оптимальную производительность развертывания Varnish Cache, необходимо интегрировать Varnishtest в проект. Varnishtest может использоваться системными администраторами в двух сценариях: (1) при настройке установки Varnish Cache и (2) при написании сложных политик кэширования на языке конфигурации Varnish (VCL) или при настройке Varnish Cache.

Разработчики кода, работающие над расширениями, написанными для Varnish Cache (называемые VMOD), могут использовать Varnishtest для определения и тестирования своих модулей. То же самое касается веб-разработчиков, которые пишут приложения, в полной мере использующие Varnish Cache. Как уже упоминалось, Varnishtest можно использовать для тестирования метода инвалидации кеша или для воспроизведения ошибок при подаче отчета об ошибке.

Язык тестового примера Varnish

Обратите внимание, что Varnishtest не следует структуре модульного тестирования (setUp, test, assert, tearDown), а также не следует за развитием, обусловленным поведением («данно», «когда», «тогда»). У Varnishtest есть собственный язык: Varnish Test Case (VTC).

Файлы VTC следуют соглашению об именах. Файлы, начинающиеся с b (Например, b00001.vtc) содержат базовые функциональные тесты. (Полная схема именования тестовых скриптов доступна на GitHub.)


varnishtest "Varnish as Proxy" 

server s1 {
  rxreq
  txresp
} -start

varnish v1 -arg "-b ${s1_addr}:${s1_port}" -start

client c1 {
 txreq
 rxresp

 expect resp.http.via ~ "varnish"
} -run

1. Назовите тест

Все программы VTC начинаются с присвоения имени тесту:


varnishtest "Varnish as Proxy"

Вам нужно определить три компонента для запуска Varnishtest: сервер, экземпляр Varnish Cache и клиент.

2. Объявите исходный сервер


server s1 {
  rxreq
  txresp
} -start

Все объявления сервера должны начинаться с s. В приведенном выше коде server s1 получает запрос (rxreq) и передает ответ (txresp). Команды rxreq и txresp описать поведение сервера; rxreq означает, что сервер примет входящий запрос, и txresp означает, что на запрос будет дан ответ.

Команда -start загружает сервер s1 и делает доступными макросы ${s1_addr} и ${s1_port}с IP-адресом и портом моделируемой серверной части.

3. Объявить экземпляр Varnish Cache


varnish v1 -arg "-b ${s1_addr}:${s1_port}" -start

Здесь, varnish v1 объявляет экземпляр нашего реального сервера Varnish (т.е. varnishd). Имена серверов Varnish должны начинаться с v. Этот экземпляр контролируется процессом-менеджером, и -start разветвляет дочерний процесс, который является фактическим процессом кэширования.

Есть много способов настроить varnishd. Один из способов — передать аргументы с помощью -argкак в -arg -b ${s1_addr}:${s1_port}. Здесь, -b это varnishd возможность определить заднюю часть. В этом случае используются IP-адрес и порт моделируемой серверной части s1. Тем не менее, использование реальной серверной части также возможно, что позволяет использовать Varnishtest в качестве инструмента интеграции при тестировании реальной серверной части.

4. Смоделируйте клиента


client c1 {
  txreq
  rxresp

  expect resp.http.via ~ "varnish"
} -run

Смоделированные клиенты в Varnishtest начинаются с c. В этом примере c1 передает один запрос и получает один ответ. Поскольку Varnish является прокси-сервером, ответ должен быть получен от серверной части через Varnish Cache. Следовательно, c1 ожидает varnish в via Поле заголовка HTTP. Тильда (~) используется как оператор сопоставления регулярных выражений, поскольку точный текст в resp.http.via зависит от установленной версии Varnish. Наконец, клиент c1 начинается с -run команда. (Обратите внимание, что серверы Varnish обычно запускаются с -start команда, а клиенты с -run команда.)

5. Запустите тест


$varnishtest b00001.vtc
#  top TEST b00001.vtc passed (1.458)

Чтобы запустить тест, просто введите команду выше. По умолчанию Varnishtest выводит сводку пройденных тестов и подробный вывод только для неудачных тестов. Пройденный тест означает, что основная конфигурация Varnish Cache верна.

Простые тесты для максимальной производительности

Проблемы с производительностью, упомянутые в начале этой статьи, можно было бы предотвратить, если бы мы использовали Varnishtest перед запуском. Вот два простых тестовых примера, которые я написал, чтобы помочь вам протестировать метод инвалидации кеша и политики файлов cookie:

  • Тестовый метод аннулирования кеша Убедитесь, что ваши ограничения TTL установлены правильно. Этот тест проверяет, можете ли вы удалять объекты из кэша, тем самым гарантируя, что не будет использоваться слишком много памяти.
  • Проверка конфигурации файлов cookie Поскольку файлы cookie используются для идентификации уникальных пользователей и могут содержать личную информацию, по умолчанию Varnish не кэширует страницу, если она содержит Cookie или Set-Cookie заголовок. Этот случай представляет собой сценарий тестирования объектов кэша с заголовком cookie, чтобы убедиться, что каждый из трех определенных клиентов получает правильный объект.

Однако существует гораздо больше задокументированных тестовых примеров для различных сценариев.

Лучший способ научиться создавать тесты — запустить приведенные выше примеры в Varnish Cache, а затем написать собственные тесты на их основе.

В конечном счете, эти тесты помогут вам заранее понять, что произойдет, если Varnish Cache будет запущен в производство, обеспечивая оптимальную производительность вашей веб-архитектуры и помогая избежать ловушек, описанных в начале этой статьи.

Веб-производительность имеет решающее значение для бизнеса в разных отраслях, и вы можете легко избавиться от догадок о производительности, внедрив Varnishtest в свой дизайн и выполнив следующие пять простых шагов, чтобы включить тестирование в конфигурацию ваших экземпляров Varnish.

Сокрушительная редакция
(рб, мс, ал, ил)



[ad_2]
Source: https://smashingmagazine.com

Заключение

Вы ознакомились с статьей — 5 простых шагов для тестирования развертывания кэша Varnish с помощью Varnishtest

Пожалуйста оцените статью, и напишите комментарий.

Похожие статьи

Добавить комментарий

Ваш адрес email не будет опубликован.

Кнопка «Наверх»