ΠŸΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ Π·Π° Π½Π΅ΠΏΡ€Π΅ΠΊΡŠΡΠ½Π°Ρ‚Π° доставка с Docker (ΠΏΡ€Π΅Π³Π»Π΅Π΄ ΠΈ Π²ΠΈΠ΄Π΅ΠΎ)

Π©Π΅ Π·Π°ΠΏΠΎΡ‡Π½Π΅ΠΌ нашия Π±Π»ΠΎΠ³ с ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ, Π±Π°Π·ΠΈΡ€Π°Π½ΠΈ Π½Π° послСднитС изказвания Π½Π° нашия тСхничСски Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ дистол (Π”ΠΌΠΈΡ‚Ρ€ΠΈΠΉ Бтоляров). Всички Ρ‚Π΅ сС ΡΡŠΡΡ‚ΠΎΡΡ…Π° ΠΏΡ€Π΅Π· 2016 Π³. Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ профСсионални ΡΡŠΠ±ΠΈΡ‚ΠΈΡ ΠΈ бяха посвСтСни Π½Π° Ρ‚Π΅ΠΌΠ°Ρ‚Π° DevOps ΠΈ Docker. Π•Π΄Π½ΠΎ Π²ΠΈΠ΄Π΅ΠΎ ΠΎΡ‚ срСщата Π½Π° Docker Moscow Π² офиса Π½Π° Badoo Π²Π΅Ρ‡Π΅ ΠΈΠΌΠ°ΠΌΠ΅ ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ²Π°Π½ΠΈ На линия. НовитС Ρ‰Π΅ Π±ΡŠΠ΄Π°Ρ‚ ΠΏΡ€ΠΈΠ΄Ρ€ΡƒΠΆΠ΅Π½ΠΈ ΠΎΡ‚ статии, ΠΏΡ€Π΅Π΄Π°Π²Π°Ρ‰ΠΈ ΡΡŠΡ‰Π½ΠΎΡΡ‚Ρ‚Π° Π½Π° Π΄ΠΎΠΊΠ»Π°Π΄ΠΈΡ‚Π΅. Вака…

31 ΠΌΠ°ΠΉ Π½Π° конфСрСнцията RootConf 2016, ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅Π½ ΠΊΠ°Ρ‚ΠΎ част ΠΎΡ‚ фСстивала β€žΠ ΡƒΡΠΊΠΈ ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈβ€œ (RIT++ 2016), Ρ€Π°Π·Π΄Π΅Π»ΡŠΡ‚ β€žΠΠ΅ΠΏΡ€Π΅ΠΊΡŠΡΠ½Π°Ρ‚ΠΎ внСдряванС ΠΈ Π²Π½Π΅Π΄Ρ€ΡΠ²Π°Π½Π΅β€œ бСшС ΠΎΡ‚ΠΊΡ€ΠΈΡ‚ с Π΄ΠΎΠΊΠ»Π°Π΄ β€žΠΠ°ΠΉ-Π΄ΠΎΠ±Ρ€ΠΈ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ Π·Π° Π½Π΅ΠΏΡ€Π΅ΠΊΡŠΡΠ½Π°Ρ‚Π° доставка с Dockerβ€œ. Π’ΠΎΠΉ ΠΎΠ±ΠΎΠ±Ρ‰ΠΈ ΠΈ систСматизира Π½Π°ΠΉ-Π΄ΠΎΠ±Ρ€ΠΈΡ‚Π΅ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ Π·Π° ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅ Π½Π° процСс Π½Π° Π½Π΅ΠΏΡ€Π΅ΠΊΡŠΡΠ½Π°Ρ‚Π° доставка (CD) с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° Docker ΠΈ Π΄Ρ€ΡƒΠ³ΠΈ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΈ с ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ ΠΊΠΎΠ΄. НиС Ρ€Π°Π±ΠΎΡ‚ΠΈΠΌ с Ρ‚Π΅Π·ΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π² производството, ΠΊΠΎΠ΅Ρ‚ΠΎ Π½ΠΈ позволява Π΄Π° Ρ€Π°Π·Ρ‡ΠΈΡ‚Π°ΠΌΠ΅ Π½Π° практичСски ΠΎΠΏΠΈΡ‚.

ΠŸΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ Π·Π° Π½Π΅ΠΏΡ€Π΅ΠΊΡŠΡΠ½Π°Ρ‚Π° доставка с Docker (ΠΏΡ€Π΅Π³Π»Π΅Π΄ ΠΈ Π²ΠΈΠ΄Π΅ΠΎ)

Ако ΠΈΠΌΠ°Ρ‚Π΅ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ ΠΎΡ‚Π΄Π΅Π»Π΅Ρ‚Π΅ час Π²ΠΈΠ΄Π΅ΠΎ Π½Π° Ρ€Π΅ΠΏΠΎΡ€Ρ‚Π°ΠΆΠ°, ΠΏΡ€Π΅ΠΏΠΎΡ€ΡŠΡ‡Π²Π°ΠΌΠ΅ Π΄Π° Π³ΠΎ Π³Π»Π΅Π΄Π°Ρ‚Π΅ цСлия. Π’ ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π΅Π½ случай ΠΏΠΎ-Π΄ΠΎΠ»Ρƒ Π΅ основното Ρ€Π΅Π·ΡŽΠΌΠ΅ Π² тСкстова Ρ„ΠΎΡ€ΠΌΠ°.

ΠΠ΅ΠΏΡ€Π΅ΠΊΡŠΡΠ½Π°Ρ‚Π° доставка с Docker

ΠΏΠΎΠ΄ Continuous Delivery Π½ΠΈΠ΅ Ρ€Π°Π·Π±ΠΈΡ€Π°ΠΌΠ΅ Π²Π΅Ρ€ΠΈΠ³Π°Ρ‚Π° ΠΎΡ‚ ΡΡŠΠ±ΠΈΡ‚ΠΈΡ, Π² Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ Π½Π° ΠΊΠΎΠΈΡ‚ΠΎ ΠΊΠΎΠ΄ΡŠΡ‚ Π½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ ΠΎΡ‚ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅Ρ‚ΠΎ Π½Π° Git ΠΏΡŠΡ€Π²ΠΎ ΠΈΠ΄Π²Π° Π² производството ΠΈ слСд Ρ‚ΠΎΠ²Π° сС ΠΎΠ·ΠΎΠ²Π°Π²Π° Π² Π°Ρ€Ρ…ΠΈΠ²Π°. ИзглСТда Ρ‚Π°ΠΊΠ°: Git β†’ Build β†’ Test β†’ Release β†’ Operate.

ΠŸΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ Π·Π° Π½Π΅ΠΏΡ€Π΅ΠΊΡŠΡΠ½Π°Ρ‚Π° доставка с Docker (ΠΏΡ€Π΅Π³Π»Π΅Π΄ ΠΈ Π²ΠΈΠ΄Π΅ΠΎ)
По-голямата част ΠΎΡ‚ Π΄ΠΎΠΊΠ»Π°Π΄Π° Π΅ посвСтСна Π½Π° Π΅Ρ‚Π°ΠΏΠ° Π½Π° ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅ (сглобяванС Π½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅), Π° Ρ‚Π΅ΠΌΠΈΡ‚Π΅ Π·Π° освобоТдаванС ΠΈ Ρ€Π°Π±ΠΎΡ‚Π° са засСгнати Π½Π°ΠΊΡ€Π°Ρ‚ΠΊΠΎ. Π©Π΅ Π³ΠΎΠ²ΠΎΡ€ΠΈΠΌ Π·Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ ΠΈ шаблони, ΠΊΠΎΠΈΡ‚ΠΎ Π²ΠΈ позволяват Π΄Π° Π³ΠΈ Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚Π΅, Π° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΈΡ‚Π΅ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π½Π° Ρ‚Π΅Π·ΠΈ шаблони ΠΌΠΎΠΆΠ΅ Π΄Π° са Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ.

Π—Π°Ρ‰ΠΎ ΠΈΠ·ΠΎΠ±Ρ‰ΠΎ Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌ Docker Ρ‚ΡƒΠΊ? НС Π½Π°ΠΏΡ€Π°Π·Π½ΠΎ Ρ€Π΅ΡˆΠΈΡ…ΠΌΠ΅ Π΄Π° Π³ΠΎΠ²ΠΎΡ€ΠΈΠΌ Π·Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈΡ‚Π΅ Π·Π° Π½Π΅ΠΏΡ€Π΅ΠΊΡŠΡΠ½Π°Ρ‚Π° доставка Π² контСкста Π½Π° Ρ‚ΠΎΠ·ΠΈ инструмСнт с ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ ΠΊΠΎΠ΄. Π’ΡŠΠΏΡ€Π΅ΠΊΠΈ Ρ‡Π΅ цСлият Π΄ΠΎΠΊΠ»Π°Π΄ Π΅ посвСтСн Π½Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ ΠΌΡƒ, ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΈΡ‡ΠΈΠ½ΠΈ сС Ρ€Π°Π·ΠΊΡ€ΠΈΠ²Π°Ρ‚ ΠΏΡ€ΠΈ Ρ€Π°Π·Π³Π»Π΅ΠΆΠ΄Π°Π½Π΅Ρ‚ΠΎ Π½Π° основния ΠΌΠΎΠ΄Π΅Π» Π½Π° внСдряванС Π½Π° ΠΊΠΎΠ΄Π° Π½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ.

ОсновСн ΠΌΠΎΠ΄Π΅Π» Π½Π° Ρ€Π°Π·Π³Ρ€ΡŠΡ‰Π°Π½Π΅

Π’Π°ΠΊΠ° Ρ‡Π΅, ΠΊΠΎΠ³Π°Ρ‚ΠΎ пускамС Π½ΠΎΠ²ΠΈ вСрсии Π½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ, със сигурност сС сблъсквамС с ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ с прСстой, Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°Π½ΠΈ ΠΏΡ€ΠΈ ΠΏΡ€Π΅Π²ΠΊΠ»ΡŽΡ‡Π²Π°Π½Π΅ Π½Π° производствСния ΡΡŠΡ€Π²ΡŠΡ€. Π’Ρ€Π°Ρ„ΠΈΠΊΡŠΡ‚ ΠΎΡ‚ старата вСрсия Π½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ към Π½ΠΎΠ²Π°Ρ‚Π° Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΏΡ€Π΅Π²ΠΊΠ»ΡŽΡ‡ΠΈ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π°Π»Π½ΠΎ: ΠΏΡŠΡ€Π²ΠΎ трябва Π΄Π° сС ΡƒΠ²Π΅Ρ€ΠΈΠΌ, Ρ‡Π΅ Π½ΠΎΠ²Π°Ρ‚Π° вСрсия Π΅ Π½Π΅ само ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ ΠΈΠ·Ρ‚Π΅Π³Π»Π΅Π½Π°, Π½ΠΎ ΠΈ β€žΠ·Π°Π³Ρ€ΡΡ‚Π°β€œ (Ρ‚.Π΅. напълно Π³ΠΎΡ‚ΠΎΠ²Π° Π·Π° обслуТванС Π½Π° заявки).

ΠŸΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ Π·Π° Π½Π΅ΠΏΡ€Π΅ΠΊΡŠΡΠ½Π°Ρ‚Π° доставка с Docker (ΠΏΡ€Π΅Π³Π»Π΅Π΄ ΠΈ Π²ΠΈΠ΄Π΅ΠΎ)
Π’Π°ΠΊΠ° извСстно Π²Ρ€Π΅ΠΌΠ΅ ΠΈ Π΄Π²Π΅Ρ‚Π΅ вСрсии Π½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ (старата ΠΈ Π½ΠΎΠ²Π°Ρ‚Π°) Ρ‰Π΅ работят Π΅Π΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ. ΠšΠΎΠ΅Ρ‚ΠΎ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ Π²ΠΎΠ΄ΠΈ Π΄ΠΎ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ Π½Π° сподСлСни рСсурси: ΠΌΡ€Π΅ΠΆΠ°, Ρ„Π°ΠΉΠ»ΠΎΠ²Π° систСма, IPC ΠΈ Π΄Ρ€. Π‘ Docker Ρ‚ΠΎΠ·ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ сС Ρ€Π΅ΡˆΠ°Π²Π° лСсно Ρ‡Ρ€Π΅Π· стартиранС Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ вСрсии Π½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ Π² ΠΎΡ‚Π΄Π΅Π»Π½ΠΈ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈ, Π·Π° ΠΊΠΎΠΈΡ‚ΠΎ Π΅ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€Π°Π½Π° изолация Π½Π° рСсурса Π² Ρ€Π°ΠΌΠΊΠΈΡ‚Π΅ Π½Π° Π΅Π΄ΠΈΠ½ ΠΈ ΡΡŠΡ‰ΠΈ хост (ΡΡŠΡ€Π²ΡŠΡ€/Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»Π½Π° машина). Π Π°Π·Π±ΠΈΡ€Π° сС, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΌΠΈΠ½Π΅Ρ‚Π΅ с някои Ρ‚Ρ€ΠΈΠΊΠΎΠ²Π΅ ΠΈ Π±Π΅Π· изолация, Π½ΠΎ Π°ΠΊΠΎ ΠΈΠΌΠ° Π³ΠΎΡ‚ΠΎΠ² ΠΈ ΡƒΠ΄ΠΎΠ±Π΅Π½ инструмСнт, Ρ‚ΠΎΠ³Π°Π²Π° ΠΈΠΌΠ° ΠΈ ΠΎΠ±Ρ€Π°Ρ‚Π½Π°Ρ‚Π° ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π° - Π΄Π° Π½Π΅ Π³ΠΎ ΠΏΡ€Π΅Π½Π΅Π±Ρ€Π΅Π³Π²Π°Ρ‚Π΅.

ΠšΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈΠ·Π°Ρ†ΠΈΡΡ‚Π° осигурява ΠΌΠ½ΠΎΠ³ΠΎ Π΄Ρ€ΡƒΠ³ΠΈ прСдимства ΠΏΡ€ΠΈ внСдряванС. Всяко ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ зависи ΠΎΡ‚ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Π° вСрсия (ΠΈΠ»ΠΈ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ΠΎΡ‚ вСрсии) ΠΏΡ€Π΅Π²ΠΎΠ΄Π°Ρ‡, Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ Π½Π° ΠΌΠΎΠ΄ΡƒΠ»ΠΈ/Ρ€Π°Π·ΡˆΠΈΡ€Π΅Π½ΠΈΡ ΠΈ Π΄Ρ€., ΠΊΠ°ΠΊΡ‚ΠΎ ΠΈ Ρ‚Π΅Ρ…Π½ΠΈΡ‚Π΅ вСрсии. И Ρ‚ΠΎΠ²Π° сС отнася Π½Π΅ само Π·Π° нСпосрСдствСната изпълнима срСда, Π½ΠΎ ΠΈ Π·Π° цялата срСда, Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ систСмСн софтуСр ΠΈ Π½Π΅Π³ΠΎΠ²Π°Ρ‚Π° вСрсия (Π΄ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π°Ρ‚Π° Linux дистрибуция). ΠŸΠΎΡ€Π°Π΄ΠΈ Ρ„Π°ΠΊΡ‚Π°, Ρ‡Π΅ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈΡ‚Π΅ ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Ρ‚ Π½Π΅ само ΠΊΠΎΠ΄ Π½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π½ΠΎ ΠΈ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»Π½ΠΎ инсталиран систСмСн ΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ софтуСр Π½Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΈΡ‚Π΅ вСрсии, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π·Π°Π±Ρ€Π°Π²ΠΈΡ‚Π΅ Π·Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈΡ‚Π΅ със зависимоститС.

НиС сС ΠΎΠ±ΠΎΠ±Ρ‰ΠΈ основСн ΠΌΠΎΠ΄Π΅Π» Π½Π° Ρ€Π°Π·Π³Ρ€ΡŠΡ‰Π°Π½Π΅ Π½ΠΎΠ²ΠΈ вСрсии, ΠΊΠ°Ρ‚ΠΎ сС Π²Π·Π΅ΠΌΠ°Ρ‚ ΠΏΡ€Π΅Π΄Π²ΠΈΠ΄ слСднитС Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈ:

  1. ΠŸΡŠΡ€Π²ΠΎΠ½Π°Ρ‡Π°Π»Π½ΠΎ старата вСрсия Π½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ Ρ€Π°Π±ΠΎΡ‚ΠΈ Π² ΠΏΡŠΡ€Π²ΠΈΡ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€.
  2. Π‘Π»Π΅Π΄ Ρ‚ΠΎΠ²Π° Π½ΠΎΠ²Π°Ρ‚Π° вСрсия сС Ρ€Π°Π·Π³Ρ€ΡŠΡ‰Π° ΠΈ β€žΠ·Π°Π³Ρ€ΡΠ²Π°β€œ във Π²Ρ‚ΠΎΡ€ΠΈ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€. Врябва Π΄Π° сС ΠΎΡ‚Π±Π΅Π»Π΅ΠΆΠΈ, Ρ‡Π΅ самата Ρ‚Π°Π·ΠΈ Π½ΠΎΠ²Π° вСрсия ΠΌΠΎΠΆΠ΅ Π΄Π° носи Π½Π΅ само Π°ΠΊΡ‚ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€Π°Π½ ΠΊΠΎΠ΄ Π½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ, Π½ΠΎ ΠΈ всяка Π½Π΅Π³ΠΎΠ²Π° зависимост, ΠΊΠ°ΠΊΡ‚ΠΎ ΠΈ систСмни ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΈ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π½ΠΎΠ²Π° вСрсия Π½Π° OpenSSL ΠΈΠ»ΠΈ цялата дистрибуция).
  3. ΠšΠΎΠ³Π°Ρ‚ΠΎ Π½ΠΎΠ²Π°Ρ‚Π° вСрсия Π΅ напълно Π³ΠΎΡ‚ΠΎΠ²Π° Π΄Π° обслуТва заявки, Ρ‚Ρ€Π°Ρ„ΠΈΠΊΡŠΡ‚ сС ΠΏΡ€Π΅Π²ΠΊΠ»ΡŽΡ‡Π²Π° ΠΎΡ‚ ΠΏΡŠΡ€Π²ΠΈΡ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ към втория.
  4. Π‘Ρ‚Π°Ρ€Π°Ρ‚Π° вСрсия Π²Π΅Ρ‡Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС спряна.

Π’ΠΎΠ·ΠΈ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ Π½Π° внСдряванС Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ вСрсии Π½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ Π² ΠΎΡ‚Π΄Π΅Π»Π½ΠΈ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈ прСдоставя Π΄Ρ€ΡƒΠ³ΠΎ удобство - Π±ΡŠΡ€Π·ΠΎ Π²Ρ€ΡŠΡ‰Π°Π½Π΅ Π½Π°Π·Π°Π΄ към старата вСрсия (Π² края Π½Π° ΠΊΡ€Π°ΠΈΡ‰Π°Ρ‚Π° Π΅ Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΡ‡Π½ΠΎ Π΄Π° ΠΏΡ€Π΅Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ° към ТСлания ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€).

ΠŸΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ Π·Π° Π½Π΅ΠΏΡ€Π΅ΠΊΡŠΡΠ½Π°Ρ‚Π° доставка с Docker (ΠΏΡ€Π΅Π³Π»Π΅Π΄ ΠΈ Π²ΠΈΠ΄Π΅ΠΎ)
ΠŸΠΎΡΠ»Π΅Π΄Π½Π°Ρ‚Π° ΠΏΡŠΡ€Π²Π° ΠΏΡ€Π΅ΠΏΠΎΡ€ΡŠΠΊΠ° Π·Π²ΡƒΡ‡ΠΈ ΠΊΠ°Ρ‚ΠΎ Π½Π΅Ρ‰ΠΎ, Π² ΠΊΠΎΠ΅Ρ‚ΠΎ Π΄ΠΎΡ€ΠΈ ΠΊΠ°ΠΏΠΈΡ‚Π°Π½ΡŠΡ‚ Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° Π½Π°ΠΌΠ΅Ρ€ΠΈ Π³Ρ€Π΅ΡˆΠΊΠ°: β€ž[ΠΏΡ€ΠΈ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΈΡ€Π°Π½Π΅ Π½Π° Π½Π΅ΠΏΡ€Π΅ΠΊΡŠΡΠ½Π°Ρ‚Π° доставка с Docker] Π˜Π·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡ‚Π΅ Docker [ΠΈ Ρ€Π°Π·Π±Π΅Ρ€Π΅Ρ‚Π΅ ΠΊΠ°ΠΊΠ²ΠΎ Π΄Π°Π²Π°]" НС забравяйтС, Ρ‡Π΅ Ρ‚ΠΎΠ²Π° Π½Π΅ Π΅ ΡΡ€Π΅Π±ΡŠΡ€Π΅Π½ ΠΊΡƒΡ€ΡˆΡƒΠΌ, ΠΊΠΎΠΉΡ‚ΠΎ Ρ‰Π΅ Ρ€Π΅ΡˆΠΈ всСки ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, Π° инструмСнт, ΠΊΠΎΠΉΡ‚ΠΎ осигурява чудСсна основа.

Π’ΡŠΠ·ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚

Под β€žΠ²ΡŠΠ·ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚β€œ ΠΈΠΌΠ°ΠΌΠ΅ ΠΏΡ€Π΅Π΄Π²ΠΈΠ΄ ΠΎΠ±ΠΎΠ±Ρ‰Π΅Π½ Π½Π°Π±ΠΎΡ€ ΠΎΡ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ, срСщани ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π° с прилоТСния. Π“ΠΎΠ²ΠΎΡ€ΠΈΠΌ Π·Π° Ρ‚Π°ΠΊΠΈΠ²Π° случаи:

  • Π‘Ρ†Π΅Π½Π°Ρ€ΠΈΠΈΡ‚Π΅, ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½ΠΈ ΠΎΡ‚ ΠΎΡ‚Π΄Π΅Π»Π° Π·Π° качСство Π·Π° постановка, трябва Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ Ρ‚ΠΎΡ‡Π½ΠΎ Π²ΡŠΠ·ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈ Π² продукцията.
  • ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ‚Π° сС ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ²Π°Ρ‚ Π½Π° ΡΡŠΡ€Π²ΡŠΡ€ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°Ρ‚ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ ΠΎΡ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ ΠΎΠ³Π»Π΅Π΄Π°Π»Π½ΠΈ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π° (с Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ Π½Π° Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ Ρ‚Π΅ сС Π°ΠΊΡ‚ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€Π°Ρ‚, Π° с тях ΠΈ вСрсиитС Π½Π° инсталиранитС прилоТСния).
  • β€žΠ’ΡΠΈΡ‡ΠΊΠΎ Ρ€Π°Π±ΠΎΡ‚ΠΈ Π·Π° ΠΌΠ΅Π½ Π½Π° място!β€œ (...ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈΡ‚Π΅ Π½Π΅ сС допускат Π΄ΠΎ производство.)
  • Врябва Π΄Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚Π΅ Π½Π΅Ρ‰ΠΎ Π² старата (Π°Ρ€Ρ…ΠΈΠ²ΠΈΡ€Π°Π½Π°) вСрсия.
  • ...

Вяхната ΠΎΠ±Ρ‰Π° ΡΡŠΡ‰Π½ΠΎΡΡ‚ сС свСТда Π΄ΠΎ Ρ„Π°ΠΊΡ‚Π°, Ρ‡Π΅ Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡŠΠ»Π½ΠΎΡ‚ΠΎ ΡΡŠΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΈΠ΅ Π½Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΈΡ‚Π΅ срСди (ΠΊΠ°ΠΊΡ‚ΠΎ ΠΈ липсата Π½Π° Ρ‡ΠΎΠ²Π΅ΡˆΠΊΠΈΡ Ρ„Π°ΠΊΡ‚ΠΎΡ€). Как ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€Π°ΠΌΠ΅ Π²ΡŠΠ·ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚? НаправСтС Docker изобраТСния Π±Π°Π·ΠΈΡ€Π°Π½ΠΈ Π½Π° ΠΊΠΎΠ΄ ΠΎΡ‚ Git ΠΈ слСд Ρ‚ΠΎΠ²Π° Π΄Π° Π³ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ Π·Π° всяка Π·Π°Π΄Π°Ρ‡Π°: Π½Π° тСстови сайтовС, Π² производство, Π½Π° Π»ΠΎΠΊΠ°Π»Π½ΠΈ машини Π½Π° програмисти... Π’ ΡΡŠΡ‰ΠΎΡ‚ΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π΅ Π²Π°ΠΆΠ½ΠΎ Π΄Π° сС свСдат Π΄ΠΎ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ дСйствията, ΠΊΠΎΠΈΡ‚ΠΎ сС ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π°Ρ‚ слСд сглобяванС Π½Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ: ΠΊΠΎΠ»ΠΊΠΎΡ‚ΠΎ ΠΏΠΎ-просто Π΅, Ρ‚ΠΎΠ»ΠΊΠΎΠ²Π° ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ вСроятно Π΅ Π΄Π° ΠΈΠΌΠ° Π³Ρ€Π΅ΡˆΠΊΠΈ.

Π˜Π½Ρ„Ρ€Π°ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π°Ρ‚Π° Π΅ ΠΊΠΎΠ΄

Ако инфраструктурнитС изисквания (Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ Π½Π° ΡΡŠΡ€Π²ΡŠΡ€Π΅Π½ софтуСр, Π½Π΅Π³ΠΎΠ²Π°Ρ‚Π° вСрсия ΠΈ Ρ‚.Π½.) Π½Π΅ са Ρ„ΠΎΡ€ΠΌΠ°Π»ΠΈΠ·ΠΈΡ€Π°Π½ΠΈ ΠΈ β€žΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½ΠΈβ€œ, Ρ‚ΠΎΠ³Π°Π²Π° внСдряванСто Π½Π° всяка актуализация Π½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° Π΄ΠΎΠ²Π΅Π΄Π΅ Π΄ΠΎ катастрофални послСдици. НапримСр, Π² Π΅Ρ‚Π°ΠΏΠ° Π²Π΅Ρ‡Π΅ стС ΠΏΡ€Π΅ΠΌΠΈΠ½Π°Π»ΠΈ към PHP 7.0 ΠΈ стС прСнаписали ΡΡŠΠΎΡ‚Π²Π΅Ρ‚Π½ΠΎ ΠΊΠΎΠ΄Π° - Ρ‚ΠΎΠ³Π°Π²Π° появата ΠΌΡƒ Π² продукция с някакъв стар PHP (5.5) със сигурност Ρ‰Π΅ ΠΈΠ·Π½Π΅Π½Π°Π΄Π° някого. МоТС Π΄Π° Π½Π΅ забравятС Π·Π° голяма промяна във вСрсията Π½Π° ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Π°, Π½ΠΎ β€žΠ΄ΡΠ²ΠΎΠ»ΡŠΡ‚ Π΅ Π² Π΄Π΅Ρ‚Π°ΠΉΠ»ΠΈΡ‚Π΅β€œ: ΠΈΠ·Π½Π΅Π½Π°Π΄Π°Ρ‚Π° ΠΌΠΎΠΆΠ΅ Π΄Π° Π΅ Π² ΠΌΠ°Π»ΠΊΠ° актуализация Π½Π° всяка зависимост.

Π•Π΄ΠΈΠ½ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ Π·Π° Ρ€Π΅ΡˆΠ°Π²Π°Π½Π΅ Π½Π° Ρ‚ΠΎΠ·ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ Π΅ извСстСн ΠΊΠ°Ρ‚ΠΎ IaC (Π˜Π½Ρ„Ρ€Π°ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° ΠΊΠ°Ρ‚ΠΎ ΠΊΠΎΠ΄, β€žΠΈΠ½Ρ„Ρ€Π°ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° ΠΊΠ°Ρ‚ΠΎ ΠΊΠΎΠ΄β€œ) ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π²Π° ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π°Π½Π΅ Π½Π° инфраструктурни изисквания Π·Π°Π΅Π΄Π½ΠΎ с ΠΊΠΎΠ΄Π° Π½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ. Използвайки Π³ΠΎ, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈΡ‚Π΅ ΠΈ спСциалиститС ΠΏΠΎ DevOps ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° работят с Π΅Π΄Π½ΠΎ ΠΈ ΡΡŠΡ‰ΠΎ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ Π½Π° Git прилоТСния, Π½ΠΎ Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ части ΠΎΡ‚ Π½Π΅Π³ΠΎ. ΠžΡ‚ Ρ‚ΠΎΠ·ΠΈ ΠΊΠΎΠ΄ сС създава Docker ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π² Git, Π² ΠΊΠΎΠ΅Ρ‚ΠΎ сС внСдрява ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ, ΠΊΠ°Ρ‚ΠΎ сС Π²Π·Π΅ΠΌΠ°Ρ‚ ΠΏΡ€Π΅Π΄Π²ΠΈΠ΄ всички спСцифики Π½Π° инфраструктурата. ΠŸΡ€ΠΎΡΡ‚ΠΎ ΠΊΠ°Π·Π°Π½ΠΎ, скриптовСтС (ΠΏΡ€Π°Π²ΠΈΠ»Π°Ρ‚Π°) Π·Π° сглобяванС Π½Π° изобраТСния трябва Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ Π² Π΅Π΄Π½ΠΎ ΠΈ ΡΡŠΡ‰ΠΎ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ с изходния ΠΊΠΎΠ΄ ΠΈ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ ΠΎΠ±Π΅Π΄ΠΈΠ½Π΅Π½ΠΈ.

ΠŸΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ Π·Π° Π½Π΅ΠΏΡ€Π΅ΠΊΡŠΡΠ½Π°Ρ‚Π° доставка с Docker (ΠΏΡ€Π΅Π³Π»Π΅Π΄ ΠΈ Π²ΠΈΠ΄Π΅ΠΎ)

Π’ случай Π½Π° многослойна Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° Π½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ - Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΈΠΌΠ° nginx, ΠΊΠΎΠΉΡ‚ΠΎ стои ΠΏΡ€Π΅Π΄ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΠ΅Ρ‚ΠΎ Π²Π΅Ρ‡Π΅ сС изпълнява Π² Docker ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ - Docker изобраТСнията трябва Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ създадСни ΠΎΡ‚ ΠΊΠΎΠ΄ Π² Git Π·Π° всСки слой. Π’ΠΎΠ³Π°Π²Π° ΠΏΡŠΡ€Π²ΠΎΡ‚ΠΎ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Ρ‰Π΅ ΡΡŠΠ΄ΡŠΡ€ΠΆΠ° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ с ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈ β€žΠ±Π»ΠΈΠ·ΠΊΠΈβ€œ зависимости, Π° Π²Ρ‚ΠΎΡ€ΠΎΡ‚ΠΎ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Ρ‰Π΅ ΡΡŠΠ΄ΡŠΡ€ΠΆΠ° nginx Π½Π°Π³ΠΎΡ€Π΅ ΠΏΠΎ Π²Π΅Ρ€ΠΈΠ³Π°Ρ‚Π°.

Docker изобраТСния, комуникация с Git

НиС раздСлямС всички изобраТСния Π½Π° Docker, ΡΡŠΠ±Ρ€Π°Π½ΠΈ ΠΎΡ‚ Git, Π² Π΄Π²Π΅ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ: Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΈ ΠΈ освобоТдаващи. Π’Ρ€Π΅ΠΌΠ΅Π½Π½ΠΈ изобраТСния ΠΌΠ°Ρ€ΠΊΠΈΡ€Π°Π½ΠΈ с ΠΈΠΌΠ΅Ρ‚ΠΎ Π½Π° ΠΊΠ»ΠΎΠ½Π° Π² Git, ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ прСзаписани ΠΎΡ‚ слСдващия ΠΊΠΎΠΌΠΈΡ‚ ΠΈ сС разпространяват само Π·Π° ΠΏΡ€Π΅Π³Π»Π΅Π΄ (Π½Π΅ Π·Π° производство). Π’ΠΎΠ²Π° Π΅ основната ΠΈΠΌ Ρ€Π°Π·Π»ΠΈΠΊΠ° ΠΎΡ‚ Ρ‚Π΅Π·ΠΈ Π½Π° ΠΈΠ·Π΄Π°Π½ΠΈΠ΅Ρ‚ΠΎ: Π½ΠΈΠΊΠΎΠ³Π° Π½Π΅ Π·Π½Π°Π΅Ρ‚Π΅ ΠΊΠΎΠΉ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π΅Π½ Π°Π½Π³Π°ΠΆΠΈΠΌΠ΅Π½Ρ‚ ΠΈΠΌΠ° Π² тях.

Има смисъл Π΄Π° сС ΡΡŠΠ±ΠΈΡ€Π°Ρ‚ във Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΈ изобраТСния: основният ΠΊΠ»ΠΎΠ½ (ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ Π΄Π° Π³ΠΎ ΠΏΡ€Π΅Ρ…Π²ΡŠΡ€Π»ΠΈΡ‚Π΅ Π½Π° ΠΎΡ‚Π΄Π΅Π»Π΅Π½ сайт, Π·Π° Π΄Π° Π²ΠΈΠΆΠ΄Π°Ρ‚Π΅ постоянно Ρ‚Π΅ΠΊΡƒΡ‰Π°Ρ‚Π° вСрсия Π½Π° главния), ΠΊΠ»ΠΎΠ½ΠΎΠ²Π΅ с вСрсии, ΠΊΠ»ΠΎΠ½ΠΎΠ²Π΅ Π½Π° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΈ ΠΈΠ½ΠΎΠ²Π°Ρ†ΠΈΠΈ.

ΠŸΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ Π·Π° Π½Π΅ΠΏΡ€Π΅ΠΊΡŠΡΠ½Π°Ρ‚Π° доставка с Docker (ΠΏΡ€Π΅Π³Π»Π΅Π΄ ΠΈ Π²ΠΈΠ΄Π΅ΠΎ)
Π‘Π»Π΅Π΄ прСдваритСлния ΠΏΡ€Π΅Π³Π»Π΅Π΄ Π½Π° Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΈΡ‚Π΅ изобраТСния сС стигнС Π΄ΠΎ нСобходимостта ΠΎΡ‚ ΠΏΡ€Π΅Π²ΠΎΠ΄ Π² производство, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈΡ‚Π΅ поставят ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ Π΅Ρ‚ΠΈΠΊΠ΅Ρ‚. Автоматично ΡΡŠΠ±Ρ€Π°Π½ΠΈ ΠΏΠΎ Π΅Ρ‚ΠΈΠΊΠ΅Ρ‚ освобоТдаванС Π½Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ (нСговият Ρ‚Π°Π³ ΡΡŠΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²Π° Π½Π° Ρ‚Π°Π³Π° ΠΎΡ‚ Git) ΠΈ сС Ρ€Π°Π·Π³Ρ€ΡŠΡ‰Π° към Π΅Ρ‚Π°ΠΏΠ°. Ако бъдС ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½ ΠΎΡ‚ ΠΎΡ‚Π΄Π΅Π»Π° ΠΏΠΎ качСство, Ρ‚ΠΎΠΉ ΠΎΡ‚ΠΈΠ²Π° Π² производство.

DAPP

Всичко описано (разпространСниС, сглобяванС Π½Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, послСдваща ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ°) ΠΌΠΎΠΆΠ΅ Π΄Π° сС Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π° нСзависимо с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° Bash скриптовС ΠΈ Π΄Ρ€ΡƒΠ³ΠΈ β€žΠΈΠΌΠΏΡ€ΠΎΠ²ΠΈΠ·ΠΈΡ€Π°Π½ΠΈβ€œ инструмСнти. Но Π°ΠΊΠΎ Π½Π°ΠΏΡ€Π°Π²ΠΈΡ‚Π΅ Ρ‚ΠΎΠ²Π°, Ρ‚ΠΎΠ³Π°Π²Π° Π² Π΅Π΄ΠΈΠ½ ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΈΠ·ΠΏΡŠΠ»Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Ρ‰Π΅ Π΄ΠΎΠ²Π΅Π΄Π΅ Π΄ΠΎ голяма слоТност ΠΈ лоша управляСмост. Π Π°Π·Π±ΠΈΡ€Π°ΠΉΠΊΠΈ Ρ‚ΠΎΠ²Π°, стигнахмС Π΄ΠΎ ΡΡŠΠ·Π΄Π°Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° наша собствСна спСциализирана ΠΏΠΎΠΌΠΎΡ‰Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ° Π·Π° Ρ€Π°Π±ΠΎΡ‚Π΅Π½ процСс Π·Π° ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅ Π½Π° CI/CD - DAPP.

НСговият ΠΈΠ·Ρ…ΠΎΠ΄Π΅Π½ ΠΊΠΎΠ΄ Π΅ написан Π½Π° Ruby, с ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ ΠΊΠΎΠ΄ ΠΈ Π΅ ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ²Π°Π½ Π½Π° GitHub. Π—Π° съТалСниС Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° докумСнтацията Π΅ Π½Π°ΠΉ-слабото място Π½Π° инструмСнта, Π½ΠΎ Π½ΠΈΠ΅ Ρ€Π°Π±ΠΎΡ‚ΠΈΠΌ Π²ΡŠΡ€Ρ…Ρƒ Ρ‚ΠΎΠ²Π°. И Ρ‰Π΅ пишСм ΠΈ Π³ΠΎΠ²ΠΎΡ€ΠΈΠΌ Π·Π° dapp ΠΏΠΎΠ²Π΅Ρ‡Π΅ ΠΎΡ‚ вСднъТ, Π·Π°Ρ‰ΠΎΡ‚ΠΎ... Π˜ΡΠΊΡ€Π΅Π½ΠΎ нямамС Ρ‚ΡŠΡ€ΠΏΠ΅Π½ΠΈΠ΅ Π΄Π° сподСлим Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈΡ‚Π΅ ΠΌΡƒ с цялата заинтСрСсована общност, Π½ΠΎ ΠΌΠ΅ΠΆΠ΄ΡƒΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΠΈΠ·ΠΏΡ€Π°Ρ‰Π°ΠΉΡ‚Π΅ Π²Π°ΡˆΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ ΠΈ заявки Π·Π° изтСглянС ΠΈ/ΠΈΠ»ΠΈ слСдСтС Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅Ρ‚ΠΎ Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π² GitHub.

Актуализирано Π½Π° 13 август 2019 Π³.: Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ DAPP ΠΏΡ€Π΅ΠΈΠΌΠ΅Π½ΡƒΠ²Π°Π½ Π½Π° werf, ΠΊΠΎΠ΄ΡŠΡ‚ ΠΌΡƒ Π΅ напълно прСнаписан Π² Go, Π° докумСнтацията ΠΌΡƒ Π΅ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΎ ΠΏΠΎΠ΄ΠΎΠ±Ρ€Π΅Π½Π°.

Kubernetes

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

Π—Π° внСдряванС Kubernetes ΠΏΡ€Π΅Π΄Π»Π°Π³Π°:

  • ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° готовността β€” ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° готовността Π½Π° Π½ΠΎΠ²Π° вСрсия Π½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ (Π·Π° ΠΏΡ€Π΅Π²ΠΊΠ»ΡŽΡ‡Π²Π°Π½Π΅ Π½Π° Ρ‚Ρ€Π°Ρ„ΠΈΠΊ към Π½Π΅Π³ΠΎ);
  • ΠΏΠΎΠ΄Π²ΠΈΠΆΠ½Π° актуализация - послСдоватСлна актуализация Π½Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ Π² ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€ ΠΎΡ‚ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈ (ΠΈΠ·ΠΊΠ»ΡŽΡ‡Π²Π°Π½Π΅, актуализация, ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ° Π·Π° стартиранС, ΠΏΡ€Π΅Π²ΠΊΠ»ΡŽΡ‡Π²Π°Π½Π΅ Π½Π° Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ°);
  • синхронна актуализация - Π°ΠΊΡ‚ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π² ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€ с Ρ€Π°Π·Π»ΠΈΡ‡Π΅Π½ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄: ΠΏΡŠΡ€Π²ΠΎ Π½Π° ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Π°Ρ‚Π° ΠΎΡ‚ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈΡ‚Π΅, слСд Ρ‚ΠΎΠ²Π° Π½Π° останалитС;
  • canary releases - стартиранС Π½Π° Π½ΠΎΠ²ΠΎ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π²ΡŠΡ€Ρ…Ρƒ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ (малък) Π±Ρ€ΠΎΠΉ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈ Π·Π° наблюдСниС Π½Π° Π°Π½ΠΎΠΌΠ°Π»ΠΈΠΈ.

Въй ΠΊΠ°Ρ‚ΠΎ Continuous Delivery Π½Π΅ Π΅ само пусканСто Π½Π° Π½ΠΎΠ²Π° вСрсия, Kubernetes ΠΈΠΌΠ° Ρ€Π΅Π΄ΠΈΡ†Π° Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈ Π·Π° послСдваща ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° инфраструктурата: Π²Π³Ρ€Π°Π΄Π΅Π½ΠΎ наблюдСниС ΠΈ рСгистриранС Π·Π° всички ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈ, Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ ΠΌΠ°Ρ‰Π°Π±ΠΈΡ€Π°Π½Π΅ ΠΈ Ρ‚.Π½. Всичко Ρ‚ΠΎΠ²Π° Π²Π΅Ρ‡Π΅ Ρ€Π°Π±ΠΎΡ‚ΠΈ ΠΈ просто Ρ‡Π°ΠΊΠ° ΠΏΡ€Π°Π²ΠΈΠ»Π½ΠΎΡ‚ΠΎ внСдряванС във Π²Π°ΡˆΠΈΡ‚Π΅ процСси.

ΠžΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»Π½ΠΈ ΠΏΡ€Π΅ΠΏΠΎΡ€ΡŠΠΊΠΈ

  1. Π˜Π·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡ‚Π΅ Docker.
  2. Π‘ΡŠΠ·Π΄Π°Π²Π°ΠΉΡ‚Π΅ Docker изобраТСния Π½Π° прилоТСния Π·Π° всички ваши Π½ΡƒΠΆΠ΄ΠΈ.
  3. Π‘Π»Π΅Π΄Π²Π°ΠΉΡ‚Π΅ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ° β€žΠ˜Π½Ρ„Ρ€Π°ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π°Ρ‚Π° Π΅ ΠΊΠΎΠ΄β€œ.
  4. Π‘Π²ΡŠΡ€ΠΆΠ΅Ρ‚Π΅ Git към Docker.
  5. Π Π΅Π³ΡƒΠ»ΠΈΡ€Π°ΠΉΡ‚Π΅ Ρ€Π΅Π΄Π° Π½Π° Ρ€Π°Π·Π³Ρ€ΡŠΡ‰Π°Π½Π΅.
  6. Π˜Π·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡ‚Π΅ Π³ΠΎΡ‚ΠΎΠ²Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° (Kubernetes ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³Π°).

Π’ΠΈΠ΄Π΅ΠΎΠΊΠ»ΠΈΠΏΠΎΠ²Π΅ ΠΈ слайдовС

Π’ΠΈΠ΄Π΅ΠΎ ΠΎΡ‚ прСдставлСниСто (ΠΎΠΊΠΎΠ»ΠΎ час) ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ²Π°Π½ΠΈ Π² YouTube (самият Ρ€Π΅ΠΏΠΎΡ€Ρ‚Π°ΠΆ Π·Π°ΠΏΠΎΡ‡Π²Π° ΠΎΡ‚ 5-Ρ‚Π° ΠΌΠΈΠ½ΡƒΡ‚Π° - слСдвайтС Π²Ρ€ΡŠΠ·ΠΊΠ°Ρ‚Π°, Π·Π° Π΄Π° ΠΈΠ³Ρ€Π°Π΅Ρ‚Π΅ ΠΎΡ‚ Ρ‚ΠΎΠ·ΠΈ ΠΌΠΎΠΌΠ΅Π½Ρ‚).

ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²ΡΠ½Π΅ Π½Π° Π΄ΠΎΠΊΠ»Π°Π΄Π°:

PS

Π”Ρ€ΡƒΠ³ΠΈ Π΄ΠΎΠΊΠ»Π°Π΄ΠΈ ΠΏΠΎ Ρ‚Π΅ΠΌΠ°Ρ‚Π° Π² нашия Π±Π»ΠΎΠ³:

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

ДобавянС Π½Π° Π½ΠΎΠ² ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€