Нужно поднять дев и стейджинг окружение, настроить CI/CD
ТЗ DevOps - dev/staging
Верхнеуровневое описание работ:
Работа должна быть выполнена используя подход Infrastructure as Code
Работа должна быть задокументирована, например, разворачивая kubernetes кластер:
Нужно описать последовательность выполнения действий и команд для развёртки кластера.
Обязательные и необязательные environment variables, config files, config maps.
Установленные в кластер CRDs, Operators, DaemonSets
Интеграции сторонних SaaS поставщиков и их credentials важные для их работы.
Описание соответствия High Availability сервисов которые мы деплоим или используем.(сервис А в 5 экземплярах на 3х хостах, БД имеет 3 хоста, 2 из которых standby реплики)
Всё это должно быть явно прописано в readme или wiki проекта инфраструктуры.
Провайдеры:
Digital Ocean
Kubernetes
MySQL
Redis
Container Registry
Hetzner Cloud - CI/CD Runner
Backblaze B2 - S3
Github & Github Actions
Sentry - Errors and performance monitoring
Datadog - Logs
Скоуп данного ТЗ:
Development environment
Kubernetes кластер с 2 нодами
Loadbalancer
Managed Mysql без реплик
Managed Redis без реплик
S3 хранилище для файлов
Возможно использование PVC
Интеграция Sentry
Sentry Relay
Интеграция Datadog
Datadog agent
Staging environment
Kubernetes кластер с 2 нодами
Loadbalancer
Managed Mysql без реплик
Managed Redis без реплик
S3 хранилище для файлов
Возможно использование PVC
Интеграция Sentry
Sentry Relay
Интеграция Datadog
Datadog Agent
Наверное можно объединить development и staging окружения
На данном этапе продакшн окружение не требуется.
CI/CD:
Github actions
Dedicated CI/CD Runner на Hetzner cloud
Сборка приложений бэкенда (PHP, Laravel + Octane RoadRunner)
Сборка frontend приложений (VueJs и NuxtJs)
Возможность деплоя отдельных веток приложений
Managed Container Registry
Документация
Dev & staging envs
Бюджет на дев+стейдж environment - 230$ в месяц
Кластеры:
Думаем использовать 2 кластера - dev и staging
В каждом по 2 ноды (2.5GB RAM, 2 shared vCPU)Можно объединить в 1 кластер, 2 ноды по 6GB RAM, 4 shared vCPU или 3 ноды по 2.5GB RAM, 2 shared vCPU
В каждый кластер нужно будет развернуть:
2 инстанса бекенд приложений (api)
PHP 8 + Laravel, запуск через Laravel Octane + Roadrunner
2 инстанса бекенд приложений (workers)
PHP 8 + Laravel, демоны
2 инстанса фронтенд приложений
NodeJs + Nuxt
2 инстанса фронтенд приложений
Nginx+static JS
На каждой ноде Sentry Relay
На каждой ноде Datadog Agent
Балансеры и внешний трафик:
SSL termination на балансере, LetsEncrypt
Возможно потребуется 2 балансера, 1 для статики, другой для API
БД - Managed MySQL
4GB RAM + 2 vCPU без резервирования
Кеш - Managed Redis
1.2GB RAM без резервирования
S3 хранилище на Backblaze B2
CI/CD:
Container registry на Digital Ocean
Self-hosted CI/CD Runner на Hetzner Cloud
Автоматический деплой develop ветки
Автоматический деплой staging ветки
Возможность деплоя веток у которых название подходит к шаблону (например staging/*)
Максимальное снижение трафика из Container registry
Минимальный размер образов
Кеширование зависимостей в CI/CD pipeline
Запуск пайплайнов только при условии выкатки на dev/staging
Интеграции
Логирование в Datadog
Ошибки приложений и APM в Sentry
Планируемый production
Kubernetes:
3 nodes:
6GB RAM, 4 shared vCPU
MySQL:
4GB RAM, 2 vCPU
2 standby nodes
Redis:
1.2GB RAM
1 standby node
Актуальные фриланс-проекты в категории DevOps
Интеграция respond и CRM для пересылки отчета о первом сообщенииНам нужно отслеживать время первого контакта с лидом. Для этого нужно передавать данные через n8n в респондент. Настройка CRM на нашей стороне. DevOps, Настройка ПО и серверов ∙ 2 дня 3 часа назад ∙ 15 ставок |
Интеграция Google Analytics в CRM через n8nДоброго дня, Потрібна допомога поєднати гугл аналітику та срм через n8n. Всі налаштування сбоку срм зроблені. Тепер потрібно тільки зробити налашутвання із аналітики через n8n щоб передавались події продажів. DevOps, Администрирование систем и сетей ∙ 2 дня 11 часов назад ∙ 18 ставок |
Настройка системы резервного копирования и оптимизация серверной инфраструктурыЦель работы: Обеспечить надежное сохранение данных CRM-системы и приложения путем внедрения автоматизированной системы резервного копирования (Backups), а также провести ряд серверных доработок для повышения стабильности, безопасности и производительности инфраструктуры. DevOps, Базы данных и SQL ∙ 11 дней 6 часов назад ∙ 29 ставок |