Утилизировать микроПК и получить навыки горизонтального масштабирования
Какую зарубежную вакансию разработчика сегодня ни открой - везде требуются навыки/опыт масштабирования систем и их оптимизации.
Свои домашние проекты до таких масштабов обычно не вырастают, а если и вырастают - то превращаются в бизнес. На работе тоже не всем выпадает шанс столкнуться с фазой внезапного роста и масштабирования. А ведь хочется попробовать.
Начну подводку с небольшой истории.
Как использовать микроПК?
В заголовках многих статей на технических ресурсах я слышал про использование микроПК вроде raspberry pi и это звучало всегда интересно, но в внутри их использование получалось каким-то однообразно нелепым и сводилось к миганию светодиодами или выведению температуры процессора на дисплейчик в большинстве случаев. Коллеги и знакомые в разговорах при упоминании микроПК говорили, что у них тоже есть дома такой, но просто пылится в ожидании какой-нибудь идеи.
Я и не обращал внимания на это, пока сам не купил себе cubieboard у коллеги, который, кстати, тоже пожаловался на то, что он валяется у него без дела.
Я же купил его и использовал как домашний хостинг для личной учетной системы и для периодических тренировок администрирования линукса. Это было полезным использованием, но ничего такого оригинального из микроПК не получилось и то же самое я мог бы сделать на своем основном ПК.
А интересная идея пришла ко мне спустя какое-то время моей работы в интернет-провайдере. Пришел я туда после работы в студии по разработке сайтов, ещё толком ничего не понимая в устройстве сети провайдера и администрировании серверов. Месяц за месяцем я открывал для себя как в реальности обеспечивается работа интернета, начинал получать какое-то представление о нем, но все это было в основном наощупь: по картинкам, рассказам, статьям и удаленному доступу. Захотелось наглядности.
Я заказал себе сразу несколько orange pi (предпочтя их raspberry, стоящим дороже в разы) и решил изучать сети, ставя их за разными роутерами и коммутаторами и всячески экспериментировать с реальными "железками", ну и в развитие первоначальной идеи добавилось желание научиться строить кластеры и реализовывать отказоустойчивость. МикроПК обеспечивали наглядность: можно физически расставлять устройства на стенде и смотреть на их взаимодействие.
Мысль сделать из этого проект и для других разработчиков, похожих на меня, не заставила себя ждать. Так родился проект backend-university - платформа для изучения горизонтального масштабирования.
Что проект из себя представляет?
Пока в разработке находятся несколько интерактивных сценариев для изучения базовых вещей, от просто деплоя до CI/CD.
Далее пошагово будут реализовываться сценарии по нарастанию сложности, вплоть до монструозных, таких как этот:
Для разворачивания очередного бэкенда, мы будем предоставлять плейбуки ansible и разбирать каждый шаг из них, чтобы можно было пройтись по ним вручную. Ансибл нужен как раз для того, чтобы неинтересное пропускать. В комментариях можно будет обсудить плюсы и минусы, предложить свою точку зрения и задать вопросы.
Ну и главное: все это можно будет развернуть на кластере реальных микроПК, устроив дома впечатляющий мини-датацентр.
Подписывайтесь, если интересно. Так же буду отвечать на вопросы тут в комментах.
Привет, спасибо за материал.
Опубликовал на нашем форуме и канале про одноплатники:
armpc.ru
@ARMLab - Telegram
Кстати, добавляйтесь.
последняя фраза напомнила анек про микрохирурга
у меня знакмоый делал подобное на одной персоналке с помощью виртуалок
Фактически, можно все проделывать на виртуалках и на одной машине, да. Но на нескольких нагляднее и интереснее.
Тем не менее примеры можно будет запускать и так и так, а микропк мы не продаем.