🧩DevOps-задача с подвохом: всё работает, но тормозит
У вас в Kubernetes кластере работает микросервис orders. Всё "зелёное":
- ✅ нет ошибок 5xx
- ✅ логи чистые
- ✅ CPU и RAM в норме
- ✅ Pod'ы не рестартятся
- ✅ HPA не срабатывает
Но пользователи жалуются: ⚠️ заказы проходят с задержкой до 1.5 сек.
🔍 Что под капотом:
- 3 реплики orders
- Зависимость: inventory (всего 1 реплика)
- Один из `orders`-подов иногда теряет сетевое соединение на ~30 сек
- Readiness-проба — /healthz, всегда 200 OK
- HPA срабатывает только по CPU > 80%
- Есть метрика queue_size, но она нигде не используется
🎯Что происходит?
Kubernetes считает проблемный под "живым", потому что /healthz отвечает.
Но этот под не может достучаться до inventory.
Часть трафика уходит в никуда и тормозит.
CPU низкий, ошибок нет — HPA не срабатывает.
Проблема остаётся невидимой, пока пользователи страдают.
✅Как починить:
1. ✂️ **Проверять зависимости в Readiness:**
```yaml
readinessProbe:
exec:
command: ["sh", "-c", "curl -sf http://inventory/healthz || exit 1"]
```
2. 📈 **Добавить алерты на latency, queue size и gRPC ошибки**
3. ⚖️ **Настроить HPA по бизнес-метрикам:**
```yaml
type: External
metric:
name: queue_size
```
4. 🧬 **Добавить 2+ реплики в `inventory`** — избавляемся от SPOF
5. 🧠 **Включить tracing (например, Jaeger)** для отслеживания зависаний
💡 **Урок:** Даже без ошибок система может работать нестабильно.
DevOps-инженер должен уметь **видеть деградацию до того, как её заметит пользователь.**
#DevOps#Kubernetes#SRE#Monitoring#CI_CD#HPA
📋 Disaster Recovery Plan: Как правильно заваривать чай, когда горит серверная.
• В жизни любого проекта наступает катастрофа. Мы не можем заранее знать, что именно это будет - короткое замыкание в серверной, инженер, дропнувший центральную БД или нашествие бобров. Тем не менее, оно обязательно случится, причем по предельно идиотской причине.
• Кстати, насчет бобров - это не шутка. В Канаде они перегрызли кабель и оставили целый район без оптоволоконной связи. А в топе источника проблем для крупной телекоммуникационной компании Level 3 Communications вообще были белки.
• Короче, рано или поздно, кто-то обязательно что-то сломает, уронит, или зальет неверный конфиг в самый неподходящий момент. И вот тут появляется то, что отличает компании, которые успешно переживают фатальную аварию от тех, кто бегает кругами и пытается восстановить рассыпавшуюся инфраструктуру - DRP. Вот о том, как правильно написать Disaster Recovery Plan мы сегодня и поговорим:
➡️Читать статью [10 min].
#DevOps
🗺 DevOps Roadmap
• Держите крутой и актуальный roadmap для DevOps, который включает в себя необходимые ссылки на обучающие материалы для каждого шага на этом пути.
➡️https://github.com/milanm/DevOps-Roadmap
- GIT;
- Learn one programming language;
- Learn Linux & Scripting;
- Learn Networking & Security;
- Learn Server Management;
- Learn Containers;
- Learn Container Orchestration;
- Learn Infrastructure as a code;
- Learn CI/CD;
- Learn Monitoring & Observability;
- Learn one Cloud provider;
- Learn Software Engineering Practices;
- Additional resources;
- Tools;
- Books.
#DevOps