Горячее
Лучшее
Свежее
Подписки
Сообщества
Блоги
Эксперты
#Круги добра
Войти
Забыли пароль?
или продолжите с
Создать аккаунт
Я хочу получать рассылки с лучшими постами за неделю
или
Восстановление пароля
Восстановление пароля
Получить код в Telegram
Войти с Яндекс ID Войти через VK ID
Создавая аккаунт, я соглашаюсь с правилами Пикабу и даю согласие на обработку персональных данных.
ПромокодыРаботаКурсыРекламаИгрыПополнение Steam
Пикабу Игры +1000 бесплатных онлайн игр Испытайте захватывающие сражения Второй мировой войны: быстрые бои, огромный арсенал, настройка, танки и стратегия на разнообразных картах!

Warfare 1942 - онлайн шутер

Мультиплеер, Шутер, Мидкорные

Играть

Топ прошлой недели

  • SpongeGod SpongeGod 1 пост
  • Uncleyogurt007 Uncleyogurt007 9 постов
  • ZaTaS ZaTaS 3 поста
Посмотреть весь топ

Лучшие посты недели

Рассылка Пикабу: отправляем самые рейтинговые материалы за 7 дней 🔥

Нажимая кнопку «Подписаться на рассылку», я соглашаюсь с Правилами Пикабу и даю согласие на обработку персональных данных.

Спасибо, что подписались!
Пожалуйста, проверьте почту 😊

Помощь Кодекс Пикабу Команда Пикабу Моб. приложение
Правила соцсети О рекомендациях О компании
Промокоды Биг Гик Промокоды Lamoda Промокоды МВидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня
0 просмотренных постов скрыто
leom405
leom405
6 дней назад
IT-юмор

Ответ на пост «Поиск в последних windows»⁠⁠1

Вот идея
Отличный логотип для Российского аналога Docker.

Ответ на пост «Поиск в последних windows» Юмор, Мемы, Логотип, Идея, Импортозамещение, Docker, Ответ на пост
Юмор Мемы Логотип Идея Импортозамещение Docker Ответ на пост
2
4
snoozletter
snoozletter
18 дней назад

Вашему вниманию, дамы и господа, Affine!⁠⁠

❗️ Вашему вниманию, дамы и господа, Affine! ❗️

Долго искал аналог Notion, ибо они прикрыли доступ из РФ, а пользоваться обходом для доступа к "блокноту" нет желания. Аналог не нашел, но нашел замену.

Affine полноценно не заменяет Notion с его database, но, на мой взгляд, очень хорошая и красивая штука с перспективой на развитие, ибо довольно молода. И database тоже имеются, но пока не такие "развитые", как у Notion, пока только Table Veiw и Kanban View.

Я не рассказываю о его функционале, это можно легко найти на сайте или нагуглить, я рассказываю, как его установить в self hosted версии и не давать доступ к данным незнакомым людям.

🔗 Инструкция доступна по ссылке

🍑 И вот еще что, эта инструкция написана и расшарена в моем локальном Affine. Удобный функционал.

Это статья об установке, а не реклама Affine, я к ним никак не отношусь, я делюсь интересным, на мой взгляд, сервисом.

Пост из моего телеграм канала, за форматирование отвечает бот Pikabu, а не я ☺️


#️⃣#️⃣#️⃣
#блокнот #заметки #notion #красивое #selfhosted #docker #synology #ubuntu #linux

Показать полностью
Кросспостинг Pikabu Publish Bot Блокнот Заметки Notion Красота Docker Synology Ubuntu Linux Текст Telegram (ссылка)
0
0
BJandHoockers
BJandHoockers
21 день назад

Docker vs. Max⁠⁠

Для меня проблема необходимости установки Макса не стоит, но если бы мне кровь из носу он был нужен, то может быть какие-то контейнерные решения помогли бы?

Спросил у гугла и в первых же строчках ответ от их ИИ:

Docker для Android позволяет запускать контейнеризованные приложения на устройствах Android, обеспечивая изолированную среду для разработки и тестирования. Это достигается за счет использования образов Docker, которые включают все необходимое для работы приложения. Существуют специальные образы Docker.

Ссылок вставлять не буду, кому интересно - найдет. Для iOs скорее всего тоже всё давно есть.

[моё] Инженер Программа Docker Android Текст
11
10
DmitriitheFals
1 месяц назад
Лига Сисадминов
Серия Кудахтеры: Proxmox GmbH

Переход на Proxmox (Proxmox GmbH, Vienna, Austria) с Hyper-V by Microsoft и VMware by Broadcom. Часть вторая из многих⁠⁠

Для лиги лени: общеизвестная фигня

Часть 1: тут

Про теорию вы уже читали, теперь к практике.

Если вы учитесь в средней школе, то для Proxmox вам достаточно одного, отдельного, загрузочного диска в домашнем ПК. Можно даже без этого, сделать двойной загрузчик и все.

Если вы работаете, то вам понадобятся:

WinSCP или SCP. Чтобы заливать всякое пофайлово. Можно и без него, но с ним проще.
Git. Чтобы хранить в нем код.
Nexus. Только для того, чтобы держать там repo proxy. Но не совсем.
Ansible. Чтобы исполнять код.
Причем, все это нужно настроить на как минимум вход по сертификату, а желательно привязать и к AD, и к любой системе сбора и анализа логов. И не забывать обновляться – в Linux, даже в самом по себе, и в окружающем софте теперь находят уязвимости чаще, чем в Microsoft.

C Git все было просто - bitnami/git , но уже вовсе и не так просто – но вы же читали Upcoming changes to the Bitnami catalog (effective August 28th, 2025).

С Ansible уже не все так просто. Можно начинать и без него, но хотя бы shell script вам понадобится. Почему? Потому что в Proxmox до сих пор нет встроенного резервного копирования собственной конфигурации. В ESXi есть. В vCenter есть и резервное копирование конфигурации, и отдельно профили хостов.
В Hyper-V как бы есть (но). Тут нет.  Скрипты для резервного копирования конфигурации Proxmox есть, но зачем их использовать, если можно развернуть с ноля.

Из знания теории вам точно понадобятся:
понимание  что такое и как работает VLAN.
Как работает TCP, iSCSI,DNS и FCP.
Что такое SCSI MPIO, что такое round-robin в MPIO.
Сети и дисковая подсистема, это очень больные места у новичков.
Конечно, нужны базовые знания по Linux – начиная от того, что такое ext4 и чем это отличается от LVM, ZFS и BTRFS . И что из этого вам нужно, а что нет.
Бонусом желательно понимать, что такое MS AD и Kerberos. Потому что авторизация на основе SSH сертификатов, открытого и закрытого ключа, это хорошо, и это база из баз, но Kerberos лучше. Когда освоите MS AD / Kerberos, сможете перейти на keycloak.

Окей, поехали.

Для начала, если вы, как я, генерировали SSH пару через Puttygen, то не забудьте что под Windows ключ нужно копировать вручную, или выдергивать со сменой формата из public, и отдельно отредактировать /etc/ssh/sshd_config.
Ну, если вдруг забыли. Я забыл.

Потом, если вам скучно, как мне, то сделайте
fio --randrepeat=1 --ioengine=libaio --direct=1 --gtod_reduce=1 --name=fiotest --filename=testfio --bs=4k --iodepth=64 --size=8G --readwrite=randrw --rwmixread=75

Заодно посмотриту, как hyper-v работает с дисками изнутри Linux. У меня вышло 270:90, результат ни о чем, при параметре size=8G, меньше размера оперативной памяти.

Git в Docker. Тут все просто, открываем Install using the apt repository и делаем хорошо.
Открываем Install GitLab in a Docker container и делаем. До просветления. В том числе до Configure the external URL for GitLab. И так вплоть до
docker exec -it gitlab /bin/bash
cat /etc/gitlab/initial_root_password

За чаем можно и нужно почитать про Sonatype Nexus Repository. Скучное, но полезное чтение.
Еще более скучное, чем Sonatype Nexus Repository System Requirements.
Или можно не читать,
mkdir -p /srv/nexus-data
chown -R 200 /srv/nexus-data

Про chown вообще не очевидно было, в документации и почти во всех примерах не нашел пункта про chown, а без него грусть, тоска, и невозможность создать файл, что видно хоть через
docker compose logs
хоть через
docker logs (ContainerName), если вы делаете через docker up

Причем docker exec -it nexus3 /bin/bash
не помогает понять, что там не так.

Потом переходим к чтению документации по Ansible, Installing Ansible on specific operating systems.
Или без чтения,
apt-get install ansible
и что в репозиторий насовали, то насовали.

Литература
Introduction to Ansible Builder
Running Ansible Server in Docker Container
Chapter 9. Configuring RAID logical volumes  by using logical volume manager (LVM)
DockerCheatSheet
docker-nginx-nexus-repository
Docker Compose Quickstart
Установка Sonatype Nexus OSS v3 в контейнере Docker
Установка и настройка Nexus Sonatype используя подход infrastructure as code
Install Sonatype Nexus using Docker Compose | Setup Nexus Repository Manager for Node.js Project
Mounting volume from host to docker image of nexus
Deploy Sonatype Nexus Repository OSS v3 with Docker & Traefik v2
Установка приватного Docker репозитория

PS. У меня вышло так: (с хардкодом, не по примеру из руководства)
gitl/docker-compose.yml

services:
gitlab:
image: gitlab/gitlab-ce:latest
container_name: gitlab
restart: always
hostname: 'gitlab.example.com'

environment:
GITLAB_OMNIBUS_CONFIG: 
# Add any other gitlab.rb configuration here, each on its own line
external_url 'https://gitlab.example.com'

ports:
- '80:80'
- '443:443'
- '22:22'

volumes:
- '/srv/gitlab/config:/etc/gitlab'
- '/srv/gitlab/logs:/var/log/gitlab'
- '/srv/gitlab/data:/var/opt/gitlab'

shm_size: '256m'

nexus/docker-compose.yml

services:
nexus-repository:
image: sonatype/nexus3
container_name: nexus3
restart: always
hostname: 'nexus3.local.tw'

ports:
- '8081:8081'

volumes:
- '/srv/nexus-data:/nexus-data'

Показать полностью
[моё] IT Опыт Docker Автоматизация Nexus Текст Длиннопост
9
11
ProgTime
ProgTime
1 месяц назад
Лига программистов

Обновления Telegram-бота для технической поддержки: API для внешних источников и новые возможности⁠⁠

Всем привет! Вы просили - я сделал! Я выпустил релиз №3 для бота технической поддержки на GitHub.

Обновления Telegram-бота для технической поддержки: API для внешних источников и новые возможности Программирование, Чат-бот, Стартап, PHP, Laravel, Docker, IT, Open Source, Telegram, Длиннопост

Прошло уже несколько месяцев с последнего обновления, и бот за это время получил вдвое больше звёзд на GitHub, что очень мотивирует продолжать развитие и поддержку проекта.

За последний месяц ко мне поступило несколько запросов расширить функционал бота за счёт подключения новых источников трафика. Изначально я думал добавить интеграции с популярными мессенджерами, такими как WhatsApp или Viber. Но в итоге решил, что в первую очередь стоит реализовать API, чтобы вы сами могли подключать любые свои источники.

В этой статье расскажу о новом API для подключения внешних источников — живых чатов, CRM и других систем, а также о других важных обновлениях и планах на будущее.

Предисловие

Для тех, кто не знаком с проектом: TG Support Bot — это бот на Laravel, который объединяет клиентов и менеджеров через Telegram и ВКонтакте, скрывая личные аккаунты и маршрутизируя общение через темы в Telegram-группе.

https://github.com/prog-time/tg-support-bot

Пользователь пишет боту, сообщение автоматически пересылается в выделенную тему для менеджеров, а их ответы возвращаются обратно от имени бота — так сохраняется приватность и удобство общения.

Буду благодарен, если вы поддержите мой проект ⭐ на GitHub!

Руководство по установки

Я записал видео-инструкцию для установки данного решения на VPS с предустановленным Docker Compose.

Youtube - https://youtu.be/yNiNtFWOF2w

Rutube - https://rutube.ru/video/bdd0cc5ab4e13530fd7e0c2413931211/

ВК Видео - https://vkvideo.ru/video-141526561_456239132

Обратная связь

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

https://t.me/pt_tg_support

Также сюда будут публиковаться новости по выпуску обновлений.

API — не альтернатива мессенджерам, а универсальный инструмент

Хочу сразу уточнить: разработка API не заменяет расширение списка поддерживаемых мессенджеров и соцсетей. Я продолжаю работать над интеграциями с ними и буду добавлять новые источники трафика.

Однако API необходим для подключения кастомных источников — живых чатов, CRM-систем, форм на сайте и других нестандартных каналов.

Обновления Telegram-бота для технической поддержки: API для внешних источников и новые возможности Программирование, Чат-бот, Стартап, PHP, Laravel, Docker, IT, Open Source, Telegram, Длиннопост

Что входит в первую версию API?

В API реализованы базовые маршруты для работы с сообщениями:

  • GET api/external/messages — получение списка сообщений с возможностью фильтрации

  • GET api/external/messages/{id_message} — получение конкретного сообщения по ID

  • POST api/external/messages — отправка нового сообщения

  • PUT api/external/messages — изменение существующего сообщения

  • DELETE api/external/messages — удаление сообщения

Для работы с API необходимо создать пользователя и сгенерировать для него API-токен. Рекомендую создавать отдельного пользователя под каждый источник.

Создать пользователя и токен можно командой:

php artisan app:generate-token {название_источника}

Также нужно прикрепить к источнику ресурс, куда будут поступать сообщения от обработчика.

Как это работает?

Процесс довольно простой:

  1. На вашей стороне генерируется уникальный ID пользователя — это может быть хэш ключ или любой уникальный идентификатор.

  2. При отправке сообщения в тело запроса передаются: ID пользователя, код источника, текст сообщения и, при необходимости, файлы.

  3. Система идентифицирует пользователя или создаёт новую запись, если это первое сообщение от него.

  4. Сообщение из вашего источника направляется в Telegram-группу поддержки.

Менеджеры в группе, как и раньше, могут отвечать любыми типами сообщений. Текст отправляется как текст, остальные — конвертируются в файлы. В названии темы указывается ID клиента и источник сообщения.

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

Подробная инструкция по работе с API уже есть в разделе wiki на GitHub.

Добавлены новые консольные команды

Я добавил несколько полезных консольных команд.

php artisan telegram:set-webhook

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

php artisan app:generate-token

Команда, которая генерирует токен для подключения к API вашего бота. Вы можете подключить неограниченное количество источников графика и для каждого создать уникальный токен.

Swagger для API

Для API был разработан генератор swagger документа.

Обновления Telegram-бота для технической поддержки: API для внешних источников и новые возможности Программирование, Чат-бот, Стартап, PHP, Laravel, Docker, IT, Open Source, Telegram, Длиннопост

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

Принцип прост! Вы описываете документацию по частям в resources/swagger. Важно граматно подходить к именованию файлов и компонентов.

После создания структуры, вы запускаете artisan команду и документация собирается в единый документ.

php artisan swagger:generate

На выходе вы получаете 2 версии документации

  1. В формате json, которую можно использовать для нейросетей или программ

  2. В формате Swagger-ui для просмотра в браузере

Мелкие доработки

  • Улучшено логирование ошибок — все логи теперь доступны в Grafana;

  • Исправил баги, о которых вы писали в Issues;

  • Добавил контейнер redisinsight для просмотра Redis данных через WEB интерфейс;

  • Переписал инструкции для подключения и настройки бота;

Спасибо всем за поддержку и обратную связь! Продолжаю работать над улучшениями и буду рад новым предложениям и вопросам.

Если нужно, могу помочь с примерами использования API или подсказать, как правильно настроить интеграцию.

Показать полностью 2
[моё] Программирование Чат-бот Стартап PHP Laravel Docker IT Open Source Telegram Длиннопост
0
15
timoil94
1 месяц назад

Смотрим фильмы через торрент на Apple TV⁠⁠

Что потребуется: Любой домашний сервер или ПК с докером, Apple TV и приложение Luxo Video Player. На всё это уйдёт 10 минут времени. Вся информация предоставлена для образовательных целях.

Что получится в итоге? Личный сервер Lampa + TorrServe, на приставке смотрим фильмы без загрузки. Как это будет выглядеть:

Смотрим фильмы через торрент на Apple TV Docker, Apple, Торрент, Фильмы, Онлайн-кинотеатр, Synology, Инструкция, Личный опыт, Длиннопост

Фото из проектора

В моём случае будем использовать NAS xpenology.

  1. Ставим Container Manager

Смотрим фильмы через торрент на Apple TV Docker, Apple, Торрент, Фильмы, Онлайн-кинотеатр, Synology, Инструкция, Личный опыт, Длиннопост

2. Открываем установленный Container Manager в разделе "Реестр" пишем immisterio/lampac. Далее выбираем latest и загрузить.

Смотрим фильмы через торрент на Apple TV Docker, Apple, Торрент, Фильмы, Онлайн-кинотеатр, Synology, Инструкция, Личный опыт, Длиннопост

3. Переходим в раздел "Образ", выбираем его, нажимаем "Запустить".

Смотрим фильмы через торрент на Apple TV Docker, Apple, Торрент, Фильмы, Онлайн-кинотеатр, Synology, Инструкция, Личный опыт, Длиннопост

4. Здесь ничего не трогаем, нажимаем "Далее"

Смотрим фильмы через торрент на Apple TV Docker, Apple, Торрент, Фильмы, Онлайн-кинотеатр, Synology, Инструкция, Личный опыт, Длиннопост

5. Добавляем порт 9118, больше ничего не трогаем. Нажимаем "Далее".

Смотрим фильмы через торрент на Apple TV Docker, Apple, Торрент, Фильмы, Онлайн-кинотеатр, Synology, Инструкция, Личный опыт, Длиннопост

6. Нажимаем "Выполнено".

Смотрим фильмы через торрент на Apple TV Docker, Apple, Торрент, Фильмы, Онлайн-кинотеатр, Synology, Инструкция, Личный опыт, Длиннопост

7. Переходим в раздел "Контейнер" и здесь появится созданный контейнер.

Смотрим фильмы через торрент на Apple TV Docker, Apple, Торрент, Фильмы, Онлайн-кинотеатр, Synology, Инструкция, Личный опыт, Длиннопост

На этом можно закончить, не будем углубляться в настройки для красноглазиков.

8. Открываем браузер (ip вашего сервера), например http://192.168.1.111:9118 появится окно первого запуска. Нажимаем "Изменить настройки".

Смотрим фильмы через торрент на Apple TV Docker, Apple, Торрент, Фильмы, Онлайн-кинотеатр, Synology, Инструкция, Личный опыт, Длиннопост

Для друга есть галочка

9. Теперь берём клубничный смузи и переходим к этапу настройки на Apple TV. Открываем стор и пишем lux. Выбираем приложение с рыбкой.

Смотрим фильмы через торрент на Apple TV Docker, Apple, Торрент, Фильмы, Онлайн-кинотеатр, Synology, Инструкция, Личный опыт, Длиннопост

10. При запуске появится это, подтверждаем.

Смотрим фильмы через торрент на Apple TV Docker, Apple, Торрент, Фильмы, Онлайн-кинотеатр, Synology, Инструкция, Личный опыт, Длиннопост

11. Здесь вводим наш адрес сервера, например: http://192.168.1.111:9118

Смотрим фильмы через торрент на Apple TV Docker, Apple, Торрент, Фильмы, Онлайн-кинотеатр, Synology, Инструкция, Личный опыт, Длиннопост

Мой адрес скрыт т.к сделал через домен.

12. Попадаем в главный экран.

Смотрим фильмы через торрент на Apple TV Docker, Apple, Торрент, Фильмы, Онлайн-кинотеатр, Synology, Инструкция, Личный опыт, Длиннопост

13. Выбираем любой фильм, нажимаем "Смотреть"

Смотрим фильмы через торрент на Apple TV Docker, Apple, Торрент, Фильмы, Онлайн-кинотеатр, Synology, Инструкция, Личный опыт, Длиннопост

14. Здесь "Торренты"

Смотрим фильмы через торрент на Apple TV Docker, Apple, Торрент, Фильмы, Онлайн-кинотеатр, Synology, Инструкция, Личный опыт, Длиннопост

15. Выбираем раздачу

Смотрим фильмы через торрент на Apple TV Docker, Apple, Торрент, Фильмы, Онлайн-кинотеатр, Synology, Инструкция, Личный опыт, Длиннопост

16. Подтверждаем

Смотрим фильмы через торрент на Apple TV Docker, Apple, Торрент, Фильмы, Онлайн-кинотеатр, Synology, Инструкция, Личный опыт, Длиннопост

17. Готово, наслаждаемся фильмом.

Смотрим фильмы через торрент на Apple TV Docker, Apple, Торрент, Фильмы, Онлайн-кинотеатр, Synology, Инструкция, Личный опыт, Длиннопост

Настроить TorrServe можно через http://192.168.1.111:9118/ts например, увеличить кеш.

Подобным образом можно запустить докер контейнер на ПК. Ничего настраивать не нужно. Всё работает бесплатно без СМС и рекламы.

P.S. Да, я знаю про андроид приставки и что там можно это всё запустить и держать локально, по стоимости Apple TV их можно купить ящик. Но есть причины почему я избавился от андроид приставки, а это невозможно в них вывести звук на 2 пары блютус наушников или выводить нормальную HDR картинку без шаманств.

Показать полностью 17
[моё] Docker Apple Торрент Фильмы Онлайн-кинотеатр Synology Инструкция Личный опыт Длиннопост
4
50
DmitriitheFals
4 месяца назад
Лига Сисадминов
Серия Кудахтеры

Про СПО сектантов, и что с этим делать. Вступление к пособию по карго-культам в ИТ⁠⁠

Для лиги лени: Ничего не делать. Дурака учить — только портить.

Лет, наверное, 10-15 назад, давно – может в 2010, может в 2015, где-то в далекой-далекой галактике происходила очередная битва. Эпические сказания доносят до нас, хотя и в несколько нудноватой форме, величественную картину колоссальных сражений на пустом месте.
Остались с той поры лишь схема бугуртовоза, да Шпаргалка по общению с СПО-сектантами.

С тех пор прошли годы, и время все расставило на свои места.

Microsoft Windows на десктопе живее всех живых, это ужасно раздражает тех, кто с 2000 обещает «год победы Linux на десктопе». Сами MS активно вкладываются в Linux, давно затащив туда .Net и powershell.
Wine живее всех живых, но работает ой как не всегда. Заявления «Да мы! Да сейчас! Как перепишем» - «импортозамещение без глянца» показывает, что никто ничего переписывать не собирался.
Зато теперь какие-то альтернативно одаренные, причем почти исключительно в русскоязычном сообществе, забыли, что GNU's Not UNIX. Деградация части русскоязычного сообщества зашла так далеко, что люди не стесняются писать в резюме «линукс админ», но при этом не знают, что такое GNU.

Про СПО сектантов, и что с этим делать. Вступление к пособию по карго-культам в ИТ Другой мир, Контейнер, Контейнеровозы, Docker, Windows, IT, Длиннопост

GNU's Not UNIX.

Что касается Unix и FreeBSD, то они где-то, безусловно, есть. В виде той же доживающей HP-UX 11i v3 – EoL 31 декабря 2025 года.

Что же касается фирм, то:
Microsoft разработала свой Azure Linux, и переезжает на него везде, где можно, вместе умершего, и вернувшегося с клатбища дистрибутивов, Centos.
Linux на телефоне существует в каком-то отдельном закутке, даже Huawei не стал ее тащить. HarmonyOS NEXT. – вообще не Linux, хотя openEuler еще как-то Linux, хотя LiteOS вроде и не Linux.
Red Hat был куплен IBM, теперь в эту нишу лезут корейцы с Naver, с их сборкой из OpenELA.
Если посмотреть на List of Linux distributions, то окажется, что осталось не так много веток:
Debian-based, в том числе Ubuntu-based,
«Импортозамещателям» на заметку. Торговой маркой Debian владеет фирма SPI (Software in the Public Interest ), зарегистрированная в штате Нью-Йорк, США).

Red Hat / RHEL / SUSE / openSUSE, Fedora,
ALT Linux,
И всякие «полезные в ограниченных сценариях» - DD-WRT, Alpine.

Само ядро Linux используется много где, с переменным успехом. Windows в схожих сценариях тоже вполне используется, в прошлом году я летал в Китай – там на турникетах в аэропорту стоит Windows 7 (embedded).
Отдельно отмечу кривые руки импортозаместителей, у которых нет представления о том, что под Linux не пишут код так же криво, как под Windows. Но они умудряются. Как следствие, все, покушавшие большой ложкой «импортозамещения», плачут, что больно каждый раз по новому.

За годы развития ряд продуктов, который должен был бороться со злом, примкнул к нему.

Часть продуктов просто остановилась в развитии. Багфикс и добавление еще одного слоя самоотвердевающего эко-био-френдли клея просто добавляют еще один слой клея.

Весь этот горький катаклизм, который я тут наблюдаю, представляет собой итог завершенного процесса доедания Злыми Корпоратами – маленького, но такого свободного сообщества. Движение есть, результат – прибыль корпораций растет, Злая Корпорация, Добрая Корпорация, и Еще Одна Корпорация – продают свободный продукт и его поддержку за дорого, и за очень дорого.

Итогом движения стало появление Linux эникея. Да, Linux эникей может поставить Ubuntu GUI, и даже запустить 1 (один) контейнер по руководству. Не сложнее, чем на телевизоре канал переключить, тем более что на телевизоре тот же Android, который, когда надо, Linux.

Следующая ветка развития ИТ, извращенная хитрым планом Архитектора Судеб – это devops.

DevOps is the integration and automation of the software development and information technology operations.

Про СПО сектантов, и что с этим делать. Вступление к пособию по карго-культам в ИТ Другой мир, Контейнер, Контейнеровозы, Docker, Windows, IT, Длиннопост

DevOps is the integration and automation of the software development and information technology operations.

Изначально идея была понятна. Сложность ПО выросла, стало критично убирать самые большие баги до продакшена, и выделять не основную задачу, deploy – на отдельную ветку специалистов.
Но, работать с багами дорого. Та же VMware, даже пока была VMware, решила, что денег нет, поэтому будем тестировать на пользователях. Тащить непроверенное в прод, экономя на юнит тестах, автотестах, интеграции и ручном тестировании, это не российская традиция. Последними ударно выступили CrowdStrike, хотя и Microsoft выступает раз в квартал. Intel выступает так, что один финн постоянно орет, как потерпевший. Что в 2020, что в 2022, что в 2024. Как будто он что-то понимает.

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

Не тут то было. Дружба это магия, а несанкционированная магия это ересь.

Про СПО сектантов, и что с этим делать. Вступление к пособию по карго-культам в ИТ Другой мир, Контейнер, Контейнеровозы, Docker, Windows, IT, Длиннопост

Магия - это ересь

Вся идеология девопс сравнительно быстро выродилась в массах в переименование middle Linux-администраторов, которых привлекали к чему угодно. Ansible, terraform, zabbix, ELK – devops. В последние лет, наверное, 5, тенденция называть любого Linux админа – девопсом, приняла в мире, да и в РФ, какие-то ужасающие масштабы. Конечно, этому способствовали и цыганские курсы

Про СПО сектантов, и что с этим делать. Вступление к пособию по карго-культам в ИТ Другой мир, Контейнер, Контейнеровозы, Docker, Windows, IT, Длиннопост

цыганские курсы по домикам на колесах

Следующим карго-культом, пришедшим в массы из мира весьма кровавенького энтерпрайза, стали микросервисы

Первый раз я эти микросервисы и конвейер – недоброкер видел еще в 2005 году, и тогда это называлось «костыли на костылях».

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

Про СПО сектантов, и что с этим делать. Вступление к пособию по карго-культам в ИТ Другой мир, Контейнер, Контейнеровозы, Docker, Windows, IT, Длиннопост

 

Возникает «новая свежая» идея: давайте сделаем Unix-way, много маленьких сервисов, каждый из которых выполняет одну маленькую задачу. Допустим, обслуживает десяток запросов от пользователей. И второй экземпляр сервиса обслуживает еще десяток. И все это за отказоустойчивым балансером. И все это утыкается в базу данных, которая 10 лет подряд дописывалась до того, чтобы ее планировщик оптимизировал кривые планы запросов, и мог сам балансировать очереди, соблюдая при этом ACID (Atomicity, Consistency, Isolation, Durability). Остались три мелочи: скорость, надежность балансировки, надежность и доступность базы данных

В некоторых сценариях не так важно, как быстро будет обработан запрос внутри системы, за 0.01 или за 0.05 секунды, потому что до потребителя ответ будет идти 0.1 -0.2 секунды. Как от меня до части облака в соседнем регионе.
В некоторых сценариях наоборот, рост с 0.01 до 0.02 секунд на каждом этапе обработки, замедляет работу в сотни раз. Почему так, спросите вы? Да потому, простая математика.
Допустим, у вас приложение формировало сетевой запрос к размещенной на этом же сервере базе данных. Скорость обработки, плюс минус, находится в том же порядке скоростей, что и обработка драйвера в оперативной памяти. Это 0.500 – 0.600 наносекунд, см. CAS latency .
Пользуясь случаем, в очередной раз хочу переделать привет любителям душить одноглазую змею при слове «импортозамещение на 350 нм литографе». Память SDRAM имеет Column address strobe latency в 10 ns, DDR SDRAM – в 3000-5000. DDR5 SDRAM – от 0.208 ns, разница не просто на порядки, а на десятки десятичных порядков. Потому что расстояние 30 нанометров волна проходит быстрее, чем 350, а ячейка размерами 90 на 90 нанометров заполняется в разы быстрее, чем ячейка 1050 на 1050 нанометров. Не только поэтому, конечно, но физика имеет значение. Хотя первое слово все равно приезжало через 22, а сейчас через 15, но восьмое слово приезжает не за 75, а за 11-15 ns.

Если сервис базы данных  уезжает на соседний хост, то и это не беда, но запрос теперь выполняется не 1-2 наносекунды, а на 500 – 600 наносекунд дольше, но все равно выполняется асинхронно (если приложение поддерживает асинхронность), и быстро. И то, на новых аристах обещают 3.95ns per hop и 150ns l3.  

И тут кто-то, как начальник того испанца из ролика (Хуан Хойя Борха) говорит: микросервисы.

Про СПО сектантов, и что с этим делать. Вступление к пособию по карго-культам в ИТ Другой мир, Контейнер, Контейнеровозы, Docker, Windows, IT, Длиннопост

Все делим, кладем и готово. Про задержки никто не думает, зачастую со словами «ну какие задержки, у нас 10G сеть, а не хватит 10G – соберем LAG и включим Jumbo frame».
Думать головой никто даже не пытается, путая пропускную способность и задержки. Теоретически, это связанные вещи, если говорить про передачу одного пакета в вакууме. Один пакет отправили, подтверждение получили, еще один пакет отправили.
Только это уже 25 лет не так. Уже 25 лет в TCP есть и TCP window scale, и TCP Retransmissions.
Можно очень бодро наступить на детские грабли того вида, что вносимая сетевая задержка при разнесении хостов, и даже вносимая задержка по перекладыванию данных в сетевой стек и обратно, вместо обработки их внутри алгоритмов и структур данных монолитного приложения, вносит задержки, делающие приложение неработоспособным, причем с нелинейным падением производительности. Нелинейное падение – это когда тестер нагружает приложение 100 потоками данных, и приложение работает за, условно, не более 0.1 секунды за поток. В боевых условиях набору микросервисов дают обработать 1000 потоков, и оно должно было бы работать за, хотя бы, 0.2 секунды, а оно работает за 2 секунды, и это очень много. Достаточно чтобы с треском весь набор упал. Потому что некоторые запросы, как оказалось, не асинхронные, а очень даже последовательные, и, пока 100 запросов работали в тесте по 0.01 секунды, было ок – потому что тестовая база и тестовый контейнер были в пределах одного сервера, или хотя бы одной стойки, и одного L2 сегмента. Как реальная база и контейнер уехали, хорошо если в пределы хотя бы одного ЦОД и пары соседних стоек. Но что будет, если у вас не просто метро, а очень длинное метро, или даже не метро, а MPLS, и внутри его еще и VPN ? А запросы, напомню, последовательные?
Отдельно надо рассматривать работу шины \ брокера, вносимые ей задержки и вообще применимость.
Иногда ок. Иногда сойдет. Иногда не годится.

В какой-то степени, иногда, это нивелируется тем, что и память стала работать быстрее, и сетевые карты стали умнее (и глючнее), и SSD перешли от SAS к NVME, и SSD перестали так ужасно тормозить, по сравнению с 3D XPoint (Optane). Иногда наоборот, иногда умелые ручки покупают самые дешевые домашние SSD, с их копеечными буферами, отсутствием защиты по питанию, и прошивкой без постоянной сборки мусора. Втыкают это все через Proxmox, в Proxmox через RAID, и получают, рано или поздно, отсутствие Background garbage collection и Write amplification такого приятного состояния, что око ужаса не просто сжимается, а может перекусить лом.

Проблема, как и 15-20 лет назад, не в девопс, линукс, опенсорс итд, а в том , что архитекторы часто стали забывать, что внизу, под фрейворками и контейнерами, все равно находится железо, и у него есть физические пределы. Некоторые вещи из физического мира все равно надо учитывать, хоть в облаке, хоть обвешавших NVME Kioxa Gen 666. И особенно, если у вас практикуется кроилово везде.

Отдельно надо упомянуть культы.
Культ сайдкаров.

Культ недавно запретили, но он возродился с новым именем. Тут же надо вспомнить секту свидетелей безопасного секса с микросегментацией. Не знаю, кто из четверки за это отвечает. То есть, знаю. Эту тетю (и, в то же время, дядю), с мечом от гномов, и своим таким же, кто-то из отцов основателей в Химках видал. В теории то хорошо, красиво, безопасно.
Потом, правда, крики боли – кококо, кокого из-за истио взлетели задержки, и все встало колом.

Про СПО сектантов, и что с этим делать. Вступление к пособию по карго-культам в ИТ Другой мир, Контейнер, Контейнеровозы, Docker, Windows, IT, Длиннопост

Культ Грефневой.
Ничего не буду писать.

Культ Шины.
Хорошо разобран на русском на примере Platfrom V Synapse.

Культ Кролика Убийцы, Rabbit of Caerbannog.

Про СПО сектантов, и что с этим делать. Вступление к пособию по карго-культам в ИТ Другой мир, Контейнер, Контейнеровозы, Docker, Windows, IT, Длиннопост

Вы знаете что делать – досчитать до трех.
Допреже всего Пресвятую Чеку извлечь долженствует. Опосля же того, сочти до трех, не более и не менее. Три есть цифирь, до коей счесть потребно, и сочтенья твои суть три. До четырех счесть не моги, паче же до двух, опричь токмо коли продолжишь до трех считать. О пяти и речи быть не может. Аще же достигнешь ты цифири три, что есть и пребудет третьею цифирью.
Книга Вооружения, часть четвертая, стих с 16 по 20.
Then did he raise on high the Holy Hand Grenade of Antioch, saying, "Bless this, O Lord, that with it thou mayst blow thine enemies to tiny bits, in thy mercy." And the people did rejoice and did feast upon the lambs and toads and tree-sloths and fruit-bats and orangutans and breakfast cereals ... Now did the Lord say, "First thou pullest the Holy Pin. Then thou must count to three. Three shall be the number of the counting and the number of the counting shall be three. Four shalt thou not count, neither shalt thou count two, excepting that thou then proceedeth to three. Five is right out. Once the number three, being the number of the counting, be reached, then lobbest thou the Holy Hand Grenade in the direction of thine foe, who, being naughty in my sight, shall snuff it."
A reading from the Book of Armaments, Chapter 4, Verses 16 to 20

Культ Запихивания Невпихуемого Statefull Монолита.
Культ настолько отвратителен, что про него ничего не будет в этой истории. Просто знайте, что он есть. Отличительный знак сторонников культа – медведь, собирающий грибы в лису.

Финал, то есть призыв.

Соблюдайте умеренность. Не надо все рубить на куски с криками «контейнеры для микросервисов, ноды к трону кубера».

Показать полностью 8
[моё] Другой мир Контейнер Контейнеровозы Docker Windows IT Длиннопост
15
6
zwuck
5 месяцев назад

Разработка telegram мини-приложения в 2025 или как я дошел до жизни такой. Часть тре⁠⁠

Штош, продолжаем эпопею.

В предыдущих частях Telegram мини-приложения в 2025 или как я дошел до жизни такой. Часть уно  и Разработка telegram мини-приложения в 2025 или как я дошел до жизни такой. Часть до  я поведал вам, мои дорогие читатели и подписчики, о выборе направления разработки и инструментах для решения поставленных задач.

Что у нас теперь есть?

Приложение запускается на моем собственном компьютере и я могу писать сам себе какой я бесподобный. Но в этом ли смысл моего приложения, так ли я его хотел использовать? Хмм…

Разработка telegram мини-приложения в 2025 или как я дошел до жизни такой. Часть тре Telegram, Веб-разработка, Программирование, IT, Docker, VPS, Длиннопост

Хмм...

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

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

  • Обеспечить доступ к приложению на моем компьютере из внешней сети (есть несколько интересных способов решения данной задачи, если будет интересно, напишу и о них);

  • Арендовать VPS (Virtual Private Server ака виртуальный приватный сервер) у любого хостинг провайдера.

Я выбрал второй вариант. Что такое VPS? Если совсем кратко это просто тупо компьютер, доступный из интернета и обеспечением которого занимается хостинг провайдер. Управление VPS у меня реализовано через консоль и выглядит следующим образом.

Разработка telegram мини-приложения в 2025 или как я дошел до жизни такой. Часть тре Telegram, Веб-разработка, Программирование, IT, Docker, VPS, Длиннопост

Я кулхацкер так та

Вы видите все составные части моего приложения:

  • В папке backend находятся все данные и файлы, связанные с «основным» бэкендом;

  • Файл docker-compose.yml отвечает за обеспечение взаимодействия между докер контейнерами, о которых я расскажу далее;

  • В папке frontend находятся все данные и файлы, связанные с фронтендом;

  • В папке nginx находятся все данные и файлы, связанные с инструментом nginx, который реализует веб-сервер и почтовый прокси-сервер;

  • В папке tgbot находятся все данные и файлы, реализующие функционал взаимодействия с ботом в тг.


    Как эти папки с файлами оказались на VPS? Есть три способа, о которых я знаю:

  • Через консоль по SFTP (это транспортный протокол такой) просто тупо копировать все данные;

  • Через инструмент FileZilla, который реализует SFTP, но с удобным графическим интерфейсом;

  • Через git – когда вы заливаете весь ваш код на github или gitlab и уже оттуда скачиваете все на VPS.

Я использую 2 и 3 варианты, так как уже не могу жить без git (это как Ватсон, который без трубки заснуть уже не мог) и некоторые файлы с паролями/секретами, docker-compose, dockerfile копирую через FileZilla.

Теперь все необходимые файлы находятся на VPS и нам необходимо все это вместе запустить. Настало время рассказать про докер, великий и ужасный.

Разработка telegram мини-приложения в 2025 или как я дошел до жизни такой. Часть тре Telegram, Веб-разработка, Программирование, IT, Docker, VPS, Длиннопост

Кхм…примерно так все у меня и происходит

Не буду сильно углубляться в особенности докер и docker-compose, потому как на ютубе полно видео, в которых достаточно доходчиво объясняется что это и для чего это. Я лишь расскажу вам о том, какие проблемы позволил мне решить докер.

  • Установка базы данных в пару строчек в docker-compose.yml;

  • Установка nginx в пару строчек в dockerfile и docker-compose.yml;

  • Запуск программ и поддержка их в запущенном состоянии. Если руками через консоль запускать программы, то при закрытии консоли, они (программы) тоже закроются (не все).

После правильной сборки и запуска всех контейнеров, через docker-compose.yml, вы можете увидеть такую картинку и обрадоваться, что ничего не отвалилось и все контейнеры запущены и работают. Если совсем тезисно, то каждая строчка это контейнер, в котором запущена всего лишь одна составная часть приложения (nginx для фронтенда, основной бэкенд, база данных и бэкенд для бота).

Разработка telegram мини-приложения в 2025 или как я дошел до жизни такой. Часть тре Telegram, Веб-разработка, Программирование, IT, Docker, VPS, Длиннопост

Докер запущен и готов служить

Теперь ваше приложение доступно по ip адресу в браузере, который получил VPS. И тут у вас может возникнуть справедливый вопрос «А где здесь telegram, если приложение запускается в браузере?». Абсолютно верное замечание и ответ достаточно прост - telegram мини-приложение это сайт, который просто открывается в отдельном окне самого telegram и никакой магии. О том, как реализуется эта процедура и о дальнейших настройках доменного имени и ssl, без чего не возможен запуск именно мини-приложения, я расскажу в последующих частях.

А, ну и конечно, как я уже ранее писал, мини-приложение уже готово и ждет своих пользователей, как говорится welcome t.me/Socionyx_Bot/socionyx.

Буду премного благодарен за обратную связь и замечания по работе текущего мини-приложения.

P.S. я не забыл про твой вопрос мой дорогой nikita17cm и об особенностях «микросерверности», и о разделе бота и основного бэкенда, я обязательно расскажу в следующей части.

Показать полностью 3
[моё] Telegram Веб-разработка Программирование IT Docker VPS Длиннопост
1
Посты не найдены
О нас
О Пикабу Контакты Реклама Сообщить об ошибке Сообщить о нарушении законодательства Отзывы и предложения Новости Пикабу Мобильное приложение RSS
Информация
Помощь Кодекс Пикабу Команда Пикабу Конфиденциальность Правила соцсети О рекомендациях О компании
Наши проекты
Блоги Работа Промокоды Игры Курсы
Партнёры
Промокоды Биг Гик Промокоды Lamoda Промокоды Мвидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии