Код в мешке
250 subscribers
8.99K photos
1.59K videos
2.11K files
42.3K links
Код в мешке - про кодинг, и не только...
Это личная записная книжка

https://t.me/joinchat/AAAAAEIy6oGlr8oxqTMS5w
Download Telegram
Forwarded from Admin Future
🎓 Собеседование сисадмина. Выпуск #12: Kubernetes — то, что спрашивают в 2026 году

Коллеги! Продолжаем марафон. После выпуска про распределённые хранилища (Ceph, Longhorn) логичный следующий шаг — оркестрация. В 2026-м Kubernetes перестал быть "DevOps-штучкой" и стал стандартной частью инфраструктуры даже в небольших компаниях. А значит, сисадмин, который не понимает K8s, — это уже не сисадмин, это билет на понижение.

Три вопроса, на которых плывут даже те, кто "работает с кубером каждый день".

---

Вопрос 1: «Pod завис в статусе CrashLoopBackOff. Ваши действия?»

Ответ новичка: «Удалю pod и пересоздам, он же сам поднимется».

Ответ инженера:
CrashLoopBackOff означает, что контейнер запускается, падает, Kubernetes пытается его поднять снова — и так по кругу. Задача: найти причину, а не перезапускать вслепую.

Алгоритм траблшутинга:


# Шаг 1 — Смотрим текущие логи
kubectl logs <pod-name> -n <namespace>

# Если контейнер упал слишком быстро — логи уже улетели.
# Берём логи предыдущего запуска:
kubectl logs <pod-name> -n <namespace> --previous

# Шаг 2 — Описание pod: ищем Reason в Last State
kubectl describe pod <pod-name> -n <namespace>
# Смотрим секцию "Last State" и "Events"
# Причины бывают разные:
# OOMKilled -> контейнер убит за превышение лимита памяти
# Error (exit 1) -> приложение упало само (ошибка конфига/зависимость)
# RunContainerError -> не может стартовать (нет образа, нет прав на том)

# Шаг 3 — Если OOMKilled: смотрим лимиты и правим манифест
kubectl get pod <pod-name> -o jsonpath='{.spec.containers[0].resources}'
# Временно поднимаем memory limit, чтобы убедиться в диагнозе:
# resources.limits.memory: 512Mi -> 1Gi

# Шаг 4 — Проверяем ConfigMap и Secret: существуют ли они в этом namespace?
kubectl get configmap -n <namespace>
kubectl get secret -n <namespace>
# Если приложение не может найти конфиг — оно упадёт с exit code 1


Ключевая мысль: Удалить и пересоздать pod — это лечить симптом, не болезнь. Kubernetes и сам это делает. Ваша работа — понять, почему падает.

---

Вопрос 2: «В чём разница между Liveness Probe и Readiness Probe? Что будет, если их перепутать?»

Ответ новичка: «Оба проверяют здоровье контейнера. Liveness — жив ли, Readiness — готов ли».

Ответ инженера:
Определение правильное, но поверхностное. Интервьюер ждёт понимания последствий.

Liveness Probe — отвечает на вопрос "не завис ли процесс?". Если проверка провалилась — Kubernetes убивает контейнер и перезапускает его. Используется, чтобы выйти из дедлоков и зависаний.

Readiness Probe — отвечает на вопрос "можно ли слать трафик?". Если проверка провалилась — pod убирается из балансировки Service, но не перезапускается. Используется при старте, когда приложение ещё прогревается (warm-up, загрузка кэша).

Что будет если перепутать:


# ПЛОХОЙ пример: Liveness смотрит на /ready (страница прогрева)
# При старте приложению нужно 30 секунд на инициализацию БД.
# Liveness видит 503 -> убивает контейнер -> перезапускает -> снова 503
# -> бесконечный CrashLoopBackOff на старте.

# ПРАВИЛЬНАЯ конфигурация:
livenessProbe:
httpGet:
path: /healthz # Легкая проверка: "процесс жив?"
port: 8080
initialDelaySeconds: 10
periodSeconds: 15
failureThreshold: 3

readinessProbe:
httpGet:
path: /ready # Тяжелая проверка: "готов принимать трафик?"
port: 8080
initialDelaySeconds: 20 # Даём время на прогрев
periodSeconds: 5
failureThreshold: 2


Pro-tip для собеса: Добавьте, что в 2026 году есть ещё Startup Probe — третий вид. Он запускается только при старте контейнера и блокирует Liveness/Readiness до тех пор, пока приложение не стартует успешно. Идеален для тяжёлых Java- и .NET-приложений с долгой инициализацией.

---

Вопрос 3: «Kubernetes Secrets хранят пароли. Насколько они безопасны "из коробки"?»

Ответ новичка: «Secrets зашифрованы, поэтому безопасны».

Ответ инженера:
Это самая распространённая ошибка на собесах. Secrets "из коробки" — это НЕ шифрование.
Forwarded from Admin Future
По умолчанию Kubernetes Secrets хранятся в etcd только в формате base64, а не в зашифрованном виде. В продакшне необходимо включать шифрование данных at rest и ограничивать доступ через RBAC.

Base64 — это кодировка, а не шифрование. Любой, у кого есть доступ к etcd или к объекту Secret в API — видит пароль в открытом виде.

Как это исправить — три уровня защиты:


# Уровень 1: Включаем Encryption at Rest в etcd
# В конфиге kube-apiserver добавляем:
# --encryption-provider-config=/etc/kubernetes/enc/enc.yaml
# enc.yaml:
# resources:
# - resources: ["secrets"]
# providers:
# - aescbc:
# keys:
# - name: key1
# secret: <base64-encoded-32-byte-key>
# - identity: {}

# Уровень 2: RBAC — минимальные права на чтение Secrets
kubectl create role secret-reader \
--verb=get,list \
--resource=secrets \
--namespace=production

# Уровень 3 (продакшн-стандарт 2026): External Secrets Operator
# Secrets хранятся в Vault / AWS Secrets Manager / Azure Key Vault
# Kubernetes их НИКОГДА не держит у себя в etcd
# Манифест ExternalSecret:
# apiVersion: external-secrets.io/v1beta1
# kind: ExternalSecret
# spec:
# secretStoreRef:
# name: vault-backend
# data:
# - secretKey: db-password
# remoteRef:
# key: production/db
# property: password


Секреты никогда не должны попадать в Git в открытом виде. Стандарт 2026 года: внешние хранилища (HashiCorp Vault, Cloud KMS) с инъекцией через External Secrets Operator или CSI-драйвер.

---

💡 Золотое правило собеса: Когда вас спрашивают про Kubernetes — интервьюер проверяет не знание синтаксиса kubectl, а понимание того, что происходит под капотом. Фраза "pod упал — я смотрю логи предыдущего запуска через --previous флаг, потому что текущие уже затёрты" — мгновенно выдаёт человека, который это делал в реальном продакшне, а не только читал документацию.

Сохраняйте пост — Kubernetes на собесах уже не опциональная тема!

#собеседование_AF #kubernetes #k8s #devops #sysadmin #контейнеры #admin_future
Forwarded from Admin Future
Реагирование_на_инциденты_на_основе_аналитических_данных2_е_издание.pdf
41.7 MB
Incident Response: От паники к аналитике. Данные — ваше главное оружие

Сервер взломан. Новичок жмёт reboot, уничтожая улики. Профессионал начинает расследование. Incident Response (IR) — это не тушение пожара, а системный анализ.

Ваша цель — не "починить", а понять, как произошла атака, чтобы закрыть этот вектор навсегда. Основа для этого — данные:

Логи (Sysmon, auth.log, firewall).

Дампы памяти и снимки дисков.

Сетевой трафик.

Анализ данных с помощью правильных инструментов (Volatility, Wireshark, SIEM) превращает вас в цифрового детектива.

Взгляд архитектора: Этот навык превращает админа в архитектора безопасности, который проектирует устойчивые к будущим атакам системы.

Для глубокого погружения в тему делимся свежайшей книгой "Реагирование на инциденты на основе аналитических данных" (2-е издание, 2024 г.).

Книга прикреплена к посту.

#security #incidentresponse #cybersecurity #гайд #windows #linux #architect
Forwarded from Библиотека программиста
🔒 Планы hh.ru на 2026: привязка к Госуслугам и запрет накрутки опыта

С 2026 года hh.ru делит соискателей на три категории: верифицированные, «серые» и невидимые. Те, кто не привязал Госуслуги и не подтвердил опыт через ЭТК, рискуют отправлять отклики в пустоту.


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

👉 Читать статью

🐸 Библиотека программиста
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Библиотека программиста
🔥 База по ИИ-агентам от научного сотрудника Сколтеха и НИУ ВШЭ

Знакомьтесь, Екатерина Трофимова. Кандидат компьютерных наук, ресерчер в Центре ИИ Сколтеха и лаборатории LAMBDA. Она объединяет глубокую академическую экспертизу и практику: знает, как ИИ-системы устроены «под капотом» и как встроить их в реальные проекты (в т.ч. для Т-банка).

Мы попросили Екатерину собрать список мастхев материалов для тех, кто хочет проектировать агентов в проде. Сохраняйте список.

🛠 Стек и фреймворки:

DSPy — алгоритмическая оптимизация промптов (вместо ручного подбора слов).

Semantic Kernel и LangMem — инструменты для управления сессионной и долгосрочной памятью.

MCP (Model Context Protocol) — новый стандарт от Anthropic для подключения агентов к вашим БД и локальным файлам.

📖 Документация, которую нужно знать:

Anthropic Prompt Caching — как кэшировать контекст и радикально резать косты на API.

OpenAI Agents SDK / Cookbook — лучшие практики работы с памятью.

Augment — платформа для оптимизации работы ИИ-агентов и контроля токенов.

🔬 Хардкорные статьи и препринты (на выходные):

Lost in the Middle — почему LLM «слепнут» на длинных текстах и забывают середину контекста.

How Do Coding Agents Spend Your Money? — куда улетает бюджет при работе автономных кодинг-агентов.

MemGPT — архитектура операционной системы для LLM с иллюзией бесконечной памяти.

InjecAgent / AgentSentry — всё о безопасности и защите агентов от инъекций в промпты.

Екатерина Трофимова — один из ключевых экспертов нашего курса AgentOps. На своих лекциях она детально разбирает, как проектировать инструменты для агентов, как агент принимает решения о вызове инструментов и какие ограничения возникают в реальном проде

🎁 Акция в честь старта продаж!

Прямо сейчас при покупке Инженерного трека вы получаете полный доступ к материалам курса «Разработка ИИ-агентов» в подарок.

👉 Забрать 2 курса по цене 1 и начать обучение
Forwarded from Библиотека программиста
👋 Кризис инструментария API: почему разработчики бегут от Postman и его клонов?

В мире инструментария API становится популярным паттерн, отражающий ситуацию с другими инструментами разработчиков:

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


Postman, когда-то бывший любимцем всех разработчиков, стал наглядным примером такой трансформации. Переломным для многих моментом стало удаление Scratchpad (офлайн-режим).

После этого — снижение производительности и привязка к облачному сервису. Внезапно мы оказались вынуждены синхронизировать свою работу с облаком Postman для доступа к базовому функционалу.

Что сейчас происходит с Postman и что делать дальше — читай в статье.

🐸 Библиотека программиста
Please open Telegram to view this post
VIEW IN TELEGRAM
AI-расслоение: почему с генеративным ИИ всё пошло не так, как со смартфонами #habr
https://habr.com/ru/articles/1027738/
Tags: AI-расслоение, генеративный ИИ, доменная экспертиза, power users, возраст и технологии, диффузия инноваций, вайб-кодинг, найм джуниоров, продуктивность с ИИ, ChatGPT
Author: Xronofag
От каши к структуре: гибридная AI-система для обработки свободного текста #habr
https://habr.com/ru/articles/1027724/
Tags: LLM, структурирование данных, гибридная архитектура, нормализация, Python, Qwen, YAML, поиск по профилям, нетворкинг, обработка естественного языка
Author: andrey_chuyan