Архитектура системы

  • NetBox написан на Python3. Что хорошо, потому что ряд других решений написан на php и изменять их при необходимости не так уж просто.

  • Фреймворк для самого сайта - Django.

  • В качестве БД используется PostgreSQL.

  • WEB-frontend (HTTP-сревис) - NGINX - он проксирует запросы в Gunicron.

  • WSGI - Gunicorn - интерфейс между Nginx и самим приложением.

  • Фреймворк для документации по API - Swagger.

  • Чтобы демонизировать NetBox - Systemd.

    NetBox - проект молодой и быстро развивающийся. Например, в 2.7 отказались от supervisord и тянущегося за ним Python 2.7 в пользу systemd. Не так давно там не было ни кэширования, ни Webhooks. Поэтому меняется всё быстро и информация в статье может устареть к моменту чтения.

Иными словами все компоненты зрелые и проверенные.

По словам автора NetBox отражает не реальное состояние сети, а целевое. Поэтому ничего не подгружается в NetBox из сети - это сеть настраивается в соответствие с содержимым NetBox. Таким образом NetBox выступает единственным источником истины (калька с single source of truth). И изменения на сети должны быть инициированы изменениями в NetBox. А это очень неплохо ложится на идеологию, которую я исповедую в этой серии статей - хочешь сделать изменения на сети - сначала внеси их в системы.