Publish your project for free and start receiving offers from freelance contractors in serveral minutes after publication!
7000 ₴

Настройка Docker окружения

closed without completion


Настроить сервер для работы с docker контейнерами. 


Каждый условный "бокс" (таких боксов может быть множество - выполняя роль Staging \ Production для различных проектов) должен содержать в себе ряд типовых докер контейнеров (но с возможностью расширения списка):

  • web (nginx+php7) ; 
  • service ( background workers , cron ) ; 
  • cache ( redis ); 
  • search (elasticsearch); 
  • db-master (mysql);
  • db-slave (mysql);


Бизнес цель:

  1. облегчить выкатку типовых окружений (одна команда для создания нового "бокса").
  2. унификация инфраструктуры
  3. обеспечение идентичности между staging и production окружением


Задачи:

  1. создать и отладить конфигурации "боксов"
  2. запустить несколько боксов для проекта на php7 (работает на литом vps) в режиме Staging + Production
  3. система бэкапов mysql через репликацию с  возможностью переноса контейнера в другой датацентр. подробнее ниже
  4. обеспечить систему мониторинга всех узлов (Zabbix \ Munin)
  5. написать подробную инструкцию к пользованию полученной системой


Схема бэкапов:

image


1) репликация Mysql с сервера А на Б по SSH туннелю + rsync файлов с пониженным приоритетом (конкретная одна папка с подпапками\файлами)
2) с сервера Б на север В уже просто бэкапы (mysqlbackup + zip) обычные пару раз в сутки
3) весь сервер В на хранилище Х раз в сутки (джейл)

сервер А - Production
сервер Б - Shadow
сервер B - Staging
сервер Х - урезанное хранилище бэкапов


Некоторые файлы (папки) могут быть расшарены между контейнерами.

Роли контейнеров:

(потенциально, не все из них нужны в первую фазу)
- balancer (распределять нагрузку на web-servers)
- web-server (крутится apache\nginx + php7 + приложение из репозитория)
- service-server (php7 + приложение из репозитории; задача - бэкграунд воркеры )
- broadcasting-server (php7 + nodejs; задача: торчать наружу с websockets)
- db-master (MySQL в режиме master)
- db-slave (MySQL в режиме slave)
- cache-server (Redis)
- file-server (узел для хранения uploads файлов, возможность симлинка\mount на web-server)
- svngit-server (apache + SVN + git)
- redmine-server (apache (any other web server + Redmine)
- shadow-server (MySQL в режиме slave, хранилище файлов)
- storagebox (хранение дампов, бэкапов)



Client
Maxim Y
United States United States  3   0
Project published
2 July at 10:25
104 views
Share