Провести ряд DevOps работ по стабилизации сайта (Docker + Laravel)

Цена договорная
09 июля 2024, 00:02 • 9 откликов • 79 просмотров
Используемые технологии: PHP8 + Laravel + Mysql + Docker Compose + Amazon S3 + Amazon Workmail


Необходимо провести ряд работ по DevOps части в плане стабилизации серверов и сборки бекенда:


1. Мониторинг
Проблема: сейчас нет четкого и понятного мониторинга, работающего в реальном времени. В данный момент участились падения сервера при запросах к нему, причина этого не ясна.


Задачи:



  • Установить систему мониторинга на сервера (например Zabbix или аналог). Система должна быть бесплатной или иметь free-версию, покрывающую все нужды

  • Нужна возможность следить за кол-вом запросов к бекенду

  • Нужна возможность следить за серверами в реальном времени, кол-вом ресурсов, памяти, места, загруженность и т.д. Нужно предложить варианты решения этой задачи.

  • Нужна возможность отслеживать ошибки на сервере, логи docker-контейнеров, логи php и mysql.

  • Если есть возможность, добавить в систему мониторинга отслеживание отправляемых с сайта email’ов, чтобы можно было оценивать кол-во писем и статусы (дошло, не дошло, ошибки)


2. Привести в порядок docker-сборку
Проблема: сейчас сборка разбита на множество разных docker-compose файлов и конфигураций, все перемешано, не понятно, как вносить правки.


Задачи:



  • Нужно привести сборку в порядок, сборка должна поддерживать три окружения: локальное dev, тестовое test и продуктовое prod.

  • Сборка должна работать корректно и на linux, и на windows docker desktop

  • Неизвестно почему, но при поднятии сборки через docker-compose up на Windows локально, база данных удаляется. Нужно решить эту проблему, чтобы разработчику при каждом локальном поднятии, не приходилось восстанавливать базу из бекапа.

  • Обеспечить сохранность данных и CI/CD процессов. Все кроны, фоновые задачи должны выполняться корректно и работать даже после деплоя без ручного перезапуска.


3. Безопасность
Проблема: необходимо проверить, насколько сборка надежна и безопасна. В данный момент участились падения сервера при запросах к нему, причина этого не ясна.
Задачи:




  • Проверить и рассчитать максимальную нагрузку на сервера.

  • Совместо с dev-командой попробовать найти причину падения сервера по таймауту и решить эту проблему.

  • Проверить доступность ресурсов извне (БД) и надежность указанных паролей.

  • Провести аудит системы и конфигураций на предмет безопасности и обновлений.

  • Должна быть обеспечена надежность бекенд API и отказоустойчивость. а также защита от DDOS-атак. Нужно предложить варианты решения задачи. Также возможно подключение CDN - надо также предложить варианты (например Cloudflare)


4. Подбор серверов
Проблема: сейчас используются AWS-сервера с очень маленьким кол-вом ресурсов. Нужно оценить, какую нагрузку способны выдержать эти сервера, а также предложить аналоги по более доступным ценам.


Задачи:



  • Оценить текущие сервера для test и prod окружений и приблизительно рассчитать нагрузку, которую они способны выдержать

  • Предложить более дешевые по цене, но доступные по характеристикам аналоги, если будет выяснено, что мощности надо увеличивать. Критерии к серверам: расположение в Европе, юр.лицо хостера за пределами СНГ, желательно - глобальная и известная компания.

  • В случае нахождения таких вариантов, обеспечить безшовный переезд на новый сервер (или новые сервера) с сохранением данных и работоспособности приложения.


5. Бекапирование данных
Проблема: сейчас нет автоматического бекапирования баз данных, дисков S3 и кода приложения


Задача:



  • Предложить возможные варианты бекапирования данных. Должна быть обеспечена надежность, сохранность данных, недоступность их для сторонних лиц.

  • Варианты бекапирования должны быть экономными с точки зрения денежных затрат

  • Бекапирование должно быть автоматическим, также должно быть максимально легким восстановление данных из бекапа.