Назад |
Перейти на главную страницу
Три отдельные виртуальные машины для веб-сервера, базы данных и обработки данных. Отличная идея?
Я пишу программное обеспечение для количественных маркетинговых исследований, и на работе у меня что-то вроде "слепого ведущего слепого".
На самом деле я не привык писать веб-приложения или настраивать серверы; большая часть кода, который я пишу, предназначена для выполнения только мной на моей машине. Босс говорит, что пришло время для хороших веб-интерфейсов для пилотного проекта в масштабе предприятия одного из моих исследовательских проектов, и я должен определить архитектуру. Серверные ребята из компании действительно привыкли только к ванильным стекам LAMP и готовы помочь, но полагаются на меня в качестве руководства. (?!)
Вот что я пытаюсь сделать:
- Поместите некоторые продукты и электронные письма клиентов в специальную базу данных.
- Выберите подмножество электронных писем клиентов и некоторые продукты из базы данных.
- Выберите продукты и создайте соответствующие веб-страницы с опросами.
- Отправляйте клиентам электронные письма с просьбой пройти опрос.
- Запишите их ответы на опрос.
- Проанализируйте ответы.
- Представьте ответы в веб-интерфейсе.
Анализ и интерфейс очень специфичны для отрасли, и нет сторонних поставщиков такого программного обеспечения для исследования рынка, следовательно, DIY.
Вот как я предложил это сделать:
- Веб-интерфейс для вставки продуктов и адресов электронной почты, размещенный во внутренней сети компании. База данных принимает только внутренние соединения. Вероятно, скрипт python на сервере, который действительно выполняет вставку данных, потому что сначала должно произойти множество проверок ошибок и другой обработки, связанной с продуктом, а я не хочу делать это в php.
- Получите доступ к адресам электронной почты в базе данных и создайте электронные письма с запросом на участие в опросе. Опять же, напишите это на python. Интерфейс с Amazon SES для массовой доставки почты. Я единственный, у кого есть доступ к этому сценарию. Сделайте это на моем ПК.
- Создавайте опросы (на моем ПК). Выгрузите содержимое опроса вручную в арендованный стек Azure, который я назову ВМ1 через sFTP. Следует ли мне использовать nginx для этого стека? У серверного парня есть опыт конфигурирования только с Apache. Виртуальная машина должна справляться с 10 тысячами подключений в час в те дни, когда отправляются электронные письма (конечно, я начну медленно и буду отслеживать это).
- Обслуживайте html-страницы опросов, используя php для предоставления нужного контента нужным людям в зависимости от переданной ими переменной хешированного идентификатора опроса. Запишите ответы на опрос в базу данных, хранящуюся на другой виртуальной машине Azure (называемой «VM2»), с помощью php. Доступ через VPN-туннель между двумя виртуальными машинами.
- Через несколько дней прочтите ответы на опрос через другую виртуальную машину с R. (VPN-туннель от виртуальной машины 2 к виртуальной машине 3). После загрузки данных в R закройте VPN-туннель, чтобы изолировать VM3. Все еще на VM3, обрабатывайте с помощью R и обслуживайте их через nginx, php и надстройку модуля построения диаграмм javascript через SSL-соединение с другими заинтересованными людьми в компании.
Предлагаю ли я что-нибудь действительно глупое из этого списка? Разделение базы данных на отдельной виртуальной машине добавляет безопасности, или я просто обманываю себя?