ΠΠ½Π΅Π΄ΡΠ΅Π½ΠΈΠ΅ DevOps
Π΄ΠΈΡΡΠ°Π½ΡΠΈΠΎΠ½Π½ΠΎ
Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΠ½Π°Ρ
ΠΠΎΠΆΠ΅Π»Π°Π½ΠΈΡ ΠΈ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ: ΠΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΡΡΠ° Ρ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΠΎΠΏΡΡΠΎΠΌ Azure DevOps Boards. ΠΡΠΆΠ½ΠΎ ΠΏΠΎΠΌΠΎΡΡ ΠΏΠ΅ΡΠ΅Π½Π΅ΡΡΠΈ ΡΡΡΡΠΊΡΡΡΡ ΠΈ ΡΠ°Π±ΠΎΡΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Ρ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅ΠΉ Π΄ΠΎΡΠΊΠΈ Π² Π½ΠΎΠ²ΡΠΉ ΠΏΡΠΎΠ΅ΠΊΡ. ΠΠΎΡΠ»Π΅ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΊΠΎΡΠΏΠΎΡΠ°ΡΠΈΠ²Π½ΡΡ
Π΄ΠΎΡΡΡΠΏΠΎΠ² Ρ
ΠΎΡΡ ΠΏΡΠΎΠ²Π΅ΡΡΠΈ ΡΠ΄Π°Π»Π΅Π½Π½ΡΠΉ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π²ΠΎΡΠΊΡΠΎΠΏ Ρ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠ°ΡΠΈΠ΅ΠΉ ΡΠΊΡΠ°Π½Π°: ΠΏΡΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΡΠΈΠΏΡ ΠΊΠ°ΡΡΠΎΡΠ΅ΠΊ, ΠΏΠΎΠ»Ρ, ΡΡΠ°ΡΡΡΡ ΠΈ ΡΠ²ΡΠ·ΠΈ, ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΈΡΡ ΡΡ
Π΅ΠΌΡ ΡΠΎΠΏΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΈ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΏΠΈΠ»ΠΎΡΠ½ΡΠΉ ΠΏΠ΅ΡΠ΅Π½ΠΎΡ Ρ ΡΠΎΡ
ΡΠ°Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΈΠ΅ΡΠ°ΡΡ
ΠΈΠΈ, Π΄Π°Ρ, ΠΈΡΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»Π΅ΠΉ ΠΈ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ
Π΄Π°Π½Π½ΡΡ
. ΠΠΎΡΡΡΠΏ Π±ΡΠ΄Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅ΡΠ΅Π· ΠΌΠΎΠΉ ΡΠΊΡΠ°Π½, Π±Π΅Π· ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ ΡΡΠ΅ΡΠ½ΡΡ
Π΄Π°Π½Π½ΡΡ
. ΠΠ° ΠΏΠ΅ΡΠ²ΠΎΠΌ ΡΡΠ°ΠΏΠ΅ ΠΌΠ°ΡΡΠΎΠ²Π°Ρ ΠΌΠΈΠ³ΡΠ°ΡΠΈΡ Π½Π΅ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ. ΠΠΎΠ΄ΡΠΊΠ°ΠΆΠΈΡΠ΅, Π΅ΡΡΡ Π»ΠΈ Ρ Π²Π°Ρ ΠΎΠΏΡΡ ΡΠ°ΠΊΠΈΡ
ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΎΠ² ΠΈ ΡΠΊΠΎΠ»ΡΠΊΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΌΠΎΠΆΠ΅Ρ Π·Π°Π½ΡΡΡ Π²ΠΎΡΠΊΡΠΎΠΏ?.
ΠΠ½Π΅Π΄ΡΠ΅Π½ΠΈΠ΅ 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 Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡΠΌΠΈ.
ΠΠ½Π΅Π΄ΡΠ΅Π½ΠΈΠ΅ DevOps
Π΄ΠΈΡΡΠ°Π½ΡΠΈΠΎΠ½Π½ΠΎ
Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΠ½Π°Ρ
ΠΠΎΠΆΠ΅Π»Π°Π½ΠΈΡ ΠΈ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ: Π£ΡΠ»ΡΠ³Π° Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ ΡΡΠΎΠ±Ρ Π½Π°ΡΡΡΠΎΠΈΡΡ tailscale ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΠ° ΡΠ΅ΡΠ²Π΅ΡΠ΅ ΡΠΎΠ·Π΄Π°Π» Π²ΡΠΎΡΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΈ ΠΊ Π²ΡΠΎΡΠΎΠΌΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π²ΡΠ΅ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π° ΠΊ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π½Π΅ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ ΠΠΈΡΠ΅Ρ the logon attempt failed.
ΠΠ½Π΅Π΄ΡΠ΅Π½ΠΈΠ΅ DevOps
Π΄ΠΈΡΡΠ°Π½ΡΠΈΠΎΠ½Π½ΠΎ
Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΠ½Π°Ρ
ΠΠ°ΡΡΡΠΎΠΈΡΡ Π½ΠΎΡΡΠ±ΡΠΊ.
ΠΠ½Π΅Π΄ΡΠ΅Π½ΠΈΠ΅ DevOps
Π΄ΠΈΡΡΠ°Π½ΡΠΈΠΎΠ½Π½ΠΎ
Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΠ½Π°Ρ
ΠΠΎΠΆΠ΅Π»Π°Π½ΠΈΡ ΠΈ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ: ΠΠ΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΠ·Π±Π°Π²ΠΈΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΠΎΡ ΡΡΡΠ½ΠΎΠ³ΠΎ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΡ ΠΊΠΎΠ΄Π° ΠΈ Π½Π°ΡΡΡΠΎΠΈΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ CI/CD Π΄Π»Ρ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠ³ΠΎ Π±ΡΠΊΠ΅Π½Π΄-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΡΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΏΡΡΠ΅ ΠΊΠΎΠ΄Π° Π² Π³Π»Π°Π²Π½ΡΡ Π²Π΅ΡΠΊΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ ΡΠΈΡΡΠ΅ΠΌΠ° Π΄ΠΎΠ»ΠΆΠ½Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΡΠΎΠ²Π΅ΡΡΡΡ ΠΊΠΎΠ΄ Π½Π° ΠΎΡΠΈΠ±ΠΊΠΈ, ΡΠΎΠ±ΠΈΡΠ°ΡΡ Π΅Π³ΠΎ Π² ΠΈΠ·ΠΎΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΡΡΠ΅Π΄Ρ ΠΈ ΡΠ°Π·Π²ΠΎΡΠ°ΡΠΈΠ²Π°ΡΡ Π½Π° ΡΠ΅ΡΡΠΎΠ²ΠΎΠΌ ΡΠ΅ΡΠ²Π΅ΡΠ΅.
ΠΠ½Π΅Π΄ΡΠ΅Π½ΠΈΠ΅ DevOps
Π΄ΠΈΡΡΠ°Π½ΡΠΈΠΎΠ½Π½ΠΎ
Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΠ½Π°Ρ
Π’ΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΡ ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ
ΡΠΎΠ»Π΅ΠΉ ΡΠ΅ΡΠ²Π΅ΡΠΎΠ²: ΡΠ΅ΡΠ²Π΅Ρ Π΄Π»Ρ ΡΠ΅Π½ΡΡΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠ±ΠΎΡΠΊΠΎΠΉ, Π΄Π΅ΠΏΠ»ΠΎΠ΅ΠΌ ΠΈ ΡΠ΅ΠΊΡΠ΅ΡΠ°ΠΌΠΈ; ΠΏΡΠ±Π»ΠΈΡΠ½ΡΠΉ ΡΠ΅ΡΠ²Π΅Ρ Π΄Π»Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ Π²Π΅Π±-Π΄ΠΎΡΡΡΠΏΠ°, Π°Π΄ΠΌΠΈΠ½-ΠΏΠ°Π½Π΅Π»ΠΈ, ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ DNS ΠΈ Π²ΡΠ΄Π°ΡΠΈ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΠ΅Π½ΡΠ°; ΠΈ ΠΎΠ΄ΠΈΠ½ ΡΠΈΠΏ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΡΠ΅ΠΌΠΎΠ³ΠΎ ΡΠ΅ΡΠ²Π΅ΡΠ° ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ°Π·Π²ΠΎΡΠ°ΡΠΈΠ²Π°Π΅ΡΡΡ ΠΏΠΎ Π΅Π΄ΠΈΠ½ΠΎΠΌΡ ΡΠ°Π±Π»ΠΎΠ½Ρ ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ ΠΊ ΡΠΈΡΡΠ΅ΠΌΠ΅ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°Π½ΠΎ. ΠΠ΅ΠΆΠ΄Ρ Π½ΠΈΠΌΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ Π½Π°ΡΡΡΠΎΠ΅Π½Ρ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡΠ΅ ΠΊΠ°Π½Π°Π»Ρ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ, ΡΠ΅Π½ΡΡΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠ΅ Ρ
ΡΠ°Π½Π΅Π½ΠΈΠ΅ ΠΈ Π²ΡΠ΄Π°ΡΠ° ΡΠ΅ΠΊΡΠ΅ΡΠΎΠ², Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΡΠ±ΠΎΡΠΊΠ° ΠΈ Π΄ΠΎΡΡΠ°Π²ΠΊΠ° ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ, Π° ΡΠ°ΠΊΠΆΠ΅ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΡ ΡΠ°Π·Π²ΠΎΡΠ°ΡΠΈΠ²Π°Π½ΠΈΡ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΡΠ΅ΠΌΠΎΠ³ΠΎ ΡΠ΅ΡΠ²Π΅ΡΠ°.
ΠΠ½Π΅Π΄ΡΠ΅Π½ΠΈΠ΅ DevOps
Π΄ΠΈΡΡΠ°Π½ΡΠΈΠΎΠ½Π½ΠΎ
Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΠ½Π°Ρ
ΠΡΠ΅ΠΌ ΠΏΡΠΈΠ²Π΅Ρ, Π½ΡΠΆΠ½Π° ΠΏΠΎΠΌΠΎΡΡ ΠΏΠΎ ΠΏΡΠΎΡ
ΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΠΊΡΡΡΠ° devops Π½Π° ΡΠ½Π΄Π΅ΠΊΡ ΠΏΡΠ°ΠΊΡΠΈΠΊΡΠΌΠ΅. Π‘ΡΠΎΠΊ Π΄Π»Ρ ΡΠ΄Π°ΡΠΈ ΠΈ Π·Π°ΡΠΈΡΡ "Π΄ΠΈΠΏΠ»ΠΎΠΌΠ°" 15 Π°Π²Π³ΡΡΡΠ°. ΠΠ° Π²ΡΠ΅ 1 ΠΌΠ΅ΡΡΡ ΡΡΠ»ΠΎΠ²Π½ΠΎ.