ΠΠ°ΡˆΠΈΡ‚Π΅ ΠΈΠ·Π²ΠΎΠ΄ΠΈ ΠΎΡ‚ Π³ΠΎΠ΄ΠΈΠ½Π°Ρ‚Π° Π½Π° миграция GitLab.com към Kubernetes

ΠŸΡ€ΠΈΠΌ. ΠΏΡ€Π΅Π².: Адаптация Π½Π° Kubernetes Π² GitLab сС смята Π·Π° Π΅Π΄ΠΈΠ½ ΠΎΡ‚ Π΄Π²Π°Ρ‚Π° основни Ρ„Π°ΠΊΡ‚ΠΎΡ€Π°, ΠΊΠΎΠΈΡ‚ΠΎ допринасят Π·Π° растСТа Π½Π° компанията. Π’ΡŠΠΏΡ€Π΅ΠΊΠΈ Ρ‚ΠΎΠ²Π°, Π΄ΠΎ Π½Π΅ΠΎΡ‚Π΄Π°Π²Π½Π° инфраструктурата Π½Π° ΠΎΠ½Π»Π°ΠΉΠ½ услугата GitLab.com бСшС ΠΈΠ·Π³Ρ€Π°Π΄Π΅Π½Π° Π½Π° Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»Π½ΠΈ машини, Π° миграцията ѝ към K8s Π·Π°ΠΏΠΎΡ‡Π½Π° ΠΏΡ€Π΅Π΄ΠΈ ΠΎΠΊΠΎΠ»ΠΎ Π³ΠΎΠ΄ΠΈΠ½Π° ΠΈ всС ΠΎΡ‰Π΅ Π½Π΅ Π΅ Π·Π°Π²ΡŠΡ€ΡˆΠ΅Π½Π°. Π‘ радост прСдставямС ΠΏΡ€Π΅Π²ΠΎΠ΄ Π½Π° Π½Π΅ΠΎΡ‚Π΄Π°Π²Π½Π°ΡˆΠ½Π° статия Π½Π° SRE ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Π° Π½Π° GitLab относно Ρ‚ΠΎΠ²Π° ΠΊΠ°ΠΊ сС ΠΎΡΡŠΡ‰Π΅ΡΡ‚Π²ΡΠ²Π° ΠΈ ΠΊΠ°ΠΊΠ²ΠΈ ΠΈΠ·Π²ΠΎΠ΄ΠΈ правят ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€ΠΈΡ‚Π΅, участващи Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.

ΠΠ°ΡˆΠΈΡ‚Π΅ ΠΈΠ·Π²ΠΎΠ΄ΠΈ ΠΎΡ‚ Π³ΠΎΠ΄ΠΈΠ½Π°Ρ‚Π° Π½Π° миграция GitLab.com към Kubernetes

ΠžΡ‚ ΠΎΠΊΠΎΠ»ΠΎ Π³ΠΎΠ΄ΠΈΠ½Π° Π½Π°ΡˆΠ΅Ρ‚ΠΎ инфраструктурно ΠΏΠΎΠ΄Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ сС Π·Π°Π½ΠΈΠΌΠ°Π²Π° с миграция Π½Π° всичкитС услуги, Ρ€Π°Π±ΠΎΡ‚Π΅Ρ‰ΠΈ Π½Π° GitLab.com, Π² Kubernetes. ΠŸΡ€Π΅Π· Ρ‚ΠΎΠ²Π° Π²Ρ€Π΅ΠΌΠ΅ сС ΡΠ±Π»ΡŠΡΠΊΠ°Ρ…ΠΌΠ΅ с ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ, ΡΠ²ΡŠΡ€Π·Π°Π½ΠΈ Π½Π΅ само с прСмСстванСто Π½Π° услугитС Π² Kubernetes, Π½ΠΎ ΠΈ с ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° Ρ…ΠΈΠ±Ρ€ΠΈΠ΄Π΅Π½ deployment ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π½Π° ΠΏΡ€Π΅Ρ…ΠΎΠ΄Π°. Π—Π° Ρ†Π΅Π½Π½ΠΈΡ‚Π΅ ΡƒΡ€ΠΎΡ†ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ…ΠΌΠ΅, Ρ‰Π΅ сС Π³ΠΎΠ²ΠΎΡ€ΠΈ Π² Ρ‚Π°Π·ΠΈ статия.

ΠžΡ‚ самото Π½Π°Ρ‡Π°Π»ΠΎ GitLab.com Π½Π΅Π³ΠΎΠ²ΠΈΡ‚Π΅ ΡΡŠΡ€Π²ΡŠΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅Ρ…Π° Π² ΠΎΠ±Π»Π°ΠΊΠ° Π½Π° Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»Π½ΠΈ машини. Π’Π΅Π·ΠΈ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»Π½ΠΈ машини сС управляват ΠΎΡ‚ Chef, Π° тяхното инсталиранС става Ρ‡Ρ€Π΅Π· нашия ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»Π΅Π½ Linux ΠΏΠ°ΠΊΠ΅Ρ‚. БтратСгия Π·Π° Ρ€Π°Π·ΠΏΠΎΠ»Π°Π³Π°Π½Π΅ Π² случай, Ρ‡Π΅ Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ, сС ΡΡŠΡΡ‚ΠΎΠΈ Π² простото ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΠ°Ρ€ΠΊΠ° ΡΡŠΡ€Π²ΡŠΡ€ΠΈ ΠΏΠΎ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½ΠΈΡ€Π°Π½ послСдоватСлСн Π½Π°Ρ‡ΠΈΠ½ Ρ‡Ρ€Π΅Π· CI pipeline. Π’ΠΎΠ·ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ – ΠΌΠ°ΠΊΠ°Ρ€ ΠΈ Π±Π°Π²Π΅Π½ ΠΈ ΠΌΠ°Π»ΠΊΠΎ скучСн – Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€Π°, Ρ‡Π΅ GitLab.com ΠΏΡ€ΠΈΠ»Π°Π³Π° ΡΡŠΡ‰ΠΈΡ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈ Π·Π° инсталиранС ΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π°Π½Π΅, ΠΊΠΎΠΈΡ‚ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈΡ‚Π΅ Π½Π° Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½ΠΈΡ‚Π΅ (self-managed) инсталации Π½Π° GitLab, ΠΊΠΎΠΈΡ‚ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ Π½Π°ΡˆΠΈΡ‚Π΅ Linux ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ.

ИзползвамС Ρ‚ΠΎΠ·ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ Π΅ ΠΈΠ·ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ Π²Π°ΠΆΠ½ΠΎ Π΄Π° усСтим всички ΠΏΠ΅Ρ‡Π°Π»ΠΈ ΠΈ радости, с ΠΊΠΎΠΈΡ‚ΠΎ сС ΡΠ±Π»ΡŠΡΠΊΠ²Π°Ρ‚ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΡ‚Π΅ Ρ‡Π»Π΅Π½ΠΎΠ²Π΅ Π½Π° общността, ΠΊΠΎΠ³Π°Ρ‚ΠΎ инсталират ΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π°Ρ‚ своитС копия Π½Π° GitLab. Π’ΠΎΠ·ΠΈ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ Ρ€Π°Π±ΠΎΡ‚ΠΈ Π΄ΠΎΠ±Ρ€Π΅ Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ Π½Π° извСстно Π²Ρ€Π΅ΠΌΠ΅, Π½ΠΎ ΠΊΠΎΠ³Π°Ρ‚ΠΎ броят Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ‚Π΅ Π² GitLab Π½Π°Π΄Ρ…Π²ΡŠΡ€Π»ΠΈ 10 ΠΌΠΈΠ»ΠΈΠΎΠ½Π°, ΠΎΡΡŠΠ·Π½Π°Ρ…ΠΌΠ΅, Ρ‡Π΅ Ρ‚ΠΎΠΉ Π²Π΅Ρ‡Π΅ Π½Π΅ отговаря Π½Π° Π½Π°ΡˆΠΈΡ‚Π΅ Π½ΡƒΠΆΠ΄ΠΈ Π·Π° ΠΌΠ°Ρ‰Π°Π±ΠΈΡ€Π°Π½Π΅ ΠΈ Ρ€Π°Π·ΠΏΠΎΠ»Π°Π³Π°Π½Π΅.

ΠŸΡŠΡ€Π²ΠΈ ΡΡ‚ΡŠΠΏΠΊΠΈ към Kubernetes ΠΈ ΠΎΠ±Π»Π°Ρ‡Π½ΠΎ-Π½Π°Ρ‚ΠΈΠ²Π΅Π½ GitLab

ΠŸΡ€Π΅Π· 2017 Π³. бСшС създадСн ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ GitLab Charts Π·Π° ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ°Ρ‚Π° Π½Π° GitLab Π·Π° внСдряванС Π² ΠΎΠ±Π»Π°ΠΊΠ°, ΠΊΠ°ΠΊΡ‚ΠΎ ΠΈ Π·Π° Π΄Π° прСдоставим Π½Π° ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈΡ‚Π΅ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚Ρ‚Π° Π΄Π° инсталират GitLab Π² Kubernetes ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€ΠΈ. Π’ΠΎΠ³Π°Π²Π° Π·Π½Π°Π΅Ρ…ΠΌΠ΅, Ρ‡Π΅ ΠΏΡ€Π΅ΠΌΠΈΠ½Π°Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° GitLab Π² Kubernetes Ρ‰Π΅ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈΡ‚Π΅ Π·Π° ΠΌΠ°Ρ‰Π°Π±ΠΈΡ€Π°Π½Π΅ Π½Π° SaaS ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°, Ρ‰Π΅ опрости внСдряванията ΠΈ Ρ‰Π΅ ΠΏΠΎΠ΄ΠΎΠ±Ρ€ΠΈ СфСктивността Π½Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΊΠΎΠΌΠΏΡŽΡ‚ΡŠΡ€Π½ΠΈΡ‚Π΅ рСсурси. Π’ ΡΡŠΡ‰ΠΎΡ‚ΠΎ Π²Ρ€Π΅ΠΌΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΡ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈΡ‚Π΅ Π½Π° Π½Π°ΡˆΠ΅Ρ‚ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ зависяха ΠΎΡ‚ ΠΌΠΎΠ½Ρ‚ΠΈΡ€Π°Π½ΠΈ NFS дяловС, ΠΊΠΎΠ΅Ρ‚ΠΎ забавяшС ΠΏΡ€Π΅Ρ…ΠΎΠ΄Π° ΠΎΡ‚ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»Π½ΠΈ машини.

Π‘Ρ‚Ρ€Π΅ΠΌΠ΅ΠΆΡŠΡ‚ към ΠΎΠ±Π»Π°Ρ‡Π½ΠΎ Ρ€ΠΎΠ΄Π½ΠΈ ΠΈ Kubernetes ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈ Π½Π° Π½Π°ΡˆΠΈΡ‚Π΅ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€ΠΈ Π΄Π° ΠΏΠ»Π°Π½ΠΈΡ€Π°Ρ‚ ΠΏΡ€Π΅Ρ…ΠΎΠ΄Π°, Π² Ρ…ΠΎΠ΄Π° Π½Π° ΠΊΠΎΠΉΡ‚ΠΎ сС ΠΎΡ‚ΠΊΠ°Π·Π°Ρ…ΠΌΠ΅ ΠΎΡ‚ някои зависимости Π½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ ΠΎΡ‚ ΠΌΡ€Π΅ΠΆΠΎΠ²ΠΈ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π°, ΠΏΡ€ΠΎΠ΄ΡŠΠ»ΠΆΠ°Π²Π°ΠΉΠΊΠΈ Π΄Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π²Π°ΠΌΠ΅ Π½ΠΎΠ²ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. ΠžΡ‚ΠΊΠ°ΠΊΡ‚ΠΎ Π·Π°ΠΏΠΎΡ‡Π½Π°Ρ…ΠΌΠ΅ Π΄Π° ΠΏΠ»Π°Π½ΠΈΡ€Π°ΠΌΠ΅ миграцията ΠΏΡ€Π΅Π· лятото Π½Π° 2019 Π³., ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΡ‚ Ρ‚Π΅Π·ΠΈ ограничСния бяха ΠΏΡ€Π΅ΠΎΠ΄ΠΎΠ»Π΅Π½ΠΈ, Π° ΠΏΡ€ΠΎΡ†Π΅ΡΡŠΡ‚ Π½Π° ΠΏΡ€Π΅Ρ…Π²ΡŠΡ€Π»ΡΠ½Π΅ Π½Π° GitLab.com Π½Π° Kubernetes Π²Π΅Ρ‡Π΅ Π²ΡŠΡ€Π²ΠΈ с пълна сила!

ΠžΡΠΎΠ±Π΅Π½ΠΎΡΡ‚ΠΈΡ‚Π΅ Π½Π° Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° Π½Π° GitLab.com Π² Kubernetes

Π—Π° GitLab.com ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ Π΅Π΄ΠΈΠ½Π΅Π½ Ρ€Π΅Π³ΠΈΠΎΠ½Π°Π»Π΅Π½ GKE ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€, ΠΊΠΎΠΉΡ‚ΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π²Π° цСлия Ρ‚Ρ€Π°Ρ„ΠΈΠΊ Π½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ. Π—Π° Π΄Π° ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡ€Π°ΠΌΠ΅ слоТността (Π²Π΅Ρ‡Π΅ ΠΌΡƒΠ΄Ρ€Π΅Π½Π°) Π½Π° миграцията, сС фокусирамС Π²ΡŠΡ€Ρ…Ρƒ услуги, ΠΊΠΎΠΈΡ‚ΠΎ Π½Π΅ зависят ΠΎΡ‚ Π»ΠΎΠΊΠ°Π»Π½ΠΈ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π° ΠΈΠ»ΠΈ NFS. GitLab.com ΠΏΡ€Π΅Π΄ΠΈΠΌΠ½ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚Π½Π° ΠΊΠΎΠ΄ΠΎΠ²Π° Π±Π°Π·Π° Π½Π° Rails ΠΈ насочвамС Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ° Π² зависимост ΠΎΡ‚ характСристикитС Π½Π° Ρ€Π°Π±ΠΎΡ‚Π½Π°Ρ‚Π° натоварСност към Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ ΠΊΡ€Π°ΠΉΠ½ΠΈ Ρ‚ΠΎΡ‡ΠΊΠΈ, ΠΈΠ·ΠΎΠ»ΠΈΡ€Π°Π½ΠΈ Π² собствСнитС си ΠΏΡƒΠ»ΠΎΠ²Π΅ ΠΎΡ‚ възли.

Π’ случай Π½Π° Ρ„Ρ€ΠΎΠ½Ρ‚Π΅Π½Π΄Π° Ρ‚Π΅Π·ΠΈ Ρ‚ΠΈΠΏΠΎΠ²Π΅ сС дСлят Π½Π° заявки към web, API, Git SSH/HTTPS ΠΈ Registry. Π’ случай Π½Π° Π±Π΅ΠΊΠ΅Π½Π΄Π° раздСлямС job-ΠΎΠ²Π΅Ρ‚Π΅ Π² ΠΎΠΏΠ°ΡˆΠΊΠΈΡ‚Π΅ ΠΏΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ характСристики Π² зависимост ΠΎΡ‚ ΠΏΡ€Π΅Π΄ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΡ‚Π΅ Π³Ρ€Π°Π½ΠΈΡ†ΠΈ Π½Π° рСсурситС, ΠΊΠΎΠΈΡ‚ΠΎ Π½ΠΈ позволяват Π΄Π° установим Ρ†Π΅Π»Π΅Π²ΠΈ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ Π·Π° Π½ΠΈΠ²ΠΎΡ‚ΠΎ Π½Π° обслуТванС (Service-Level Objectives, SLOs) Π·Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ натоварвания.

Всички Ρ‚Π΅Π·ΠΈ услуги Π½Π° GitLab.com са настроСни с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° Π½Π΅ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€Π°Π½ Helm Π³Ρ€Π°Ρ„ Π½Π° GitLab. ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡΡ‚Π° сС ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π° Π² субграфи, ΠΊΠΎΠΈΡ‚ΠΎ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ ΠΏΠΎ ΠΈΠ·Π±ΠΎΡ€ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈ, Π΄ΠΎΠΊΠ°Ρ‚ΠΎ постСпСнно ΠΏΡ€Π΅Ρ…Π²ΡŠΡ€Π»ΡΠΌΠ΅ услугитС Π² ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€Π°. Π”ΠΎΡ€ΠΈ с Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ Π΄Π° Π½Π΅ Π²ΠΊΠ»ΡŽΡ‡Π²Π°ΠΌΠ΅ Π² миграцията някои ΠΎΡ‚ Π½Π°ΡˆΠΈΡ‚Π΅ stateful услуги, ΠΊΠ°Ρ‚ΠΎ Redis, Postgres, GitLab Pages ΠΈ Gitaly, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Kubernetes позволява Ρ€Π°Π΄ΠΈΠΊΠ°Π»Π½ΠΎ Π΄Π° сС Π½Π°ΠΌΠ°Π»ΠΈ броят Π½Π° VM, управлявани ΠΎΡ‚ Chef Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚Π°.

ΠŸΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½ΠΎΡΡ‚ ΠΈ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° конфигурацията Π² Kubernetes

Всички настройки сС управляват ΠΎΡ‚ самия GitLab. Π—Π° Ρ†Π΅Π»Ρ‚Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ Ρ‚Ρ€ΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π½Π° Π±Π°Π·Π° Terraform ΠΈ Helm. Π‘Ρ‚Ρ€Π΅ΠΌΠΈΠΌ сС навсякъдС, ΠΊΡŠΠ΄Π΅Ρ‚ΠΎ Π΅ възмоТно, Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ самия GitLab Π·Π° стартиранС Π½Π° GitLab, Π½ΠΎ Π·Π° Сксплоатационни Π·Π°Π΄Π°Ρ‡ΠΈ ΠΈΠΌΠ°ΠΌΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½ΠΈΡ€Π°Ρ‰Π° ΠΎΡ‚Π΄Π΅Π»Π½Π° инсталация Π½Π° GitLab. Вя Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠ°, Π·Π° Π΄Π° Π½Π΅ зависим ΠΎΡ‚ наличността Π½Π° GitLab.com ΠΏΡ€ΠΈ ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π°Π½Π΅ Π½Π° Ρ€Π°Π·Π³Ρ€ΡŠΡ‰Π°Π½ΠΈΡ ΠΈ Π°ΠΊΡ‚ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π½Π° GitLab.com.

Π’ΡŠΠΏΡ€Π΅ΠΊΠΈ Ρ‡Π΅ Π½Π°ΡˆΠΈΡ‚Π΅ ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½ΠΈ Π·Π° кластСра Kubernetes работят Π½Π° ΠΎΡ‚Π΄Π΅Π»Π½Π° инсталация Π½Π° GitLab, Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅Π²Π΅Ρ‚Π΅ Π½Π° ΠΊΠΎΠ΄Π° ΠΈΠΌΠ°Ρ‚ ΠΎΠ³Π»Π΅Π΄Π°Π»Π°, ΠΏΡƒΠ±Π»ΠΈΡ‡Π½ΠΎ Π΄ΠΎΡΡ‚ΡŠΠΏΠ½ΠΈ Π½Π° слСднитС адрСси:

  • k8s-workloads/gitlab-com β€” ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½Π° ΠΎΠ±Π²ΠΈΠ²ΠΊΠ° Π½Π° GitLab.com Π·Π° Helm-Ρ‡Π°Ρ€Ρ‚Π° Π½Π° GitLab;
  • k8s-workloads/gitlab-helmfiles β€” ΡΡŠΠ΄ΡŠΡ€ΠΆΠ° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Π·Π° услуги, ΠΊΠΎΠΈΡ‚ΠΎ Π½Π΅ са ΡΠ²ΡŠΡ€Π·Π°Π½ΠΈ Π΄ΠΈΡ€Π΅ΠΊΡ‚Π½ΠΎ с ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° GitLab. Π’ тях Π²Π»ΠΈΠ·Π°Ρ‚ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Π·Π° Π²ΠΎΠ΄Π΅Π½Π΅ Π½Π° Π»ΠΎΠ³ΠΎΠ²Π΅ ΠΈ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ Π½Π° кластСритС, Π° ΡΡŠΡ‰ΠΎ ΠΈ Π·Π° ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€Π°Π½ΠΈ инструмСнти ΠΊΠ°Ρ‚ΠΎ PlantUML;
  • Gitlab-com-infrastructure β€” конфигурация Π½Π° Terraform Π·Π° Kubernetes ΠΈ стара (legacy) VM-инфраструктура. Π’ΡƒΠΊ сС настройват всички рСсурси, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΈ Π·Π° стартиранС Π½Π° кластСр, Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ самия кластСр, ΠΏΡƒΠ»ΠΎΠ²Π΅ Π½Π° възли, слуТСбни Π°ΠΊΠ°ΡƒΠ½Ρ‚ΠΈ, Ρ€Π΅Π·Π΅Ρ€Π²Π°Ρ†ΠΈΠΈ Π½Π° IP адрСси.

ΠΠ°ΡˆΠΈΡ‚Π΅ ΠΈΠ·Π²ΠΎΠ΄ΠΈ ΠΎΡ‚ Π³ΠΎΠ΄ΠΈΠ½Π°Ρ‚Π° Π½Π° миграция GitLab.com към Kubernetes
ΠšΠΎΠ³Π°Ρ‚ΠΎ сС ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π°Ρ‚ ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ, сС ΠΏΠΎΠΊΠ°Π·Π²Π° ΠΏΡƒΠ±Π»ΠΈΡ‡Π½ΠΎ ΠΊΡ€Π°Ρ‚ΠΊΠΎ Ρ€Π΅Π·ΡŽΠΌΠ΅ с Π»ΠΈΠ½ΠΊ към ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π΅Π½ diff, ΠΊΠΎΠΉΡ‚ΠΎ SRE Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€Π° ΠΏΡ€Π΅Π΄ΠΈ Π²ΡŠΠ²Π΅ΠΆΠ΄Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈΡ‚Π΅ Π² ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€Π°.

Π—Π° SRE Π»ΠΈΠ½ΠΊΡŠΡ‚ Π²ΠΎΠ΄ΠΈ към ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π΅Π½ diff Π² инсталацията Π½Π° GitLab, която сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° Сксплоатация ΠΈ Π΄ΠΎΡΡ‚ΡŠΠΏΡŠΡ‚ Π΄ΠΎ която Π΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½. Π’ΠΎΠ²Π° позволява Π½Π° слуТитСлитС ΠΈ общността Π±Π΅Π· Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ Сксплоатационния ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ (ΠΊΠΎΠΉΡ‚ΠΎ Π΅ ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ само Π·Π° SRE) Π΄Π° ΠΏΡ€Π΅Π³Π»Π΅ΠΆΠ΄Π°Ρ‚ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ Π² конфигурацията. ΠšΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€Π°ΠΉΠΊΠΈ ΠΏΡƒΠ±Π»ΠΈΡ‡Π΅Π½ СкзСмпляр Π½Π° GitLab Π·Π° ΠΊΠΎΠ΄ с Π·Π°Ρ‚Π²ΠΎΡ€Π΅Π½ СкзСмпляр Π·Π° CI ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½ΠΈ, Π·Π°ΠΏΠ°Π·Π²Π°ΠΌΠ΅ Π΅Π΄ΠΈΠ½Π΅Π½ Ρ€Π°Π±ΠΎΡ‚Π΅Π½ процСс, Π΄ΠΎΠΊΠ°Ρ‚ΠΎ Π² ΡΡŠΡ‰ΠΎΡ‚ΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€Π°ΠΌΠ΅ нСзависимост ΠΎΡ‚ GitLab.com ΠΏΡ€ΠΈ Π°ΠΊΡ‚ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈΡ‚Π΅ Π½Π° конфигурацията.

Какво установихмС ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π½Π° миграцията

Π’ процСса Π½Π° прСмСстванСто Π±Π΅ Π½Π°Ρ‚Ρ€ΡƒΠΏΠ°Π½ ΠΎΠΏΠΈΡ‚, ΠΊΠΎΠΉΡ‚ΠΎ ΠΏΡ€ΠΈΠ»Π°Π³Π°ΠΌΠ΅ Π² Π½ΠΎΠ²ΠΈ ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ ΠΈ Ρ€Π°Π·Π³Ρ€ΡŠΡ‰Π°Π½ΠΈΡ Π² Kubernetes.

1. Π ΡŠΡΡ‚ Π½Π° Ρ€Π°Π·Ρ…ΠΎΠ΄ΠΈΡ‚Π΅ Π·Π°Ρ€Π°Π΄ΠΈ Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ° ΠΌΠ΅ΠΆΠ΄Ρƒ Π·ΠΎΠ½ΠΈΡ‚Π΅ Π½Π° Π΄ΠΎΡΡ‚ΡŠΠΏΠ½ΠΎΡΡ‚

ΠΠ°ΡˆΠΈΡ‚Π΅ ΠΈΠ·Π²ΠΎΠ΄ΠΈ ΠΎΡ‚ Π³ΠΎΠ΄ΠΈΠ½Π°Ρ‚Π° Π½Π° миграция GitLab.com към Kubernetes
Π•ΠΆΠ΅Π΄Π½Π΅Π²Π½Π° egress статистика (Π±Π°ΠΉΡ‚ΠΎΠ²Π΅ Π½Π° Π΄Π΅Π½) Π·Π° ΠΏΠ°Ρ€ΠΊΠ° Π½Π° Git Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π°Ρ‚Π° Π½Π° GitLab.com

Google раздСляС своята ΠΌΡ€Π΅ΠΆΠ° Π½Π° Ρ€Π΅Π³ΠΈΠΎΠ½ΠΈ. Π’Π΅ ΠΎΡ‚ своя страна сС дСлят Π½Π° Π·ΠΎΠ½ΠΈ Π½Π° Π΄ΠΎΡΡ‚ΡŠΠΏ (AZ). Git Ρ…ΠΎΡΡ‚ΠΈΠ½Π³ΡŠΡ‚ Π΅ ΡΠ²ΡŠΡ€Π·Π°Π½ с Π³ΠΎΠ»Π΅ΠΌΠΈ ΠΎΠ±Π΅ΠΌΠΈ Π΄Π°Π½Π½ΠΈ, Π·Π°Ρ‚ΠΎΠ²Π° Π΅ Π²Π°ΠΆΠ½ΠΎ Π΄Π° ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€Π°ΠΌΠ΅ мрСТовия egress. Π’ случай Π½Π° Π²ΡŠΡ‚Ρ€Π΅ΡˆΠ΅Π½ Ρ‚Ρ€Π°Ρ„ΠΈΠΊ, egress Π΅ Π±Π΅Π·ΠΏΠ»Π°Ρ‚Π΅Π½ само Π°ΠΊΠΎ остава Π² Ρ€Π°ΠΌΠΊΠΈΡ‚Π΅ Π½Π° Π΅Π΄Π½Π° Π·ΠΎΠ½Π° Π½Π° Π΄ΠΎΡΡ‚ΡŠΠΏ. Към ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° Π½Π° написванСто Π½Π° Ρ‚Π°Π·ΠΈ статия прСдоставямС ΠΎΠΊΠΎΠ»ΠΎ 100 Π’Π± Π΄Π°Π½Π½ΠΈ Π² ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ Ρ€Π°Π±ΠΎΡ‚Π΅Π½ Π΄Π΅Π½ (ΠΈ Ρ‚ΠΎΠ²Π° Π΅ само Π·Π° Git Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΡ‚Π΅). УслугитС, ΠΊΠΎΠΈΡ‚ΠΎ Π² Π½Π°ΡˆΠ°Ρ‚Π° стара топология, основана Π½Π° VM, бяха Π½Π° Π΅Π΄Π½ΠΈ ΠΈ ΡΡŠΡ‰ΠΈ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»Π½ΠΈ машини, сСга работят Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ pod'ΠΎΠ²Π΅ Kubernetes. Π’ΠΎΠ²Π° ΠΎΠ·Π½Π°Ρ‡Π°Π²Π°, Ρ‡Π΅ част ΠΎΡ‚ Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ°, ΠΊΠΎΠΉΡ‚ΠΎ ΠΏΡ€Π΅Π΄ΠΈ бСшС Π»ΠΎΠΊΠ°Π»Π΅Π½ Π·Π° VM, ΠΌΠΎΠΆΠ΅ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»Π½ΠΎ Π΄Π° ΠΈΠ·Π»ΠΈΠ·Π° извън Π·ΠΎΠ½ΠΈΡ‚Π΅ Π½Π° Π΄ΠΎΡΡ‚ΡŠΠΏ.

Π Π΅Π³ΠΈΠΎΠ½Π°Π»Π½ΠΈΡ‚Π΅ ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€ΠΈ GKE позволяват ΠΎΠ±Ρ…Π²Π°Ρ‰Π°Π½Π΅ Π½Π° няколко Π·ΠΎΠ½ΠΈ Π½Π° Π΄ΠΎΡΡ‚ΡŠΠΏ Π·Π° Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€Π°Π½Π΅. Π Π°Π·Π³Π»Π΅ΠΆΠ΄Π°ΠΌΠ΅ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚Ρ‚Π° Π΄Π° Ρ€Π°Π·Π΄Π΅Π»ΠΈΠΌ рСгионалния ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€ GKE Π½Π° Π΅Π΄Π½ΠΎΠ·ΠΎΠ½ΠΎΠ²ΠΈ ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€ΠΈ Π·Π° услуги, ΠΊΠΎΠΈΡ‚ΠΎ Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°Ρ‚ Π³ΠΎΠ»Π΅ΠΌΠΈ ΠΎΠ±Π΅ΠΌΠΈ Ρ‚Ρ€Π°Ρ„ΠΈΠΊ. Π’ΠΎΠ²Π° Ρ‰Π΅ Π½Π°ΠΌΠ°Π»ΠΈ Ρ€Π°Π·Ρ…ΠΎΠ΄ΠΈΡ‚Π΅ Π·Π° egress, Π·Π°ΠΏΠ°Π·Π²Π°ΠΉΠΊΠΈ Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ Π½Π° Π½ΠΈΠ²ΠΎ ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€.

2. ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΡ, искания Π·Π° рСсурси ΠΈ ΠΌΠ°Ρ‰Π°Π±ΠΈΡ€Π°Π½Π΅

ΠΠ°ΡˆΠΈΡ‚Π΅ ΠΈΠ·Π²ΠΎΠ΄ΠΈ ΠΎΡ‚ Π³ΠΎΠ΄ΠΈΠ½Π°Ρ‚Π° Π½Π° миграция GitLab.com към Kubernetes
Броят Π½Π° Ρ€Π΅ΠΏΠ»ΠΈΠΊΠΈΡ‚Π΅, ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π²Π°Ρ‰ΠΈ production Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ° Π½Π° registry.gitlab.com. Π’Ρ€Π°Ρ„ΠΈΠΊΡŠΡ‚ достига своя ΠΏΠΈΠΊ ΠΎΠΊΠΎΠ»ΠΎ 15:00 UTC.

ΠΠ°ΡˆΠ°Ρ‚Π° история с миграцията Π·Π°ΠΏΠΎΡ‡Π½Π° ΠΏΡ€Π΅Π· август 2019 Π³., ΠΊΠΎΠ³Π°Ρ‚ΠΎ прСмСстихмС ΠΏΡŠΡ€Π²Π°Ρ‚Π° услуга - Ρ€Π΅Π΅ΡΡ‚ΡŠΡ€ Π½Π° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈ GitLab (GitLab Container Registry) - Π² Kubernetes. Π’Π°Π·ΠΈ ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π½ΠΎ Π²Π°ΠΆΠ½Π° услуга с висок Ρ‚Ρ€Π°Ρ„ΠΈΠΊ бСшС ΠΈΠ΄Π΅Π°Π»Π½Π° Π·Π° ΠΏΡŠΡ€Π²Π°Ρ‚Π° миграция, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ прСдставлява stateless ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ с ΠΌΠ°Π»ΠΊΠΎ външни зависимости. ΠŸΡŠΡ€Π²ΠΈΡΡ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, с ΠΊΠΎΠΉΡ‚ΠΎ сС ΡΠ±Π»ΡŠΡΠΊΠ°Ρ…ΠΌΠ΅, бСшС голямото количСство ΠΈΠ·Π³ΠΎΠ½Π΅Π½ΠΈ pod'ΠΎΠ²Π΅ ΠΏΠΎΡ€Π°Π΄ΠΈ нСдостиг Π½Π° ΠΏΠ°ΠΌΠ΅Ρ‚ Π½Π° Π²ΡŠΠ·Π»ΠΈΡ‚Π΅. Π—Π°Ρ€Π°Π΄ΠΈ Ρ‚ΠΎΠ²Π° Π½ΠΈ сС Π½Π°Π»ΠΎΠΆΠΈ Π΄Π° ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈΠΌ исканията ΠΈ ограничСнията.

Π‘Π΅ΡˆΠ΅ установСно, Ρ‡Π΅ Π² случай Π½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΠ΅Ρ‚ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΏΠ°ΠΌΠ΅Ρ‚ с Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ, нискитС стойности Π·Π° исканията (ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»Π½ΠΎ Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€Π°Ρ‰ΠΈ ΠΏΠ°ΠΌΠ΅Ρ‚ Π·Π° всСки pod) Π² комбинация с "Ρ‰Π΅Π΄ΡŠΡ€" Ρ‚Π²ΡŠΡ€Π΄ Π»ΠΈΠΌΠΈΡ‚ Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ водят Π΄ΠΎ наситСност (saturation) Π½Π° Π²ΡŠΠ·Π»ΠΈΡ‚Π΅ ΠΈ високото Π½ΠΈΠ²ΠΎ Π½Π° изгонвания. Π—Π° Π΄Π° сС справим с Ρ‚ΠΎΠ·ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, бСшС Ρ€Π΅ΡˆΠ΅Π½ΠΎ Π΄Π° ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠΌ исканията ΠΈ Π΄Π° Π½Π°ΠΌΠ°Π»ΠΈΠΌ ограничСнията.. Π’ΠΎΠ²Π° ΠΎΠ±Π»Π΅ΠΊΡ‡ΠΈ натиска Π²ΡŠΡ€Ρ…Ρƒ Π²ΡŠΠ·Π»ΠΈΡ‚Π΅ ΠΈ осигури ΠΆΠΈΠ·Π½Π΅Π½ Ρ†ΠΈΠΊΡŠΠ» Π½Π° ΠΏΠΎΠ΄ΠΎΠ²Π΅Ρ‚Π΅, ΠΊΠΎΠΉΡ‚ΠΎ Π½Π΅ оказвашС ΠΏΡ€Π΅ΠΊΠ°Π»Π΅Π½ΠΎ високо наляганС Π²ΡŠΡ€Ρ…Ρƒ възСла. Π‘Π΅Π³Π° Π·Π°ΠΏΠΎΡ‡Π²Π°ΠΌΠ΅ ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ с Ρ‰Π΅Π΄Ρ€ΠΈ (ΠΈ ΠΏΠΎΡ‡Ρ‚ΠΈ Π΅Π΄Π½Π°ΠΊΠ²ΠΈ) стойности Π½Π° заявкитС ΠΈ Π»ΠΈΠΌΠΈΡ‚ΠΈΡ‚Π΅, ΠΊΠΎΡ€ΠΈΠ³ΠΈΡ€Π°ΠΉΠΊΠΈ Π³ΠΈ ΠΏΡ€ΠΈ нСобходимост.

3. ΠœΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ ΠΈ Π»ΠΎΠ³ΠΎΠ²Π΅

ΠΠ°ΡˆΠΈΡ‚Π΅ ΠΈΠ·Π²ΠΎΠ΄ΠΈ ΠΎΡ‚ Π³ΠΎΠ΄ΠΈΠ½Π°Ρ‚Π° Π½Π° миграция GitLab.com към Kubernetes
Π˜Π½Ρ„Ρ€Π°ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π½ΠΎΡ‚ΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ сС фокусира Π²ΡŠΡ€Ρ…Ρƒ Π·Π°ΠΊΡŠΡΠ½Π΅Π½ΠΈΡΡ‚Π°, ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚Π° Π½Π° Π³Ρ€Π΅ΡˆΠΊΠΈΡ‚Π΅ ΠΈ насищанСто с установСнитС Ρ†Π΅Π»ΠΈ ΠΏΠΎ Π½ΠΈΠ²ΠΎ Π½Π° обслуТванС (SLO), ΡΠ²ΡŠΡ€Π·Π°Π½ΠΈ с ΠΎΠ±Ρ‰Π°Ρ‚Π° наличност Π½Π° Π½Π°ΡˆΠ°Ρ‚Π° систСма..

ΠŸΡ€Π΅Π· ΠΈΠ·ΠΌΠΈΠ½Π°Π»Π°Ρ‚Π° Π³ΠΎΠ΄ΠΈΠ½Π° Π΅Π΄Π½ΠΎ ΠΎΡ‚ ΠΊΠ»ΡŽΡ‡ΠΎΠ²ΠΈΡ‚Π΅ ΡΡŠΠ±ΠΈΡ‚ΠΈΡ Π² инфраструктурното ΠΏΠΎΠ΄Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ бСшС ΠΏΠΎΠ΄ΠΎΠ±Ρ€Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π² ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° с SLO. SLO Π½ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ…Π° Π΄Π° Π·Π°Π΄Π°Π²Π°ΠΌΠ΅ Ρ†Π΅Π»ΠΈ Π·Π° ΠΎΡ‚Π΄Π΅Π»Π½ΠΈ услуги, ΠΊΠΎΠΈΡ‚ΠΎ Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»Π½ΠΎ Π½Π°Π±Π»ΡŽΠ΄Π°Π²Π°Ρ…ΠΌΠ΅ ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π½Π° миграцията. Но Π΄ΠΎΡ€ΠΈ с Ρ‚Π°ΠΊΠΎΠ²Π° ΠΏΠΎΠ΄ΠΎΠ±Ρ€Π΅Π½ΠΎ наблюдСниС Π½Π΅ Π²ΠΈΠ½Π°Π³ΠΈ Π΅ възмоТно Π²Π΅Π΄Π½Π°Π³Π° Π΄Π° сС видят ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈΡ‚Π΅, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ ΠΈ Π°Π»Π΅Ρ€Ρ‚ΠΈ. НапримСр, ΠΊΠΎΠ³Π°Ρ‚ΠΎ сС фокусирамС Π²ΡŠΡ€Ρ…Ρƒ Π·Π°ΠΊΡŠΡΠ½Π΅Π½ΠΈΡΡ‚Π° ΠΈ ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚Π° Π½Π° Π³Ρ€Π΅ΡˆΠΊΠΈΡ‚Π΅, Π½ΠΈΠ΅ Π½Π΅ ΠΎΠ±Ρ…Π²Π°Ρ‰Π°ΠΌΠ΅ напълно всички сцСнарии Π½Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° услугата, която ΠΏΡ€Π΅ΠΌΠΈΠ½Π°Π²Π° миграция.

Π’Π°Π·ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ° Π±Π΅ ΠΎΡ‚ΠΊΡ€ΠΈΡ‚Π° ΠΏΠΎΡ‡Ρ‚ΠΈ Π²Π΅Π΄Π½Π°Π³Π° слСд ΠΏΡ€Π΅Ρ…Π²ΡŠΡ€Π»ΡΠ½Π΅Ρ‚ΠΎ Π½Π° част ΠΎΡ‚ Ρ€Π°Π±ΠΎΡ‚Π½ΠΈΡ‚Π΅ натоварвания Π² ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€Π°. ОсобСно остро тя сС прояви, ΠΊΠΎΠ³Π°Ρ‚ΠΎ Ρ‚Ρ€ΡΠ±Π²Π°ΡˆΠ΅ Π΄Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΏΡ€ΠΈ ΠΊΠΎΠΈΡ‚ΠΎ броят Π½Π° заявкитС Π΅ малък, Π½ΠΎ Π·Π° ΠΊΠΎΠΈΡ‚ΠΎ ΠΈΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎ спСцифични ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΈ зависимости. Π•Π΄ΠΈΠ½ ΠΎΡ‚ ΠΊΠ»ΡŽΡ‡ΠΎΠ²ΠΈΡ‚Π΅ ΡƒΡ€ΠΎΡ†ΠΈ слСд миграцията бСшС нСобходимостта Π΄Π° Π²Π·Π΅ΠΌΠ΅ΠΌ ΠΏΡ€Π΅Π΄Π²ΠΈΠ΄ ΠΏΡ€ΠΈ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° Π½Π΅ само ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈΡ‚Π΅, Π½ΠΎ ΠΈ Π»ΠΎΠ³ΠΎΠ²Π΅Ρ‚Π΅ ΠΈ "дългия опашка" (става Π²ΡŠΠΏΡ€ΠΎΡ Π·Π° Ρ‚Π°ΠΊΠΎΠ²Π° ΠΈΠΌ Ρ€Π°Π·ΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π° Π³Ρ€Π°Ρ„ΠΈΠΊΠ°Ρ‚Π° β€” Π±Π΅Π». Ρ€Π΅Π΄.) Π³Ρ€Π΅ΡˆΠΊΠΈ. Π‘Π΅Π³Π° Π·Π° всяка миграция Π²ΠΊΠ»ΡŽΡ‡Π²Π°ΠΌΠ΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π΅Π½ списък Π½Π° заявкитС Π·Π° Π»ΠΎΠ³ΠΎΠ²Π΅Ρ‚Π΅ (log queries) ΠΈ ΠΏΠ»Π°Π½ΠΈΡ€Π°ΠΌΠ΅ ясни ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€ΠΈ Π·Π° ΠΎΡ‚ΠΊΠ°Ρ‚, ΠΊΠΎΠΈΡ‚ΠΎ Π² случай Π½Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° сС ΠΏΡ€Π΅Π΄Π°Π²Π°Ρ‚ ΠΎΡ‚ Π΅Π΄Π½Π° смяна Π½Π° Π΄Ρ€ΡƒΠ³Π°.

ΠŸΠ°Ρ€Π°Π»Π΅Π»Π½ΠΎΡ‚ΠΎ обслуТванС Π½Π° Π΅Π΄Π½ΠΈ ΠΈ ΡΡŠΡ‰ΠΈ заявки Π½Π° старата VM инфраструктура ΠΈ Π½ΠΎΠ²Π°Ρ‚Π°, Π±Π°Π·ΠΈΡ€Π°Π½Π° Π½Π° Kubernetes, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΠ²Π°ΡˆΠ΅ ΡƒΠ½ΠΈΠΊΠ°Π»Π½ΠΎ прСдизвикатСлство. Π—Π° Ρ€Π°Π·Π»ΠΈΠΊΠ° ΠΎΡ‚ миграцията Ρ‚ΠΈΠΏ lift-and-shift (Π±ΡŠΡ€Π·ΠΎ ΠΏΡ€Π΅Ρ…Π²ΡŠΡ€Π»ΡΠ½Π΅ Π½Π° прилоТСния "ΠΊΠ°ΠΊΡ‚ΠΎ са" Π² Π½ΠΎΠ²Π°Ρ‚Π° инфраструктура; ΠΏΠΎΠ²Π΅Ρ‡Π΅ информация ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π½Π°ΠΌΠ΅Ρ€ΠΈΡ‚Π΅, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‚ΡƒΠΊ. β€” Π·Π°Π±Π΅Π»Π΅ΠΆΠΊΠ° Π½Π° ΠΏΡ€Π΅Π²ΠΎΠ΄Π°Ρ‡Π°), ΠΏΠ°Ρ€Π°Π»Π΅Π»Π΅Π»Π½Π°Ρ‚Π° Ρ€Π°Π±ΠΎΡ‚Π° Π½Π° β€žΡΡ‚Π°Ρ€ΠΈβ€œ VM ΠΈ Kubernetes изисква срСдствата Π·Π° ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ ΡΡŠΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΈ ΠΈ Π΄Π° ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° ΡΡŠΠ΅Π΄ΠΈΠ½ΡΠ²Π°Ρ‚ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ Π² Π΅Π΄ΠΈΠ½ Π²ΠΈΠ΄. Π’Π°ΠΆΠ½ΠΎ Π΅, Ρ‡Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ ΡΡŠΡ‰ΠΈΡ‚Π΅ Ρ‚Π°Π±Π»Π° ΠΈ запитвания към Π»ΠΎΠ³ΠΎΠ²Π΅Ρ‚Π΅, Π·Π° Π΄Π° постигнСм послСдоватСлна Π½Π°Π±Π»ΡŽΠ΄Π°Π΅ΠΌΠΎΡΡ‚ ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π½Π° прСходния ΠΏΠ΅Ρ€ΠΈΠΎΠ΄.

4. ΠŸΡ€Π΅Π½Π°ΡΠΎΡ‡Π²Π°Π½Π΅ Π½Π° Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ° към новия ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€

Π—Π° GitLab.com част ΠΎΡ‚ ΡΡŠΡ€Π²ΡŠΡ€ΠΈΡ‚Π΅ Π΅ Π·Π°Π΄Π΅Π»Π΅Π½Π° Π·Π° ΠΊΠ°Π½Π°Ρ€Π΅Π½ (canary) Π΅Ρ‚Π°ΠΏ. ΠšΠ°Π½Π°Ρ€Π΅Π½ΠΈΡΡ‚ ΠΏΠ°Ρ€ΠΊ обслуТва Π½Π°ΡˆΠΈΡ‚Π΅ Π²ΡŠΡ‚Ρ€Π΅ΡˆΠ½ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈ ΠΈ ΠΌΠΎΠΆΠ΅ ΡΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° Π΄Π° бъдС Π²ΠΊΠ»ΡŽΡ‡Π²Π°Π½ ΠΎΡ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈΡ‚Π΅. Но Π½Π° ΠΏΡŠΡ€Π²ΠΎ място Ρ‚ΠΎΠΉ Π΅ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ Π΄Π° провСрява ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈΡ‚Π΅, Π½Π°ΠΏΡ€Π°Π²Π΅Π½ΠΈ Π² инфраструктурата ΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ. ΠŸΡŠΡ€Π²ΠΈΡΡ‚ прСмСстСн сСрвиз Π·Π°ΠΏΠΎΡ‡Π½Π° с ΠΏΡ€ΠΈΠ΅ΠΌΠ°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ ΠΎΠ±Π΅ΠΌ Π²ΡŠΡ‚Ρ€Π΅ΡˆΠ΅Π½ Ρ‚Ρ€Π°Ρ„ΠΈΠΊ, ΠΈ ΠΏΡ€ΠΎΠ΄ΡŠΠ»ΠΆΠ°Π²Π°ΠΌΠ΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ Ρ‚ΠΎΠ·ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄, Π·Π° Π΄Π° смС сигурни Π² спазванСто Π½Π° SLO ΠΏΡ€Π΅Π΄ΠΈ Π΄Π° насочим цСлия Ρ‚Ρ€Π°Ρ„ΠΈΠΊ към ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€Π°.

Π’ случай Π½Π° миграция Ρ‚ΠΎΠ²Π° ΠΎΠ·Π½Π°Ρ‡Π°Π²Π°, Ρ‡Π΅ ΠΏΡŠΡ€Π²ΠΎ Π² Kubernetes сС насочват запитванията към Π²ΡŠΡ‚Ρ€Π΅ΡˆΠ½ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈ, Π° слСд Ρ‚ΠΎΠ²Π° постСпСнно прСнасочвамС ΠΎΡΡ‚Π°Ρ‚ΡŠΡ‡Π½ΠΈΡ Ρ‚Ρ€Π°Ρ„ΠΈΠΊ към ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€Π°, промСняйки Ρ‚Π΅Π³Π»ΠΎΡ‚ΠΎ Π·Π° Π±Π΅ΠΊΠ΅Π½Π΄Π° Ρ‡Ρ€Π΅Π· HAProxy. Π’ процСса Π½Π° ΠΏΡ€Π΅Ρ…ΠΎΠ΄Π° ΠΎΡ‚ VM към Kubernetes стана ясно, Ρ‡Π΅ Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΈΠ·Π³ΠΎΠ΄Π½ΠΎ Π΄Π° Ρ€Π°Π·ΠΏΠΎΠ»Π°Π³Π° с лСсСн Π½Π°Ρ‡ΠΈΠ½ Π·Π° прСнасочванС Π½Π° Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ° ΠΌΠ΅ΠΆΠ΄Ρƒ старитС ΠΈ Π½ΠΎΠ²ΠΈΡ‚Π΅ инфраструктури ΠΈ ΡΡŠΠΎΡ‚Π²Π΅Ρ‚Π½ΠΎ Π΄Π° сС Π΄ΡŠΡ€ΠΆΠΈ старата инфраструктура Π³ΠΎΡ‚ΠΎΠ²Π° Π·Π° ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ ΠΏΠΎΠ²ΠΈΠΊΠ²Π°Π½Π΅ Π² ΠΏΡŠΡ€Π²ΠΈΡ‚Π΅ няколко Π΄Π½ΠΈ слСд миграцията.

5. Π Π΅Π·Π΅Ρ€Π²Π½ΠΈ ΠΊΠ°ΠΏΠ°Ρ†ΠΈΡ‚Π΅Ρ‚ΠΈ Π½Π° pod-ΠΎΠ²Π΅Ρ‚Π΅ ΠΈ тяхното ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅

ΠŸΠΎΡ‡Ρ‚ΠΈ Π²Π΅Π΄Π½Π°Π³Π° бСшС установСн слСдният ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ: pod-ΠΎΠ²Π΅Ρ‚Π΅ Π·Π° услугата Registry стартираха Π±ΡŠΡ€Π·ΠΎ, Π½ΠΎ стартиранСто Π½Π° pod-ΠΎΠ²Π΅Ρ‚Π΅ Π·Π° Sidekiq ΠΎΡ‚Π½Π΅ΠΌΠ°ΡˆΠ΅ Π΄ΠΎ Π΄Π²Π΅ ΠΌΠΈΠ½ΡƒΡ‚ΠΈ. ΠŸΡ€ΠΎΠ΄ΡŠΠ»ΠΆΠΈΡ‚Π΅Π»Π½ΠΎΡ‚ΠΎ стартиранС Π½Π° pod-ΠΎΠ²Π΅Ρ‚Π΅ Π·Π° Sidekiq стана ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, ΠΊΠΎΠ³Π°Ρ‚ΠΎ Π·Π°ΠΏΠΎΡ‡Π½Π°Ρ…ΠΌΠ΅ миграцията Π½Π° Ρ€Π°Π±ΠΎΡ‚Π½ΠΈΡ‚Π΅ натоварвания Π½Π° worker-ΠΈΡ‚Π΅ Π² Kubernetes, ΠΊΠΎΠΈΡ‚ΠΎ трябва Π΄Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π²Π°Ρ‚ job-ΠΎΠ²Π΅ Π±ΡŠΡ€Π·ΠΎ ΠΈ Π΄Π° сС ΠΌΠ°Ρ‰Π°Π±ΠΈΡ€Π°Ρ‚ Π±ΡŠΡ€Π·ΠΎ.

Π’ Ρ‚ΠΎΠ·ΠΈ случай ΡƒΡ€ΠΎΠΊΡŠΡ‚ бСшС, Ρ‡Π΅ Π²ΡŠΠΏΡ€Π΅ΠΊΠΈ Ρ‡Π΅ Horizontal Pod Autoscaler (HPA) Π² Kubernetes Π΄ΠΎΠ±Ρ€Π΅ сС справя с ΡƒΠ²Π΅Π»ΠΈΡ‡Π°Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ°, Π΅ Π²Π°ΠΆΠ½ΠΎ Π΄Π° сС Π²Π·Π΅ΠΌΠ°Ρ‚ ΠΏΡ€Π΅Π΄Π²ΠΈΠ΄ характСристикитС Π½Π° Ρ€Π°Π±ΠΎΡ‚Π½ΠΈΡ‚Π΅ натоварвания ΠΈ Π΄Π° сС задСлят Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΈ ΠΊΠ°ΠΏΠ°Ρ†ΠΈΡ‚Π΅Ρ‚ΠΈ Π½Π° pod-ΠΎΠ²Π΅Ρ‚Π΅ (особСно ΠΏΡ€ΠΈ Π½Π΅Ρ€Π°Π²Π½ΠΎΠΌΠ΅Ρ€Π½ΠΎ Ρ€Π°Π·ΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π° Ρ‚ΡŠΡ€ΡΠ΅Π½Π΅Ρ‚ΠΎ). Π’ нашия случай имашС Π²Π½Π΅Π·Π°ΠΏΠ΅Π½ Ρ€ΡŠΡΡ‚ Π½Π° job-ΠΎΠ²Π΅, ΠΊΠΎΠ΅Ρ‚ΠΎ водСшС Π΄ΠΎ стрСмитСлно ΠΌΠ°Ρ‰Π°Π±ΠΈΡ€Π°Π½Π΅, ΠΊΠΎΠ΅Ρ‚ΠΎ Π΄ΠΎΠ²Π΅Π΄Π΅ Π΄ΠΎ насищанС Π½Π° рСсурситС Π½Π° CPU ΠΏΡ€Π΅Π΄ΠΈ Π΄Π° успССм Π΄Π° ΠΌΠ°Ρ‰Π°Π±ΠΈΡ€Π°ΠΌΠ΅ ΠΏΡƒΠ»ΡŠΡ‚ ΠΎΡ‚ ΡƒΠ·Π»ΠΈ.

Π’ΠΈΠ½Π°Π³ΠΈ ΠΈΠΌΠ° ΠΈΠ·ΠΊΡƒΡˆΠ΅Π½ΠΈΠ΅ Π΄Π° сС ΠΈΠ·Ρ†Π΅Π΄ΠΈ ΠΊΠΎΠ»ΠΊΠΎΡ‚ΠΎ сС ΠΌΠΎΠΆΠ΅ ΠΏΠΎΠ²Π΅Ρ‡Π΅ ΠΎΡ‚ ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€Π°, Π½ΠΎ Π½ΠΈΠ΅, слСд ΠΊΠ°Ρ‚ΠΎ ΠΏΡŠΡ€Π²ΠΎΠ½Π°Ρ‡Π°Π»Π½ΠΎ сС ΡΠ±Π»ΡŠΡΠΊΠ°Ρ…ΠΌΠ΅ с ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ с производитСлността, сСга Π·Π°ΠΏΠΎΡ‡Π²Π°ΠΌΠ΅ с Ρ‰Π΅Π΄ΡŠΡ€ Π±ΡŽΠ΄ΠΆΠ΅Ρ‚ Π·Π° pod ΠΈ Π³ΠΎ намалявамС ΠΏΠΎ-късно, Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»Π½ΠΎ слСдСйки SLO. Π‘Ρ‚Π°Ρ€Ρ‚ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ Π½Π° pod-ΠΎΠ²Π΅Ρ‚Π΅ Π·Π° услугата Sidekiq Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΎ сС ускори ΠΈ сСга срСдно ΠΎΡ‚Π½Π΅ΠΌΠ° ΠΎΠΊΠΎΠ»ΠΎ 40 сСкунди. ΠžΡ‚ ΡΡŠΠΊΡ€Π°Ρ‰Π°Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ Π·Π° стартиранС Π½Π° pod-ΠΎΠ²Π΅Ρ‚Π΅ ΠΏΠ΅Ρ‡Π΅Π»ΠΈ ΠΊΠ°ΠΊΡ‚ΠΎ GitLab.com, Ρ‚Π°ΠΊΠ° ΠΈ Π½Π°ΡˆΠΈΡ‚Π΅ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈ Π½Π° self-managed инсталации, ΠΊΠΎΠΈΡ‚ΠΎ работят с официалния Helm chart Π½Π° GitLab.

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Π‘Π»Π΅Π΄ ΠΏΡ€Π΅Ρ…Π²ΡŠΡ€Π»ΡΠ½Π΅Ρ‚ΠΎ Π½Π° всяка услуга, Π½ΠΈΠ΅ сС Ρ€Π°Π΄Π²Π°Ρ…ΠΌΠ΅ Π½Π° прСдимствата ΠΎΡ‚ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Kubernetes Π² производствСна срСда: ΠΏΠΎ-Π±ΡŠΡ€Π·ΠΎ ΠΈ ΠΏΠΎ-сигурно внСдряванС Π½Π° прилоТСния, ΠΌΠ°Ρ‰Π°Π±ΠΈΡ€Π°Π½Π΅ ΠΈ ΠΏΠΎ-Π΅Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎ Ρ€Π°Π·ΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π° рСсурситС. А прСдимствата ΠΎΡ‚ миграцията Π½Π°Π΄Ρ…Π²ΡŠΡ€Π»ΡΡ‚ самата услуга GitLab.com. ΠžΡ‚ всяко ΠΏΠΎΠ΄ΠΎΠ±Ρ€Π΅Π½ΠΈΠ΅ Π½Π° официалния Helm chart пСчСлят ΠΈ Π½Π΅Π³ΠΎΠ²ΠΈΡ‚Π΅ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈ.

Надявам сС, Ρ‡Π΅ Π²ΠΈ харСса историята Π·Π° Π½Π°ΡˆΠΈΡ‚Π΅ ΠΏΡ€ΠΈΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ с миграцията Π² Kubernetes. НиС ΠΏΡ€ΠΎΠ΄ΡŠΠ»ΠΆΠ°Π²Π°ΠΌΠ΅ Π΄Π° ΠΏΡ€Π΅Ρ…Π²ΡŠΡ€Π»ΡΠΌΠ΅ всС Π½ΠΎΠ²ΠΈ услуги Π² ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€Π°. Π”ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½Π° информация ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π½Π°ΠΌΠ΅Ρ€ΠΈΡ‚Π΅ Π² слСднитС ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ:

P.S. ΠΎΡ‚ ΠΏΡ€Π΅Π²ΠΎΠ΄Π°Ρ‡Π°

ΠŸΡ€ΠΎΡ‡Π΅Ρ‚Π΅Ρ‚Π΅ ΡΡŠΡ‰ΠΎ Π² нашия Π±Π»ΠΎΠ³:

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: habr.com

ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС със Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS ΠΈ VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ πŸ”₯ ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС със Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS ΠΈ VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ | ProHoster