- PVSM.RU - https://www.pvsm.ru -
Работаю разработчиком и довольно часто бывает нужны какие то сервисы локальные под рукой, что то дорогого покупать не хотелось, арендую обычно когда выкатываю к заказчику. Подумал поискать где можно хранить нужные для разработки, хранения и демонстрации сервисы (сайты, API и другое) . Наткнулся я на очень миниатюрное и экономичное решение, это SBC [1]- single-board computer, одноплатные компьютера. Из того что хотелось бы это побольше памяти и ядер (потоков) процессора, а тут бонусом еще и миниатюрность, возможность легко перевозить, работать от power bank в случае необходимости.
В процессе анализа рынка я находил разные решения, начиная от популярных Raspberry Pi 4, до мало известных Khadas Vim4, который я брал летом и продал осенью потому что подумал что цена для него высоковата, в сравнении с другими устройствами.
Требования у меня были примерно такими:
8+Гб оперативной памяти (желательно DDR4, 1666 и выше)
4+ ядра (хотелось бы х86/х64, с arm64 и другими не работал, но готов исследовать)
Наличие подключения для SATA или NVMe дисков.
Возможность собрать несколько устройств в единый класстер.
Возможность легко перевозить и настраивать.
Посмотрев разные варианты мне на глаза в ноябре попался Orange Pi 5 [2] RK3588S, который стал доступен по предзаказу в официальных магазинах производителя. В мои пожелания он укладывался и даже очень.
Детальную спецификацию можно посмотреть на сайте производителя, но тут я укажу основные параметры которые меня подкупили.
SOC — Rockchip RK3588S
CPU — 8-core 64-bit processor, 4xCortex-A76 (2.4GHz) and 4xCortex-A55 (1.8GHz)
RAM — 4GB/8GB/16GB /32GB(LPDDR4x)
GPU — Arm Mali-G610 MP4 + HDMI2.1, up to 8K @60Hz
Drive — M2 M-Key, USB 3.1 x2 и множество других подключений.
Цена: 8781 THB (около 16000 рублей за две штуки с доставкой) - 105$

Заказал 30 ноября и о чудо, 20 декабря пришли две платы Orange Pi 5 16Gb RAM.
Приехал доставщик Fedex c таможенной бумажкой к дому, на месте заплатил +7% Тайский таможенный налог за ввоз. (около 700 бат) . Упаковано было не очень, просто коробка, внутри плата и инструкция, но все доехало в целости.
Почитав инструкцию по использованию [3] нашел как установить операционную систему и запустить. На официальном сайте доступны несколько ОС, я выбрал обычную Linux Ubuntu 22.04 с рабочим столом xfce.
Скачал образ Ubuntu 22 и через balenaEtcher залил образ на SD карту. Процесс там элементарно простой, выбрать образ, выбрать куда, нажать запуск, дождаться окончания и вот флеш карта с системой готова. Далее остается ее вставить в единственные подходящий порт, подключить монитор и питание. У меня есть переносной монитор 17", подключил его по HDMI, вставил кабель USB-C и нажав кнопочку пошли моргать светодиоды. Красный что устройство включено и зеленый когда идет работа.

Работает отлично, отклик на действия быстрый, картинка хорошая, видео 4к воспроизводит и еще есть запас. Попробовал разные офисные программки и побегать по разным сайтам в браузере. Все прекрасно работает. Дальше захотел попробовать сделать стресс тесты и посмотреть насколько идет нагрев.

При нагрузке 4х потоков тепмература повышается до 70 градусов, (при дневной +32) это с учетом небольшого радиатора 25х25мм. С охлаждением я еще что нибудь придумаю, на текущий момент охлаждается довольно быстро, если нагрузка не постоянная. При обычной работе до 10% процессора около +5-8 градусов к комнатной температере. Потребление 5V 0.4-3.7A зависит от нагрузки.
Теперь перейду к основному, для чего я взял, в ОС которую я поставил уже установлен Docker [4] для использования контейнеров (маленьких приложений) , управлять им через CLI командную строку не особо удобно и я поставил Portainer. Ставится просто двумя командамиdocker volume create portainer_data
docker run -d -p 8000:8000 -p 9443:9443 --name portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce:latest
более подробно тут [5]
далее открываем порт https://ip_address:9443/ и видим интерфейс для работы с контейнерами Portainer (при первом входе попросит создать пароль)

Для тех кто знает из чего состоит докер все будет относительно понятно, volume — места для хранения, network — настройки сети, images — образы, containers — непосредственно сами контейнеры, запущенные инстансы образов с настройками и stacks — система конфигураций, для запуска нескольких контейнеров с широким спектром возможностей (например маштабировать — реплецировать сервисы, сайты, API и т.д).
Немного позже я запущу оба одноплатных компьютера и поставлю Kubernetes для возможности запускать приложение на разных компьютерах, что позволит настроить и посмотреть что будет если один из компьютеров выйдет из строя. По идее система должна будет автоматически запустить сайт/сервис на другом доступном компьютере. Но это в следующей статье…

Пока что немного в догонку, я попробовал поставить gitlab-ce, minio S3, postgre, nginx, gitlab-runner c alpine. (docker-compose для gitlab-ce aarch64 [6]) Надо помнить что система на архитектуре aarch64 и не все приложения смогут запуститься. Но мир движется к тому что бы многое стало доступнее. В портейнере есть шаблоны для запуска WordPress, Joomla, Drupal, Rabbit MQ, MySQL, ELK (elasticsearch) и другого.
Мне понравилась работа с minio S3 это можно сказать домашнее облачко для хранения и синхронизации файлов с разных устройств. Домашний S3, очень удобно, пришел домой, телефон и другие устройства подключились к домашней сети и автоматически загрузили свежие фото/видео/документы, поддерживает версионность файлов. Можно настроить что бы и из внешнего интеренета можно было загружать но это надо подумать о безопасности.

Моя следующая цель позапускать через pipeline сборку приложений, для начала .Net Core C# (asp mvc, web api), а потом попробовать собрать игру Unity3d и запустить серверную часть внутри кубера с балансировкой игроков.
Напишите в комментариях, интересна ли вам статья? , что еще вы бы хотели попробовать, проверить, посмотреть? на Orange Pi 5.
Буду рад вашим вопросам, пожеланиям и предложениям.
Автор: Mag Artur
Источник [7]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/c-2/381765
Ссылки в тексте:
[1] SBC : https://en.wikipedia.org/wiki/Single-board_computer
[2] Orange Pi 5: http://www.orangepi.org/html/hardWare/computerAndMicrocontrollers/details/Orange-Pi-5.html
[3] инструкцию по использованию: https://disk.yandex.ru/i/AoRVqW967FFaZg
[4] Docker: https://www.docker.com/
[5] более подробно тут: https://docs.portainer.io/start/install/server/docker/linux
[6] docker-compose для gitlab-ce aarch64: https://gist.github.com/mag1art/5d426c0e1886d6707adc4566507700b6
[7] Источник: https://habr.com/ru/post/708944/?utm_source=habrahabr&utm_medium=rss&utm_campaign=708944
Нажмите здесь для печати.