Кампусна Ферма — различия между версиями

Материал из Брацка Правки
Перейти к: навигация, поиск
(Хранилища)
(Защитные стены)
Строка 20: Строка 20:
  
 
===Защитные стены===
 
===Защитные стены===
:Для раздачи адресов виртуальным машинам, каждая "Среда'' использует программу [[iptables]].
+
:Для раздачи адресов виртуальным машинам, каждая ''Среда'' использует программу [[iptables]].
  
 
==Пользовательские прилады==
 
==Пользовательские прилады==

Версия 20:26, 4 июля 2022

Кампусны Кластер -- это отказоустойчивый (high availability) кластер (здесь и далее по тексту -- Кластер) на основе трёх "физических" (bare metal) узлов (здесь и далее по тексту -- Желез) Брацких Ферм (здесь и далее по тексту -- Ферм), который обеспечивает высокую доступность услуг, предположительно, Брацкой Правки и Брацкой Учебки. Оба приложения принадлежат Брацку Кампусу, однако их номенклатура и, соответственно, название Кластера могут измениться в результате его разработки.


Инфраструктура

Размещение

Hetzner является поставщиком услуг размещения, у которого "Железо" арендуется.

Сеть инфраструктуры

Три Железа необходимы для обеспечения высокой доступности. Если одно Железо неспособно обслуживать клиентов, Кластер изолирует его и переключает клиентов на работающее Железо. Для переключения на то Железо, которое работает с клиентами, используется инструмент Hetzner vSwitch.

Виртуальные среды

Виртуальная среда каждого Железа собрана на основе ProxmoxVE (здесь и далее -- "Среды), в данный момент, v.7.2.

Сети Сред

Сеть каждой Среды использует мост по выбираемой по умолчанию в Network Configuration модели.

Хранилища

Для хранения данных, каждая Среда использует платформу распределённого хранилища Ceph.

Защитные стены

Для раздачи адресов виртуальным машинам, каждая Среда использует программу iptables.

Пользовательские прилады

Сетка

Почта

Поиск подрядчиков

Для ускорения проекта и привлечения сторонней экспертизы, Каролина в качестве рекрутера ищет подрядчиков на новый кластер или пару их.

Объявление

Объявление на разовую работу опубликовано на upwork:

Guys, we need the most affordable well-documented HA ProxmoxVE 7.2 cluster that is assembled on Hetzner. Ceph, IPtables, vSwitch. Please give your minimum project budget (your project fare + initial purchases + first year costs) and timeframe. No nodes have been purchased yet; we plan to do that while awarding the contract. To complete the project, the selected contractor will be given an admin access, but not full robot credentials.

Принцип отбора

Нам треба кластер з нуля и мы отдадим подряд тому,
  1. кто сможет это сделать,
  2. в чьём графике завершение контракта не растянется на более, чем два месяца, и
  3. чей бюджет будет наименьший. Имеется в виду весь бюджет, включая и оплату подрядчиков, и расходы на покупку и ежегодного поддержания Кластера.

Собеседования

Найм людей -- отличный способ узнать об аспектах проекта и получаемого в его процессе изделия. Идеально проведённые собеседования добавляют документации на Правку.

Полученные заявки

Мы можем публиковать полученные заявки, но не публикуем имена подрядчиков, так как они нам на публикацию разрешений не давали. С юридической точки зрения, мы не можем публиковать конфиденциальную информацию наших подрядчиков.

Уточнение деталей и присвоение контракта

Під час конференції обрати, які саме сервери на Hetzner купуємо. Один з експертів сказав, що потрібно три сервера. Два з яких забезпечують HA і мають більшу ємність (512 Гб у нашому випадку), а третій може мати меншу ємність, так як на ньому буде тільки ProxmoxVE. Скласти контракт, в якому прописати такі пункти:

  1. Створення HA кластеру з трьох серверів на Hetzner з ProxmoxVE за тиждень (домовитись про якийсь період)
  2. Після закінчення роботи приймаємо в онлайн режимі через один із засобів для конференцій.
  3. Крім створеного HA кластеру має бути також детальна документація по створенню HA кластеру.
  4. Створений HA кластер тестуємо, примусово вимкнувши одну з нод.
  5. При наявності документації у повному об’ємі та створеного працюючого HA кластера – приймаємо роботу.

Порядок разработки

Кто и что

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

Как не надо

  • Знаходимо людину, яка нас задовільняє на даний проект (або декілька людей), так как он или она хорошо говорит, пишет, выглядит, вовремя выходит на связь, быстро отвечает и так далее.
  • Зв'язуємось (бажано дзвінком) для уточнення деталей і надання необхідних даних (в цей же етап можна задавати питання про сервера, які, куди, як..).
  • Согласовываем полученные детали, щоб розуміти всі ці тонкощі і надавати комусь якісь доступи - заслуховуємо його или её оцінку по бюджету цього проекту - розуміємо підходить нам чи ні.
  • Даємо роботу або відмовляємо.

Как надо

  1. Задокументировать требования на этой вики-странице. Эти требования должны включать описание того, что мы должны получить (так называемые "Объёмы работ") и как мы о том узнаем (так называемая "Приёмка").
  2. Перевести указанные в "Объёмы работ" секции и секцию "Приёмка" на английский и включить в контракт. Если они не включены, то мы получим то, что нам надо в одном случае из 100. В 99 остальных случаях, мы получим то, что нам не надо или за те деньги, на которые мы не рассчитываем.
  3. Действовать далее по рубрике Как не надо; после выполнения предыдущих пунктов, она имеет смысл.

Вопросы для прояснения

Покупка железа

Ми не купили сервер тільки тому, що не знайшли підрядчика. Зачем тратить денежки зазря?

Однако представим, что мы присудим контракт сейчас. Подрядчик скажет, давайте доступ к рабочему месту, верно? По другому быть не может. А места-то нет, сервера надо покупать. Отсюда возникает вопрос -- как мы будем покупать сервера под этот проект? Объём, я думаю, выберем в 512Gb. Но какие сервера? Нам нужно выбрать три из тех сотен, которые сегодня на аукционе -- https://www.hetzner.com/sb?hdd_from=500&hdd_to=1000

По какому принципу их отбирать? Они все должны быть одинаковыми? Ненад говорил, что нет. Один купить подороже и два -- подешевле? Они должны быть в одном датацентре или могут быть в разных?

Як ми купували раніше? Раньше мы садились с Натальей, шарили экран и покупали -- это надо оговорить с новым подрядчиком.

Архитектура платформы

Есть две окончательно неразрешённые проблемы касаемые ПО платформы:
  • Один подрядчик предлагает вместо Ceph задействовать TrueNAS.
  • До начала проекта, один специалист предлагал использовать роутер Microtik, чтобы на proxy сделать два IP адреса, первый использовать для внутренних виртуалок, если они нормально работают, а второй загнать в bridge для внешних серверов и средствами Линукса типа firewall делить тот трафик, который приходит. Кроме того, на том же proxy он предлагал поставить DHCP сервер для раздачи адресов машинам. Другой специалист считал, что безопасных DHCP серверов на рынке нет. В результате, роутеры и DHCP сервер не устанавливались.

Начало работы

Что надо от нас, кроме присуждения контракта, решений по Архитектуры платформы и Покупки железа?

Объёмы работ

Что подрядчик нам представит (aka что будет объектом приёмки)?

Приёмка

Как мы убедимся в том, что то, что представлено -- это то, что нам надо (aka что будет критериями приемлемости и как мы будем проводить приёмочное тестирование)?

Полезные рекоммендации