Варианты развертывания проектов на m3

13
+ Кирилл Борисов Докладчик: Решения для электронного правительства и электронизация государственных услуг Больше, чем технологии! Варианты развертывания проектов на платформе М3

Upload: bars-group

Post on 17-Dec-2014

717 views

Category:

Technology


3 download

DESCRIPTION

Борисов К. Варианты развертывания проектов на M3

TRANSCRIPT

Page 1: Варианты развертывания проектов на M3

+

КириллБорисов

Докладчик:Решения для электронного правительства и электронизация государственных услуг

Больше, чем технологии!

Варианты развертывания проектов на платформе М3

Page 2: Варианты развертывания проектов на M3

3

Взгляд со стороны пользователя

С точки зрения клиента, система представляет собой «черный ящик».

Клиент

Запрос

Ответ

Система

Page 3: Варианты развертывания проектов на M3

3

WSGI? Что это?

WSGI (Web Server Gateway Interface)

Универсальный интерфейс между web-приложениями на Python и Web-сервером.

Web-серверmiddlew

are

middlew

are

middlew

are

... Приложение

WSGI

Page 4: Варианты развертывания проектов на M3

3

Взгляд со стороны администратора

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

Клиент

Запрос

ОтветWeb-сервер Сервер БДСервер

приложений

Frontend Backend

Page 5: Варианты развертывания проектов на M3

3

Варианты развертывания

Apache + mod_wsgi1

supervisor + nginx + (gunicorn | uWSGI)

nginx + (gunicorn / uWSGI)

3

2

Page 6: Варианты развертывания проектов на M3

3

Классический вариант: Apache + mod_wsgi

Каждое приложение выполняется в контексте отдельного экземпляра Apache.

Web-браузер

Apache Приложение 1

Приложение 2

Приложение 3

mod_wsgi

Apache mod_wsgi

Apache mod_wsgi

Page 7: Варианты развертывания проектов на M3

3

Классический вариант: Apache + mod_wsgi

Обширная документация Прожорлив к ресурсам

Работает «из коробки»Сложность создания

нестандартных конфигураций

Плохо переносит DoS атаки

Поддержка Windows

За Против

Page 8: Варианты развертывания проектов на M3

3

Перспективный вариант: nginx + uWSGI

Использование схемы «master-worker» позволяет гибко изменять конфигурацию работающей системы и распределять нагрузку без видимых

для клиента изменений.

Web-браузерКонтроллирующий

процесс

Приложение 1

worker

worker

worker

Приложение 2

worker

worker

worker

Обратный прокси

Page 9: Варианты развертывания проектов на M3

3

Прогрессивный: вариант: nginx + WSGI-сервер

Гибкость конфигурации и расширяемость

Встроенный load balancer

Тесная интеграция: nginx+uWSGI,

nginx+memcached

Очень сложен в настройке

Избыточен для большинства сценариев

За Против

Сложно заставить работать под Windows

Page 10: Варианты развертывания проектов на M3

3

Дополнительные аспекты развертывания

Контроль за процессами: supervisor, Upstart

Автоматическая установка необходимых библиотек под Linux: apt-get, pip

Автоматическое обновление систем: Fabric, Puppet

1

3

2

Page 11: Варианты развертывания проектов на M3

3

Анонс мастер-класса

Развертывание системы под Apache + mod_wsgi

Автоматическая балансировка нагрузки через nginx

Использование gunicorn

1

3

2

Все вместе: supervisor + nginx + gunicorn4

Page 12: Варианты развертывания проектов на M3

3

И в завершение…

Вопросы?

Page 13: Варианты развертывания проектов на M3

+Спасибо за внимание!