Я работаю в компании из списка Fortune 500, которая борется с точным измерением производительности и доступности для приложений высокой доступности (то есть приложений, которые работают на 99,5% с 5-секундной навигацией по страницам). Мы учитываем как запланированные, так и незапланированные простои, чтобы определить этот номер доступности. Тем не менее, мы недавно добавили CDN в смесь, что немного усложняет наши показатели. CDN теперь обрабатывает около 75% нашего трафика, отправляя остаток на наши собственные серверы.
Мы пытаемся измерить то, что мы называем «истинным пользовательским интерфейсом» (т.е. наши сценарии тестирования эмулируют обычного пользователя, просматривающего приложение). Эти сценарии мониторинга находятся за пределами нашей сети, что означает, что мы обращаемся к CDN примерно на 75% время.
Руководство решило, что для оценки доступности мы используем наихудший сценарий. Таким образом, если у наших серверов происхождения возникают проблемы, но CDN обслуживает контент просто отлично, мы все равно постараемся получить доступность. То же самое верно и наоборот. Я думаю, что до тех пор, пока «пользовательский опыт» будет успешным, мы не должны без необходимости наказывать себя. В конце концов, CDN призван улучшить производительность и доступность!
Мне просто интересно, кто-нибудь знает, как другие компании из списка Fortune 500 рассчитывают свои показатели доступности? Я смотрю на apple.com, например, на витрину магазина, которая использует CDN, который, кажется, никогда не отключается (если не будет анонс крупного продукта). Было бы здорово иметь некоторые точные, фактические данные, потому что я не Не верьте, что нам нужно излишне вредить себе по этим показателям. Мы являемся принятие бизнес - решений на основе этих чисел.
Однако я могу сказать, что, учитывая, что эти метрики видны руководству, проблемы решаются и решаются довольно быстро (читай: мы довольно быстро проходим волокиту). К сожалению, как разработчик, я не хочу, чтобы менеджмент думал что приложение работает вверх или вниз, потому что какой-то внешний фактор (например, CDN) влияет на цифры.
Мысли?
(Я ошибочно разместил этот вопрос на StackOverflow, заранее извините за кросс-пост)
источник
Я согласен с user44700, лучше отделить тестирование доступности для ваших серверов от CDN и отследить их независимо друг от друга. Ваша настоящая доступность будет: «Сервер доступен» * «Доступ к CDN», поскольку, если какой-либо из них выйдет из строя, вы считаете, что ваша страница / сайт не работает. Это также будет стоить вам дешевле с любым из поставщиков мониторинга.
Я не пошел бы по пути создания одного теста браузера и не посмотрел бы, какие элементы потерпели неудачу, хотя он мог бы работать, и у некоторых компаний, таких как Catchpoint, есть понятие «доступность контента» - это может быть не совсем то, что вы хотите для этого случая. Скажем, например, что на вашей веб-странице есть вызов в CDN для файла, который доставляет 404, большинство решений для мониторинга скажут вам, что это сбой - но действительно ли это был сбой CDN? Этот файл был даже важен? может быть, кто-то просто забыл удалить какую-то реликтовую ссылку, которую никто не заметил
Вы можете прочитать этот пост в блоге для получения дополнительной идеи: http://blog.catchpoint.com/2010/07/21/true-availability-of-a-webpage/
источник
Отчетность SLA должна точно отражать реальность. Если вы измеряете доступность с точки зрения пользователя и проблемы возникают только на сервере, выполняющем измерение, то сообщение об этой проблеме в вашем SLA не будет отражать взаимодействие с пользователем.
Я могу понять, что хочу поддерживать исходную информацию на высоком уровне, возможно, всегда сообщать о ней, даже если она неточна, но с пометкой, указывающей, почему.
Если вы не можете прийти к соглашению, возможно, существует техническое решение, позволяющее сделать измерительный сервер менее подверженным ошибкам.
Если информация сообщается как отключение, и это не так, какую ценность предоставляет отчетность?
В моем окружении мы сообщаем из нескольких источников. Методология внешнего мониторинга, позволяющая сообщать о доступности с внешней точки зрения, а также сообщать о нашей внутренней системе регистрации отключений, которая вводится человеком и учитывает множество факторов, которые наиболее точно отражают ситуацию.
источник
Gomez и Keynote - это принятые на предприятии решения для сбора типов метрик, которые вы упомянули. У Gomez также есть служба, которая отслеживает ваш пользовательский UX, используя файл javascript google-analytics-esque.
источник
Пингдом хороши: http://www.pingdom.com/
источник
Мы Fortune 500 с сайтом с поддержкой CDN, и мы используем несколько вещей. Вы правильно определили, что вам нужно измерять разные вещи, если вы хотите обнаружить разные вещи. Мне непонятно, чего конкретно вы хотите - числа доступности, которые помогут вам определить, когда приложение действительно не работает, или числа, которые лишают вас управления. Тем не мение...
Чтобы получить «CDN из него», вы можете взять другой монитор Keynote / Gomez и указать его на свои приложения, а не через CDN, используя альтернативное DNS-имя или еще много чего. Но поскольку он все еще имеет статические ресурсы, он более полезен для производительности, чем для доступности. Кроме того, он поддерживает отключение интернета, агентов и т. Д., Что подходит для некоторых целей, а не для других.
Мониторинг реального пользователя. Есть сетевые (Coradiant, Tealeaf) и основанные на тегах (Jiffy, Gomez). Мы используем Coradiant в качестве сетевого анализатора, и он определяет реальную видимую пользователем производительность ресурсов, размещенных здесь в нашем центре обработки данных, другими словами, реальных приложений, а не всего статического мусора в CDN. Затем мы написали отчеты для определения частоты ошибок приложения и производительности и использовали Apdex (apdex.org) в качестве производной метрики. В некоторых случаях вы не можете использовать сеть (слишком большой трафик, или ваши ресурсы не размещены там, где вы можете попасть в сеть), а метки не настолько надежны. Обладает огромным преимуществом фактического наблюдения за временем отклика конечного пользователя и ошибками - легко настроить синтетический монитор, который не дает ошибок во всех случаях, которые делает реальный пользователь.
Локальный синтетический мониторинг. Nagios / zabbix / sitescope / сотня других. Направьте монитор на ваше приложение локально (не просматривайте CDN). Для действенного (как, например, отправить страницу, чтобы разбудить кого-то) мониторинга доступности, это золотой стандарт. Не учитывает сетевой материал.
Журнал мониторинга. В каком-то смысле это реальный мониторинг пользователей гетто. Но если вы действительно хотите увидеть, когда произошла ошибка, это очень удобно. Имеет преимущество "нет, действительно, так и случилось", благодаря мониторингу реальных пользователей. Только доступность, если только вы не регистрируете время, затрачиваемое на веб-уровне, в этом случае оно показывает, сколько времени потребовалось серверной части - не полезно для пользователя, сталкивающегося с SLA, но очень полезно для «над каким кодом нам нужно работать» «. Используйте спланк.
Это не то или другое, мы используем все это, потому что вам нужна «история конечного пользователя», а также «на что нам нужно полагаться программисту».
источник
BrowserMob отлично
источник