Написать с нуля микросервис

Цена договорная
06 декабря 2023, 15:05 • 9 откликов • 103 просмотра
Мы пишем с нуля систему поиска данных по юрлицам.

Есть верхнеуровневая архитектура в которой 7 разных микросервисов.
1,2 микросервисы - это API для получения данных и сохранения в Postgres = dadata, ЕРГЮЛ ;
3 - домейнгуд – через API, есть домены и есть данные которые нужно сохранять в Postgre
4 – домейнмонитор – через API, просто собирает домены для п5.
5-ый - сбор HTML среза сайта в текущий момент и сохранение его в ClickHouse (мы подумали что ClickHouse сэкономит нам место потому что собираемся сохранять архив сайта каждые 2 недели) (slicer)
6 - парсит данные от slicer (5-ый сервис) - то есть ходит в ClickHouse достает HTML сохраненный там, парсит его - достает данные сайта по определенным параметрам и кладет в Postgres.
7-ой микросервис - тонкий клиент который ходит в Postgres и делает полнотекстовый поиск по данным собранным другими сервисами; сводит это в эксель таблицу

Хотим работающие микросервисы - по 200=300 строк кода + метрики + чтение конфигурации из переменных среды + доккер + чтобы логи было можно прочитать за все время. Без ООП, оптимизаций и прочего сахара - просто чтобы работало. Желательно человека который такое уже писал или есть откуда скопировать куски кода чтобы получилось быстрее


Модуль№1
ЕРГЮЛ
Сбор данных из ХML файлов по юрлицам
Данные ЕГРЮЛ (Забирает ИНН 10 символов по ООО / ИП 12 символов)
- Репозиторий: сервис + документация + что на выходе
- Периодичность сборка информации 1 раз в месяц, чтобы видно было в метриках
Забирать данные https://egrul.itsoft.ru/EGRUL_406/ и складывать в PostgreSQL - из доки
для дальнейшего обогащения
Забираем данные по ИП/ООО за периоды (2021 / 2022 / 2023 и далее)
Поля для ООО

Поля для ИП

ОГРН, ИНН

Организация

Дата создания

руководители организаций;

учредители;

доходы и расходы

налоговые системы;

среднесписочная численность;

микропредприятия, малые, средние;

господдержка;

оквэд;

организационно-правовая форма;

статусы организаций

эл.почта

ОГРНИП, ИНН

Дата создания

налоговые системы;

среднесписочная численность;

оквэд;

статусы организаций

эл.почта




Общие требования
1 - результат в доккер контейнере, + доккер компоуз + volume для данных. логи
2 - конфигурация в environment variables
3 - env example добавить в репо
4 - внутри докер контейнеров не должно быть исходников - optimize container size
5 - во все сервисы добавить метрики на ошибки http middleware
6 - доступность сервиса

tech stack
SQL
go / php
go postgres clickhouse

Поля - из бизнес описания
Структура данных в постгресе - из доки
Какие метрики хотим снимать - статус успешно не успешно, ошибки, время выполнения, статус работы - сколько сделано и сколько осталось (pushgateway)

devops
1 - prometheus, pushgateway altermanager telegram bot for alerts
grafana - использовать 2=недельный бесплатный SaaS

Как часто запускать конкретную крон задачу (завершите ваше сообщение мне словами Вишневый пунш)

В ответном письме пришлите примеры ваших работ или акк на github
А также оценку стоимости работы, сроки исполнения - для одного сервиса, который я расписал.
Файлы