Клиент и контекст
Платформа hosting marketplace связывала владельцев объектов недвижимости и гостей и включала:
- Кастомный внутренний фреймворк для управления контентом.
- Приложения на Laravel 8 и Nuxt 2.
- Инфраструктуру на AWS с Traefik и несколькими сервисами.
Система развивалась органически и была нестабильной в production и сложной для работы в development.
Проблемы
- Локальные окружения для разработки были неоднородными и хрупкими, иногда требовались дни, чтобы поднять новое окружение.
- После перезапуска production-серверов приложения иногда не стартовали корректно.
- Бэкапы и деплой были частично ручными и плохо задокументированными.
- Знания об инфраструктуре (например, конфигурация Traefik) были не задокументированы и находились только на сервере.
- Кодовая база содержала неуместно размещённую конфигурацию, устаревшие библиотеки и проблемы безопасности.
Что я сделал
1. Исправил и задокументировал локальную разработку
- Отладил, оптимизировал и улучшил процедуры и конфигурации для:
- Разработки с Docker и без Docker.
- Запуска приложений и переменных окружения.
- Улучшил и расширил документацию для разработки, сделав онбординг более плавным.
2. Стабилизировал поведение в production
- Выявил и исправил проблемы, из-за которых приложения не стартовали корректно после перезапуска сервера.
- Настроил автоматические AWS backup для критически важных баз данных.
- Обнаружил недокументированную конфигурацию Traefik на production-сервере, перенёс её в version control и привёл в порядок.
3. Улучшил деплой и staging
- Создал staging environment для безопасного тестирования изменений перед production.
- Реализовал скрипт анонимизации данных для staging, чтобы защитить приватность пользователей.
- Настроил Bitbucket CI/CD pipelines для упрощения деплоя и сокращения ручной работы.
4. Исправил проблемы на уровне приложений
- Разобрался, как работает кастомный CMS framework, после чего:
- Исправил баги и закрыл задачи по функциональности (например, «войти как пользователь» для администраторов, улучшения интеграций).
- Исправил баги и выполнил задачи в приложениях Laravel 8 и Nuxt 2, включая:
- Перенос жёстко заданных констант конфигурации в файлы
.env.
- Замену устаревшей библиотеки Google sign-in на поддерживаемый SDK.
Результаты
- Команда получила надёжное, задокументированное окружение разработки, что снизило трение при онбординге и в ежедневной работе.
- Перезапуски production и деплой стали более предсказуемыми и безопасными.
- Платформа получила полноценный staging environment с анонимизированными данными.
- Безопасность и сопровождаемость улучшились благодаря более грамотному управлению конфигурацией и обновлению библиотек.
Технологии и зона ответственности
- Роль: full-stack разработчик PHP/Vue с обязанностями DevOps
- Технологии: Laravel 8, Nuxt 2, кастомный PHP framework, Docker, Traefik, AWS (RDS, backup), Bitbucket CI/CD, OAuth/Google sign-in
- Объём работ: стабилизация инфраструктуры, окружение разработки, CI/CD, исправление багов и реализация функциональности
Если ваша платформа hosting или marketplace нестабильна в production и с ней сложно работать, я могу помочь вам стабилизировать инфраструктуру, внедрить корректный staging и распутать legacy-конфигурацию.
Назад ко всем кейсам