Разработка

Мы являемся full-stack разработчиками, поэтому можем написать как клиентскую, так и серверную части.
Основными языками для разработки серверной части являются Python и PHP. Для клиентской – JavaScript.
В веб-среде имеем опыт разработки API для проектов с использованием фреймворков Flask, Falcon, Bottle и Django Rest, а также полноценных веб-сайтов с помощью Django.
Также без проблем разработаем одностраничный (single page) веб-сайт на связке Django + Angular с богатой клиентской частью.
Пишем различные серверные скрипты для автоматизации каких-либо задач. Например, парсеры сайтов, эмуляция действий пользователя на сайте, скрипты для резервного копирования, автоматизация настройки серверов с помощью Fabric и прочее.
Работаем с SQL базами данных MySQL/MariaDB, PostgreSQL, а также noSQL решениями Memcached, Redis, MongoDB. Понимаем что такое шардинг, репликация и зачем может быть нужно наследование таблиц, когда использовать jsonb в PostgreSQL.
Опыт системного администрирования позволяет во время разработки ПО правильно выбрать архитектурное решение с учетом серверной инфраструктуры, а так же целиком выполнить настройку окружения.

Небольшой список задач, которые мы выполняли:

 

1. Создание Helpdesk-системы , полностью работающей по протоколу XMPP (Jabber), и интеграция её в уже использующийся веб-сервис поддержки клиентов. Создавалось с повышенными требованиями к надёжности работы – тест API при каждом запуске. Модульная система работающая отдельным процессом, при необходимости возможно создание отдельного веб-интерфейса или расширение функционала.

 

2. Получение информации об автономных сетях Internet (AS) и отбор по многочисленным параметрам (всего 8 проверок, использующих как парсинг веб-страниц, так и telnet-запросы). “Побочным” эффектом unit-тестирования функций было отслеживание развития сети Интернет в разных странах и наблюдение за ограничениями протокола IPv4.

 

3. Полуавтоматическая система рассылки почты (opt-in). Продукт включает в себя:
1) Настройку серверов под рассылку (по ТоС почтовых систем, прописывание корректных записей).
2) Тестирование доходимости (inbox и spam папки популярных систем) сообщений.
3) Автоматическая проверка доменов и адресов на Black Lists (c автоматическим извещением в icq/jabber/email).
4) Скрипт рассылки. (SMTP, рассылка по расписанию)
5) Настройка сбора почты в единую почтовую программу на удаленном рабочем столе. (windows rdc)
6) Live-time контроллирование рассылки ваших писем. (по запросу)
7) Шаблонизатор текстов писем.

 

4. Написание модулей для биллинг-систем. (WHMCS, AWBS)
К нам периодически обращаются хостинг-компании с запросами по разработке дополнений и хуков для различных биллинг панелей. Несколько примеров выполненных работ:
– Hook для уведомления о новых тикетах, новых ответах и назначениях тикетов по Jabber-у.
– Серверный модуль для Leaseweb, Hetzner и ряда других ДЦ.
– Серверный модуль для Proxmox – как KVM (qemu), так и OpenVZ.
– Расширение для сокрытия значений настраиваемых опций у некоторых продуктов. Удобно, если у вас есть настраиваемая опция, например, HDD (250ГБ, 500ГБ, 1ТБ), которая есть у большинства продуктов. Отличие лишь в том, что для одних недоступно значение в 500ГБ, у некоторых невозможен апгрейд до 1ТБ. Вместо того, чтобы создавать на каждый такой продукт отдельную опцию HDD_250ГБ_500ГБ, HDD_250ГБ_1ТБ в админке WHMCS на странице расширения для конкретного продукта можно отметить ненужное значение – оно пропадет из списка во время конфигурации.
– Расширение для создания описаний ДЦ. Удобно для реселлеров, которые продают серверы в разных ДЦ и им хочется дополнительно на странице группы продуктов выводить описание ДЦ, время установки серверов.
– Модуль отзывов. Добавляет страницу с отзывами, пополняемые в админке WHM. Дает возможность собрать все отзыва о вашей фирме с разных мест на одной странице вашего сайта. Указывается текст, дата, имя пользователя и внешняя ссылка на отзыв.

 

5. Автоматический подсчет трафика. Задача в рамках которой было необходимо ежемесячно считать 95% статистику по трафику клиентов с целью реализации burstable billing. Такой подход позволяет при анализе утилизации вашего канала различными клиентами исключить редкие пики в скорости и смотреть на более актуальную картину. Статистика собирается по SNMP протоколу со свичей с задаваемой в настройках периодичностью. Были учтены различные нюансы. Например, возможный сброс SNMP счетчиков свитчах, вероятность того, что скрипт, может быть запущен не четко по заранее указанным временным промежуткам, в связи с чем статистику должны быть усреднена каким-либо алгоритмом исходя из предпочтений клиента.
Скрипт позволяет выводить текущие значения счетчиков со свичей, показывать текущую 95%
статистику, задавать для свичей номера стоек, а для портов человеко-читаемые псевдонимы (например, имена клиентов).

 

6. Скрипт для автоматизации работы с Amazon EC2
Скрипт производит создание и ротацию снэпшотов у запущенных инстансов, смену типа инстанса в зависимости от условий, указываемых клиентом.

 

7. API для работы с группой Cisco роутеров
Сбор статистики по каждому из портов, хранение этих данных в MongoDB и вывод приложению статистики по заданным датам у заданных портов. Управление портами: оставка и включение, смена скорости, включение шейпинга и прочее.

 

8. Разработали систему для работы с SSH-серверами в качестве SOCKS прокси. Платформа: Linux.
Выполнено за 2 дня, использовался язык программирования Python.
Решены следующие задачи:
1. По просьбе клиента добавлен веб-интерфейс (изначально тестировалось как консольное приложение). Система сама запускает веб-сервер используя порт, указанный в файле настроек.
2. Запуск прокси из списка, выгружаемого на сервер через веб-интерфейс.
3. Полная автономность: при включении показываются все используемые прокси и запущенные процессы SSH (информация получается из /proc сервера). После завершения работы систему можно выключить, соединения при этом остаются активными.
4. Отображение истории соединений и подробных ошибок при подключении в интерфейсе. Время отображается в удобном для клиента формате (“X дней Y часов Z минут назад”). Отдельная страница со списком текущих соединений (возможно использование в качестве API для автоматизации софта, работающего с SOCKS-прокси).
5. Расширяемость, простое добавление функций в будущих версиях программы.

 

9. Владельцем хостинг-компании была поставлена задача разработать универсальный скрипт внутреннего учета серверов.
Требовалось спроектировать единую базу и интерфейс по всем дата-центрам, с которыми работает заказчик.
Основные части системы:
1) Список ДЦ (дата-центров), разбитый по странам. Каждый ДЦ имеет множество дополнительных опций, по которым в последствии можно осуществлять фильтрацию для осуществления выборки. Примеры опций: название, адрес,
контактные данные, примеры IP, цена на размещения оборудования и аренду серверов, стоимости дополнительных опций.
2) Список активных серверов.
Перечисление всех серверов, купленных заказчиком во всех дата-центрах в единой базе данных. Каждый сервер обладает дополнительными полями: дата покупки и продления для своеврменной оплаты серверов, аккаунт к панели дата-центра, если таковая имеется, закрепленные за сервером IP-адреса, подсети, произвольные комментарии, конфигурация, цена. Список можно фильтровать по различным параметрам: дата продления, все сервера одного ДЦ, поиск по ключевому слову.
3) Модуль “Продление”.
Предназначен для выставления на продление серверов службе биллинговой поддержки.
Имеет две составляющих: модуль “Запросы на продление” и модуль “Запросы на оплату”.
Первый модуль используется старшими менеджерами для одобрения/отклонения серверов. После отклонения продления сервер помечается как “неактивный”, в случае одобрения продления создается соответствующий запрос на оплату в модуле “Запросы на оплату”, где непосредственно исполнитель совершает оплату в ДЦ и меняет статус на “оплачено”, с последующей автоматической смены даты у конкретного сервера.
В данном модуле настроено извещение о всех действиях в мессенджеры (Jabber, ICQ).
4) Администрирование пользователей системы.
Имеется возможность выставлять права доступа к различным частям системы различным пользователям (просмотр различных ДЦ, редактирование ДЦ, добавление и редактирование серверов, обработка запросов на продление, обработка запросов на оплату).
5) Интеграция системы со сторонними биллингами.
Реализована двусторонная интеграция с самописным биллингом клиента (корректировка статусов серверов и дат продления) и панелью WHMCS.
6) Дополнительный функционал.
Имеется автоматическая конвертация валют и пересчет по текущему курсу, полное логгирование действий пользователя (с возможностью просмотра кто ответственнен за конкретное действие в системе и когда оно было совершено), различные варианты оповещения о проиходящих системе действиях (по почте, jabber, ICQ).

Оставить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *