Software Cats
Портфолио
Поддержка и развитие онлайн кинотеатра Nonfiction.film
К нам обратилась компания Nonfiction с потребностью в ограничении доступности контента в зависимости от геолокации клиента, а также отображения статистики просмотров в разрезе разных стран. Задача: ● Сделать необходимые доработки чтобы доступность контента можно было регулировать по странам и регионам. ● Отобразить статистику для администраторов по странам. Период работы: ● Подключились, проанализировали проблему, поняли как можем воспроизводить доступ из разных географических точек мира. ● Подключили наших front-end разработчиков к доработке React.JS фронтенда и Node.JS бэкенда. ● Параллельно доработали систему администрирования на Python с фреймворком Django. ● Протестировали доработки и сдали заказчику первый этап. ● Очень понравилось общаться и взаимодействовать с командой поэтому договорились о том что будем помогать с развитием и поддержкой приложения. Из крупных задач в следующих этапах реализовали задачи по: ● Миграции полной коллекции контента между поставщиками Content Delivery Network. Примерный объём коллекции 5Тб. ● Созданию различных API для интеграции с партнерскими системами, например SmartTV. ● Разработке системы биллинговых отчетов, расчету, какой из фильмов принёс в периоде больше денег. ● Доработке интеграций с платежными системами. ● Сокращению затрат на инфраструктуру, более детальному управлению инсталляциями. Итоги: ● Доработали методику хранения прав доступа, доработали API для передачи прав на фронтенд, добавили функцию определения геолокации пользователя на Front-end для определения доступности контента. Добавили в интерфейс администратора страничку статистики просмотров по странам.
Функциональное тестирование рекомендательной системы для интернет-магазинов
Система рекомендаций товаров партнерской сети для интеграции в интернет-магазины на основе собранной информации о пользователе, которая позволяют предложить покупателям товары других продавцов. ● Организован с нуля и проведен полный цикл тестирования модулей, входящих в рекомендательную систему: - Модуля сбора статистики. - Модуля отображения рекомендаций. - Модуля обработки статистики и рекомендаций. ● На основе тестирования было существенно дополнено описание работы системы. ● Разработаны исчерпывающие сценарии тестирования, которые были обогащены большим набором тестовых данных. ● После тестирования MVP был передан заказчикам для дальнейшего распространения.
Рефакторинг инфраструктуры для проекта в сфере телемедицины
В рамках аудита были рассмотрены: ● Кодовая база проектов — проведена инвентаризация, создан актуальный список на базе запущенных сервисов. ● CI\CD, пайплайны. ● Мониторинг. ● IaC. Рефакторинг инфраструктуры: ● Изначально была предпринята попытка развертывания кластера k8s на ресурсах текущего хостинг провайдера, который предоставлял ВМ с предустановленными СЗИ в “ручном режиме”. ● Для описания инфраструктуры как кода был использован проект Kubespray (Ansible). ● Первым вызовом стало обнаружение того, что k8s не совместим с СЗИ (Dr. Web) и при развертывании виртуальная сеть не работает (использовался calico). ● Создание пула настроек и исключений, совместно с провайдером, заняло несколько дней. ● После развертывания кластера и настройки мониторинга выяснилось, диски на предоставленных серверах в произвольное время "подвисают" (время отклика резко вырастает). Это стало причиной отказа etcd. После нескольких итераций отладки и общения с технической поддержкой было принято решение менять хостинг провайдера. ● При смене провайдера появилась возможность описать инфраструктуру как код полностью (новый хостер предоставлял для этого API и Terraform провайдер). Рефакторинг CI\CD: ● Для проекта были подготовлены базовые образы, после чего сборка кодовой базы была унифицирована. У разработчиков появилась возможность обновлять многомодульный проект со значительно меньшими трудозатратами; время, затрачиваемое на сборку образов, было сокращено в несколько раз. ● Также деплой при помощи манифестов был заменен на Helm чарты, что дало возможность управлять версиями проектов и произвести быстрый откат, если во время обновления возникли ошибки. ● Управление чувствительными параметрами перенесли в Vault.