При запуске Ansible-плейбука через консоль командой
ansible-playbook playbook.yml
Первая строка, которая появится в консоли
PLAY [имя_плейбука] *****************************************************
Пример запуска
ansible-playbook site.yml
Вывод в консоли:
PLAY [Install and configure web server] *********************************
Если
name:
не указан в плейбуке, будет:PLAY [Unnamed Play] ****************************************************
Ставь 👍 и забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
🤯7👍6
Инструменты, такие как Prometheus, Grafana, ELK Stack, Datadog, помогают собирать метрики, анализировать логи и визуализировать состояние контейнеров.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
🤯2👍1👀1
Она позволяет отслеживать изменения в базах данных (INSERT, UPDATE, DELETE) в реальном времени и передавать их в Kafka, Elasticsearch, MongoDB и другие системы.
Подключается к базе данных
(PostgreSQL, MySQL, MongoDB, Oracle и др.).
Слушает лог изменений (binlog, WAL, oplog и т. д.)
Формирует события в формате JSON
Передаёт их в Kafka или другую шину данных.
Синхронизация данных между базами
Репликация данных в реальном времени
Отправка изменений в аналитические системы (Elasticsearch, ClickHouse)
Аудит и логирование изменений
Запускаем Debezium Connector для PostgreSQL*
{
"name": "inventory-connector",
"config": {
"connector.class": "io.debezium.connector.postgresql.PostgresConnector",
"database.hostname": "localhost",
"database.port": "5432",
"database.user": "debezium",
"database.password": "dbz",
"database.dbname": "inventory",
"database.server.name": "dbserver1"
}
}
При изменении данных в таблице, Kafka получит событие:
{
"schema": { ... },
"payload": {
"before": { "id": 1, "name": "Old Name" },
"after": { "id": 1, "name": "New Name" },
"op": "u" // Update
}
}
Ставь 👍 и забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2🔥1
Если запустить микросервис просто в контейнере (например, через
docker run
), он будет работать как отдельный процесс, без встроенной системы управления и оркестрации. Но если запустить его в Kubernetes, он будет работать в поде (Pod).
Если нужен просто контейнер →
docker run my-app
. Если нужен отказоустойчивый микросервис → Kubernetes Pod.
Если несколько контейнеров должны работать вместе (например, приложение + sidecar) → Pod.
Ставь 👍 и забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2👾1
Применяйте artifacts, которые сохраняют промежуточные данные между этапами выполнения pipeline.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
Фреймворки — это библиотеки, упрощающие разработку. Они бывают для веба, DevOps, тестирования, машинного обучения и т. д.
Django (Python) — мощный фреймворк для веб-приложений.
Flask (Python) — минималистичный микрофреймворк.
FastAPI (Python) — для API, быстрый на
async
. Spring Boot (Java) — корпоративные приложения.
Express.js (Node.js) — популярный фреймворк для API.
NestJS (Node.js) — модульный TypeScript-фреймворк.
React (JavaScript) — компоненты, Virtual DOM.
Vue.js (JavaScript) — лёгкий и быстрый.
Angular (TypeScript) — для сложных приложений.
Svelte — новый подход к реактивному UI.
Ansible — автоматизация серверов.
Terraform — управление облаками через код.
Kubernetes (K8s) — оркестрация контейнеров.
Docker Swarm — альтернатива Kubernetes.
Prometheus — сбор метрик, мониторинг.
ELK Stack (Elasticsearch, Logstash, Kibana) — логирование.
PyTest (Python) — удобное тестирование.
Selenium — тестирование UI в браузерах.
JUnit (Java) — тесты для Java-приложений.
Postman — API-тестирование.
TensorFlow — глубокое обучение.
PyTorch — альтернатива TensorFlow.
Scikit-learn — классическое ML.
Pandas — обработка данных.
Matplotlib, Seaborn — визуализация данных.
Unity (C#) — 2D/3D-игры.
Unreal Engine (C++) — мощный движок.
Godot — лёгкий и бесплатный.
Ставь 👍 и забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔7
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7
ADD
и COPY
— это инструкции Dockerfile, которые копируют файлы в контейнер. Их использование влияет на размер образа, безопасность и производительность сборки. Плохо (избыточное использование
ADD
) ADD app.tar.gz /app/
Хорошо (явное распаковывание в
RUN
) COPY app.tar.gz /tmp/
RUN tar -xzf /tmp/app.tar.gz -C /app && rm /tmp/app.tar.gz
Плохо (копируем всё без исключений)
COPY . /app
Хорошо (копируем только нужные файлы)
COPY src/ /app/src/
COPY requirements.txt /app/
Добавьте
.dockerignore
.git
node_modules
__pycache__
*.log
Плохо (изменение кода приводит к пересборке зависимостей)**
COPY . /app
RUN pip install -r /app/requirements.txt
Хорошо (сначала зависимости, потом код)
COPY requirements.txt /app/
RUN pip install -r /app/requirements.txt
COPY src/ /app/src/
Плохо (
ADD
загружает файл, но не кэшируется) ADD https://example.com/file.tar.gz /tmp/
RUN curl
+ COPY
) RUN curl -L -o /tmp/file.tar.gz https://example.com/file.tar.gz
COPY file.tar.gz /app/
Ставь 👍 и забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🤔2
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4👍1
HTTP (HyperText Transfer Protocol) — это протокол передачи данных в интернете. Он используется для обмена данными между клиентом (браузером) и сервером.
Браузер отправляет запрос →
"GET /index.html HTTP/1.1"
. Сервер отвечает → HTML-страницей (
200 OK
). Браузер отображает страницу.
Клиент-серверная модель → браузер запрашивает, сервер отвечает.
Без состояния (stateless) → каждый запрос независим (нет сессий).
Текстовый протокол → данные передаются в читаемом формате.
Пример запроса от браузера к серверу
GET /index.html HTTP/1.1
Host: example.com
User-Agent: Mozilla/5.0
Ставь 👍 и забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5👍2
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7
Если в контейнере выполнить:
docker run alpine ID:
Если вы хотите получить ID запущенного контейнера, правильная команда:
docker run --rm alpine sh -c 'echo $HOSTNAME'
Если контейнер уже работает, его ID можно посмотреть так
docker ps -q
или
docker inspect -f '{{.Id}}' container_name
Ставь 👍 и забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
😁4👍2
После деплоя важно провести пост-мониторинг и тестирование, включая:
- Мониторинг логов и метрик для выявления ошибок (Grafana, Prometheus).
- Проверку работоспособности API и UI (ручные тесты, Postman).
- Тестирование нагрузки (например, k6, JMeter).
- Анализ отзывов пользователей и быстрая реакция на проблемы.
- Откат в случае критических ошибок (с помощью feature toggles или blue-green deployment).
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
Если SSH завис, не стоит сразу закрывать терминал. Есть несколько причин и решений.
Если SSH завис, но сессия не разорвана, попробуйте выйти без закрытия терминала:
~.
Переключение в режим управления SSH
~Ctrl+Z
Если SSH завис, причина может быть в разрыве соединения. Проверьте:
Работает ли пинг до сервера:
ping server_ip
🔹 Открыт ли SSH-порт (22):
nc -zv server_ip 22
Если только один SSH-клиент завис, попробуйте:
pkill -9 ssh
или
killall -9 ssh
Затем переподключитесь
ssh user@server_ip
Если сервер доступен, но SSH зависает, войдите через консоль или другой метод (например, VNC, IPMI).
Если SSH не отвечает, перезапустите его:
sudo systemctl restart ssh
или
service ssh restart
Иногда SSH зависает из-за разрыва соединения на роутере или файрволе.
Добавьте в
~/.ssh/config
на клиентеHost *
ServerAliveInterval 60
ServerAliveCountMax 5
Или в
/etc/ssh/sshd_config
на сервере ClientAliveInterval 60
ClientAliveCountMax 5
Затем перезапустите SSH
sudo systemctl restart ssh
Если осталось зависшее подключение, найдите его и завершите:
who # Показывает активные пользователи
ps aux | grep ssh # Показывает процессы SSH
pkill -9 -u username # Завершает все сессии пользователя
Ставь 👍 и забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
Метрики можно собирать с помощью систем мониторинга:
- Prometheus – сбор и обработка метрик.
- Grafana – визуализация метрик.
- ELK Stack (Elasticsearch, Logstash, Kibana) – анализ логов.
- Datadog, New Relic, AppDynamics – коммерческие решения для мониторинга.
- cAdvisor – мониторинг контейнеров Docker.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5👍1
Если в системе мониторинга или логах кластерный сервис (Cluster P) показывает значение
NaN
(Not a Number), это означает, что данные недоступны или не определены. Метрика не обновляется из-за сбоя Prometheus, Zabbix или Grafana.
Датчики или агенты не отправляют данные.
Посмотреть логи агента
journalctl -u node_exporter --no-pager | tail -20
Проверить доступность сервиса
curl -s http://service-ip:port/metrics
Если метрика рассчитывается (
X / Y
), но Y = 0
, результат будет NaN
. SQL-запрос возвращает пустой результат. Если используется PromQL, попробуйте запросить сырые данные:
rate(http_requests_total[5m])
Проверить SQL-запрос, если данные идут из базы:
SELECT AVG(value) FROM metrics WHERE time > now() - interval '1 hour';
Один или несколько узлов в кластере недоступны. DNS или балансировщик не может найти сервис.
Посмотреть статус узлов:
kubectl get nodes
Проверить доступность сервиса в кластере:
kubectl get pods -n monitoring
Запросы блокируются файрволом (
iptables
, firewalld
). Метрика приходит с другого узла, но между ними нет связи. Проверить сетевые правила:
iptables -L -n | grep DROP
Проверить соединение между узлами:
nc -zv service-ip port
Ставь 👍 и забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Глубина работы зависит от задач:
- Мониторинг процессов (top, htop, ps, strace).
- Анализ сетевого трафика (netstat, tcpdump, iftop).
- Отладка ошибок в логах (journalctl, dmesg, grep, awk).
- Диагностика дискового пространства (df, du, lsof).
- Анализ зависания системы (vmstat, iostat, free, sar).
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11🔥7
Это платформа для управления Kubernetes-кластерами. Она позволяет развертывать, настраивать, мониторить и управлять несколькими кластерами Kubernetes из единой панели управления. Rancher упрощает работу с Kubernetes, предоставляя удобный UI, API и инструменты автоматизации.
Rancher позволяет управлять кластерами Kubernetes, развернутыми в различных облаках (AWS, GCP, Azure) и на локальной инфраструктуре.
С помощью Rancher можно быстро развернуть Kubernetes-кластеры с минимальными усилиями.
Поддерживает аутентификацию через LDAP, Active Directory, GitHub и другие методы.
Встроенная поддержка Prometheus, Grafana и Fluentd для мониторинга и логов.
Поддерживает Helm-чарты и стандартные манифесты Kubernetes.
центральный компонент, управляющий кластерами и предоставляющий UI/API.
могут быть развернуты с помощью Rancher (RKE, RKE2) или добавлены вручную (например, EKS, AKS, GKE).
агенты, установленные в кластерах для обеспечения связи с сервером Rancher.
Для развертывания Rancher можно использовать Docker
docker run -d --name=rancher --restart=unless-stopped \
-p 80:80 -p 443:443 \
rancher/rancher:latest
Ставь 👍 и забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3👾1
- Симлинк (Symbolic link) – создаёт ссылку на файл или каталог, указывая его путь.
- Хардлинк (Hard link) – создаёт другой файловый дескриптор для того же инода, оба файла равнозначны.
- Разница: если удалить оригинальный файл, симлинк сломается, а хардлинк сохранит данные.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13🔥3❤1