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

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

В закладки

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Материал опубликован пользователем.
Нажмите кнопку «Написать», чтобы поделиться мнением или рассказать о своём проекте.

Написать
{ "author_name": "Борис Десятский", "author_type": "self", "tags": [], "comments": 4, "likes": 2, "favorites": 3, "is_advertisement": false, "subsite_label": "tribuna", "id": 82371, "is_wide": false, "is_ugc": true, "date": "Fri, 13 Sep 2019 10:54:06 +0300", "is_special": false }
0
{ "id": 82371, "author_id": 8922, "diff_limit": 1000, "urls": {"diff":"\/comments\/82371\/get","add":"\/comments\/82371\/add","edit":"\/comments\/edit","remove":"\/admin\/comments\/remove","pin":"\/admin\/comments\/pin","get4edit":"\/comments\/get4edit","complain":"\/comments\/complain","load_more":"\/comments\/loading\/82371"}, "attach_limit": 2, "max_comment_text_length": 5000, "subsite_id": 199116, "last_count_and_date": null }
4 комментария
Популярные
По порядку
0

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

Ответить
1

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

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

armpc.ru

@ARMLab  - Telegram

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

Ответить
0

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

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

Ответить
0

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

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

Ответить
{ "page_type": "article" }

Прямой эфир

[ { "id": 1, "label": "100%×150_Branding_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox_method": "createAdaptive", "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfl" } } }, { "id": 2, "label": "1200х400", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfn" } } }, { "id": 3, "label": "240х200 _ТГБ_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fizc" } } }, { "id": 4, "label": "Article Branding", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "p1": "cfovx", "p2": "glug" } } }, { "id": 5, "label": "300x500_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfk" } } }, { "id": 6, "label": "1180х250_Interpool_баннер над комментариями_Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "bugf", "p2": "ffyh" } } }, { "id": 7, "label": "Article Footer 100%_desktop_mobile", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjxb" } } }, { "id": 8, "label": "Fullscreen Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjoh" } } }, { "id": 9, "label": "Fullscreen Mobile", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjog" } } }, { "id": 10, "disable": true, "label": "Native Partner Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyb" } } }, { "id": 11, "disable": true, "label": "Native Partner Mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyc" } } }, { "id": 12, "label": "Кнопка в шапке", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "p1": "bscsh", "p2": "fdhx" } } }, { "id": 13, "label": "DM InPage Video PartnerCode", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox_method": "createAdaptive", "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "bugf", "p2": "flvn" } } }, { "id": 14, "label": "Yandex context video banner", "provider": "yandex", "yandex": { "block_id": "VI-223676-0", "render_to": "inpage_VI-223676-0-1104503429", "adfox_url": "//ads.adfox.ru/228129/getCode?pp=h&ps=bugf&p2=fpjw&puid1=&puid2=&puid3=&puid4=&puid8=&puid9=&puid10=&puid21=&puid22=&puid31=&puid32=&puid33=&fmt=1&dl={REFERER}&pr=" } }, { "id": 15, "label": "Баннер в ленте на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byudx", "p2": "ftjf" } } }, { "id": 16, "label": "Кнопка в шапке мобайл", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byzqf", "p2": "ftwx" } } }, { "id": 17, "label": "Stratum Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fzvb" } } }, { "id": 18, "label": "Stratum Mobile", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fzvc" } } }, { "id": 19, "disable": true, "label": "Тизер на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "p1": "cbltd", "p2": "gazs" } } } ] { "page_type": "default" }