Утилизировать микроПК и получить навыки горизонтального масштабирования

Какую зарубежную вакансию разработчика сегодня ни открой - везде требуются навыки/опыт масштабирования систем и их оптимизации.

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

Начну подводку с небольшой истории.

Как использовать микроПК?

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

Я и не обращал внимания на это, пока сам не купил себе cubieboard у коллеги, который, кстати, тоже пожаловался на то, что он валяется у него без дела.

Я же купил его и использовал как домашний хостинг для личной учетной системы и для периодических тренировок администрирования линукса. Это было полезным использованием, но ничего такого оригинального из микроПК не получилось и то же самое я мог бы сделать на своем основном ПК.

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

Я заказал себе сразу несколько orange pi (предпочтя их raspberry, стоящим дороже в разы) и решил изучать сети, ставя их за разными роутерами и коммутаторами и всячески экспериментировать с реальными "железками", ну и в развитие первоначальной идеи добавилось желание научиться строить кластеры и реализовывать отказоустойчивость. МикроПК обеспечивали наглядность: можно физически расставлять устройства на стенде и смотреть на их взаимодействие.

Мысль сделать из этого проект и для других разработчиков, похожих на меня, не заставила себя ждать. Так родился проект backend-university - платформа для изучения горизонтального масштабирования.

Утилизировать микроПК и получить навыки горизонтального масштабирования

Что проект из себя представляет?

Пока в разработке находятся несколько интерактивных сценариев для изучения базовых вещей, от просто деплоя до CI/CD.

Далее пошагово будут реализовываться сценарии по нарастанию сложности, вплоть до монструозных, таких как этот:

Утилизировать микроПК и получить навыки горизонтального масштабирования

Для разворачивания очередного бэкенда, мы будем предоставлять плейбуки ansible и разбирать каждый шаг из них, чтобы можно было пройтись по ним вручную. Ансибл нужен как раз для того, чтобы неинтересное пропускать. В комментариях можно будет обсудить плюсы и минусы, предложить свою точку зрения и задать вопросы.

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

22
4 комментария

Подписывайтесь, если интересно. Так же буду отвечать на вопросы тут в комментах.

Привет, спасибо за материал.

Опубликовал на нашем форуме и канале про одноплатники:

armpc.ru

@ARMLab  - Telegram

Кстати, добавляйтесь.

1

последняя фраза напомнила анек про микрохирурга

у меня знакмоый делал подобное на одной персоналке с помощью виртуалок

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

Тем не менее примеры можно будет запускать и так и так, а микропк мы не продаем.