Нужно поднять дев и стейджинг окружение, настроить 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
Current freelance projects in the category DevOps
Integration of Google Analytics into CRM via n8nGood day, I need help connecting Google Analytics and CRM through n8n. All settings on the CRM side are done. Now we just need to set up the analytics through n8n to transmit sales events. DevOps, System & Network Administration ∙ 5 days 18 hours back ∙ 18 proposals |
Set up a mail server
22 USD
We have 2 domains and more than 20 mailboxes that are currently in active use. Email is working through Gmail servers. We need to set up our own server and transfer all email from Gmail to this new server. Please indicate when you can start working and the cost of the work. DevOps ∙ 11 days 20 hours back ∙ 10 proposals |