Веб-приложение, контролирующее [закрытые] лучшие практики

В следующей статье предлагается 2 решения. Объединение семафора (CountDownLatch) и добавление таких функций, как экстернализация данных из внутреннего потока. Другим способом достижения этой цели является использование пула потоков (см. Точки интереса).

Sprinkler - расширенный объект синхронизации

76
задан 8 revs 4 February 2009 в 17:44
поделиться

15 ответов

Nagios хорош, хорошо, возможно, иметь тестирование системы (Селен), работающий regularily.

Редактирование: Hyperic и Основа также выглядят интересными.

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

Другие вещи мне нравится делать:

лучший девиз для инфраструктуры, всегда фиксируют, обнаруживают, восстановление. Разбудите его, доберитесь до корня его и исправьте/предотвратите его, если Вы можете.

, Так как система существует на многих уровнях, мы должны протестировать на многих уровнях:

Редактирование: Имейте все ошибки или предупреждения, отправленные непосредственно на Вашего куратора по электронной почте. Тем путем можно отследить случаи в одном месте.

1) Соединение : контролируйте свое интернет-соединение с сервера и с внешней стороны. Зарегистрируйте это где-нибудь

2) Сервер : контролируйте все процессы, что Вы должны, чтобы гарантировать, что они выполняют и не прикрепляют сервер. Используйте сервер HP или что-то эквивалентное с уведомлением об отказе оборудования, что оно может сделать от уровня BIOS. Уведомьте и зарегистрируйтесь, если они.

3) программное обеспечение : Определите ключевое программное обеспечение, которое всегда должно работать. Установите уровни производительности если любой и затем контролируйте их. Nagios должен смочь помочь с этим. На окнах это может быть немного больше. Когда исключение происходит, необходимо смочь запустить скрипт от него для перезапуска процессов автоматически. Моя система мечты позволяет мне взаимодействовать с серверами по SMS, если сервер рассматривает его как исключение, которое я должен или разрешить, или тот, который произойдет автоматически, если я не отменю SMS Однажды..

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

5) Бизнес-логика, Тестирующая : Имейте регулярно под управлением сценарии, тестирующие рабочий процесс Вашей системы. Селен может, вероятно, достигнуть части этого, но мне нравится регистрировать результаты также, чтобы сказать, что это работало в это время, и эти файлы имели ошибки. Если возможно где угодно, имейте сам системный монитор через Ваши сценарии.

6) Резервные копии : Сделайте резервное копирование, которое можно установить и забыть. Если бы можно получить вещи в виртуальные машины, это было бы идеально, поскольку можно масштабироваться, переместитесь или разверните любую часть инфраструктуры где угодно. У меня были экземпляры, где я перешел неисправный сервер на свой ноутбук, позвольте ему работать в VMware, в то время как я решил проблему.

37
ответ дан jperelli 7 November 2019 в 07:00
поделиться

Хорошо, если системное тестирование (Selenium) будет выполняться регулярно.

=> 100% ACK. Для этого мы используем http://www.alertfox.com . с нашей учетной записью PRO2 они проводят регрессионный тест каждые 1 час, и это здорово. Вы даже можете сделать это с их бесплатной учетной записью, но ограничены только одним датчиком транзакции.

1
ответ дан 3 July 2019 в 12:51
поделиться

Перефразировать Richard Levasseur: ах, контролируя инструменты, как Ваши недостатки расстраивают меня. Там, кажется, нет идеального инструмента; Nagios довольно легко создать, но UI довольно старомоден, и у Вас должен быть демон, работающий на каждом контролируемом сервере. Zenoss имеет намного более хороший UI включая графики тенденции использования ресурсов, но это использует SNMP, таким образом, у Вас должно быть некоторое знакомство с этим для получения его работающий правильно, и документация не является лучшей - существуют сотни страниц, но действительно трудно найти просто информацию, необходимо начать.

Мои друзья также рекомендовали Кактусы и Hyperic, но у меня нет личного опыта с теми.

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

1
ответ дан gareth_bowles 7 November 2019 в 07:00
поделиться

Единственный самый важный способ контролировать любой онлайн-сайт состоит в том, чтобы контролировать внешне. Цель должна состоять в том, чтобы контролировать Ваш сайт способом, который наиболее тесно отражает, как Ваши пользователи используют сайт. В 99% случаев, как только Вы знаете, что Ваш сайт снижается внешне, относительно легко найти первопричину. Самая важная вещь состоит в том, чтобы знать как можно скорее, что Ваши клиенты не могут загрузить Ваш сайт.

Это обычно означает использовать внешний контрольный сервис производительности. Они очень от очень нижнего уровня (mon.itor.us, pingdom) к верхнему уровню (Webmetrics, Gomez, Представление ведущих идей). И как всегда, Вы получаете то, за что Вы платите. Вещи искать, находя приемлемый вариант контрольного сервиса включают:

  • размер и распределение контролирующей сети
  • , Может ли решение по контролю контролировать Ваш сайт с помощью реального браузера (иначе Вы не тестируете свой сайт как реальный пользователь, были бы)
  • язык сценариев (чтобы написать сценарий транзакций против Вашего сайта)
  • отдел поддержки, помочь Вам по пути и обеспечить экспертные знания в области того, как контролировать правильно

Удачи!

4
ответ дан lennysan 7 November 2019 в 07:00
поделиться

Я использую Munin и Monit и был очень доволен ими обоими.

6
ответ дан Carl Meyer 7 November 2019 в 07:00
поделиться

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

Также удостоверяются, что у Вас есть регулярный запрос на URL, который является разумным сквозным тестом системы. Если Ваш поиск поддержек сайта, то имейте nagios, выполняют поиск - который должен удостовериться, что поисковый индекс здоров, веб-сервер и сервер базы данных.

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

13
ответ дан Cameron Pope 7 November 2019 в 07:00
поделиться

Вы думали о контроле функциональности также? Сценарий (или в языке сценариев как Perl или в Pyton или использующий некоторый инструмент как WebTest), который говорит с Вашим приложением и делает некоторые важные шаги как вход в систему, создание покупки, и т.д. очень хорош иметь.

2
ответ дан innaM 7 November 2019 в 07:00
поделиться

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

  1. Определяют важные рабочие процессы в Вашей системе. , Например, если Вы записали сайт электронной коммерции, Вы могли бы определить рабочий процесс "поиска продукта, поместить продукт в корзину и купить продукт".
  2. Располагают по приоритетам рабочие процессы и пристраивают тесты более высокого приоритета сначала. можно всегда добавлять дополнительные тесты после развертывания к производству.
  3. Сборка тесты UI с помощью одной из доступных сред тестирования UI. существует много свободных и коммерческих сред тестирования UI, которые могут быть выполнены автоматизированным способом. Создайте базовый набор тестов сначала, которые обращаются к критическим рабочим процессам.
  4. Установка по крайней мере одно удаленное местоположение, от которого можно запустить тесты. Вы хотите протестировать каждый аспект своей системы, что означает тестировать его удаленно. Интернет-соединение? Веб-сервер работает? Соединение к работе сервера базы данных? И т.д. и т.д. Если Вы тестируете удаленно, Вы удостоверяетесь Вы, система доступна внешнему миру, что означает, что это, скорее всего, работает от начала до конца. Можно также запустить эти тесты внутренне, но я думаю, что очень важно выполнить их внешне.
  5. Удостоверяются, что Ваше решение включает и создание отчетов и уведомление. , Если один из Вашего критического рабочего процесса тестирует сбои, Вы хотите, чтобы кто-то знал об этом для решения проблемы как можно скорее. Если некритическая задача перестала работать, возможно, Вы только хотите сообщить так, чтобы можно было решить внеполосные проблемы.

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

12
ответ дан Jason Jackson 7 November 2019 в 07:00
поделиться

А-а-а, контроль. Как я люблю тебя и Ваши колебания в 3:00.

По существу, Вам нужен способ осмотреть внутреннее состояние Вашего приложения, оба в определенный момент, а также по промежуткам времени (последний очень важен для обнаружения проблем, прежде чем они произойдут). Другой способ думать о нем как прославленное поблочное тестирование.

у Нас есть наша собственная (очень хорошая) система контроля, таким образом, я не могу прокомментировать Nagios или другие приложения. Наш вариант использования подобен Вашему, хотя (cgi приложение на апаче).

  1. Добавляют logging.monitor () метод типа, который зарегистрирует информацию к диску. Это должно поддерживать, по крайней мере, регистрируя простые числа и dicts чисел (ключ =>, ассоциация значения может быть невероятно удобной).
  2. Имеют процесс, который очищает контролирующие журналы и хранит их в базу данных.
  3. Имеют процесс, который берет информацию о базе данных, проверяет их по правилам и отсылает предупреждения. Следует иметь в виду, что somethings могут быть облуплены. Просто, потому что Вы добрались 404 , после того как не означает приложение это вниз.
  4. Имеют способ отключить звук предупреждений (очень полезный для обслуживания или прочитать Вашу электронную почту).

Thats весь довольно высокий уровень. Важная вещь состоит в том, что у Вас есть история состояния приложения со временем. От этого можно затем создать правила (возможно, просто необработанные запросы SQL, которые Вы помещаете в конфигурацию где-нибудь), которые говорят, "Если запросы, в секунду удвоенные, отправьте предупреждение SlashDotted", или, "если 50% ответов 404, отправьте предупреждение". Это также ослепляет блеском управление, потому что можно определить количество любого комментария о том, замедляются ли, вниз, быстро, или.

Вещи контролировать включают (другие, вероятно, упомянули их также): состояние http, доступный порт, http загрузка, загрузка базы данных, открывает соединение, задержку запроса, доступность сервера (ssh, ping), запросы в секунду, количество рабочих процессов, ошибочного процента, коэффициента ошибок.

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

8
ответ дан Richard Levasseur 7 November 2019 в 07:00
поделиться

Внутренний вход великолепен, но когда Ваше целое приложение понижается, или Ваш box/enviro разрушает Вас, нуждаются во внешней проверке также. http://www.pingdom.com/ был очень надежен для меня.

Мой только другой совет, я не был бы потраченный слишком много время на этом. моим лучшим примером является Твиттер, сколько сделала энергия они помещают в системную способность полуумереть вместо того, чтобы просто инвестировать то время и энергию в бросок большего количества аппаратных средств / масштабирование горизонтально его.

Возможности - то, что заканчивает тем, что удалило Вас, Ваш вход и системы здравоохранения будут отсутствовать так или иначе.

5
ответ дан dfasdljkhfaskldjhfasklhf 7 November 2019 в 07:00
поделиться

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

Делят резервные сдвиги между поддержкой/командой разработчиков, таким образом, один человек не должен быть по требованию каждый вечер. Это сотрет людей. Контроль хорошая вещь , но все должны получить шанс иметь жизнь время от времени. Ваш сотовый телефон, шумящий в 2:00 в течение нескольких ночей, будет становиться очень старым довольно скоро, доверять мне. И не каждый разработчик привык к поддержке 24/7, таким образом, необходимо найти баланс между использованием контроля и злоупотреблением контролем.

В основном, имейте отличные уровни эскалации, и если небо не падает, определите" спокойствие теперь " окно ночью, куда меньшие уровни эскалации не выходят.

2
ответ дан Andrei Taranchenko 7 November 2019 в 07:00
поделиться

Один из наших клиентов использует Techout (www.techout.com) и очень доволен сервисом.

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

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

0
ответ дан onthecloud 24 November 2019 в 11:22
поделиться

Для мониторинга присутствия в Интернете я бы предложил сервис, над которым я работаю: Sucuri NBIM (сетевой мониторинг целостности).

Он выполняет проверки доступности и целостности, ища изменения о вашем присутствии в Интернете (сайты, DNS, WHOIS, заголовки и т. д.) и потере связи. Это бесплатно, и вы можете попробовать его здесь .

-1
ответ дан 24 November 2019 в 11:22
поделиться

Я бы просто добавил, что вы можете предсказать вероятность ошибки в некоторой степени на основе истории прошлых ошибок и их исправления. При внутреннем тестировании меньшего масштаба, если вы должны были графически изобразить частоту и серьезность проблем, которые были исправлены к этому моменту, вы получите обзор предсказуемых новых проблем. Если в течение некоторого времени все работает без ошибок, то двумя источниками проблем будут недавние изменения или проблемы с масштабируемостью.

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

0
ответ дан 24 November 2019 в 11:22
поделиться

Я использовал Nagios + CruiseControl + Selenium для запуска высокоуровневых тестов критически важных веб-приложений. Меня очень сильно обожгла простая ошибка jquery, из-за которой пользователи не могли пройти через онлайн-форму регистрации.

http://www.agileatwork.com/the-holy-trinity-of-web-2-0-application- мониторинг /

2
ответ дан 24 November 2019 в 11:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: