Π”Π΅Π½ΡŒ 5: git hooks β€” ΠΊΠ°ΠΊ ΠΎΡ‚Π»ΠΎΠ²ΠΈΡ‚ΡŒ мусор Π΄ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°

ЦСль ΡƒΡ€ΠΎΠΊΠ° ПослС ΡƒΡ€ΠΎΠΊΠ° Π²Ρ‹ ΡƒΠΌΠ΅Π΅Ρ‚Π΅ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΈ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ pre-commit ΠΈ commit-msg hook Π½Π° чистом bash (Π±Π΅Π· Husky / Node / Python), ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ‚Π΅ ΠΏΠΎΡ‡Π΅ΠΌΡƒ hooks ΠΆΠΈΠ²ΡƒΡ‚ локально ΠΈ ΠΊΠ°ΠΊ Ρ€Π°ΡΠΏΡ€ΠΎΡΡ‚Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΈΡ… Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Ρ‡Π΅Ρ€Π΅Π· core.hooksPath + ΠΏΠ°ΠΏΠΊΡƒ Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ. ΠœΠΎΠΆΠ΅Ρ‚Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ сСкрСтов, trailing whitespace, Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Conventional Commits. ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Bloom ΠŸΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ SFIA Π£Ρ€ΠΎΠ²Π΅Π½ΡŒ 3 ВрСмя 40 ΠΌΠΈΠ½ΡƒΡ‚ АртСфакт repo/.githooks/pre-commit + commit-msg + core.hooksPath = .githooks ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ΠšΠΎΠΌΠΌΠΈΡ‚ с сСкрСтом блокируСтся; ΠΊΠΎΠΌΠΌΠΈΡ‚ с ΠΊΡ€ΠΈΠ²Ρ‹ΠΌ сообщСниСм блокируСтся; git commit --no-verify ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΡ‚ (ΠΈ это ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΠΎ) ВСория: Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ git hook Hook β€” это исполняСмый Ρ„Π°ΠΉΠ» Π² ΠΏΠ°ΠΏΠΊΠ΅ .git/hooks/, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Git Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΠΎΠ΅ событиС. Если Ρ„Π°ΠΉΠ» Π΅ΡΡ‚ΡŒ ΠΈ ΠΈΠΌΠ΅Π΅Ρ‚ Π±ΠΈΡ‚ +x β€” Git запустит Π΅Π³ΠΎ ΠΈ смотрит Π½Π° exit code: 0 β€” ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ, Π½Π΅ 0 β€” ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ. ...

16 апрСля 2026 Β· 8 ΠΌΠΈΠ½ΡƒΡ‚ Β· 1632 слова Β· DevOps Way

Π”Π΅Π½ΡŒ 6: bisect β€” Git Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ сломавший ΠΊΠΎΠΌΠΌΠΈΡ‚ Π·Π° вас

ЦСль ΡƒΡ€ΠΎΠΊΠ° ПослС ΡƒΡ€ΠΎΠΊΠ° Π²Ρ‹ ΡƒΠΌΠ΅Π΅Ρ‚Π΅ Π½Π°ΠΉΡ‚ΠΈ ΠΊΠΎΠΌΠΌΠΈΡ‚, Π²Π½Ρ‘ΡΡˆΠΈΠΉ Ρ€Π΅Π³Ρ€Π΅ΡΡΠΈΡŽ, Π·Π° logβ‚‚(N) шагов Ρ‡Π΅Ρ€Π΅Π· git bisect; Ρ€Π°Π·Π»ΠΈΡ‡Π°Π΅Ρ‚Π΅ bad, good, skip; ΡƒΠΌΠ΅Π΅Ρ‚Π΅ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ поиск Ρ‡Π΅Ρ€Π΅Π· git bisect run с Π»ΡŽΠ±Ρ‹ΠΌ тСст-скриптом. ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Bloom ΠŸΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅, Анализ SFIA Π£Ρ€ΠΎΠ²Π΅Π½ΡŒ 2–3 ВрСмя 30–40 ΠΌΠΈΠ½ΡƒΡ‚ АртСфакт test-bisect.sh β€” тСст-Π΄Π΅Ρ‚Π΅ΠΊΡ‚ΠΎΡ€ ΠΏΠΎΠ΄ bisect run ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Мини-тСст + сцСнарий Β«Π½Π°ΠΉΠ΄ΠΈ Π²ΠΈΠ½ΠΎΠ²Π½ΠΈΠΊΠ° Π·Π° 4 шага» ВСория Π·Π° 3 ΠΌΠΈΠ½ΡƒΡ‚Ρ‹ Git-история β€” это DAG ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ². ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚ Π·Π½Π°Π΅Ρ‚, ΠΎΡ‚ ΠΊΠ°ΠΊΠΎΠ³ΠΎ родитСля ΠΎΠ½ ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΡ‘Π». ...

16 апрСля 2026 Β· 6 ΠΌΠΈΠ½ΡƒΡ‚ Β· 1 слово Β· DevOps Way

Π”Π΅Π½ΡŒ 7: cherry-pick ΠΈ rerere β€” пСрСнос ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² ΠΈ ΠΏΠ°ΠΌΡΡ‚ΡŒ Git ΠΎ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Π°Ρ…

ЦСль ΡƒΡ€ΠΎΠΊΠ° ПослС ΡƒΡ€ΠΎΠΊΠ° Π²Ρ‹ ΡƒΠΌΠ΅Π΅Ρ‚Π΅ ΠΏΠ΅Ρ€Π΅Π½ΠΎΡΠΈΡ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ ΠΌΠ΅ΠΆΠ΄Ρƒ Π²Π΅Ρ‚ΠΊΠ°ΠΌΠΈ Ρ‡Π΅Ρ€Π΅Π· cherry-pick, Ρ€Π°Π·Π»ΠΈΡ‡Π°Π΅Ρ‚Π΅ случаи, ΠΊΠΎΠ³Π΄Π° это умСстно, ΠΈ ΠΊΠΎΠ³Π΄Π° ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Π΅Π΅ merge/rebase. Π’ΠΊΠ»ΡŽΡ‡ΠΈΠ»ΠΈ rerere глобально ΠΈ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ‚Π΅, ΠΊΠ°ΠΊ Git Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅Ρ‚ вашС Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π΅Π³ΠΎ автоматичСски Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Ρ€Π°Π·. ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Bloom ΠŸΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅, Анализ SFIA Π£Ρ€ΠΎΠ²Π΅Π½ΡŒ 2–3 ВрСмя 35–45 ΠΌΠΈΠ½ΡƒΡ‚ АртСфакт rerere.enabled = true Π² ~/.gitconfig + алиас pick ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Мини-тСст + сцСнарий с ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½Ρ‹ΠΌ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠΌ ВСория Π·Π° 3 ΠΌΠΈΠ½ΡƒΡ‚Ρ‹ git cherry-pick <sha> Π±Π΅Ρ€Ρ‘Ρ‚ ΠΎΠ΄ΠΈΠ½ ΠΊΠΎΠΌΠΌΠΈΡ‚ с ΠΎΠ΄Π½ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΈ ΠΈ примСняСт ΠΊΠ°ΠΊ Π½ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚ Π½Π° Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ. Новый ΠΊΠΎΠΌΠΌΠΈΡ‚ ΠΈΠΌΠ΅Π΅Ρ‚ Π΄Ρ€ΡƒΠ³ΠΎΠΉ SHA, Π½ΠΎ Ρ‚ΠΎΡ‚ ΠΆΠ΅ diff ΠΈ Ρ‚ΠΎ ΠΆΠ΅ сообщСниС. ...

16 апрСля 2026 Β· 7 ΠΌΠΈΠ½ΡƒΡ‚ Β· 1380 слов Β· DevOps Way

Π”Π΅Π½ΡŒ 8: worktree β€” Π΄Π²Π΅ Π²Π΅Ρ‚ΠΊΠΈ Π² Π΄Π²ΡƒΡ… ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°Ρ…, ΠΎΠ΄ΠΈΠ½ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ

ЦСль ΡƒΡ€ΠΎΠΊΠ° ПослС ΡƒΡ€ΠΎΠΊΠ° Π²Ρ‹ ΡƒΠΌΠ΅Π΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ€Π°Π±ΠΎΡ‡ΠΈΠ΅ Π΄Π΅Ρ€Π΅Π²ΡŒΡ Ρ‡Π΅Ρ€Π΅Π· git worktree, Π΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Π² Π½ΠΈΡ… Ρ€Π°Π·Π½Ρ‹Π΅ Π²Π΅Ρ‚ΠΊΠΈ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ, ΡƒΠ±ΠΈΡ€Π°Ρ‚ΡŒ ΠΈΡ… ΠΈ Ρ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ ΠΌΡ‘Ρ€Ρ‚Π²Ρ‹Π΅ ссылки Ρ‡Π΅Ρ€Π΅Π· prune. ΠŸΠΎΠ½ΠΈΠΌΠ°Π΅Ρ‚Π΅, Ρ‡Ρ‚ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΈ refs Π»Π΅ΠΆΠ°Ρ‚ Π² ΠΎΠ΄Π½ΠΎΠΌ .git/, Π° HEAD ΠΈ index β€” своё для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π΄Π΅Ρ€Π΅Π²Π°. ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Bloom ΠŸΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅, Анализ SFIA Π£Ρ€ΠΎΠ²Π΅Π½ΡŒ 2–3 ВрСмя 25–35 ΠΌΠΈΠ½ΡƒΡ‚ АртСфакт Алиасы wta/wtl/wtr + конвСнция ~/code/<repo>/ + <repo>-<Π²Π΅Ρ‚ΠΊΠ°>/ ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Мини-тСст + ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Π°Ρ Ρ€Π°Π±ΠΎΡ‚Π° feature + hotfix Π±Π΅Π· stash ВСория Π·Π° 3 ΠΌΠΈΠ½ΡƒΡ‚Ρ‹ ΠžΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ выглядит Ρ‚Π°ΠΊ: ΠΎΠ΄ΠΈΠ½ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ my-repo/, Π²Π½ΡƒΡ‚Ρ€ΠΈ .git/ с ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ ΠΈ refs, рядом ваши Ρ„Π°ΠΉΠ»Ρ‹. Π’ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ checked out ΠΎΠ΄Π½Π° Π²Π΅Ρ‚ΠΊΠ° β€” это ваш HEAD. ...

16 апрСля 2026 Β· 7 ΠΌΠΈΠ½ΡƒΡ‚ Β· 1 слово Β· DevOps Way

Git Mastery Challenge: сломанный Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ для ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ

Π—Π°Ρ‡Π΅ΠΌ 9 ΡƒΡ€ΠΎΠΊΠΎΠ² сСрии Π΄Π°ΡŽΡ‚ Π½Π°Π²Ρ‹ΠΊΠΈ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡƒ Π·Π° Ρ€Π°Π· Π² ΡΡ‚Π΅Ρ€ΠΈΠ»ΡŒΠ½Ρ‹Ρ… sandbox-рСпозиториях. Π’ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Π½Π°Π²Π°Π»ΠΈΠ²Π°ΡŽΡ‚ΡΡ слоями: мусорная история ΠΈ ΡƒΡ‚Π΅ΠΊΡˆΠΈΠΉ сСкрСт ΠΈ merge-ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ ΠΈ Π΄Π²Π° worktree Π² Ρ€Π°Π·Π½Ρ‹Ρ… состояниях β€” всё ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ. Challenge β€” ΠΎΠ΄ΠΈΠ½ Π·Π°Ρ€Π°Π½Π΅Π΅ сломанный Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ с 10 Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°ΠΌΠΈ. Π’Ρ‹ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚Π΅ Π΅Π³ΠΎ Ρ€ΡƒΠΊΠ°ΠΌΠΈ ΠΈ провСряСтС прогрСсс автоматичСским скриптом. Π§Ρ‚ΠΎ Π²Π½ΡƒΡ‚Ρ€ΠΈ Π Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ собираСтся скриптом setup-challenge.sh ΠΈΠ· чистого состояния ΠΈ содСрТит: Грязная история ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² β€” сообщСния fix, oops, update stuff (ΡƒΡ€ΠΎΠΊ 1) ΠŸΠΎΡ‚Π΅Ρ€ΡΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚ Π² reflog β€” ΠΊΡ‚ΠΎ-Ρ‚ΠΎ сдСлал reset --hard, Π² Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌ Π΄Π΅Ρ€Π΅Π²Π΅ Π΅Π³ΠΎ Π½Π΅Ρ‚ (ΡƒΡ€ΠΎΠΊ 2) Merge-ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ Π² ΠΎΠ΄Π½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅ ΠΎΡ‚ Ρ‚Ρ€Ρ‘Ρ… Π²Π΅Ρ‚ΠΎΠΊ (ΡƒΡ€ΠΎΠΊ 3, ΡƒΡ€ΠΎΠΊ 4) Активная рСбСйс-Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ°, прСрванная Π½Π° ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Π΅ β€” Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ ΠΈΠ»ΠΈ ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ (ΡƒΡ€ΠΎΠΊ 4) API-ΠΊΠ»ΡŽΡ‡ ΠΈ ΠΏΡ€ΠΈΠ²Π°Ρ‚Π½Ρ‹ΠΉ RSA Π² истории β€” Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹Ρ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ ΠΈ ΠΏΠΎΠ΄ΡΡ‚Ρ€Π°Ρ…ΠΎΠ²Π°Ρ‚ΡŒΡΡ Ρ…ΡƒΠΊΠΎΠΌ (ΡƒΡ€ΠΎΠΊ 5) БСрия ΠΈΠ· пяти WIP-ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² ΠΏΠ΅Ρ€Π΅Π΄ merge β€” Π½ΡƒΠΆΠ΅Π½ rebase -i squash (ΡƒΡ€ΠΎΠΊ 4) РСгрСссия Π² 20 ΠΊΠΎΠΌΠΌΠΈΡ‚Π°Ρ… β€” ищСтся bisect’ом Π·Π° 5 шагов (ΡƒΡ€ΠΎΠΊ 6) ΠšΠΎΠΌΠΌΠΈΡ‚ ΠΈΠ· Ρ‡ΡƒΠΆΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΈ Π½ΡƒΠΆΠ΅Π½ Π² вашСй β€” cherry-pick с ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠΌ + rerere Π·Π°ΠΏΠΎΠΌΠ½ΠΈΡ‚ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ (ΡƒΡ€ΠΎΠΊ 7) ΠŸΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Π°Ρ Π·Π°Π΄Π°Ρ‡Π° Π±Π΅Π· ΠΏΠΎΡ‚Π΅Ρ€ΠΈ WIP β€” Ρ€Π΅ΡˆΠ°Π΅Ρ‚ΡΡ worktree (ΡƒΡ€ΠΎΠΊ 8) Π‘Ρ‚Π°Ρ€Ρ‹ΠΉ Ρ…Π»Π°ΠΌ Π² .git/worktrees/ β€” ΠΎΡΠΈΡ€ΠΎΡ‚Π΅Π²ΡˆΠΈΠ΅ записи, Π½ΡƒΠΆΠ΅Π½ worktree prune (ΡƒΡ€ΠΎΠΊ 8) Π—Π°Π΄Π°Ρ‡ΠΈ ΠΈΠ΄ΡƒΡ‚ с Π½Π°Ρ€Π°ΡΡ‚Π°ΡŽΡ‰Π΅ΠΉ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ. P1–P6 ΠΏΠΎΠΊΡ€Ρ‹Π²Π°ΡŽΡ‚ Π±Π°Π·Ρƒ (ΡƒΡ€ΠΎΠΊΠΈ 0–5), P7–P10 ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚Ρ‹Π΅ инструмСнты (ΡƒΡ€ΠΎΠΊΠΈ 6–8). ...

16 апрСля 2026 Β· 4 ΠΌΠΈΠ½ΡƒΡ‚Ρ‹ Β· 658 слов Β· DevOps Way

Π‘Ρ‚Ρ€Π°Ρ‚Π΅Π³ΠΈΠΈ Π½Π°Π±Π»ΡŽΠ΄Π°Π΅ΠΌΠΎΡΡ‚ΠΈ ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Π΄Π°ΡˆΠ±ΠΎΡ€Π΄ΠΎΠ²

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Ρ‹ ΠΊ Π½Π°Π±Π»ΡŽΠ΄Π°Π΅ΠΌΠΎΡΡ‚ΠΈ ΠœΠ΅Ρ‚ΠΎΠ΄ USE (Utilization, Saturation, Errors) ΠœΠ΅Ρ‚ΠΎΠ΄ USE (Утилизация, ΠΠ°ΡΡ‹Ρ‰Π΅Π½Π½ΠΎΡΡ‚ΡŒ, Ошибки) ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ Брэнданом Π“Ρ€Π΅Π³Π³ΠΎΠΌ ΠΊΠ°ΠΊ способ систСмно ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ β€œΠ·Π΄ΠΎΡ€ΠΎΠ²ΡŒΠ΅β€ рСсурсов инфраструктуры (CPU, ΠΏΠ°ΠΌΡΡ‚ΡŒ, диск, ΡΠ΅Ρ‚ΡŒ ΠΈ ΠΏΡ€.) (brendangregg.com) ИдСя проста: для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ рСсурса отслСТивай Ρ‚Ρ€ΠΈ аспСкта: Utilization (утилизация) β€” сколько Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ рСсурс занят ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ (Π² ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚Π°Ρ…). Saturation (Π½Π°ΡΡ‹Ρ‰Π΅Π½Π½ΠΎΡΡ‚ΡŒ) β€” ΠΈΠΌΠ΅ΡŽΡ‚ΡΡ Π»ΠΈ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ Π·Π°Π΄Π°Ρ‡, ΠΆΠ΄ΡƒΡ‚ Π»ΠΈ ΠΎΠ½ΠΈ доступ ΠΊ рСсурсу. Errors (ошибки) β€” сколько ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π·Π°Π²Π΅Ρ€ΡˆΠΈΠ»ΠΎΡΡŒ с ошибкой ΠΈΠ»ΠΈ сбоСм. Π­Ρ‚ΠΎΡ‚ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ быстро Π²Ρ‹ΡΠ²Π»ΡΡ‚ΡŒ β€œΡƒΠ·ΠΊΠΈΠ΅ мСста” Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ оборудования ΠΈΠ»ΠΈ Π±Π°Π·ΠΎΠ²Ρ‹Ρ… систСм, Π΄Π°ΠΆΠ΅ ΠΊΠΎΠ³Π΄Π° Ρ‚Ρ‹ Π½Π΅ знаСшь Π·Π°Ρ€Π°Π½Π΅Π΅, Π³Π΄Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°. (brendangregg.com) ...

25 сСнтября 2025 Β· 5 ΠΌΠΈΠ½ΡƒΡ‚ Β· 894 слова Β· DevOps Way

Π›ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ AI-ассистСнт Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π΅: Π³Π°ΠΉΠ΄ для DevOps-ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Π° (2026)

Π’ Ρ„Π΅Π²Ρ€Π°Π»Π΅ Qwen Code выглядСл ΠΊΠ°ΠΊ бСсплатная Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π° Claude Code. 15 апрСля Alibaba Π·Π°ΠΊΡ€Ρ‹Π»Π° бСсплатный доступ. Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚ устарСл Π·Π° Π΄Π²Π° мСсяца. Π­Ρ‚ΠΎ типичная ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°: привязка ΠΊ ΠΎΠ΄Π½ΠΎΠΌΡƒ Π²Π΅Π½Π΄ΠΎΡ€Ρƒ = риск. БСгодня бСсплатно, Π·Π°Π²Ρ‚Ρ€Π° – Π½Π΅Ρ‚. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ пСрСзапускаСм Ρ‚Π΅ΠΌΡƒ с Π΄Ρ€ΡƒΠ³ΠΈΠΌ фокусом: tool-agnostic + model-agnostic. Π’Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ CLI ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ, модСль ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ, ΠΈ собираСм Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ стСк, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅ сломаСтся ΠΎΡ‚ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ Ρ‡ΡƒΠΆΠΎΠ³ΠΎ ΠΌΠ΅Π½Π΅Π΄ΠΆΠΌΠ΅Π½Ρ‚Π°. Π§Π°ΡΡ‚ΡŒ 1: Π’Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ CLI Π’Ρ€ΠΈ Ρ€Π°Π±ΠΎΡ‡ΠΈΡ… Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π° Π½Π° ΠΌΠ°ΠΉ 2026. ВсС – open-source, всС Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ с Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ модСлями Ρ‡Π΅Ρ€Π΅Π· Ollama. ...

22 мая 2026 Β· 11 ΠΌΠΈΠ½ΡƒΡ‚ Β· 2175 слов Β· DevOps Way

Docker Level 05: Multi-stage -- Go binary 10MB, ΠΎΠ±Ρ€Π°Π· 900MB

Π‘ΠžΠ›Π¬ Go-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π‘ΠΈΠ½Π°Ρ€Π½ΠΈΠΊ – 10MB, статичСски слинкован, Π±Π΅Π· зависимостСй. docker images ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ 900MB. Π’Π½ΡƒΡ‚Ρ€ΠΈ ΠΎΠ±Ρ€Π°Π·Π°: вСсь Go SDK (500MB), git, gcc, make, исходники, кСш сборки. НичСго ΠΈΠ· этого Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ Π² production. 900MB Π½Π° ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ микросСрвис, 12 сСрвисов – это 10.8GB Π½Π° Π½ΠΎΠ΄Ρƒ. ΠŸΡ€ΠΈ Π΄Π΅ΠΏΠ»ΠΎΠ΅ скачиваСтся 900MB Π½Π° ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ pod restart. Rollout Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ ΠΌΠΈΠ½ΡƒΡ‚Ρ‹ вмСсто сСкунд. Multi-stage build Ρ€Π΅ΡˆΠ°Π΅Ρ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ: ΠΎΠ΄ΠΈΠ½ этап для сборки, Π΄Ρ€ΡƒΠ³ΠΎΠΉ – для запуска. Π’ Ρ„ΠΈΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΠ±Ρ€Π°Π· ΠΏΠΎΠΏΠ°Π΄Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π±ΠΈΠ½Π°Ρ€Π½ΠΈΠΊ. ...

18 мая 2026 Β· 3 ΠΌΠΈΠ½ΡƒΡ‚Ρ‹ Β· 532 слова Β· DevOps Way

Docker Level 04: .dockerignore -- ΠžΠ±Ρ€Π°Π· 2GB, Π²Π½ΡƒΡ‚Ρ€ΠΈ .env с паролями

Π‘ΠžΠ›Π¬ РСвью Docker-ΠΎΠ±Ρ€Π°Π·Π° ΠΏΠ΅Ρ€Π΅Π΄ Π΄Π΅ΠΏΠ»ΠΎΠ΅ΠΌ. docker images ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ 2.1GB для простого Node.js-прилоТСния. ЗапускаСтС docker run --rm myapp ls -la ΠΈ Π²ΠΈΠ΄ΠΈΡ‚Π΅: node_modules (800MB), .git (400MB), test-data (500MB). И самоС ΡΡ‚Ρ€Π°ΡˆΠ½ΠΎΠ΅ – .env с DB_PASSWORD, JWT_SECRET, AWS_SECRET_KEY. ΠžΠ±Ρ€Π°Π· ΡƒΠΆΠ΅ Π² Docker Hub. ΠŸΠ°Ρ€ΠΎΠ»ΠΈ Π² ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠΌ доступС. Π”Π°ΠΆΠ΅ Ссли ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ .env Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ слоС – ΠΎΠ½ останСтся Π² истории ΠΎΠ±Ρ€Π°Π·Π°. docker history ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ‚ всё. Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅: .dockerignore – Ρ„Π°ΠΉΠ»-Ρ„ΠΈΠ»ΡŒΡ‚Ρ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅ пускаСт лишнСС Π² контСкст сборки. ...

18 мая 2026 Β· 3 ΠΌΠΈΠ½ΡƒΡ‚Ρ‹ Β· 535 слов Β· DevOps Way

Docker Level 03: Layer Cache -- ΠŸΠΎΡ‡Π΅ΠΌΡƒ сборка 8 ΠΌΠΈΠ½ΡƒΡ‚?

Π‘ΠžΠ›Π¬ CI pipeline: 47 ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² Π² дСнь, ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ запускаСт docker build. Π‘Π±ΠΎΡ€ΠΊΠ° Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ 8 ΠΌΠΈΠ½ΡƒΡ‚, ΠΈΠ· Π½ΠΈΡ… 7 – npm ci. Π’Ρ‹ помСняли ΠΎΠ΄Π½Ρƒ строку Π² src/index.ts, Π½ΠΎ Docker Π·Π°Π½ΠΎΠ²ΠΎ устанавливаСт всС 1200 зависимостСй. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ. Π Π°Π·. Π—Π° дСнь это 47 * 7 = 329 ΠΌΠΈΠ½ΡƒΡ‚ Π²ΠΏΡƒΡΡ‚ΡƒΡŽ. Π—Π° мСсяц – 110 часов оТидания. И всё ΠΏΠΎΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ COPY . . стоит ΠΏΠ΅Ρ€Π΅Π΄ RUN npm ci. КАК Π£Π‘Π’Π ΠžΠ•ΠΠž Docker собираСт ΠΎΠ±Ρ€Π°Π· слоями. КаТдая инструкция FROM, COPY, RUN создаёт слой. Π‘Π»ΠΎΠΈ ΠΊΠ΅ΡˆΠΈΡ€ΡƒΡŽΡ‚ΡΡ. ...

18 мая 2026 Β· 3 ΠΌΠΈΠ½ΡƒΡ‚Ρ‹ Β· 540 слов Β· DevOps Way

Docker Level 02: Dockerfile -- Π Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρƒ мСня, Π° Ρƒ ΠΊΠΎΠ»Π»Π΅Π³ΠΈ Π½Π΅Ρ‚

Π‘ΠžΠ›Π¬ Π”ΠΆΡƒΠ½ΠΈΠΎΡ€ присылаСт Π² Ρ‡Π°Ρ‚: β€œΠ£ мСня всё работаСт”. Π’Ρ‹ ΠΊΠ»ΠΎΠ½ΠΈΡ€ΡƒΠ΅Ρ‚Π΅ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ, запускаСтС npm install – ошибка. Π£ Π½Π΅Π³ΠΎ Node 18, Ρƒ вас Node 22. Π£ Π½Π΅Π³ΠΎ Ubuntu, Ρƒ вас macOS. Π£ Π½Π΅Π³ΠΎ python3 ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° 3.10, Ρƒ вас – Π½Π° 3.12. β€œΠ Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρƒ мСня” – это Π½Π΅ Π±Π°Π³, это отсутствиС воспроизводимой срСды. Dockerfile Ρ€Π΅ΡˆΠ°Π΅Ρ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ: ΠΎΠ½ описываСт срСду Π΄Π΅ΠΊΠ»Π°Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎ. ΠšΡ‚ΠΎ Π±Ρ‹ Π½ΠΈ собрал ΠΎΠ±Ρ€Π°Π· – Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΉ. КАК Π£Π‘Π’Π ΠžΠ•ΠΠž Dockerfile – это тСкстовый Ρ„Π°ΠΉΠ» с инструкциями для сборки ΠΎΠ±Ρ€Π°Π·Π°. КаТдая инструкция создаёт слой (layer) Π² ΠΎΠ±Ρ€Π°Π·Π΅. ...

18 мая 2026 Β· 3 ΠΌΠΈΠ½ΡƒΡ‚Ρ‹ Β· 448 слов Β· DevOps Way

Docker Level 01: docker run -- Π—Π°Ρ‡Π΅ΠΌ Π²ΠΎΠΎΠ±Ρ‰Π΅ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹?

Π‘ΠžΠ›Π¬ ΠŸΡΡ‚Π½ΠΈΡ†Π°, 18:47. Π’Ρ‹ обновляСтС Python Π½Π° сСрвСрС, Π³Π΄Π΅ крутятся 5 микросСрвисов. apt upgrade python3 – ΠΈ Π±ΠΎΡ‚ Π² Telegram ΠΏΠ°Π΄Π°Π΅Ρ‚, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π΅ΠΌΡƒ Π½ΡƒΠΆΠ΅Π½ Python 3.10, Π° Π²Ρ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Ρ‚ΠΎ поставили 3.12. Π—Π°ΠΎΠ΄Π½ΠΎ сломался Flask-сСрвис, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ зависСл ΠΎΡ‚ libssl1.1, Π° Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ стоит libssl3. Π—Π½Π°ΠΊΠΎΠΌΠΎ? Π­Ρ‚ΠΎ классика: ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ зависимостСй Π½Π° ΠΎΠ±Ρ‰Π΅ΠΌ хостС. Один apt update ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚ΡŒ всё, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ 5 сСрвисов дСлят ΠΎΠ΄Π½Ρƒ Ρ„Π°ΠΉΠ»ΠΎΠ²ΡƒΡŽ систСму, ΠΎΠ΄Π½ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, ΠΎΠ΄ΠΈΠ½ Python. ...

18 мая 2026 Β· 3 ΠΌΠΈΠ½ΡƒΡ‚Ρ‹ Β· 477 слов Β· DevOps Way