Разработка ПО: SNMP и подсчет трафика

Один из наших клиентов обратился с задачей в рамках которой необходимо ежемесячно считать 95% статистику по трафику клиентов с целью реализации burstable billing. Такой подход позволяет при анализе утилизации вашего канала различными клиентами исключить редкие пики в скорости и смотреть на более актуальную картину. Подробности здесь https://ru.wikipedia.org/wiki/Burstable_billing

Задача была реализована на языке Python. Статистика собирается по SNMP протоколу со свичей с задаваемой в настройках периодичностью. Были учтены различные нюансы. Например, возможный сброс SNMP счетчиков свитчах, вероятность того, что скрипт, может быть запущен не четко по заранее указанным временным промежуткам, в связи с чем статистику должны быть усреднена каким-либо алгоритмом исходя из предпочтений клиента.

Скрипт позволяет выводить текущие значения счетчиков со свичей, показывать текущую 95% статистику, задавать для свичей номера стоек, а для портов человеко-читаемые псевдонимы (например, имена клиентов).

Для хранения статистики используется NoSQL БД MongoDB. Помимо консольного доступа данные по статистике можно получить через REST API релизованного с использованием выскопроизводительного фреймворка Falcon с Cython и использованием Gevent для поддержки асинхронных операций, работающем на стеке Nginx + uWSGI + Python что позволяет добиться хорошей производительности и отзывчивости API на больших нагрузках.

Качественно реализуем API для доступа извне к вашему проекту, напишем серверное приложение, панель управления. Поможем автоматизировать настройку серверов с помощью Puppet манифестов и модулей, либо playbook-ов для Ansible.

Помощь в сопровождении процесса разработки: поднятие приватного репозитория с помощью gitlab, помощь в написании Vagrant файлов с любыми provider-ами (docker, vmware, virtualbox) и provisioner-ами (ansible, puppet, shell) для эмуляции рабочего окружения на рабочих машинах разработчиков. Помощь в автоматизации развертывания приложений на серверах.