π§© 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-ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΌΠ΅ΡΡ **Π²ΠΈΠ΄Π΅ΡΡ Π΄Π΅Π³ΡΠ°Π΄Π°ΡΠΈΡ Π΄ΠΎ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π΅Ρ Π·Π°ΠΌΠ΅ΡΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ.**