Для чего нужен Docker Swarm?
Представь, что у тебя есть магазин игрушек (это твое Django-приложение). Вдруг к тебе пришло очень много детей, которые хотят купить игрушки, но твой магазин не справляется с таким количеством посетителей. Что делать?
Ты решаешь открыть еще несколько магазинов (это будут реплики твоего приложения) в разных местах (на разных серверах). Но чтобы все магазины работали слаженно, тебе нужен главный управляющий (это Docker Swarm).
Вот как это работает:
Покупаем 5 магазинов (серверов):
В одном магазине ты хранишь все игрушки (это база данных).
В остальных четырех магазинах ты продаешь игрушки (это реплики твоего приложения).
Главный управляющий (Docker Swarm):
Для чего нужен Docker Swarm?
У тебя есть один главный управляющий (менеджер), который решает, как распределить детей (пользователей) по магазинам, чтобы нигде не было очередей.
Остальные магазины (воркеры) просто выполняют его указания и продают игрушки.
Как все это настроить:
Ты говоришь главному управляющему (менеджеру): "Эй, ты теперь главный!" (команда docker swarm init).
Потом ты даешь каждому магазину (воркеру) специальный ключ (токен), чтобы они могли подключиться к главному управляющему (команда docker swarm join).
После этого ты проверяешь, все ли магазины подключились и готовы работать (команда docker node ls).
Результат:
Теперь, когда приходит много детей, главный управляющий автоматически отправляет их в разные магазины, чтобы нигде не было очередей. Все дети довольны, и твой бизнес работает без сбоев.
пошаговое руководство для начинающих
https://medium.com/@nidhinbabukuttan/docker-swarm-basics-a-step-by-step-guide-for-beginners-e3e1fed9e9fe
Представь, что у тебя есть магазин игрушек (это твое Django-приложение). Вдруг к тебе пришло очень много детей, которые хотят купить игрушки, но твой магазин не справляется с таким количеством посетителей. Что делать?
Ты решаешь открыть еще несколько магазинов (это будут реплики твоего приложения) в разных местах (на разных серверах). Но чтобы все магазины работали слаженно, тебе нужен главный управляющий (это Docker Swarm).
Вот как это работает:
Покупаем 5 магазинов (серверов):
В одном магазине ты хранишь все игрушки (это база данных).
В остальных четырех магазинах ты продаешь игрушки (это реплики твоего приложения).
Главный управляющий (Docker Swarm):
Для чего нужен Docker Swarm?
У тебя есть один главный управляющий (менеджер), который решает, как распределить детей (пользователей) по магазинам, чтобы нигде не было очередей.
Остальные магазины (воркеры) просто выполняют его указания и продают игрушки.
Как все это настроить:
Ты говоришь главному управляющему (менеджеру): "Эй, ты теперь главный!" (команда docker swarm init).
Потом ты даешь каждому магазину (воркеру) специальный ключ (токен), чтобы они могли подключиться к главному управляющему (команда docker swarm join).
После этого ты проверяешь, все ли магазины подключились и готовы работать (команда docker node ls).
Результат:
Теперь, когда приходит много детей, главный управляющий автоматически отправляет их в разные магазины, чтобы нигде не было очередей. Все дети довольны, и твой бизнес работает без сбоев.
пошаговое руководство для начинающих
https://medium.com/@nidhinbabukuttan/docker-swarm-basics-a-step-by-step-guide-for-beginners-e3e1fed9e9fe
Medium
Docker Swarm Basics: A Step-by-Step Guide for Beginners
Introduction:
👍9
Как читать статьи на Medium бесплатно
Много полезных статей и руководств находится на платформе Medium, но часто для доступа к ним требуется платная подписка. Однако есть способ обойти это ограничение.
Вот что нужно сделать:
Перейди на сайт https://freedium.cfd/.
Вставь ссылку на статью с Medium, которую хочешь прочитать.
Наслаждайся бесплатным доступом к контенту!
Этот способ помогает читать статьи без подписки и экономит твое время и деньги.
@localhostpython
Много полезных статей и руководств находится на платформе Medium, но часто для доступа к ним требуется платная подписка. Однако есть способ обойти это ограничение.
Вот что нужно сделать:
Перейди на сайт https://freedium.cfd/.
Вставь ссылку на статью с Medium, которую хочешь прочитать.
Наслаждайся бесплатным доступом к контенту!
Этот способ помогает читать статьи без подписки и экономит твое время и деньги.
@localhostpython
👍7
Как обойти ограничения на раздачу интернета с мобильного устройства
Друзья, всем нии-хау
Бывают случаи, когда нам нужно раздать точку доступа, чтобы подключиться к ней с ноута или ПК. Это особенно полезно для автомобилей, чтобы не покупать отдельную SIM-карту и модуль для раздачи интернета на магнитолу.
Есть вариант раздать точку доступа с мобильного телефона, но вот не задача — мобильные операторы, видимо, очень мало зарабатывают, и по этому поводу выдают данную услугу за отдельную плату.
Как говорится, против лома нет приема, если нет второго лома. Поэтому я расскажу, как легко обойти данное ограничение.
Рассмотрим на примере Linux, Mac , Windows . Если вам нужно обойти данное ограничение для раздачи с Android на Android то велком в гугл
Linux
получаем данный результат
меняем его на 65
Windows
Нажмите Win + R, введите cmd и нажмите Enter
macOS
Важно , изменения сбрасываются после перезапуска системы ,
чтобы установить их навсегда , велком гуглить про ttl и вашу систему
@localhostpython
Друзья, всем нии-хау
Бывают случаи, когда нам нужно раздать точку доступа, чтобы подключиться к ней с ноута или ПК. Это особенно полезно для автомобилей, чтобы не покупать отдельную SIM-карту и модуль для раздачи интернета на магнитолу.
Есть вариант раздать точку доступа с мобильного телефона, но вот не задача — мобильные операторы, видимо, очень мало зарабатывают, и по этому поводу выдают данную услугу за отдельную плату.
Как говорится, против лома нет приема, если нет второго лома. Поэтому я расскажу, как легко обойти данное ограничение.
Рассмотрим на примере Linux, Mac , Windows . Если вам нужно обойти данное ограничение для раздачи с Android на Android то велком в гугл
Linux
# используем ping чтобы проверить какое значение ttl у нас
ping 127.0.0.1
получаем данный результат
64 bytes from 127.0.0.1: icmp_seq=0 ttl=64 time=0.088 ms
ttl равен 64
меняем его на 65
sudo sysctl -w net.ipv4.ip_default_ttl=65
Windows
Нажмите Win + R, введите cmd и нажмите Enter
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters" /v "DefaultTTL" /t REG_DWORD /d 65 /f
macOS
sudo sysctl -w net.inet.ip.ttl=65
чтобы установить их навсегда , велком гуглить про ttl и вашу систему
@localhostpython
👍3❤1
лучшие it каналы по моему мнению
Андрей Иванов | Python
https://www.youtube.com/@PythononPapyrusRU
Пётр Turbo
https://www.youtube.com/@turborium
ExtremeCode
https://www.youtube.com/@ExtremeCode
Сурен Хоренян
https://www.youtube.com/@SurenKhorenyan
Павлин Шарит
https://www.youtube.com/@nikolaypavlin
Диджитализируй
https://www.youtube.com/@t0digital
Кошачья Бацыла
https://www.youtube.com/@koshachiya_batsyla
Honey Montana
https://www.youtube.com/@honeymontana
ADV-IT
https://www.youtube.com/@ADV-IT
Александр Ильин про IT
https://www.youtube.com/@digital_ninja
selfedu
https://www.youtube.com/@selfedu_rus
% Aram %
https://www.youtube.com/@tashchan
Программирование и иже с ним
https://www.youtube.com/@programming_etc
Vlad Ten
https://www.youtube.com/@vladtenten
Alek OS
https://www.youtube.com/@AlekOS
Onigiri
https://www.youtube.com/@OnigiriScience
luchanos
https://www.youtube.com/@luchanos/videos
Alex2772
https://www.youtube.com/@Alex2772/videos
(не) AlixHatsu
https://www.youtube.com/@nealixhatsu/videos
ExtremeCode
https://www.youtube.com/@ExtremeCode
Сурен Хоренян
https://www.youtube.com/@SurenKhorenyan
Павлин Шарит
https://www.youtube.com/@nikolaypavlin
Диджитализируй
https://www.youtube.com/@t0digital
Кошачья Бацыла
https://www.youtube.com/@koshachiya_batsyla
Honey Montana
https://www.youtube.com/@honeymontana
ADV-IT
https://www.youtube.com/@ADV-IT
Александр Ильин про IT
https://www.youtube.com/@digital_ninja
selfedu
https://www.youtube.com/@selfedu_rus
% Aram %
https://www.youtube.com/@tashchan
Программирование и иже с ним
https://www.youtube.com/@programming_etc
Vlad Ten
https://www.youtube.com/@vladtenten
Alek OS
https://www.youtube.com/@AlekOS
Onigiri
https://www.youtube.com/@OnigiriScience
luchanos
https://www.youtube.com/@luchanos/videos
Alex2772
https://www.youtube.com/@Alex2772/videos
(не) AlixHatsu
https://www.youtube.com/@nealixhatsu/videos
❤3
1031233312 пост в инете о том как искать
API ключи
Конфиги с паролями
Токены ботов
SSH-ключи
.env-файлы
на GitHubе
Ищет .env файлы
Поиск SSH-ключей
Поиск API ключей
список регулярок для поиска ключей
AWS
Telegram Bot Token
Google API Key
GitHub Personal Access Token
API ключи
Конфиги с паролями
Токены ботов
SSH-ключи
.env-файлы
на GitHubе
Ищет .env файлы
filename:.env
Поиск SSH-ключей
filename:id_rsa private
Поиск API ключей
"Authorization: Bearer"
список регулярок для поиска ключей
AWS
AKIA[0-9A-Z]{16}
(?i)aws(.{0,20})?(secret|access)?(.{0,20})?['"][0-9a-zA-Z/+]{40}['"]
Telegram Bot Token
\d{9}:[\w-]{35}
Google API Key
AIza[0-9A-Za-z\\-_]{35}
GitHub Personal Access Token
ghp_[A-Za-z0-9]{36}
🔥4
Как юзать gpt в своих проектах, совершенно бесплатно
https://github.com/xtekky/gpt4free
https://github.com/xtekky/gpt4free
from g4f.client import Client
client = Client()
response = client.chat.completions.create(
model="gpt-4o-mini",
messages=[{"role": "user", "content": "Как дела ?"}],
web_search=False
)
print(response.choices[0].message.content)
GitHub
GitHub - xtekky/gpt4free: The official gpt4free repository | various collection of powerful language models | opus 4.6 gpt 5.3…
The official gpt4free repository | various collection of powerful language models | opus 4.6 gpt 5.3 kimi 2.5 deepseek v3.2 gemini 3 - xtekky/gpt4free
❤2
gRPC — альтернатива REST, которая реально быстрее
Задолбали REST-ручки? Хочешь скорости, как у Ferrari, а не как у почты России? Знакомься — gRPC.
Что такое gRPC?
gRPC — это фреймворк от Google, который позволяет сервисам общаться по сети. Он работает через HTTP/2 и использует Protocol Buffers вместо JSON, что делает его быстрее и легче.
Как связать два микросервиса через gRPC?
На одном сервисе развернуть gRPC-сервер.
На другом сервисе отправлять запросы к серверу. По сути, мы вызываем удалённую функцию и получаем результат, как если бы она была локальной.
Что нужно для этого?
На обоих сервисах описать .proto файл:
Определите доступные методы.
Укажите, какие параметры передаются.
Укажите, что возвращается в ответ.
Сгенерировать код из .proto файла (gRPC автоматически генерирует клиент и сервер для вашего языка программирования).
На одном сервисе поднять gRPC-сервер, который будет обрабатывать вызовы.
На другом сервисе использовать gRPC-клиент для вызова методов.
Мини-гайд по gRPC
1. Создаём .proto файл
В .proto файле описываем сервис и методы.
Генерация кода
Для Python используем команду для генерации клиента и сервера:
Разворачиваем сервер
Разворачиваем клиент
Задолбали REST-ручки? Хочешь скорости, как у Ferrari, а не как у почты России? Знакомься — gRPC.
Что такое gRPC?
gRPC — это фреймворк от Google, который позволяет сервисам общаться по сети. Он работает через HTTP/2 и использует Protocol Buffers вместо JSON, что делает его быстрее и легче.
Как связать два микросервиса через gRPC?
На одном сервисе развернуть gRPC-сервер.
На другом сервисе отправлять запросы к серверу. По сути, мы вызываем удалённую функцию и получаем результат, как если бы она была локальной.
Что нужно для этого?
На обоих сервисах описать .proto файл:
Определите доступные методы.
Укажите, какие параметры передаются.
Укажите, что возвращается в ответ.
Сгенерировать код из .proto файла (gRPC автоматически генерирует клиент и сервер для вашего языка программирования).
На одном сервисе поднять gRPC-сервер, который будет обрабатывать вызовы.
На другом сервисе использовать gRPC-клиент для вызова методов.
Мини-гайд по gRPC
1. Создаём .proto файл
В .proto файле описываем сервис и методы.
syntax = "proto3";
service Greeter {
rpc SayHello (HelloRequest) returns (HelloReply);
}
message HelloRequest {
string name = 1;
}
message HelloReply {
string message = 1;
}
Генерация кода
Для Python используем команду для генерации клиента и сервера:
python -m grpc_tools.protoc -I. --python_out=. --grpc_python_out=. your_file.proto
Разворачиваем сервер
from concurrent import futures
import grpc
import your_file_pb2
import your_file_pb2_grpc
class Greeter(your_file_pb2_grpc.GreeterServicer):
def SayHello(self, request, context):
return your_file_pb2.HelloReply(message='Hello, {}'.format(request.name))
def serve():
server = grpc.server(futures.ThreadPoolExecutor(max_workers=10))
your_file_pb2_grpc.add_GreeterServicer_to_server(Greeter(), server)
server.add_insecure_port('[::]:50051')
server.start()
server.wait_for_termination()
if __name__ == '__main__':
serve()
Разворачиваем клиент
import grpc
import your_file_pb2
import your_file_pb2_grpc
def run():
channel = grpc.insecure_channel('localhost:50051')
stub = your_file_pb2_grpc.GreeterStub(channel)
response = stub.SayHello(your_file_pb2.HelloRequest(name='World'))
print("Greeter client received: " + response.message)
if __name__ == '__main__':
run()
❤7💘4