OpenAI представили ChatGPT Agent, который может управлять компьютером и выполнять задачи за вас — искать инфу на вашей почте, отправлять письма, писать код.
Он основан на новой модели, разработанной OpenAI специально для ChatGPT Agent. OpenAI заявляет, что модель превосходит o3 и o4-mini на Humanity’s Last Exam почти в два раза.
Доступ дали подписчикам Pro, Plus и Team.
Трансляция здесь
Он основан на новой модели, разработанной OpenAI специально для ChatGPT Agent. OpenAI заявляет, что модель превосходит o3 и o4-mini на Humanity’s Last Exam почти в два раза.
Доступ дали подписчикам Pro, Plus и Team.
Трансляция здесь
👍3
Руководство по сетям в Kubernetes
Наткнулся на ресурс, где собран обзор различных сетевых компонентов Kubernetes с акцентом на то, как именно они реализуют необходимую функциональность.
Что есть:
🔹 Network model
🔹 CNI
🔹 Services, Ingress/Egress
🔹 Network Policies
🔹 DNS и куча другого
Многие разделы содержат подразделы. Так, например, в блоке про CNI есть дополнительная информация о Flannel, Weave, Calico, Cilium
И немного практики в виде лаб (не везде, но есть)
Это не общее обучающее руководство по Kubernetes. Предполагается, что читатель уже знаком с базовыми понятиями и фундаментальными компонентами кластера Kubernetes — такими как
Забираем здесь 🍯
Наткнулся на ресурс, где собран обзор различных сетевых компонентов Kubernetes с акцентом на то, как именно они реализуют необходимую функциональность.
Что есть:
Многие разделы содержат подразделы. Так, например, в блоке про CNI есть дополнительная информация о Flannel, Weave, Calico, Cilium
И немного практики в виде лаб (не везде, но есть)
Это не общее обучающее руководство по Kubernetes. Предполагается, что читатель уже знаком с базовыми понятиями и фундаментальными компонентами кластера Kubernetes — такими как
pods, deployments и servicesЗабираем здесь 🍯
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Изучение контейнеров с нуля
🔹 Linux-контейнеры: низкоуровневая реализация
🔹 Образы: что это такое и зачем они нужны
🔹 Менеджеры: как Docker управляет совместной работой контейнеров на одном хосте
🔹 Оркестраторы: как Kubernetes координирует контейнеры в кластере
https://iximiuz.com/en/posts/container-learning-path/
https://iximiuz.com/en/posts/container-learning-path/
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥4
echo "# название" >> README.md - создание файла README.mdgit init - инициализация репозиторияgit add README.md - добавления файла README.md в проектgit commit -m "first commit" - получает проиндексированный снимок состояния и выполняет его коммит в историю проектаgit remote add origin https://github.com/stanruss/название.git - команда, которой устанавливается подключение к удаленному серверу и git репозиторию, размещающемуся на нем.git push -u origin master - кзменения отправляются на удаленный серверgit log --oneline - посмотреть все коммиты.git checkout . - восстановить все.git checkout "код коммита" - вернуть до состояния этого коммита.git checkout master - вернуться в ветку мастер.Восстановить файлы на локальном компьютере:
git fetch --all
git reset --hard origin/master или git reset --hard origin/<название_ветки>
git add text.txt - Добавить файл в репозиторийgit rm text.txt - Удалить файлgit status - Текущее состояние репозитория (изменения, неразрешенные конфликты и тп)git commit -a -m "Commit description" - Сделать коммитgit push origin - Замерджить все ветки локального репозитория на удаленный репозиторий git push origin master - Аналогично предыдущему, но делается пуш только ветки mastergit push origin HEAD - Запушить текущую ветку, не вводя целиком ее названиеgit pull origin - Замерджить все ветки с удаленного репозиторияgit pull origin master - Аналогично предыдущему, но накатывается только ветка mastergit pull origin HEAD - Накатить текущую ветку, не вводя ее длинное имяgit fetch origin - Скачать все ветки с origin, но не мерджить их в локальный репозиторийgit fetch origin master - Аналогично предыдущему, но только для одной заданной веткиgit checkout -b some_branch origin/some_branch - Начать работать с веткой some_branch (уже существующей)git branch some_branch - Создать новый бранч (ответвится от текущего)git checkout some_branch - Переключиться на другую ветку (из тех, с которыми уже работаем)git branch # звездочкой отмечена текущая ветвь - Получаем список веток, с которыми работаемgit branch -a # | grep something - Просмотреть все существующие ветвиgit merge some_branch - Замерджить some_branch в текущую веткуgit branch -d some_branch - Удалить бранч (после мерджа)git branch -D some_branch - Просто удалить бранч (тупиковая ветвь)git show d8578edf8458ce06fbc5bb76a58c5ca4a58c5ca4 - Изменения, сделанные в заданном коммитеgit push origin :branch-name - Удалить бранч из репозитория на сервереgit reset --hard d8578edf8458ce06fbc5bb76a58c5ca4a58c5ca4 - Откатиться к конкретному коммиту и удалить последующие (хэш смотрим в «git log»)git push -f - Залить на сервер измененные коммитыgit clean -f - Удаление untracked filesPlease open Telegram to view this post
VIEW IN TELEGRAM
🔥4
Чтобы открыть всю мощь ИИ, начните с помощью ИИ искать разные промокоды )) Можно экономить нормально денег при покупке разных товаров :)
Please open Telegram to view this post
VIEW IN TELEGRAM
💯6
Путаешься между Dockerfile и Docker Compose?
Это для тебя.
Хотя они дополняют друг друга, их назначение в контейнеризированной среде различается.
Dockerfile — используется для создания и сборки Docker-образов.
Docker Compose — используется для запуска контейнеров как части мультиконтейнерного окружения или с определёнными параметрами выполнения.
🔹 Начиная с версии 1.28.6, Docker Compose по умолчанию ищет
Вот простая схема, чтобы тебе было легче разобраться
Это для тебя.
Хотя они дополняют друг друга, их назначение в контейнеризированной среде различается.
Dockerfile — используется для создания и сборки Docker-образов.
Docker Compose — используется для запуска контейнеров как части мультиконтейнерного окружения или с определёнными параметрами выполнения.
compose.yaml или compose.yml. Поддержка docker-compose.yaml/yml сохраняется для обратной совместимости, но если оба файла присутствуют, будет использоваться compose.yaml.Вот простая схема, чтобы тебе было легче разобраться
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4❤🔥2👍1
Эта схема отображает ключевые концепции безопасности в Kubernetes — от RBAC, PodSecurity и аудита до изоляции контейнеров — помогая командам визуализировать точки применения политик.
Разработана Telenor для on-prem кластеров, отлично подходит для моделирования угроз и проведения ревью.
https://kubesec-diagram.github.io/
Разработана Telenor для on-prem кластеров, отлично подходит для моделирования угроз и проведения ревью.
https://kubesec-diagram.github.io/
👍4
Эта схема показывает структуру файловой системы Linux и объясняет предназначение различных директорий, находящихся в корневом каталоге /
/bin - Бинарные файлы основных команд/boot - Файлы загрузчика системы/dev - Файлы устройств/etc - Системные конфигурационные файлы, специфичные для хоста/home - Домашний каталог пользователя/lib - Модули общих библиотек/media - Файлы мультимедиа, такие как CD-ROM/mnt - Временно смонтированные файловые системы/opt - Дополнительные пакеты программного обеспечения/proc - Интерфейс к структурам данных ядра/root - Домашний каталог пользователя root/run - Данные времени выполнения/sbin - Системные бинарные файлы/srv - Служебные данные, обслуживаемые этой системой/sys - Виртуальный каталог для информации о системе/tmp - Временные файлы/usr - Ресурсы Unix-системы/var - Файлы, которые постоянно изменяютсяPlease open Telegram to view this post
VIEW IN TELEGRAM
🔥5
Привет, DevOps-инженеры! Если вы уже освоили азы NGINX, давайте углубимся в его мощь и рассмотрим, как он становится незаменимым инструментом в сложных архитектурах. Сегодня разберем кейс: обслуживание статического фронтенда и проксирование запросов к бэкенд API через NGINX.
Представьте: у вас есть SPA (Single Page Application) на React/Vue/Angular, который нужно отдавать пользователям, и REST API на Python/Node.js, к которому этот фронтенд обращается. NGINX идеально подходит для этой задачи.
Пример конфигурации:
Разберем ключевые моменты:
💡 DevOps Лайфхак: Горячая перезагрузка NGINX без простоя!
В продакшене каждая секунда простоя — это деньги. При изменении конфигурации NGINX не обязательно его полностью останавливать и запускать заново. Используйте команду:
Эта команда заставляет NGINX загрузить новую конфигурацию, не прерывая обработку текущих запросов. Старые воркеры продолжают обслуживать активные соединения, а новые начинают использовать обновленную конфигурацию. После завершения старых соединений, старые воркеры корректно завершают работу. Это позволяет обновлять конфигурацию NGINX без единого простоя!
Почему это важно? В CI/CD пайплайнах, когда вы деплоите новую версию фронтенда или бэкенда, или меняете маршрутизацию, nginx -s reload становится вашим лучшим другом для бесшовных обновлений.
Представьте: у вас есть SPA (Single Page Application) на React/Vue/Angular, который нужно отдавать пользователям, и REST API на Python/Node.js, к которому этот фронтенд обращается. NGINX идеально подходит для этой задачи.
Пример конфигурации:
nginx.confserver {
listen 80;
server_name your-domain.com www.your-domain.com;
# Отдача статических файлов фронтенда
location / {
root /var/www/your-frontend-app/build; # Путь к скомпилированному фронтенду
try_files $uri $uri/ /index.html; # Важно для SPA: все запросы, не являющиеся файлами, ведут на index.html
}
# Проксирование запросов к API
location /api/ {
proxy_pass http://your-backend-service:8000/api/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
# Опционально: редирект HTTP на HTTPS (для продакшена)
# listen 443 ssl;
# ssl_certificate /etc/nginx/ssl/your-domain.crt;
# ssl_certificate_key /etc/nginx/ssl/your-domain.key;
# return 301 https://$host$request_uri;
}Разберем ключевые моменты:
location /- Отвечает за отдачу статических файлов вашего фронтенда. root указывает на директорию со скомпилированным приложением. try_files — это магия для SPA, которая гарантирует, что при прямом заходе на роут (например, your-domain.com/users) NGINX отдаст index.html, а не 404.
location /api/- Здесь мы настраиваем проксирование всех запросов, начинающихся с /api/, на ваш бэкенд-сервис. proxy_pass указывает адрес и порт бэкенда. Заголовки proxy_set_header критически важны для корректной работы бэкенда, так как они передают информацию об оригинальном запросе (хост, IP клиента, протокол).
💡 DevOps Лайфхак: Горячая перезагрузка NGINX без простоя!
В продакшене каждая секунда простоя — это деньги. При изменении конфигурации NGINX не обязательно его полностью останавливать и запускать заново. Используйте команду:
sudo nginx -s reload
Эта команда заставляет NGINX загрузить новую конфигурацию, не прерывая обработку текущих запросов. Старые воркеры продолжают обслуживать активные соединения, а новые начинают использовать обновленную конфигурацию. После завершения старых соединений, старые воркеры корректно завершают работу. Это позволяет обновлять конфигурацию NGINX без единого простоя!
Почему это важно? В CI/CD пайплайнах, когда вы деплоите новую версию фронтенда или бэкенда, или меняете маршрутизацию, nginx -s reload становится вашим лучшим другом для бесшовных обновлений.
🔥4
Если у вас вдруг сегодня падает npm install или npm ci, то это потому что команда npm-security выпилила пакет stylus из npm, заявляя, что в нём найдена зловредная уязвимость.
Весь ваш enterprise-проект, построенный на сотнях зависимостей, оказался карточным домиком, из которого вытащили одну пыльную картонку.
https://github.com/advisories/GHSA-fh4q-jc76-r59p
https://github.com/stylus/stylus/issues/2938
Весь ваш enterprise-проект, построенный на сотнях зависимостей, оказался карточным домиком, из которого вытащили одну пыльную картонку.
https://github.com/advisories/GHSA-fh4q-jc76-r59p
https://github.com/stylus/stylus/issues/2938
😁4👍1👌1
SoftSkills.txt
6.6 KB
Кстати, DevOps – это не только про харды, но и про софты. Оставлю топ-10 советов, как быстро развить софты, потому что софты, в последнее время, выходят на передний план с появлением всяких там ИИ/LLM и прочего 😊
❤🔥4
Для отладки bash-скриптов существует инструмент set -xve. Это мастхев фича именно на момент, создания чего-либо т. к. не всегда логика может работать правильно, а с set -xve, можно вовремя увидеть все значения переменных и т.п. не используя мусорные конструкции, например, echo «Error in function xxx».
Применяется так:
Основные флаги set:
x — вывести команды и их аргументы по мере их выполнения.
v — вывести строки ввода командной строки по мере их считывания.
e — выход, если команда завершается с ненулевым статусом.
Пример:
Изменяем PS4 и добавляем вывод номера строки во включенный дебаг режим:
После выполнения мы видим:
Теперь если скрипт где-то вылетает с плохим статусом, всегда можно узнать в какой строке это приключилось
Немного украшательств, экспортируем PS4:
Происходит подкрашивание запускаемых строчек.
С помощью PS4 можно отладить shell-скрипт, задав при его выполнении set -x, что позволяет выводить каждую команду, а затем ее результаты. Перед каждой командой ставится знак +, эту строку подсказки «+» можно изменить, определив переменную PS4.
Применяется так:
#!/bin/bash -xve
set -xve
Основные флаги set:
x — вывести команды и их аргументы по мере их выполнения.
v — вывести строки ввода командной строки по мере их считывания.
e — выход, если команда завершается с ненулевым статусом.
Пример:
Изменяем PS4 и добавляем вывод номера строки во включенный дебаг режим:
#!/bin/bash -xve
PS4='+(${BASH_SOURCE}:${LINENO}): ${FUNCNAME[0]:+${FUNCNAME[0]}(): }'
bar=10
echo ${bar}
echo $((6 + 6))
После выполнения мы видим:
bar=10
+(./script.sh:6): foo=10
echo ${bar}
+(./script.sh:7): echo 10
10
echo $((6 + 6))
+(./script.sh:8): echo 12
4
Теперь если скрипт где-то вылетает с плохим статусом, всегда можно узнать в какой строке это приключилось
Немного украшательств, экспортируем PS4:
PS4='\033[0;33m+(${BASH_SOURCE}:${LINENO}):\033[0m ${FUNCNAME[0]:+${FUNCNAME[0]}(): }'Происходит подкрашивание запускаемых строчек.
С помощью PS4 можно отладить shell-скрипт, задав при его выполнении set -x, что позволяет выводить каждую команду, а затем ее результаты. Перед каждой командой ставится знак +, эту строку подсказки «+» можно изменить, определив переменную PS4.
❤3👍3