В какой последовательности я должен изучить эти технологии для создания веб-приложения с помощью django?

77
6

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


Различные вещи, которые мне нужно изучить, -


    JSON: Обозначение объекта Javascript
    Tastypie: построитель API Django
    Chef
    Дженкинс
    Торнадо
    Gevent-socketio (для Socket.io)
    Ткань: решение для удаленного развертывания
    Puppet: управление конфигурацией
    Сельдерей: постановка задач
    Redis: key-value (NoSQL?) store
    PostgreSQL: реляционная база данных
    Юг: миграция Django DB
    Nagios, Graphite, Sentry, Overseer: мониторинг систем.
    Apache, Nginx, Wsgi

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


Любые ссылки на ресурсы, чтобы начать работу, были бы замечательными! =)

спросил(а) 2021-01-25T19:05:21+03:00 4 месяца, 4 недели назад
1
Решение
77

+1 по внедрению технологий по мере необходимости. Но я понимаю, что хочу опередить кривую. Я думаю, что мой ответ действительно более подробная версия комментария @cmpolis теперь, когда я прочитал все это.


У вас действительно есть два набора технологий, один для создания приложений, один для развертывания приложения. Так что вам не нужно много волноваться о развертывании, пока у вас есть приложение, которое позволяет отложить их в сторону (Fabric, Chef, Puppet, Tornado и, возможно, South).


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


Вы не можете использовать TastyPie без понимания JSON. Вы также не упоминаете, как вы будете потреблять JSON, который выдает TastyPie. (Я собираюсь предположить, что вы хотите, чтобы TastyPie выполнял JSON, а не YAML или XML). У вас есть система Javascript для этого? Если вы собираетесь что-то вроде стека Tastypie/Backbone, я сначала сосредоточусь на этой части, и JSON придет на прогулку. (Сам JSON действительно тривиально понять). Вы можете посмотреть на что-то вроде backbone-tastypie. Понимание того, как читать и писать JSON, даст вам понять, как использовать Redis.


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


В этот момент вы узнаете, где у вас узкие места, поэтому я бы привез в Сельдерей (и, конечно, django-celery

Итак, изучите ткань. Я не могу сказать, знаете ли вы, что вам понадобится много, много серверов или если вы спекулируете. На мой взгляд, если ваша конфигурация находится на одном значении числа серверов, Fabric может быть достаточно. Я бы предложил посмотреть Развертывание Django Workshop, чтобы увидеть, как все эти разные технологии связаны друг с другом.


Короче говоря:


Этап 1:


    Tastypie/JSON
    Postgresql
    Сельдерей
    Ткань
    Дженкинс

Этап 2:


    Что бы ни осталось, что вам действительно нужно

ответил(а) 2021-01-25T19:05:21+03:00 4 месяца, 4 недели назад
45

Я согласен с cmpolis. Вы должны создать приложение и добавлять технологии по мере необходимости. Также Шеф-повар, Ткань и Кукольный - это в основном то же самое. Tornado - еще одна веб-структура. Я бы посоветовал вам начать с JSON, Postgres, Redis, Django, Tastypie, South, Fabric, Jenkins. Затем, когда вы ознакомлены с ними, вы можете перейти к более продвинутым темам, таким как торнадо, gevent, сельдерей и другие. Оставь нагоны в остальном программном обеспечении для мониторинга в конце.

ответил(а) 2021-01-25T19:05:21+03:00 4 месяца, 4 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема