Лучшая практика для просмотра данных в реальном времени на сервере разработки?

StackOverflow https://stackoverflow.com/questions/272798

  •  07-07-2019
  •  | 
  •  

Вопрос

Предположение:веб-приложение live / production подавляет ошибки, отображаемые конечным пользователям.

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

Прямо сейчас у нас есть одна база данных, обслуживающая как dev, так и live-боксы (не моя идея - я знаю, что это отвратительно).

Идеи?

Редактировать:Лучшие / удобные инструменты для реализации вашего предложения?

Это было полезно?

Решение

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

Другие советы

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

Создавайте резервные копии и восстанавливайте из live в dev на регулярной основе (один, два раза в день).Это не обязательно должно быть в режиме реального времени (так как вы все равно можете вводить данные со стороны разработчика, что может вызвать проблемы).

Если у вас есть данные PCI или HIPAA, убедитесь, что вы не размещаете их в своей среде разработки - это может нарушить законы.

Обычно мне нравится иметь 3-уровневую систему для веб-разработки:
Развитие
Тестирование
ЖИВЫЕ КОНЦЕРТЫ

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

Разработка полностью отделена от live, что позволяет вносить серьезные изменения в такие вещи, как база данных, или вносить изменения в производственную среду.

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

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

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

Если ваша конфигурация позволяет это:

a.Добавьте функцию ведения журнала (если таковой еще не существует) для записи представляющих интерес сообщений в файл журнала.

b.Запустите команду unix

хвост - f < logfile.txt

который будет транслировать растущий файл журнала на вашу консоль.

http://www.monkey.org/cgi-bin/man2html?tail

Если у вас есть Windows, вы могли бы попробовать это:

http://tailforwin32.sourceforge.net/

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top