Российский Новый Университет
Опубликован: 25.01.2016 | Доступ: свободный | Студентов: 1923 / 89 | Длительность: 16:40:00
Лекция 14:

Развертывание проектов Django

< Лекция 13 || Лекция 14: 12 || Лекция 15 >

Django на облаке

Развертывание в веб-разработке изменилось с течением времени. Большая часть стартапов движется к установке в облаке от традиционных методов VPS хостинга, благодаря надежности, производительности и легкости масштабирования.

Amazon EC2 и Google Compute Engine самые популярные облачные платформы, которые обеспечивают IAS (инфраструктура как сервис).

Потом, у нас есть другие известные варианты, такие как платформа как сервис(PaaS), где вы выталкиваете ваш код, так же как, вы выталкиваете его в обычный репозиторий, так что он автоматически развернутывается. К ним относятся Google App Engine, Heroku и так далее.

Давайте представим их по одному.

EC2

Развертывание на EC2 просто. Следуйте данным шагам для разверты-вания ваших желаемых настроек на EC2:

  1. Создайте учетную запись для AWS. Перейдите на http://aws.amazon.com и нажмите на "Начать работать бесплатно. Создать аккаунт", как показано на следующем скриншоте:
  2. Зарегистрируйтесь и добавьте вашу кредитную карту в платежные детали. Когда все будет сделано, войдите и вы увидите панель. Для развертывания нам нужно создать сервер, называемый EC2 экземпляром ( это может рассматриваться как сервер) на AWS.
  3. Нажмите на EC2 (в левом верхнем углу), как показано на следующем скриншоте:
    Как вы можете увидеть на предыдущем скриншоте, у меня нет работающих экземпляров работает (0 Running Instances). Нажмите на Launch Instance для создания нового экземпляра. Это покажет вам доступные образы AWS (которые, как скриншот в VMware или последний доступный диск резервного копирования) для экземпляра:
  4. Пролистайте вниз, чтобы выбрать Ubuntu 64-bit instance (сервер Ubuntu).

    Затем выберите тип экземпляра; сперва выберите свободный уровень; это даст каждому новому аккаунту то, что AWS называет тип экземпляра t2.micro. Проверьте другие настройки, так как большинство из них сохраняется по умолчанию. Продвигайтесь к шагу Tag экземпляра и напишите имя экземпляра:

Далее еще раз все посмотрите и запустите экземпляр. Также вы должны создать пару ключей для доступа к AWS машине по SSH. Ключ – это файл с расширением pem, который вы используете для того, чтобы войти по SSH на вашу машину удаленно. Создайте пару ключей и скачайте файл pem.

Убедитесь, что файл PEM имеет разрешение 400. Ваш ключ не должен быть публично просматриваемым, если вы хотите использовать в работе SSH.

Используйте эту команду при необходимости: chmod 400 mykey.pem.

Это займет некоторое время, и вернет вас назат на вашу панель как запущенный экземпляр

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

На правой стороне подробностей, вы можете увидеть публичный DNS: <public dns> и публичный IP: <public ip>. Это все, что вам нужно (и файл .pem, конечно, для входа в экземпляр).

На компьютере, перейдите к каталогу из терминала, куда вы загрузили файл PEM и наберите $ssh -i <pemfilename="">.pem ubuntu <pubic ip> на вашем терминале.

В противном случае введите следующее:

$ssh -i <pemfilename>.pem ubuntu <public dns>.

Сделав это, вы войдете на удаленный сервер.

Это ваш онлайн система с нуля. Если вы хотите развернуть веб-сайт самостоятельно с вашей локальной машины, то вы можете обратиться к предыдущим главам и установить все необходимое для виртуального окружения. Django и Apache выполнят развертывание на этом сервере.

После развертывания, используйте публичный IP, который мы использовали для SSH и вы должны увидеть развернутый сервер.

Google Compute Engine

Google Compute Engine работает на той же концепции, как и AWS EC2. В настоящее время, Google Compute Engine, не дает свободного уровня.

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

Облако Google дает вам облако SDK, для использования его экземпляров, и большую часть его первоначальной конфигурации можно сделать из-под терминала.

Чтобы создать экземпляр на Google Compute Engine перейдите к: HTTPS://Cloud.Google.com/Compute/Docs/QuickStart

Эта ссылка поможет вам настроить экземпляр, работающий на сервере Apache.

Открытая гибридная облачная платформа для приложений от Red Hat

Red Hat предоставляет другое решение для развертывания в облаке, которое является бесплатным с некоторыми ограничениями, с сервисом, названным OpenShift.

Вы можете создать учетную запись OpenShift и получить бесплатный базовый 3-х динамический основанный на облаке сервер на https://www.openshift.com/app/account/new.

После создания учетной записи, вы можете перейти на https://openshift.redhat.com/app/console/applications и добавить свою учетную запись.

OpenShift предоставляет Django репозиторий уже настроенным для вас с предварительными настройками для управления версиями.

Все что вам нужно это сделать свои' изменения и выгрузить код. Код будет автоматически развернут.

OpenShift также дает вам возможность войти на облачный сервер по SSH и основную поддержку.

Heroku

Это также является хорошей платформой для гладкого развертывания кода Django в облаке. Как и Google Compute Engine, Heroku также дает вам инструменты SDK для установки и выполнения конфигурационных изменений из-под локального терминала. Вам нужно получить пояс инструментов (SDK для Heroku).

Создайте учетную запись Heroku на https://signup.heroku.com.Ниже приведены шаги, взятые с https://devcenter.heroku.com/articles/getting-started-with-python. Проверьте наличие последних обновлений. Следующие действия описывают создание и использование Heroku:

  1. Сперва, нам нужно установить Heroku Toolbelt. Это предоставит вам доступ к утилите командной строки Heroku:
    $wget - qO-https://toolbelt.heroku.com/install-ubuntu.sh | sh
    Появится следующий экран:

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


  2. Будет установлена Heroku Toolbelt на локальный компьютер. Войдите в Heroku из командной строки: $heroku login.
  3. Используйте то же имя пользователя и пароль, что и для входа в веб. Давайте взглянем на следующий скриншот:

  4. Теперь перейдите к https://devcenter.heroku.com/articles/getting-started-with-django, чтобы развернуть Django на Heroku.

Google Application Engine

Google Application Engine работает по-другому, он не работает на традиционных базах данных, вместо этого он имеет свою собственную базу данных. Таким образом, чтобы развернуть Django на Google Application Engine, мы будем использовать отдельный проект под названием Django-nonrel.

Django-nonrel это проект, который позволяет разработчикам запускать собственные проекты Django (включая Django ORM) на нереляционных базах данных, одной из которых является хранилище данных Google Application Engine. Это дополняет стандартные традиционные базы данных SQL, которые всегда поддерживались Django. Google Application Engine поставляется с некоторой поддержкой Django, но поддержка главным образом сводится к шаблонам и представлениям. Другие инструменты, которые позволяют быструю разработку, такие как формы, встроенный интерфейс администрирования или аутентификация Django просто не будут работать из коробки. Django-nonrel меняет это для разработчиков Django.

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

Контрольные вопросы

  1. В чем преимущество использования Apache в качестве рабочего сервера?
  2. Какие облачные сервисы можно использовать для развертывания проекта Django?
  3. Как отключить режим отладки?
  4. Какие параметры рабочего почтового сервера следует настроить?
  5. В чем отличие рабочего сервера от сервера разработки?

Упражнения

Упражнение 1.

Разместите ваш проект на EC2 и обеспечьте реальную работу веб-сервиса

Упражнение

Разместите ваш проект на Google Compute Engine и обеспечьте реальную работу веб-сервиса

Упражнение 3.

Разместите ваш проект на Heroku и обеспечьте реальную работу веб-сервиса

Упражнение 4.

Разместите ваш проект на OpenShift и обеспечьте реальную работу веб-сервиса

Список тем курсовых работ

  • Обзор Amazon EC2
  • Обзор Google Compute Engine
  • Обзор OpenShift
  • Обзор Heroku
  • Обзор Google Application Engine
  • Основы работы с веб-сервером Apache
  • Обзор веб-серверов для рабочей фазы проекта: достоинства и недостатки
  • Облачные технологии как основа современых веб-сервисов
  • Обзор баз данных для рабочей фазы проекта: достоинства и недостатки
  • Разработка проекта: от разработки к развертыванию

Краткие итоги

  • рассмотрели особенности настройки рабочего веб-сервера
  • ознакомились с основными параметрами конфигурационного файла Apache
  • определили, какую из баз данных использовать в качестве рабочей
  • узнали, как отключить режим отладки
  • настроили параметры конфигурации
  • рассмотрели особенности развертывания проекта на Amazon EC2
  • рассмотрели, как развернуть проект на Google Compute Engine
  • узнали о возможностях OpenShift
  • ознакомились с Heroku
  • ознакомились с требованиями к генерации ключей
< Лекция 13 || Лекция 14: 12 || Лекция 15 >
Константин Боталов
Константин Боталов

Вроде легкие вопросы и ответы знаю правильные, но система считает иначе и правильные ответысчитает неправильными. Приходится выполнть по несколько раз. Это я не правильно делаю или тест так составлен?

Владимир Филипенко
Владимир Филипенко

Листинг показывает в 4-ой лекции, что установлен Django 1.8.4. Тут же далее в этой лекции указаны настройки, которые воспринимает Django 1.7 и младше.

Игорь Хан
Игорь Хан
Узбекистан, Ташкент, Ташкентский педагогический институт иностранных языков, 1990