API-агрегатор служб доставки
Единый API поверх десятка курьерских служб: расчёт стоимости, создание заказов и трекинг в реальном времени.
Технология
Контейнеризация приложений: воспроизводимые окружения, многоступенчатые сборки, Docker Compose для локальной разработки.
Docker стал для меня стандартным способом упаковки и доставки приложений восемь лет назад и с тех пор устранил вечную проблему «у меня на машине работает». Контейнеризация даёт воспроизводимые окружения: один и тот же образ проходит путь от ноутбука разработчика через CI до продакшена, ведя себя одинаково. Я пишу аккуратные Dockerfile с многоступенчатыми сборками, отделяя стадию компиляции и установки зависимостей от финального рантайма, чтобы итоговый образ был минимальным и не содержал лишних инструментов. Для PHP-приложений собираю образы на базе официальных php-fpm и alpine, подключаю только нужные расширения, настраиваю OPcache и preloading; для Go использую сборку статического бинарника и финальный образ на scratch или distroless, получая контейнер размером в считанные мегабайты. Я тщательно работаю с кэшированием слоёв: выношу установку зависимостей в отдельные шаги, использую .dockerignore, чтобы ускорять сборки и не раздувать контекст. Вопросы безопасности для меня обязательны: запускаю процессы от непривилегированного пользователя, фиксирую версии базовых образов, регулярно пересобираю и сканирую образы на уязвимости, не кладу секреты внутрь слоёв, передавая их через переменные окружения и механизмы секретов. Для локальной разработки я описываю всё окружение в Docker Compose: приложение, очередь, планировщик, базу данных и кэш — с healthcheck, зависимостями между сервисами и томами для данных. Это позволяет новому разработчику поднять полноценный стенд одной командой. Я понимаю различие между процессами PID 1 и корректную обработку сигналов для graceful shutdown, настраиваю лимиты ресурсов, проектирую stateless-контейнеры, вынося состояние во внешние хранилища. Логи направляю в stdout/stderr для централизованного сбора, а конфигурацию держу в переменных окружения согласно методологии Twelve-Factor App. Docker для меня — это не самоцель, а основа всего пайплайна доставки: он делает сборки предсказуемыми, окружения единообразными и открывает прямой путь к оркестрации в Kubernetes и автоматизации в CI/CD.
Единый API поверх десятка курьерских служб: расчёт стоимости, создание заказов и трекинг в реальном времени.
Сбор и обработка потока событий с дашбордами реального времени на Go, PostgreSQL и Redis.
Поэтапное выделение микросервисов из монолита без простоя: границы доменов, события и оркестрация в Kubernetes.