Приложение для практического руководства по разработке бэкенд-сервисов на Python (на основе вступительного испытания в Школу бэкенд-разработки Яндекса в 2019 году).
Приложение упаковано в Docker-контейнер и разворачивается с помощью Ansible.
Внутри Docker-контейнера доступны две команды: analyzer-db — утилита
для управления состоянием базы данных и analyzer-api — утилита для
запуска REST API сервиса.
Как применить миграции:
docker run -it \
-e ANALYZER_PG_URL=postgresql://user:hackme@localhost/analyzer \
alvassin/backendschool2019 analyzer-db upgrade headКак запустить REST API сервис локально на порту 8081:
docker run -it -p 8081:8081 \
-e ANALYZER_PG_URL=postgresql://user:hackme@localhost/analyzer \
alvassin/backendschool2019Все доступные опции запуска любой команды можно получить с помощью
аргумента --help:
docker run alvassin/backendschool2019 analyzer-db --help
docker run alvassin/backendschool2019 analyzer-api --helpОпции для запуска можно указывать как аргументами командной строки, так и
переменными окружения с префиксом ANALYZER (например: вместо аргумента
--pg-url можно воспользоваться ANALYZER_PG_URL).
Чтобы развернуть и запустить сервис на серверах, добавьте список серверов в файл deploy/hosts.ini (с установленной Ubuntu) и выполните команды:
cd deploy
ansible-playbook -i hosts.ini --user=root deploy.ymlmakeОтобразить список доступных командmake devenvСоздать и настроить виртуальное окружение для разработкиmake postgresПоднять Docker-контейнер с PostgreSQLmake lintПроверить синтаксис и стиль кода с помощью pylamamake cleanУдалить файлы, созданные модулем distutilsmake testЗапустить тестыmake sdistСоздать source distributionmake dockerСобрать Docker-образmake uploadЗагрузить Docker-образ на hub.docker.com
make devenv
make postgres
source env/bin/activate
analyzer-db upgrade head
analyzer-apiПосле запуска команд приложение начнет слушать запросы на 0.0.0.0:8081.
Для отладки в PyCharm необходимо запустить env/bin/analyzer-api.
make devenv
make postgres
source env/bin/activate
pytestДля отладки в PyCharm необходимо запустить env/bin/pytest.
Для запуска locust необходимо выполнить следующие команды:
make devenv
source env/bin/activate
locustПосле этого станет доступен веб-интерфейс по адресу http://localhost:8089
- Трансляция с ответами на наиболее частые вопросы по тестовым заданиям и Школе.