ΠΠ½Π΅Π΄ΡΠ΅Π½ΠΈΠ΅ DevOps
Π΄ΠΈΡΡΠ°Π½ΡΠΈΠΎΠ½Π½ΠΎ
Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΠ½Π°Ρ
ΠΡΡΡ yandex cloud gitlab Π³ΡΠ°ΡΠ°Π½Π°. Π― Π²ΡΡΡΡΠ» Π² Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π·Π°Π΄Π°Π½ΠΈΡ. ΠΡΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΡΡΠΎ ΡΠ΄Π΅Π»Π°Π» Π½Π΅ ΡΠ°ΠΊ ΠΈ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ Π·Π°Π΄Π°Π½ΠΈΠ΅. ΠΡΠ°ΠΊΡΠΈΠΊΠ° ΠΏΠΎ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³Ρ Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΎΡΠ²Π΅ΡΠ° Π½Π° ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΡΡ ΡΠ°Π±ΠΎΡΡ ΠΎΡΠΏΡΠ°Π²ΡΡΠ΅ Π½Π°ΡΡΠ°Π²Π½ΠΈΠΊΡ Merge-Request Π² ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ½ΠΎΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ GitLab. Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ img ΠΈ ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅ Π² Π½Π΅Ρ ΡΠΊΡΠΈΠ½ΡΠΎΡΡ ΡΡΡΡ
Π΄Π°ΡΠ±ΠΎΡΠ΄ΠΎΠ² β Π΄Π°ΡΠ±ΠΎΡΠ΄ Π΄Π»Ρ Π±ΠΈΠ·Π½Π΅Ρ-ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³Π°, ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΡ. ΠΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠΠ»Ρ ΠΈΠΌΠΈΡΠ°ΡΠΈΠΈ ΡΠ΅Π°Π»ΡΠ½ΠΎΠΉ Π½Π°Π³ΡΡΠ·ΠΊΠΈ Π½Π° ΡΠΎΡΠΈΡΠΎΡΠ½ΡΡ ΠΌΡ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΈΠ»ΠΈ Π±ΠΎΡΠ°, ΠΊΠΎΠΏΠΈΡΡΡΡΠ΅Π³ΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π°Π³ΡΠ΅Π³Π°ΡΠΎΡΠΎΠ² Π΄ΠΎΡΡΠ°Π²ΠΊΠΈ Π΅Π΄Ρ. ΠΠΎΠ³Π΄Π° Π²Π°ΠΌ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ ΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ Π³ΡΠ°ΡΠΈΠΊΠΈ, ΠΏΠ΅ΡΠ΅ΠΉΠ΄ΠΈΡΠ΅ Π² Telegram-Π±ΠΎΡΠ°, Π²ΡΠ±Π΅ΡΠΈΡΠ΅ 10 Π³Π»Π°Π²Π° ΠΈ Π½Π°ΠΆΠΌΠΈΡΠ΅ ΠΊΠ½ΠΎΠΏΠΊΡ ΠΠ΅ΡΠ΅Π΄Π°ΠΉ Π°Π΄ΡΠ΅Ρ ΠΌΠ°Π³Π°Π·ΠΈΠ½Π° Π°Π³ΡΠ΅Π³Π°ΡΠΎΡΠ°ΠΌ. ΠΠ°Π΄Π°Π½ΠΈΠ΅ 1. ΠΠΈΠ·Π½Π΅Ρ-Π΄Π°ΡΠ±ΠΎΡΠ΄ ΠΠ° ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅ΠΌ Π΄Π°ΡΠ±ΠΎΡΠ΄Π΅ Sausage Store Business ΡΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡ Π³ΡΠ°ΡΠΈΠΊΡ ΡΡΠ°ΡΠΈΠΊΠ° Π·Π°ΠΊΠ°Π·ΠΎΠ² Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΠΎΡΠΈΡΠΊΠΈ. ΠΠ°Π΄Π°Π½ΠΈΠ΅ 2. ΠΠ°ΡΠ±ΠΎΡΠ΄ Π΄Π»Ρ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ Π΄Π°ΡΠ±ΠΎΡΠ΄ Sausage Store App ΠΈ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅ Π² Π½ΡΠΌ Π³ΡΠ°ΡΠΈΠΊΠΈ ΡΠ΅ΡΡΡΡΡ
Π·ΠΎΠ»ΠΎΡΡΡ
ΡΠΈΠ³Π½Π°Π»ΠΎΠ²: ΠΠ°Π΄Π΅ΡΠΆΠΊΠ° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π·Π°ΠΏΡΠΎΡΠΎΠ² ΠΊ URL /api/orders. ΠΠ΄Π΅ΡΡ Π½Π°ΠΌ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°ΡΡ 99 ΠΏΠ΅ΡΡΠ΅Π½ΡΠΈΠ»Ρ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π²ΡΠ΅Ρ
Π·Π°ΠΊΠ°Π·ΠΎΠ². Π’ΡΠ°ΡΠΈΠΊ ΡΡΠΏΠ΅ΡΠ½ΡΡ
Π·Π°ΠΏΡΠΎΡΠΎΠ² Π² ΡΠ΅ΠΊΡΠ½Π΄Ρ ΠΊ Π±ΠΈΠ·Π½Π΅Ρ-ΡΠ½Π΄ΠΏΠΎΠΈΠ½ΡΠ°ΠΌ Π±ΡΠΊΠ΅Π½Π΄Π°. Π ΡΡΠΎΠΌ Π³ΡΠ°ΡΠΈΠΊΠ΅ Π½ΡΠΆΠ½ΠΎ ΠΈΡΠΊΠ»ΡΡΠΈΡΡ ΡΠ°ΠΊΠΈΠ΅ Π·Π°ΠΏΡΠΎΡΡ ΠΊΠ°ΠΊ Ρ
Π΅Π»ΡΡΠ΅ΠΊΠΈ Kubernetes (/actuator/health) ΠΈ ΡΠ±ΠΎΡ ΠΌΠ΅ΡΡΠΈΠΊ Prometheus (/actuator/prometheus), Π° Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΌΠ΅ΡΡΠΈΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΡΡΡΠΈΠΊ count Π³ΠΈΡΡΠΎΠ³ΡΠ°ΠΌΠΌΡ http_server_requests_seconds. Π§Π°ΡΡΠΎΡΠ° ΠΎΡΠΈΠ±ΠΎΠΊ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΡ ΠΊ Π±ΠΈΠ·Π½Π΅Ρ-ΡΠ½Π΄ΠΏΠΎΠΈΠ½ΡΠ°ΠΌ Π±ΡΠΊΠ΅Π½Π΄Π° Π² ΡΠ΅ΠΊΡΠ½Π΄Ρ. Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΌΠ΅ΡΡΠΈΠΊΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΡΡΡΠΈΠΊ count Π³ΠΈΡΡΠΎΠ³ΡΠ°ΠΌΠΌΡ http_server_requests_seconds Ρ Π»Π΅ΠΉΠ±Π»ΠΎΠΌ status="404". Π, Π½Π°ΠΊΠΎΠ½Π΅Ρ, Π³ΡΠ°ΡΠΈΠΊ Π½Π°ΡΡΡΠ΅Π½ΠΈΡ β ΠΎΠ±ΡΠ΅Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡΠΈ jvm_memory_used_bytes Π² ΠΏΡΠΎΡΠ΅Π½ΡΠ°Ρ
, ΠΊΠ°ΠΊ Π΄Π»Ρ ΠΊΡΡΠΈ, ΡΠ°ΠΊ ΠΈ Π΄Π»Ρ Π΄ΡΡΠ³ΠΈΡ
ΡΠ΅Π»Π΅ΠΉ. ΠΠΎΡΠΌΠΎΡΡΠΈΡΠ΅ PromQL Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ Π² ΠΏΠ°Π½Π΅Π»ΡΡ
Heap used ΠΈ Non-Heap used Π΄Π°ΡΠ±ΠΎΡΠ΄Π° JVM (Actuator) ΠΈ ΠΏΠΎΡΡΡΠΎΠΉΡΠ΅ Π°Π³ΡΠ΅Π³ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ Π³ΡΠ°ΡΠΈΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΠΈ. PromQL Π·Π°ΠΏΡΠΎΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΡΠ΅Π³ΡΠ»ΡΡΠ½ΡΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ Π² Π·Π½Π°ΡΠ΅Π½ΠΈΡΡ
Π»Π΅ΠΉΠ±Π»ΠΎΠ² ΠΈΠ»ΠΈ ΠΈΠΌΡΠ½ ΠΌΠ΅ΡΡΠΈΠΊ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π»Ρ ΡΡΠΏΠ΅ΡΠ½ΡΡ
HTTP-Π·Π°ΠΏΡΠΎΡΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ Π»Π΅ΠΉΠ±Π»Π° status!~"4..". ΠΠΎΠ½ΡΡΠ½ΠΎΠ΅ Π·Π°Π΄Π°Π½ΠΈΠ΅. ΠΠ°ΡΠ±ΠΎΡΠ΄ Π΄Π»Ρ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³Π° ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΡ Helm-ΡΠ°ΡΡ Prometheus ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΈ Prometheus Ρ ΡΠ΅ΡΠ²ΠΈΡΠ°ΠΌΠΈ Yandex Cloud. ΠΠ»Ρ Π½Π°ΡΠΈΡ
Π±Π°Π· Π΄Π°Π½Π½ΡΡ
(PostgreSQL ΠΈ MongoDB), Π·Π°ΠΏΡΡΠ΅Π½Π½ΡΡ
Π² ΠΎΠ±Π»Π°ΠΊΠ΅, Prometheus Π±ΡΠ΄Π΅Ρ ΡΠΎΠ±ΠΈΡΠ°ΡΡ ΠΌΠ΅ΡΡΠΈΠΊΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΠΌΠ° Service Discovery, Π½ΠΎ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ Π½ΡΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Π² values.yaml. ΠΡΠΎ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ yandex_cloud_services, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΡΠΏΠΈΡΠΎΠΊ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ
ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ΅ΡΠ²ΠΈΡΠ°: yandex_cloud_services: # ΠΡΠΈΠΌΠ΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ Π΄Π»Ρ ΡΠ΅ΡΠ²ΠΈΡΠ° Managed PostgreSQL - service: managed-postgresql serviceId: folderId: bearer_token: <Π’ΠΎΠΊΠ΅Π½ Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΠΈ> scrape_interval: 60s # ΠΡΠΈΠΌΠ΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ Π΄Π»Ρ ΡΠ΅ΡΠ²ΠΈΡΠ° Managed MongoDB - service: managed-mongodb serviceId: cakvctgrte4hunhvs8f folderId: b1g2hqnugteh52j2dfr bearer_token: AQVN3veeVseTVUm4RFjy-WRt9INXbdkS6Q8iC3Bh scrape_interval: 60s Π§ΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠ² folderId ΠΈ serviceId Π΄Π»Ρ ΠΊΠ»Π°ΡΡΠ΅ΡΠ° Managed PostgreSQL, Π·Π°ΠΉΠ΄ΠΈΡΠ΅ Π² ΠΊΠΎΠ½ΡΠΎΠ»Ρ Yandex Cloud ΠΈ ΡΠΊΠΎΠΏΠΈΡΡΠΉΡΠ΅ ID ΡΠΎΠ»Π΄Π΅ΡΠ° Π²Π°ΡΠ΅ΠΉ ΠΊΠΎΠ³ΠΎΡΡΡ. ΠΡΠ±Π΅ΡΠΈΡΠ΅ ΡΠ΅ΡΠ²ΠΈΡ Managed Service for PostgreSQL ΠΈ ΡΠΊΠΎΠΏΠΈΡΡΠΉΡΠ΅ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ Π²Π°ΡΠ΅Π³ΠΎ ΠΊΠ»Π°ΡΡΠ΅ΡΠ°: ΡΡΠΎ Π±ΡΠ΄Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ serviceId. Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ bearer_token Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ API Key ΡΠ΅ΡΠ²ΠΈΡΠ½ΠΎΠ³ΠΎ Π°ΠΊΠΊΠ°ΡΠ½ΡΠ° Ρ ΡΠΎΠ»ΡΡ monitoring.viewer Π² ΡΠΎΠ»Π΄Π΅ΡΠ΅. ΠΠΎΠ΄ΡΠΎΠ±Π½Π°Ρ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ ΠΏΠΎ ΡΠ°ΠΊΠΎΠΉ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΈ ΠΏΠΎ ΡΡΡΠ»ΠΊΠ΅. ΠΠΎΠ±Π°Π²ΡΡΠ΅ Π½Π° ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ½ΡΠΉ Π΄Π°ΡΠ±ΠΎΡΠ΄ Π³ΡΠ°ΡΠΈΠΊΠΈ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π·Π°ΠΏΡΠΎΡΠΎΠ² (Π·Π°Π΄Π΅ΡΠΆΠΊΠ°) ΠΈ Π³ΡΠ°ΡΠΈΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠ΅ΡΡΡΡΠΎΠ² (Π½Π°ΡΡΡΠ΅Π½ΠΈΠ΅) β ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° ΠΈ ΠΏΠ°ΠΌΡΡΠΈ Π΄Π»Ρ ΠΊΠ»Π°ΡΡΠ΅ΡΠΎΠ² PostgreSQL ΠΈ MongoDB. Π§Π΅ΠΊ-Π»ΠΈΡΡ Π΄Π»Ρ ΡΠ°ΠΌΠΎΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ? ΠΡΡΡ Π΄Π°ΡΠ±ΠΎΡΠ΄ Sausage Store Business Ρ ΡΠ΅ΡΡΡΡ ΠΏΠ°Π½Π΅Π»ΡΠΌΠΈ ΠΏΠΎΠ΄ ΠΊΠ°ΠΆΠ΄ΡΠΉ Π²ΠΈΠ΄ ΡΠΎΡΠΈΡΠΊΠΈ. ? ΠΡΡΡ Π΄Π°ΡΠ±ΠΎΡΠ΄ Sausage Store App Ρ ΡΠ΅ΡΡΡΡΠΌΡ ΠΏΠ°Π½Π΅Π»ΡΠΌΠΈ ΡΠΎ Π²ΡΠ΅ΠΌΠ΅Π½Π΅ΠΌ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π²ΡΠ΅Ρ
Π·Π°ΠΊΠ°Π·ΠΎΠ², ΡΡΠΏΠ΅ΡΠ½ΡΠΌΠΈ Π·Π°ΠΏΡΠΎΡΠ°ΠΌΠΈ ΠΊ Π±ΡΠΊΠ΅Π½Π΄Ρ Π² ΡΠ΅ΠΊΡΠ½Π΄Ρ, ΡΠ°ΡΡΠΎΡΠΎΠΉ ΠΎΡΠΈΠ±ΠΎΡΠ½ΡΡ
Π·Π°ΠΏΡΠΎΡΠΎΠ² ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΏΠ°ΠΌΡΡΠΈ Java. ? Π ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ½ΠΎΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ Π΅ΡΡΡ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ img ΡΠΎ ΡΠΊΡΠΈΠ½ΡΠΎΡΠ°ΠΌΠΈ Π²ΡΠ΅Ρ
Π΄Π°ΡΠ±ΠΎΡΠ΄ΠΎΠ²;. ? ΠΡΡΡ Merge Request Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡΠΌΠΈ.
2026-07-19
ΠΡΠΊΠ»ΠΈΠΊΠ½ΡΡΡΡΡ