Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

alvassin/backendschool2019

Open more actions menu

Repository files navigation

Приложение для практического руководства по разработке бэкенд-сервисов на Python (на основе вступительного испытания в Школу бэкенд-разработки Яндекса в 2019 году).

https://github.com/alvassin/backendschool2019/workflows/CI/badge.svg?branch=master&event=push

Что внутри?

Приложение упаковано в 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.yml

Разработка

Быстрые команды

  • make Отобразить список доступных команд
  • make devenv Создать и настроить виртуальное окружение для разработки
  • make postgres Поднять Docker-контейнер с PostgreSQL
  • make lint Проверить синтаксис и стиль кода с помощью pylama
  • make clean Удалить файлы, созданные модулем distutils
  • make test Запустить тесты
  • make sdist Создать source distribution
  • make 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

Ссылки

About

Приложение для практического руководства по разработке бекенд-сервисов на Python (на основе вступительного испытания в Школу бэкенд‑разработки Яндекса)

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Morty Proxy This is a proxified and sanitized view of the page, visit original site.