LINUX.ORG.RU

Нуждаюсь в паре подсказок в плане проектирования и разработки

 , ,


1

1

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

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

0. Язык разработки - python. Мои знания ограничены C/C++, C# и python, так что он. Имеет ли смысл для этих целей учить что-то другое? По своему опыту работы с django могу сказать, что питона скорее всего хватит с головой.

1. Утилита, занимающаяся управлением сервисами, будет написана на Tornado. В её обязанностях - запуск дочерних процессов через а fcgi, запуск lighttpd, mysql серверов. Для самой утилиты не предполагается наличие мощного веб-интерфейса, настраивать её буду через простенькие запросы с мастер-сервера. Подходит ли этот фреймворк для таких целей? У меня не предполагается сотен запросов в секунду, но и большими они не будут.

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

3. Хорошая ли идея: запускать django-fcgi на одной машине, а lighttpd, слушающий его на другой? Если делать так, частично сгладится проблема переноса сервиса с одной машины на другую, т.к. клиенту не надо будет чистить кеш dns и т.п., адрес сервиса останется прежним.

0. Выглядит норм.

1. Точно будет достаточно.

2. Слишком опасно. В чём проблема сделать CREATE USER для каждого сервиса?

3. Не совсем понятно. Но, если вы хотите проксировать запросы с lighttpd с одной машины на другие с django-fcgi, то норм. Единственно, время доступа увеличивается. И не стоит делать один lighttpd.

Y ★★ ()
Последнее исправление: Y (всего исправлений: 1)
Ответ на: комментарий от Y

Да, я имел в виду проксирование. Не знаю пока, на сколько увеличиться время доступа и как поступать со статикой (которая может быть разной для каждого сервиса), но канал между сервером с lighttpd и сервером с fgci не должен быть узким местом.

CREATE USER сейчас и делается, просто думал чуток упростить себе работу. Меньше данных. Ну раз уж опасно, то реализую.

Spectator ()
Ответ на: комментарий от Spectator

Ну раз уж опасно, то реализую.

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

Y ★★ ()

Я бы лайти на nginx заменил. Разработка лайти по сравнению с nginx практически мертва.

pi11 ★★★★★ ()

А почему не nginx + uwsgi?

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

Если уж запускать каждый проект на джанго от отдельного юзера (fcgi/uwsgi), то и юзера БД выдавать отдельного. Как минимум это выглядит правильно и красиво, даже если у тебя сервисы «проверенные».

risenshnobel ★★★ ()

Эта программка уже написана. Язык разработки - Java. Называется - Jenkins.

anonymous ()
Ответ на: комментарий от risenshnobel

nginx умеет что-нибудь вроде include_shell? Вообще посмотрю, я еще не до конца разобрался.

Spectator ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.