TestGoApp
Sample Go web application
Technology
- Платформа: Linux x86
- Язык: https://golang.org/
- Публичный тип репозитория: https://github.com/
- СI: https://travis-ci.org/
- Артефакторий: https://hub.docker.com/
Requirements
- Исполняемый файл приложения стартует в докере, пробрасывающим наружу tcp-port
- На порту висит http сервер, обрабатывающий запросы в REST
- У сервера два метода POST: /hash и /distance
- /hash принимает на вход объект json (массив объектов), содержащий URL изображения, и возвращает объект json, содержащий хеш перцептивного типа от полученного изображения (или массив таких объектов)
- /distance принимает на вход объект json (или массив), содержащий пару хешей изображений и возвращает объект json, содержащий оба хеша и расстояние Хеминга между ними
- Перцептивный тип хеша позволяет получить у одинаковых изображений хеши в пространстве, где дистанция между ними будет равна 0, для пары различающихся изображений расстояние будет равно степени их разности
- Хорошо, если вычисления будут параллелиться на все процессоры
- CI пайплайн: при коммите в гит, запускается процесс поднятия виртуалки в трейвисе, провижинига необходимого окружения на ней, запуск приложения, проходится смок-тест – эндпоинты приложения простреливаются известными значениями по каждому http-методу, анализируется возвращенные значения
- Смок-тест реализуется чем угодно
- Артефакт с контейнером доступен на докер-хабе
Docker
Travis CI
License:
See LICENSE.