инфраструктура ΠΊΠ°ΠΊ ΠΊΠΎΠ΄ инструмСнты

Infrastructure as Code: ΠŸΠ»ΡŽΡΡ‹, ΠœΠΈΠ½ΡƒΡΡ‹ ΠΈ Π‘ΡƒΠ΄ΡƒΡ‰Π΅Π΅

инфраструктура ΠΊΠ°ΠΊ ΠΊΠΎΠ΄ инструмСнты. image loader. инфраструктура ΠΊΠ°ΠΊ ΠΊΠΎΠ΄ инструмСнты Ρ„ΠΎΡ‚ΠΎ. инфраструктура ΠΊΠ°ΠΊ ΠΊΠΎΠ΄ инструмСнты-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° инфраструктура ΠΊΠ°ΠΊ ΠΊΠΎΠ΄ инструмСнты. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. Infrastructure as Code β€” ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠΉ элСмСнт Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ эффСктивных ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Π½Ρ‹Ρ… сСтапов. Π’ΠΎ, ΠΊΠ°ΠΊ сСйчас DevOps-ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Ρ‹ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‚ со своСй инфраструктурой β€” это нСсомнСнно большой скачок Π²ΠΏΠ΅Ρ€Π΅Π΄. Но Ρ‚Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ спорныС ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρ‹ с ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΈ Π»ΡƒΡ‡ΡˆΠΈΠΌΠΈ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ°ΠΌΠΈ IaC Π΄ΠΎ сих ΠΏΠΎΡ€ Π΅ΡΡ‚ΡŒ. Π­Ρ‚Π° ΡΡ‚Π°Ρ‚ΡŒΡ стрСмится Ρ‡Π΅Ρ‚ΠΊΠΎ ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ IaC, Π΅Π³ΠΎ прСимущСства ΠΈ Π²Π°ΠΆΠ½Ρ‹Π΅ ограничСния.

Infrastructure as Code β€” ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠΉ элСмСнт Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ эффСктивных ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Π½Ρ‹Ρ… сСтапов. Π’ΠΎ, ΠΊΠ°ΠΊ сСйчас DevOps-ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Ρ‹ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‚ со своСй инфраструктурой β€” это нСсомнСнно большой скачок Π²ΠΏΠ΅Ρ€Π΅Π΄. Но Ρ‚Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ спорныС ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρ‹ с ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΈ Π»ΡƒΡ‡ΡˆΠΈΠΌΠΈ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ°ΠΌΠΈ IaC Π΄ΠΎ сих ΠΏΠΎΡ€ Π΅ΡΡ‚ΡŒ. Π­Ρ‚Π° ΡΡ‚Π°Ρ‚ΡŒΡ стрСмится Ρ‡Π΅Ρ‚ΠΊΠΎ ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ IaC, Π΅Π³ΠΎ прСимущСства ΠΈ Π²Π°ΠΆΠ½Ρ‹Π΅ ограничСния.

Infrastructure as Code, ΠΈΠ»ΠΈ сокращСнно IaC, β€” это Ρ„ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΉ сдвиг Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для Ops Π² Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ подходят ΠΊ ΠΏΡ€ΠΎΠ²ΠΈΠ·ΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ ΠΈ ΠΎΠ±ΡΠ»ΡƒΠΆΠΈΠ²Π°Π½ΠΈΡŽ инфраструктуры, Π½ΠΎ ΠΈ Π² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния Π² Ρ†Π΅Π»ΠΎΠΌ. НСсмотря Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π·Π° послСдниС нСсколько Π»Π΅Ρ‚ IaC Π΄Π΅-Ρ„Π°ΠΊΡ‚ΠΎ Π·Π°Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°Π» сСбя ΠΊΠ°ΠΊ отраслСвой стандарт, ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π΄ΠΎ сих ΠΏΠΎΡ€ спорят ΠΎ Π΅Π³ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ, Π»ΡƒΡ‡ΡˆΠΈΡ… ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ°Ρ… ΠΈ ограничСниях.

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ Π²Ρ‹ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚Π΅ΡΡŒ с ΡΠ²ΠΎΠ»ΡŽΡ†ΠΈΠ΅ΠΉ этого ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° ΠΊ инфраструктурС Ρ€Π°Π±ΠΎΡ‡ΠΈΡ… процСссов ΠΈ связанных с Π½ΠΈΠΌ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ. ΠœΡ‹ объясним, ΠΎΡ‚ΠΊΡƒΠ΄Π° появился IaC, пСрспСктивы Π΅Π³ΠΎ развития, Π΅Π³ΠΎ прСимущСства ΠΈ Π΅Π³ΠΎ Π³Π»Π°Π²Π½Ρ‹Π΅ ограничСния.

ΠžΡ‚ ΠΆΠ΅Π»Π΅Π·Π° ΠΊ ΠΎΠ±Π»Π°ΠΊΡƒ

Π•Ρ‰Π΅ ΠΏΠΎΠΌΠ½ΠΈΡ‚Π΅ ΠΆΠ΅Π»Π΅Π·Π½Ρ‹ΠΉ Π²Π΅ΠΊ IT, ΠΊΠΎΠ³Π΄Π° Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΠΏΠΎΠΊΡƒΠΏΠ°Ρ‚ΡŒ собствСнныС сСрвСры ΠΈ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Ρ‹? И я ΡƒΠΆΠ΅ Π½Π΅ помню. БСйчас каТСтся ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ Π±Π΅Π·ΡƒΠΌΠ½Ρ‹ΠΌ, Ρ‡Ρ‚ΠΎ рост инфраструктуры ΠΌΠΎΠ³ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ Ρ†ΠΈΠΊΠ»ΠΎΠΌ ΠΏΠΎΠΊΡƒΠΏΠΊΠΈ оборудования. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ доставка Π½ΠΎΠ²ΠΎΠ³ΠΎ сСрвСра Π·Π°Π½ΠΈΠΌΠ°Π»Π° нСсколько нСдСль, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ быстрой установки ΠΈ настройки Π½Π° Π½Π΅ΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы Π½Π΅ стояла Ρ‚Π°ΠΊ остро. Π›ΡŽΠ΄ΠΈ просто вставляли диск Π² сСрвСр ΠΈ слСдовали ΠΏΠΎ ΠΏΡƒΠ½ΠΊΡ‚Π°ΠΌ. Π§Π΅Ρ€Π΅Π· нСсколько Π΄Π½Π΅ΠΉ ΠΎΠ½ становился доступСн для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ². ΠŸΡ€ΠΎΡΡ‚ΠΎ Π±Π΅Π·ΡƒΠΌΠΈΠ΅.

Π‘ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ запуском ΠΈ повсСмСстным Π²Π½Π΅Π΄Ρ€Π΅Π½ΠΈΠ΅ΠΌ AWS EC2 ΠΈ Ruby on Rails 1.0 Π² 2006 Π³ΠΎΠ΄Ρƒ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ‚ΠΈΠ²Π½Ρ‹Π΅ Π³Ρ€ΡƒΠΏΠΏΡ‹ ΡΡ‚ΠΎΠ»ΠΊΠ½ΡƒΠ»ΠΈΡΡŒ с ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°ΠΌΠΈ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π°Π½Π΅Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π»ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² ΠΊΡ€ΡƒΠΏΠ½Ρ‹Ρ… Ρ‚Ρ€Π°Π½ΡΠ½Π°Ρ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… организациях. ΠžΠ±Π»Π°Ρ‡Π½Ρ‹Π΅ вычислСния ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π±Π΅Π· усилий Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ инстансы Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… машин принСсли ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Π°ΠΌ ΠΈ прСдприятиям Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ…ΠΎΡ€ΠΎΡˆΡƒΡŽ Π²Ρ‹Π³ΠΎΠ΄Ρƒ, Π½ΠΎ ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ…Π»ΠΎΠΏΠΎΡ‚Ρ‹. Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΈΠΌ ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΠ»ΠΎΡΡŒ ΡΠ»Π΅Π΄ΠΈΡ‚ΡŒ Π·Π° обслуТиваСмыми сСрвСрами, число ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… постоянно росло.

ΠŸΠ»ΠΎΡ‰Π°Π΄ΡŒ инфраструктуры срСднСй ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Π½ΠΎΠΉ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ стала расти ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ нСбольшоС количСство Π±ΠΎΠ»ΡŒΡˆΠΈΡ… машин замСнялось большим количСством ΠΌΠ΅Π½ΡŒΡˆΠΈΡ…. Π’ ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ ΠΌΠΎΠΌΠ΅Π½Ρ‚ стало Π³ΠΎΡ€Π°Π·Π΄ΠΎ большС Π²Π΅Ρ‰Π΅ΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ops Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π»ΠΎΡΡŒ ΠΏΡ€ΠΎΠ²ΠΈΠ·ΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ, ΠΈ эта инфраструктура ΠΈΠΌΠ΅Π»Π° Ρ‚Π΅Π½Π΄Π΅Π½Ρ†ΠΈΡŽ Π±Ρ‹Ρ‚ΡŒ цикличСской. ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒΡΡ с ​​пиковой Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΎΠΉ Π΄Π½Π΅ΠΌ, Π° Π½ΠΎΡ‡ΡŒΡŽ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Ρ‚ΡŒ ΠΌΠ°ΡΡˆΡ‚Π°Π±, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΡΠΊΠΎΠ½ΠΎΠΌΠΈΡ‚ΡŒ Π½Π° расходах, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ Π½Π΅ фиксированы. Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ нСобходимости ΠΌΠΈΡ€ΠΈΡ‚ΡŒΡΡ с постоянным устарСваниСм нашСго оборудования, ΠΌΡ‹ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠ»Π°Ρ‚ΠΈΠΌ Π·Π° Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ рСсурсы почасово. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π²Π»Π΅Ρ‡ΡŒ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½ΡƒΡŽ Π²Ρ‹Π³ΠΎΠ΄Ρƒ ΠΏΡ€ΠΈ использовании ΠΎΠ±Π»Π°Ρ‡Π½ΠΎΠ³ΠΎ сСтапа, ΠΈΠΌΠ΅Π΅Ρ‚ смысл Π·Π°Π΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Ρƒ инфраструктуру, которая Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠ°.

Π§Ρ‚ΠΎΠ±Ρ‹ максимально эффСктивно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ эту Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ, Π½Π°ΠΌ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Π»Π°ΡΡŒ новая ΠΏΠ°Ρ€Π°Π΄ΠΈΠ³ΠΌΠ°. Π‘ΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ тысячу Ρ‚ΠΈΠΊΠ΅Ρ‚ΠΎΠ² ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΡƒΡ‚Ρ€ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°Π±Ρ€Π°Ρ‚ΡŒ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΌΠΎΡ‰Π½ΠΎΡΡ‚ΡŒ, ΠΈ Π΅Ρ‰Π΅ тысячу Ρ‚ΠΈΠΊΠ΅Ρ‚ΠΎΠ² Π½ΠΎΡ‡ΡŒΡŽ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ снова Π·Π°ΠΌΠ΅Π΄Π»ΠΈΡ‚ΡŒΡΡ, ΠΏΡ€ΠΈ этом Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ всСм этим, ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, становится довольно слоТной Π·Π°Π΄Π°Ρ‡Π΅ΠΉ. Π’ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ вопрос, ΠΊΠ°ΠΊ Π½Π°Ρ‡Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ этот сСтап, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ Π±Ρ‹Π» Π½Π°Π΄Π΅ΠΆΠ½Ρ‹ΠΌ, устойчивым ΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡Π°Π» ошибки, Π²Ρ‹Π·Π²Π°Π½Π½Ρ‹Π΅ чСловСчСским Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΎΠΌ?

Infrastructure as Code

Infrastructure as Code Π±Ρ‹Π» Ρ€ΠΎΠΆΠ΄Π΅Π½ для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ этих Π·Π°Π΄Π°Ρ‡ максимально систСматизированным ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ. IaC β€” это процСсс управлСния ΠΈ провизионирования Π΄Π°Ρ‚Π°Ρ†Π΅Π½Ρ‚Ρ€ΠΎΠ² ΠΈ сСрвСров с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ°ΡˆΠΈΠ½ΠΎΡ‡ΠΈΡ‚Π°Π΅ΠΌΡ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΉ, созданный ΠΊΠ°ΠΊ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π° физичСскому ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ оборудования ΠΈ ΠΎΠΏΠ΅Ρ€ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΌ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠΎΠΌ инструмСнтам. Π’Π΅ΠΏΠ΅Ρ€ΡŒ, вмСсто Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ ΡΠΎΡ‚Π½ΡŽ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ, IaC позволяСт Π½Π°ΠΌ просто Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ скрипт, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΡƒΡ‚Ρ€ΠΎ ΠΏΠΎΠ΄Π½ΠΈΠΌΠ°Π΅Ρ‚ тысячу Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… машин, Π° Π²Π΅Ρ‡Π΅Ρ€ΠΎΠΌ автоматичСски сокращаСт инфраструктуру Π΄ΠΎ ΠΏΡ€ΠΈΠ΅ΠΌΠ»Π΅ΠΌΠΎΠ³ΠΎ Π²Π΅Ρ‡Π΅Ρ€Π½Π΅Π³ΠΎ ΠΌΠ°ΡΡˆΡ‚Π°Π±Π°.

Π‘ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° запуска AWS Cloudformation Π² 2009 Π³ΠΎΠ΄Ρƒ IaC быстро стал Π½Π΅ΠΎΡ‚ΡŠΠ΅ΠΌΠ»Π΅ΠΌΠΎΠΉ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΎΠΉ DevOps, Π½Π΅Π·Π°ΠΌΠ΅Π½ΠΈΠΌΠΎΠΉ Π² ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎΠΌ Ρ†ΠΈΠΊΠ»Π΅ конкурСнтоспособной доставки ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния. Он позволяСт ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€ΠΎΠ² быстро ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΈ Π²Π΅Ρ€ΡΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ инфраструктуру Ρ‚Π΅ΠΌ ΠΆΠ΅ способом, Ρ‡Ρ‚ΠΎ ΠΈ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ ΠΊΠΎΠ΄, ΠΈ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ эти вСрсии Π²ΠΎ ΠΈΠ·Π±Π΅ΠΆΠ°Π½ΠΈΠ΅ нСсогласованности ΠΌΠ΅ΠΆΠ΄Ρƒ срСдами. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡŽΡ‚ это ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ ΠΈ ΠΏΠΈΡˆΡƒΡ‚ инфраструктурныС спСцификации (infrastructure specs) Π½Π° спСцифичном для ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Π½ΠΎΠΉ области языкС

Π‘ΠΎΠ·Π΄Π°Π½Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ΡΡ Π² API управлСния, мастСр-сСрвСр ΠΈΠ»ΠΈ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ ΠΊΠΎΠ΄Π°

Π—Π°Ρ‚Π΅ΠΌ инструмСнт IaC, Ρ‚Π°ΠΊΠΎΠΉ ΠΊΠ°ΠΊ Pulumi, выполняСт всС дСйствия, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½ΡƒΠΆΠ½Ρ‹ для создания ΠΈ настройки Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… рСсурсов

И вуаля, ваша инфраструктура Π²Π½Π΅Π·Π°ΠΏΠ½ΠΎ Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π° вас, Π° Π½Π΅ Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚.

Π’Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½ΠΎ сущСствуСт Π΄Π²Π° ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° ΠΊ IaC, Π΄Π΅ΠΊΠ»Π°Ρ€Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ ΠΈΠ»ΠΈ ΠΈΠΌΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ, ΠΈ Π΄Π²Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄Π°, push ΠΈ pull. Π”Π΅ΠΊΠ»Π°Ρ€Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ описываСт ΠΊΠΎΠ½Π΅Ρ‡Π½ΡƒΡŽ Ρ†Π΅Π»ΡŒ ΠΈ опрСдСляСт Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΠΎΠ΅ состояниС Π²Π°ΡˆΠΈΡ… рСсурсов. Π­Ρ‚ΠΎΡ‚ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π½Π° вопрос ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, «МнС Π½ΡƒΠΆΠ½Ρ‹ Π΄Π²Π΅ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠ°ΡˆΠΈΠ½Ρ‹Β». Π˜ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π½Π° вопрос ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ Π½ΡƒΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ инфраструктуру для достиТСния ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ Ρ†Π΅Π»ΠΈ, ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ выдавая ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΊΠΎΠΌΠ°Π½Π΄. Ansible playbooks β€” ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΈΠΌΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π°. Π Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ push ΠΈ pull Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ сСрвСрам сообщаСтся информация ΠΎ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ. Π’ pull Ρ€Π΅ΠΆΠΈΠΌΠ΅ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ сСрвСр Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡƒΠ»ΠΈΡ‚ΡŒ свою ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ ΠΈΠ· мастСр-сСрвСра, Π° Π² push Ρ€Π΅ΠΆΠΈΠΌΠ΅ мастСр-сСрвСр сам Ρ€Π°ΡΠΏΡƒΡˆΠΈΠ²Π°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ ΠΏΠΎ Ρ†Π΅Π»Π΅Π²ΠΎΠΉ систСмС.

Π’ Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ послСдних дСсяти Π»Π΅Ρ‚ Π½Π°Π±ΠΎΡ€ инструмСнтов IaC постоянно ΡΠ²ΠΎΠ»ΡŽΡ†ΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π», ΠΈ, вСроятно, ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Π»Π°ΡΡŒ Π±Ρ‹ цСлая ΡΡ‚Π°Ρ‚ΡŒΡ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄Π°Ρ‚ΡŒ ΠΈΡΡ‡Π΅Ρ€ΠΏΡ‹Π²Π°ΡŽΡ‰ΠΈΠΉ ΠΎΠ±Π·ΠΎΡ€ всСх Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ этого ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° Π² Π΅Π΅ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ инфраструктурС. Однако ΠΌΡ‹ составили ΠΊΡ€Π°Ρ‚ΠΊΡƒΡŽ Ρ…Ρ€ΠΎΠ½ΠΎΠ»ΠΎΠ³ΠΈΡŽ основных инструмСнтов, пСрСчислСнных ΠΏΠΎ Π΄Π°Ρ‚Π΅ Ρ€Π΅Π»ΠΈΠ·Π°:

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ «Π˜Π½Ρ„раструктура ΠΊΠ°ΠΊ ΠΊΠΎΠ΄»?

инфраструктура ΠΊΠ°ΠΊ ΠΊΠΎΠ΄ инструмСнты. infrastructureascode 600x300 3. инфраструктура ΠΊΠ°ΠΊ ΠΊΠΎΠ΄ инструмСнты Ρ„ΠΎΡ‚ΠΎ. инфраструктура ΠΊΠ°ΠΊ ΠΊΠΎΠ΄ инструмСнты-infrastructureascode 600x300 3. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° инфраструктура ΠΊΠ°ΠΊ ΠΊΠΎΠ΄ инструмСнты. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° infrastructureascode 600x300 3. Infrastructure as Code β€” ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠΉ элСмСнт Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ эффСктивных ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Π½Ρ‹Ρ… сСтапов. Π’ΠΎ, ΠΊΠ°ΠΊ сСйчас DevOps-ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Ρ‹ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‚ со своСй инфраструктурой β€” это нСсомнСнно большой скачок Π²ΠΏΠ΅Ρ€Π΅Π΄. Но Ρ‚Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ спорныС ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρ‹ с ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΈ Π»ΡƒΡ‡ΡˆΠΈΠΌΠΈ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ°ΠΌΠΈ IaC Π΄ΠΎ сих ΠΏΠΎΡ€ Π΅ΡΡ‚ΡŒ. Π­Ρ‚Π° ΡΡ‚Π°Ρ‚ΡŒΡ стрСмится Ρ‡Π΅Ρ‚ΠΊΠΎ ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ IaC, Π΅Π³ΠΎ прСимущСства ΠΈ Π²Π°ΠΆΠ½Ρ‹Π΅ ограничСния.

Π˜Π½Ρ„Ρ€Π°ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° ΠΊΠ°ΠΊ ΠΊΠΎΠ΄ (IaC) β€” это ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ инфраструктурой (сСтями, Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ машинами, подсистСмами балансировки Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΈ Ρ‚ΠΎΠΏΠΎΠ»ΠΎΠ³ΠΈΠ΅ΠΉ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ) Π² ΠΎΠΏΠΈΡΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ с использованиСм Ρ‚ΠΎΠΉ ΠΆΠ΅ вСрсии, Ρ‡Ρ‚ΠΎ ΠΈ Π³Ρ€ΡƒΠΏΠΏΠ° DevOps, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠ°Ρ для исходного ΠΊΠΎΠ΄Π°. Подобно ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡƒ, согласно ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ исходный ΠΊΠΎΠ΄ создаСт ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ», модСль IaC ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΈ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΠ΅Ρ‚ ΠΎΠ΄Π½Ρƒ ΠΈ Ρ‚Ρƒ ΠΆΠ΅ срСду. IaC являСтся ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌ DevOps ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈΠΊΠΎΠΉ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² сочСтании с Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½ΠΎΠΉ поставкой.

IaC Ρ€Π΅ΡˆΠ°Π΅Ρ‚ Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹

Π˜Π½Ρ„Ρ€Π°ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ развития ΠΊΠΎΠ΄Π° для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с ΠΎΡ‚ΠΊΠ»ΠΎΠ½Π΅Π½ΠΈΠ΅ΠΌ срСды Π² ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€Π΅ выпуска. Π‘Π΅Π· IaC ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ настройки ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… срСд развСртывания. Π‘ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ каТдая срСда становится Β« _снСТинка_Β», Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠ΅ΠΉ, которая Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ воспроизвСдСна автоматичСски. ΠΠ΅ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½Π½ΠΎΡΡ‚ΡŒ ΠΌΠ΅ΠΆΠ΄Ρƒ срСдами ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°ΠΌ Π²ΠΎ врСмя развСртывания. АдминистрированиС ΠΈ обслуТиваниС инфраструктуры связано с выполняСмыми Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ процСссами, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ слоТно ΠΎΡ‚ΡΠ»Π΅Π΄ΠΈΡ‚ΡŒ ΠΈ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ приводят ΠΊ возникновСнию ошибок.

Π˜Π΄Π΅ΠΌΠΏΠΎΡ‚Π΅Π½Ρ‚Π½ΠΎΡΡ‚ΡŒ являСтся ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΎΠΌ инфраструктуры Π² Π²ΠΈΠ΄Π΅ ΠΊΠΎΠ΄Π°. Π˜Π΄Π΅ΠΌΠΏΠΎΡ‚Π΅Π½Ρ‚Π½ΠΎΡΡ‚ΡŒ β€” это свойство, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π° развСртывания всСгда Π·Π°Π΄Π°Π΅Ρ‚ Ρ†Π΅Π»Π΅Π²ΡƒΡŽ срСду Π² Ρ‚ΠΎΠΉ ΠΆΠ΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ нСзависимо ΠΎΡ‚ состояния запуска срСды. Π˜Π΄Π΅ΠΌΠΏΠΎΡ‚Π΅Π½Ρ‚Π½ΠΎΡΡ‚ΠΈ достигаСтся Π»ΠΈΠ±ΠΎ автоматичСской настройкой ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ Ρ†Π΅Π»Π΅Π²ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, Π»ΠΈΠ±ΠΎ ΠΏΡƒΡ‚Π΅ΠΌ удалСния ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ Ρ†Π΅Π»ΠΈ ΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ создания Π½ΠΎΠ²ΠΎΠΉ срСды.

БоотвСтствСнно, ΠΏΡ€ΠΈ использовании IaC ΠΊΠΎΠΌΠ°Π½Π΄Π° вносит измСнСния Π² описаниС срСды ΠΈ Π²Π΅Ρ€ΡΠΈΡŽ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ, которая ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ находится Π² Ρ…ΠΎΡ€ΠΎΡˆΠΎ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°Ρ… ΠΊΠΎΠ΄Π°, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ JSON. ΠšΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€ выпуска выполняСт модСль для настройки Ρ†Π΅Π»Π΅Π²Ρ‹Ρ… срСд. Если Π³Ρ€ΡƒΠΏΠΏΠ΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ внСсти измСнСния, ΠΎΠ½ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΡΡŽΡ‚ источник, Π° Π½Π΅ Ρ†Π΅Π»Π΅Π²ΠΎΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚.

IaC прСдоставляСт Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Π΅ прСимущСства

Π˜Π½Ρ„Ρ€Π°ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° ΠΊΠ°ΠΊ ΠΊΠΎΠ΄ позволяСт ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌ DevOps Ρ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ прилоТСния Π² Ρ€Π°Π±ΠΎΡ‡ΠΈΡ… срСдах Π½Π° Ρ€Π°Π½Π½ΠΈΡ… этапах Ρ†ΠΈΠΊΠ»Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. Π­Ρ‚ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°ΡŽΡ‚, Ρ‡Ρ‚ΠΎ нСсколько тСстовых срСд Π½Π°Π΄Π΅ΠΆΠ½ΠΎ ΠΈ ΠΏΠΎ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΡŽ. Π˜Π½Ρ„Ρ€Π°ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π°, прСдставлСнная Π² Π²ΠΈΠ΄Π΅ ΠΊΠΎΠ΄Π°, Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½Π° ΠΈ протСстирована для прСдотвращСния распространСнных ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ развСртывания. Π’ Ρ‚ΠΎ ΠΆΠ΅ врСмя ΠΎΠ±Π»Π°ΠΊΠΎ динамичСски ΠΏΠΎΠ΄Π³ΠΎΡ‚Π°Π²Π»ΠΈΠ²Π°Π΅Ρ‚ ΠΈ слСзами срСды Π½Π° основС ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΉ IaC.

ΠšΠΎΠΌΠ°Π½Π΄Ρ‹, Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‰ΠΈΠ΅ IaC, ΠΌΠΎΠ³ΡƒΡ‚ быстро Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½Ρ‹Π΅ срСды ΠΈ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ…. ΠšΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΈΠ·Π±Π΅Π³Π°ΡŽΡ‚ Ρ€ΡƒΡ‡Π½ΠΎΠΉ настройки срСд ΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‚ ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½Π½ΠΎΡΡ‚ΡŒ, прСдставляя Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΠΎΠ΅ состояниС своих срСд с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠ΄Π°. РазвСртывания инфраструктуры с IaC ΡΠ²Π»ΡΡŽΡ‚ΡΡ повторяСмыми ΠΈ ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‰Π°ΡŽΡ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Π²ΠΎ врСмя выполнСния, Π²Ρ‹Π·Π²Π°Π½Π½Ρ‹Π΅ ΠΎΡ‚ΠΊΠ»ΠΎΠ½Π΅Π½ΠΈΠ΅ΠΌ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΈΠ»ΠΈ отсутствиСм зависимостСй. ΠšΠΎΠΌΠ°Π½Π΄Ρ‹ DevOps ΠΌΠΎΠ³ΡƒΡ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ вмСстС с Π΅Π΄ΠΈΠ½Ρ‹ΠΌ Π½Π°Π±ΠΎΡ€ΠΎΠΌ практичСских Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΉ ΠΈ срСдств, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΡ… быстро ΠΈ Π½Π°Π΄Π΅ΠΆΠ½ΠΎ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ прилоТСния ΠΈ ΠΈΡ… ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰ΡƒΡŽ инфраструктуру.

ΠŸΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π΄Π΅ΠΊΠ»Π°Ρ€Π°Ρ‚ΠΈΠ²Π½Ρ‹Π΅ опрСдСлСния

ΠŸΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΊ IaC β€” использованиС Ρ„Π°ΠΉΠ»ΠΎΠ² Π΄Π΅ΠΊΠ»Π°Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ опрСдСлСния, Π³Π΄Π΅ это Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ. Π’ Ρ„Π°ΠΉΠ»Π΅ опрСдСлСния указываСтся, Ρ‡Ρ‚ΠΎ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π‘Ρ€Π΅Π΄Π°, Π° Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ. Π˜Π½Ρ‹ΠΌΠΈ словами, ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ ΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ сСрвСрного ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Π² качСствС трСбования, Π½ΠΎ Π½Π΅ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ процСсс установки ΠΈ настройки. Π­Ρ‚Π° абстракция обСспСчиваСт Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ Π² сСрСдинС, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ поставщик инфраструктуры. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, это позволяСт ΡΠΎΠΊΡ€Π°Ρ‚ΠΈΡ‚ΡŒ тСхничСскиС ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΡΡ‚Π²Π° ΠΏΠΎ ΠΎΠ±ΡΠ»ΡƒΠΆΠΈΠ²Π°Π½ΠΈΡŽ ΠΈΠΌΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, Ρ‚Π°ΠΊΠΎΠ³ΠΎ ΠΊΠ°ΠΊ сцСнарии развСртывания, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π½Π°Ρ‡ΠΈΡΠ»ΡΡ‚ΡŒΡΡ со Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ.

Для Π΄Π΅ΠΊΠ»Π°Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ IaC Π½Π΅ сущСствуСт Π΅Π΄ΠΈΠ½ΠΎΠ³ΠΎ стандартного синтаксиса. Π Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ Ρ€Π°Π·Π½Ρ‹Π΅ ΠΈ Π·Π°Ρ‡Π°ΡΡ‚ΡƒΡŽ нСсколько Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠ² Ρ„Π°ΠΉΠ»ΠΎΠ², Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ YAML, JSON ΠΈ XML. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΎ Π²Ρ‹Π±ΠΎΡ€Π΅ синтаксиса для описания IaC ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ сводится ΠΊ трСбованиям Ρ†Π΅Π»Π΅Π²ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹.

ИспользованиС IaC в Azure

Azure обСспСчиваСт ΡΠΎΠ±ΡΡ‚Π²Π΅Π½Π½ΡƒΡŽ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ IaC с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Azure Resource Manager. ΠšΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ Π΄Π΅ΠΊΠ»Π°Ρ€Π°Ρ‚ΠΈΠ²Π½Ρ‹Π΅ ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹, ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠ΅ инфраструктуру, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡƒΡŽ для развСртывания своих Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Infrastructure as code: ΠΎΠ±Π·ΠΎΡ€ опСнсорсных инструмСнтов

инфраструктура ΠΊΠ°ΠΊ ΠΊΠΎΠ΄ инструмСнты. image loader. инфраструктура ΠΊΠ°ΠΊ ΠΊΠΎΠ΄ инструмСнты Ρ„ΠΎΡ‚ΠΎ. инфраструктура ΠΊΠ°ΠΊ ΠΊΠΎΠ΄ инструмСнты-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° инфраструктура ΠΊΠ°ΠΊ ΠΊΠΎΠ΄ инструмСнты. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. Infrastructure as Code β€” ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠΉ элСмСнт Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ эффСктивных ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Π½Ρ‹Ρ… сСтапов. Π’ΠΎ, ΠΊΠ°ΠΊ сСйчас DevOps-ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Ρ‹ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‚ со своСй инфраструктурой β€” это нСсомнСнно большой скачок Π²ΠΏΠ΅Ρ€Π΅Π΄. Но Ρ‚Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ спорныС ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρ‹ с ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΈ Π»ΡƒΡ‡ΡˆΠΈΠΌΠΈ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ°ΠΌΠΈ IaC Π΄ΠΎ сих ΠΏΠΎΡ€ Π΅ΡΡ‚ΡŒ. Π­Ρ‚Π° ΡΡ‚Π°Ρ‚ΡŒΡ стрСмится Ρ‡Π΅Ρ‚ΠΊΠΎ ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ IaC, Π΅Π³ΠΎ прСимущСства ΠΈ Π²Π°ΠΆΠ½Ρ‹Π΅ ограничСния.

Π”Π°Π²Π°ΠΉΡ‚Π΅ взглянСм Π½Π° Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π²Π΅Ρ‰Π΅ΠΉ Π² индустрии высоких Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ. ВсС Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈ говорят, Ρ‡Ρ‚ΠΎ ΠΎ DevOps Π΄Π° ΠΎΠ± ΠΎΠ±Π»Π°ΠΊΠ΅, Π½ΠΎ Π·Π°Π΄Π°Ρ‡ΠΈ, связанныС с ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ рСсурсами сСрвСра ΠΈ инфраструктуры, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎ ΠΏΠΎΠΊΠ° Π½Π΅ входят Π² разряд Π»Π΅Π³ΠΊΠΈΡ… Π·Π°Π΄Π°Ρ‡. Если ΠΌΡ‹ Π²Ρ‹ΠΊΠ°Ρ‚Ρ‹Π²Π°Π΅ΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° ΠΎΠ΄ΠΈΠ½ сСрвСр, это, вСроятно, Π±ΡƒΠ΄Π΅Ρ‚ Π½Π΅ Ρ‚Π°ΠΊ ΡƒΠΆ слоТно. Но ΠΊΠ°ΠΊ Π±Ρ‹ Π²Ρ‹ ΡΠΏΡ€Π°Π²ΠΈΠ»ΠΈΡΡŒ с Π·Π°Π»ΠΈΠ²ΠΊΠΎΠΉ Π½ΠΎ дСсятки ΠΈΠ»ΠΈ сотни сСрвСров? МногиС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΡƒΡŽΡ‚ Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅ рСсурсов инфраструктуры Π² ΠΎΠ±Π»Π°ΠΊΠ΅ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ, Π° эта ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ° Π·Π°Ρ‡Π°ΡΡ‚ΡƒΡŽ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ Π²Π΅Ρ€ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ сбоя ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π½ΠΎΠ²ΠΎΠ³ΠΎ обновлСния ΠΈ создаСт слоТныС ситуации, ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π½ΡƒΠΆΠ½ΠΎ Π²ΠΎΡΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒΡΡ, Ссли Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΏΠΎΠΉΠ΄Π΅Ρ‚ Π½Π΅ Ρ‚Π°ΠΊ.

DevOps ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°Ρ‚ΡŒ нСсколько Ρ€Π°Π·Π½Ρ‹Ρ… Π²Π΅Ρ‰Π΅ΠΉ. DevOps нСсСт ΠΊΡƒΠ»ΡŒΡ‚ΡƒΡ€Π½ΡƒΡŽ Ρ‚Ρ€Π°Π½ΡΡ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ, которая Π½Π°Ρ†Π΅Π»Π΅Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€ чувствовал сСбя ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΌ ΠΈ Π³ΠΈΠ±ΠΊΠΈΠΌ. DevOps Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠ·Π½Π°Ρ‡Π°Ρ‚ΡŒ достиТСниС высокой частоты Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠΉ, ΠΏΡ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ сохраняСтся ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ. Для обСспСчСния Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π²Π°ΠΆΠ½ΠΎΠΉ Ρ‡Π°ΡΡ‚ΡŒΡŽ DevOps, вСроятно, являСтся созданиС ΠΏΠΎΡ‚ΠΎΠΊΠ° цСнности (value stream). Π§Ρ‚ΠΎΠ±Ρ‹ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ эту Π·Π°Π΄Π°Ρ‡Ρƒ, ΠΌΠ½ΠΎΠ³ΠΈΠ΅ люди часто Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΡŽΡ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ использования ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€Π°, Ρ‚Π°ΠΊΠΎΠ³ΠΎ ΠΊΠ°ΠΊ Jenkins ΠΈΠ»ΠΈ GitHub Actions. Π’ Ρ‚ΠΎ ΠΆΠ΅ врСмя Π² соврСмСнной экосистСмС DevOps Π½Π°Π±Π»ΡŽΠ΄Π°Π΅Ρ‚ΡΡ быстрый рост ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½ΠΎΠ²ΠΎΠΉ области ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ Infrastructure as Code (инфраструктура ΠΊΠ°ΠΊ ΠΊΠΎΠ΄), Ρ‚Π°ΠΊ ΠΆΠ΅ извСстной Π² своСй ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΎΠΉ Ρ„ΠΎΡ€ΠΌΠ΅ β€” IAC.

IAC, ΠΈΠ»ΠΈ Infrastructure as Code, прСдставляСт собой процСсс ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠΈ (provisioning) ΠΈ управлСния ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½Ρ‹ΠΌΠΈ Ρ†Π΅Π½Ρ‚Ρ€Π°ΠΌΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ… с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ°ΡˆΠΈΠ½ΠΎΡ‡ΠΈΡ‚Π°Π΅ΠΌΡ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΉ, Π° Π½Π΅ физичСской ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ оборудования ΠΈΠ»ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Ρ… инструмСнтов ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ. Π₯отя ΠΎΠ±Π»Π°ΡΡ‚ΡŒ IAC являСтся ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½ΠΎΠ²ΠΎΠΉ ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€ΠΎΠΌ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ DevOps, ΡƒΠΆΠ΅ сущСствуСт достаточно ΠΌΠ½ΠΎΠ³ΠΎ IAC-инструмСнтов, ΠΈ Π½ΠΎΠ²Ρ‹Π΅ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡŽΡ‚ Ρ€Π°Π·Π²ΠΈΠ²Π°Ρ‚ΡŒΡΡ Π΄Π°ΠΆΠ΅ Π² этот самый ΠΌΠΎΠΌΠ΅Π½Ρ‚. И я Ρ€Π°Π΄ ΡΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ Π²Π°ΠΌ, Ρ‡Ρ‚ΠΎ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠΈΠ· Π½ΠΈΡ… β€” ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹ с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ. Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ я Ρ…ΠΎΡ‡Ρƒ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π²Π°ΠΌ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ· Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ извСстных ΠΈ ΡˆΠΈΡ€ΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… IAC-инструмСнтов, распространяСмых ΠΏΠΎ опСнсорсным лицСнзиям.

ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΌΡ‹ углубимся Π² эту ΡΡ‚Π°Ρ‚ΡŒΡŽ, Π²ΠΎΡ‚ нСсколько Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π½Π°ΠΌ ΠΏΡ€ΠΈΠ³ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ.

Agent vs Agentless

(с Π°Π³Π΅Π½Ρ‚Π°ΠΌΠΈ/Π±Π΅Π· Π°Π³Π΅Π½Ρ‚ΠΎΠ²)

IAC-инструмСнт ΠΌΠΎΠΆΠ΅Ρ‚ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒ запуска Π°Π³Π΅Π½Ρ‚Π° Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ сСрвСрС, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ. Если Π½Π΅Ρ‚, Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠΉ инструмСнт называСтся Β«agentlessΒ».

Mutable vs Immutable

НСкоторыС инструмСнты, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Terraform, Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‚ΡΡ Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ ΡƒΠΆΠ΅ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½Π½ΠΎΠΉ (provisioned) инфраструктуры, Π° Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°ΡŽΡ‚ Π½ΠΎΠ²Ρ‹ΠΉ сСрвСр, Ρ‡Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ ΡΠ»Π΅Π΄ΡƒΡŽΡ‚ ΠΏΠ°Ρ€Π°Π΄ΠΈΠ³ΠΌΠ΅ нСизмСняСмой (immutable) инфраструктуры. Π”Ρ€ΡƒΠ³ΠΈΠ΅ инструмСнты, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Ansible, Chef, SaltStack ΠΈ Puppet, ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ рСсурсы, Π° это ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ эти инструмСнты ΡΠ»Π΅Π΄ΡƒΡŽΡ‚ ΠΏΠ°Ρ€Π°Π΄ΠΈΠ³ΠΌΠ΅ измСняСмой (mutable) инфраструктуры.

Procedural vs Declarative

ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π½Ρ‹Π΅ языки, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Ansible ΠΈ Chef, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΎΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠ΄Π° поэтапноС Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅, Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ Π΄Π΅ΠΊΠ»Π°Ρ€Π°Ρ‚ΠΈΠ²Π½Ρ‹Π΅ языки, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Terraform, SaltStack ΠΈ Puppet, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ просто ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΆΠ΅Π»Π°Π΅ΠΌΠΎΠ΅ состояниС.

Master vs Masterless

(с мастСром/Π±Π΅Π· мастСра)

Π―Π·Ρ‹ΠΊΠΈ, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Chef, Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ запускали ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π³Π»Π°Π²Π½Ρ‹ΠΉ сСрвСр (master), Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈ постоянныС состояния. Π”Ρ€ΡƒΠ³ΠΈΠ΅ языки, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Ansible ΠΈ Terraform, Π½Π΅ Π½ΡƒΠΆΠ΄Π°ΡŽΡ‚ΡΡ Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ мастСра.

Configuration vs Provisioning

Ansible, Chef, SaltStack ΠΈ Puppet извСстны ΠΊΠ°ΠΊ инструмСнты управлСния ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠ΅ΠΉ, Ρ‡Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΈΡ… основная Ρ†Π΅Π»ΡŒ β€” Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ рСсурсы. Π”Ρ€ΡƒΠ³ΠΈΠ΅ инструмСнты, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Terraform ΠΈ Pulumi, ΡΠ²Π»ΡΡŽΡ‚ΡΡ инструмСнтами обСспСчСния (provisioning), Π° это ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΈΡ… основная Ρ†Π΅Π»ΡŒ β€” ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ рСсурсы. Однако ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ инструмСнты Ρ€Π°Π·Π²ΠΈΠ²Π°ΡŽΡ‚ΡΡ, ΠΈΡ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π» ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°Ρ‡Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΡΠ΅ΠΊΠ°Ρ‚ΡŒΡΡ.

А Π΅Ρ‰Π΅, Π²ΠΎΡ‚ Ρ‚Π°Π±Π»ΠΈΡ†Π°, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ IAC-инструмСнты с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ, ΠΎ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΡ‹ собираСмся ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠΌ лицСнзиям с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ ΠΎΠ½ΠΈ ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Ρ‚ ΠΈ Π³Π΄Π΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΉΡ‚ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΏΠΎ Π½ΠΈΠΌ.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Infrastructure as Code: ΠΏΠ΅Ρ€Π²ΠΎΠ΅ знакомство

Π£ нас Π² ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ ΠΈΠ΄Ρ‘Ρ‚ процСсс ΠΎΠ½Π±ΠΎΡ€Π΄ΠΈΠ½Π³Π° SRE-ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹. Π― Π·Π°ΡˆΡ‘Π» Π²ΠΎ всю эту ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ со стороны Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. Π’ процСссС Ρƒ мСня появились мысли ΠΈ инсайты, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ я Ρ…ΠΎΡ‡Ρƒ ΠΏΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌΠΈ. Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅-Ρ€Π°Π·ΠΌΡ‹ΡˆΠ»Π΅Π½ΠΈΠΈ я Π³ΠΎΠ²ΠΎΡ€ΡŽ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ происходит, ΠΊΠ°ΠΊ происходит, ΠΈ ΠΊΠ°ΠΊ всСм дальшС с этим ΠΆΠΈΡ‚ΡŒ.

инфраструктура ΠΊΠ°ΠΊ ΠΊΠΎΠ΄ инструмСнты. image loader. инфраструктура ΠΊΠ°ΠΊ ΠΊΠΎΠ΄ инструмСнты Ρ„ΠΎΡ‚ΠΎ. инфраструктура ΠΊΠ°ΠΊ ΠΊΠΎΠ΄ инструмСнты-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° инфраструктура ΠΊΠ°ΠΊ ΠΊΠΎΠ΄ инструмСнты. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. Infrastructure as Code β€” ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠΉ элСмСнт Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ эффСктивных ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Π½Ρ‹Ρ… сСтапов. Π’ΠΎ, ΠΊΠ°ΠΊ сСйчас DevOps-ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Ρ‹ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‚ со своСй инфраструктурой β€” это нСсомнСнно большой скачок Π²ΠΏΠ΅Ρ€Π΅Π΄. Но Ρ‚Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ спорныС ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρ‹ с ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΈ Π»ΡƒΡ‡ΡˆΠΈΠΌΠΈ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ°ΠΌΠΈ IaC Π΄ΠΎ сих ΠΏΠΎΡ€ Π΅ΡΡ‚ΡŒ. Π­Ρ‚Π° ΡΡ‚Π°Ρ‚ΡŒΡ стрСмится Ρ‡Π΅Ρ‚ΠΊΠΎ ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ IaC, Π΅Π³ΠΎ прСимущСства ΠΈ Π²Π°ΠΆΠ½Ρ‹Π΅ ограничСния.

ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΠ΅ сСрии статСй, написанных ΠΏΠΎ ΠΌΠΎΡ‚ΠΈΠ²Π°ΠΌ выступлСний Π½Π° нашСм Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ΠΌ мСроприятии DevForum:

ΠœΡ‹ Ρ€Π΅ΡˆΠΈΠ»ΠΈ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ SRE, Π²ΠΎΠΏΠ»ΠΎΡ‚ΠΈΠ² ΠΈΠ΄Π΅ΠΈ google sre. Набрали программистов ΠΈΠ· своих ΠΆΠ΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΠ»ΠΈ ΠΈΡ… ΠΎΠ±ΡƒΡ‡Π°Ρ‚ΡŒΡΡ Π½Π° нСсколько мСсяцСв.

ΠŸΠ΅Ρ€Π΅Π΄ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ стояли ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΡƒΡ‡Π΅Π±Π½Ρ‹Π΅ Π·Π°Π΄Π°Ρ‡ΠΈ:

Π’Π²ΠΎΠ΄ΠΈΠΌ понятиС Infrastructure as code

Π’ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΌΠΈΡ€Π° (классичСском администрировании) знания ΠΎΠ± инфраструктурС находятся Π² Π΄Π²ΡƒΡ… мСстах:

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ инфраструктура ΠΊΠ°ΠΊ ΠΊΠΎΠ΄ (Incfastructure as Code – IaC) – это описаниС всСй ΠΈΠΌΠ΅ΡŽΡ‰Π΅ΠΉΡΡ инфраструктуры Π² Π²ΠΈΠ΄Π΅ ΠΊΠΎΠ΄Π°, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΡΠΎΠΏΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ срСдства ΠΏΠΎ Ρ€Π°Π±ΠΎΡ‚Π΅ с Π½ΠΈΠΌ ΠΈ Π²ΠΎΠΏΠ»ΠΎΡ‰Π΅Π½ΠΈΡŽ ΠΈΠ· Π½Π΅Π³ΠΎ ΠΆΠ΅ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΉ инфраструктуры.

Π˜Ρ‚Π°ΠΊ, ΠΌΡ‹ Ρ€Π΅ΡˆΠΈΠ»ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π½ΠΎΠ²Ρ‹Ρ… SRE-ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€ΠΎΠ², Π½ΠΎ ΠΎΡ‚ΠΊΡƒΠ΄Π° ΠΈΡ… Π±Ρ€Π°Ρ‚ΡŒ? КниТка с ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΎΡ‚Π²Π΅Ρ‚Π°ΠΌΠΈ (Google SRE Book) Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ Π½Π°ΠΌ: ΠΈΠ· Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ². Π’Π΅Π΄ΡŒ ΠΎΠ½ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ с ΠΊΠΎΠ΄ΠΎΠΌ, Π° Π²Ρ‹ достигаСтС идСального состояния.

ΠœΡ‹ ΠΌΠ½ΠΎΠ³ΠΎ ΠΈ Π΄ΠΎΠ»Π³ΠΎ искали ΠΈΡ… Π½Π° ΠΊΠ°Π΄Ρ€ΠΎΠ²ΠΎΠΌ Ρ€Ρ‹Π½ΠΊΠ΅ Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Π°ΠΌΠΈ нашСй ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ. Но Π²Ρ‹Π½ΡƒΠΆΠ΄Π΅Π½Ρ‹ ΠΏΡ€ΠΈΠ·Π½Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π½Π΅ нашли Π½ΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄ наши запросы. ΠŸΡ€ΠΈΡˆΠ»ΠΎΡΡŒ ΠΏΠΎΡˆΠ΅Ρ€ΡΡ‚ΠΈΡ‚ΡŒ срСди своих.

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Infrastructure as code

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π΄Π°Π²Π°ΠΉΡ‚Π΅ посмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ инфраструктура ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π·Π°ΡˆΠΈΡ‚Π° Π² ΠΊΠΎΠ΄. Код Ρ…ΠΎΡ€ΠΎΡˆΠΎ написан, качСствСнно, с ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ ΠΈ отступами.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π° ΠΈΠ· Terraforma.

инфраструктура ΠΊΠ°ΠΊ ΠΊΠΎΠ΄ инструмСнты. image loader. инфраструктура ΠΊΠ°ΠΊ ΠΊΠΎΠ΄ инструмСнты Ρ„ΠΎΡ‚ΠΎ. инфраструктура ΠΊΠ°ΠΊ ΠΊΠΎΠ΄ инструмСнты-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° инфраструктура ΠΊΠ°ΠΊ ΠΊΠΎΠ΄ инструмСнты. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. Infrastructure as Code β€” ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠΉ элСмСнт Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ эффСктивных ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Π½Ρ‹Ρ… сСтапов. Π’ΠΎ, ΠΊΠ°ΠΊ сСйчас DevOps-ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Ρ‹ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‚ со своСй инфраструктурой β€” это нСсомнСнно большой скачок Π²ΠΏΠ΅Ρ€Π΅Π΄. Но Ρ‚Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ спорныС ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρ‹ с ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΈ Π»ΡƒΡ‡ΡˆΠΈΠΌΠΈ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ°ΠΌΠΈ IaC Π΄ΠΎ сих ΠΏΠΎΡ€ Π΅ΡΡ‚ΡŒ. Π­Ρ‚Π° ΡΡ‚Π°Ρ‚ΡŒΡ стрСмится Ρ‡Π΅Ρ‚ΠΊΠΎ ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ IaC, Π΅Π³ΠΎ прСимущСства ΠΈ Π²Π°ΠΆΠ½Ρ‹Π΅ ограничСния.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π° ΠΈΠ· Ansible.

инфраструктура ΠΊΠ°ΠΊ ΠΊΠΎΠ΄ инструмСнты. image loader. инфраструктура ΠΊΠ°ΠΊ ΠΊΠΎΠ΄ инструмСнты Ρ„ΠΎΡ‚ΠΎ. инфраструктура ΠΊΠ°ΠΊ ΠΊΠΎΠ΄ инструмСнты-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° инфраструктура ΠΊΠ°ΠΊ ΠΊΠΎΠ΄ инструмСнты. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. Infrastructure as Code β€” ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠΉ элСмСнт Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ эффСктивных ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Π½Ρ‹Ρ… сСтапов. Π’ΠΎ, ΠΊΠ°ΠΊ сСйчас DevOps-ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Ρ‹ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‚ со своСй инфраструктурой β€” это нСсомнСнно большой скачок Π²ΠΏΠ΅Ρ€Π΅Π΄. Но Ρ‚Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ спорныС ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρ‹ с ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΈ Π»ΡƒΡ‡ΡˆΠΈΠΌΠΈ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ°ΠΌΠΈ IaC Π΄ΠΎ сих ΠΏΠΎΡ€ Π΅ΡΡ‚ΡŒ. Π­Ρ‚Π° ΡΡ‚Π°Ρ‚ΡŒΡ стрСмится Ρ‡Π΅Ρ‚ΠΊΠΎ ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ IaC, Π΅Π³ΠΎ прСимущСства ΠΈ Π²Π°ΠΆΠ½Ρ‹Π΅ ограничСния.

Господа, Π½ΠΎ Ссли Π±Ρ‹ всё Π±Ρ‹Π»ΠΎ Ρ‚Π°ΠΊ просто! ΠœΡ‹ ΠΆΠ΅ с Π²Π°ΠΌΠΈ Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ ΠΌΠΈΡ€Π΅, Π° ΠΎΠ½ всСгда Π³ΠΎΡ‚ΠΎΠ² ΡƒΠ΄ΠΈΠ²ΠΈΡ‚ΡŒ вас, прСподнСсти ΡΡŽΡ€ΠΏΡ€ΠΈΠ·Ρ‹, ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹. НС обходится Π±Π΅Π· Π½ΠΈΡ… ΠΈ здСсь.

1. ΠŸΠ΅Ρ€Π²Π°Ρ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ случаСв IaC – это ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ dsl.

А DSL, Π² свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, – это описаниС структуры. Π’ΠΎΡ‡Π½Π΅Π΅ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Ρƒ тСбя Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ: Json, Yaml, ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΎΡ‚ ΠΊΠ°ΠΊΠΈΡ…-Ρ‚ΠΎ ΠΊΡ€ΡƒΠΏΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΈΠ΄ΡƒΠΌΠ°Π»ΠΈ свой dsl (Π² Ρ‚Π΅Ρ€Ρ€Π°Ρ„ΠΎΡ€ΠΌΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ HCL).

Π‘Π΅Π΄Π° Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π² Π½Ρ‘ΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ Π»Π΅Π³ΠΊΠΎ Π½Π΅ Π±Ρ‹Ρ‚ΡŒ Ρ‚Π°ΠΊΠΈΡ… ΠΏΡ€ΠΈΠ²Ρ‹Ρ‡Π½Ρ‹Ρ… Π½Π°ΠΌ Π²Π΅Ρ‰Π΅ΠΉ ΠΊΠ°ΠΊ:

Π’ΠΏΠΎΠ»Π½Π΅ Ρ€Π΅Π°Π»ΡŒΠ½Π°Ρ ситуация, ΠΊΠΎΠ³Π΄Π° баш с ΠΏΠΈΡ‚ΠΎΠ½ΠΎΠΌ запускаСт ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ процСсс, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ подсовываСтся Json. Π’Ρ‹ Π΅Π³ΠΎ Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚Π΅, ΠΏΠΎΡ‚ΠΎΠΌ Π΅Ρ‰Π΅ ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ Π²Ρ‹Π΄Π°Π΅Ρ‚ Π΅Ρ‰Ρ‘ 30 Ρ„Π°ΠΉΠ»ΠΎΠ². Для всСго этого ΠΏΠΎΡΡ‚ΡƒΠΏΠ°ΡŽΡ‚ Π²Ρ…ΠΎΠ΄Π½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΈΠ· Azure Key Vault, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ стянуты ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠΌ ΠΊ drone.io, написанным Π½Π° Go, ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ эти проходят Ρ‡Π΅Ρ€Π΅Π· yaml, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ получился Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ ΠΈΠ· ΡˆΠ°Π±Π»ΠΎΠ½ΠΈΠ·Π°Ρ‚ΠΎΡ€Π° jsonnet. Π”ΠΎΠ²ΠΎΠ»ΡŒΠ½ΠΎ слоТно ΠΈΠΌΠ΅Ρ‚ΡŒ строго Ρ…ΠΎΡ€ΠΎΡˆΠΎ описанный ΠΊΠΎΠ΄, ΠΊΠΎΠ³Π΄Π° Ρƒ вас Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ разнообразная срСда.

Врадиционная Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π² Ρ€Π°ΠΌΠΊΠ°Ρ… ΠΎΠ΄Π½ΠΎΠΉ Π·Π°Π΄Π°Ρ‡ΠΈ ΠΈΠ΄Π΅Ρ‚ с ΠΎΠ΄Π½ΠΈΠΌ языком. Π—Π΄Π΅ΡΡŒ ΠΆΠ΅ ΠΌΡ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅ΠΌ с большим количСством языков.

3. Π’Ρ€Π΅Ρ‚ΡŒΡ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° – это Ρ‚ΡƒΠ»ΠΈΠ½Π³. ΠœΡ‹ ΠΏΡ€ΠΈΠ²Ρ‹ΠΊΠ»ΠΈ ΠΊ ΠΊΡ€ΡƒΡ‚Ρ‹ΠΌ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π°ΠΌ (Ms Visual Studio, Jetbrains Rider), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ всС Π΄Π΅Π»Π°ΡŽΡ‚ Π·Π° нас. И Π΄Π°ΠΆΠ΅, Ссли ΠΌΡ‹ Π·Π°Ρ‚ΡƒΠΏΠΈΠ»ΠΈ, ΠΎΠ½ΠΈ скаТут, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π½Π΅ ΠΏΡ€Π°Π²Ρ‹. ΠšΠ°ΠΆΠ΅Ρ‚ΡΡ, Ρ‡Ρ‚ΠΎ это Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ ΠΈ СстСствСнно.

Но Π³Π΄Π΅-Ρ‚ΠΎ Ρ€ΡΠ΄Ρ‹ΡˆΠΊΠΎΠΌ Π΅ΡΡ‚ΡŒ VSCode, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π΅ΡΡ‚ΡŒ ΠΊΠ°ΠΊΠΈΠ΅-Ρ‚ΠΎ ΠΏΠ»Π°Π³ΠΈΠ½Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΊΠ°ΠΊ-Ρ‚ΠΎ ставятся, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΈΠ»ΠΈ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ. Π’Ρ‹ΡˆΠ»ΠΈ Π½ΠΎΠ²Ρ‹Π΅ вСрсии, ΠΈ ΠΈΡ… Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠ°Π»ΠΈ. Π‘Π°Π½Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ ΠΊ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ (Π΄Π°ΠΆΠ΅ Ссли ΠΎΠ½Π° Π΅ΡΡ‚ΡŒ) становится слоТной ΠΈ Π½Π΅Ρ‚Ρ€ΠΈΠ²ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΠΉ. ΠŸΡ€ΠΎΡΡ‚ΠΎΠΉ Ρ€Π΅Π½Π΅ΠΉΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ – это рСплСйс Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ ΠΈΠ· дСсятка Ρ„Π°ΠΉΠ»ΠΎΠ². ΠŸΠΎΠ²Π΅Π·Ρ‘Ρ‚, Ссли ΠΎΠ½ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π½Π°Π΄ΠΎ зарСплСйсит. Π•ΡΡ‚ΡŒ, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, ΠΊΠΎΠ΅-Π³Π΄Π΅ подсвСтка, Π΅ΡΡ‚ΡŒ Π°Π²Ρ‚ΠΎΠΊΠΎΠΌΠΏΠ»ΠΈΡˆΠ½, Π³Π΄Π΅-Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠ½Π³ (ΠΏΡ€Π°Π²Π΄Π° Ρƒ мСня Π² Ρ‚Π΅Ρ€Ρ€Π°Ρ„ΠΎΡ€ΠΌΠ΅ Π½Π° Π²ΠΈΠ½Π΄Π΅ Π½Π΅ завСлся).

На ΠΌΠΎΠΌΠ΅Π½Ρ‚ написания ΡΡ‚Π°Ρ‚ΡŒΠΈ vscode-terraform plugin Π΅Ρ‰Π΅ Π½Π΅ выпустили для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ вСрсии 0.12, хотя ΠΎΠ½Π° Π·Π°Ρ€Π΅Π»ΠΈΠΆΠ΅Π½Π° ΡƒΠΆΠ΅ ΠΊΠ°ΠΊ 3 мСсяца.

ΠŸΡ€ΠΈΡˆΠ»ΠΎ врСмя Π·Π°Π±Ρ‹Ρ‚ΡŒ ΠΎ.

Π‘Π°ΠΌΠΎΠ΅ ΡΡ‚Ρ€Π°ΡˆΠ½ΠΎΠ΅, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π²Ρ‹Π½ΡƒΠΆΠ΄Π΅Π½Ρ‹ Π΄ΡƒΠΌΠ°Ρ‚ΡŒ Π½Π΅ ΠΎ Ρ‚ΠΎΠΌ ΠΊΠ°ΠΊ ΡΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Ρ€Π°Π·Π»ΠΎΠΆΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ»ΠΈΠΊΠΈ ΠΏΠΎ ΠΏΠ°ΠΏΠΎΡ‡ΠΊΠ°ΠΌ, Π΄Π΅ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹ΠΌ, Ρ‡ΠΈΡ‚Π°Π΅ΠΌΡ‹ΠΌ ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅ ΠΊΠΎΠ΄, Π° ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ Π±Ρ‹ ΠΌΠ½Π΅ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ эту ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ я Π΅Ρ‘ ΠΊΠ°ΠΊ-Ρ‚ΠΎ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ написал.

Как Π½ΠΎΠ²ΠΈΡ‡ΠΎΠΊ Π²Ρ‹ ΠΏΡ‹Ρ‚Π°Π΅Ρ‚Π΅ΡΡŒ ΠΏΠΎΠ·Π½Π°Ρ‚ΡŒ Ρ‚Π΅Ρ€Ρ€Π°Ρ„ΠΎΡ€ΠΌ, Π° IDE Π²Π°ΠΌ Π² этом нисколько Π½Π΅ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚. Когда Π΅ΡΡ‚ΡŒ докумСнтация – зашли, посмотрСли. Но Ссли Π±Ρ‹ Π²Ρ‹ въСзТали Π² Π½ΠΎΠ²Ρ‹ΠΉ язык программирования, Ρ‚ΠΎ IDE подсказала Π±Ρ‹, Ρ‡Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Ρ‚Π°ΠΊΠΎΠΉ Ρ‚ΠΈΠΏ, Π° Ρ‚Π°ΠΊΠΎΠ³ΠΎ Π½Π΅Ρ‚. По ΠΊΡ€Π°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅Ρ€Π΅, Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ int ΠΈΠ»ΠΈ string. Π­Ρ‚ΠΎ часто Π±Ρ‹Π²Π°Π΅Ρ‚ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΌ.

А ΠΊΠ°ΠΊ ΠΆΠ΅ тСсты?

Π’Ρ‹ спроситС: «Как ΠΆΠ΅ тСсты, господа программисты?Β» Π‘Π΅Ρ€ΡŒΡ‘Π·Π½Ρ‹Π΅ рСбята Ρ‚Π΅ΡΡ‚ΠΈΡ€ΡƒΡŽΡ‚ всё Π½Π° ΠΏΡ€ΠΎΠ΄Π΅, ΠΈ это ТСстко. Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΡŽΠ½ΠΈΡ‚Π΅ΡΡ‚Π° для Ρ‚Π΅Ρ€Ρ€Π°Ρ„ΠΎΡ€ΠΌ-модуля с сайта Microsoft.

инфраструктура ΠΊΠ°ΠΊ ΠΊΠΎΠ΄ инструмСнты. image loader. инфраструктура ΠΊΠ°ΠΊ ΠΊΠΎΠ΄ инструмСнты Ρ„ΠΎΡ‚ΠΎ. инфраструктура ΠΊΠ°ΠΊ ΠΊΠΎΠ΄ инструмСнты-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° инфраструктура ΠΊΠ°ΠΊ ΠΊΠΎΠ΄ инструмСнты. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. Infrastructure as Code β€” ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠΉ элСмСнт Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ эффСктивных ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Π½Ρ‹Ρ… сСтапов. Π’ΠΎ, ΠΊΠ°ΠΊ сСйчас DevOps-ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Ρ‹ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‚ со своСй инфраструктурой β€” это нСсомнСнно большой скачок Π²ΠΏΠ΅Ρ€Π΅Π΄. Но Ρ‚Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ спорныС ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρ‹ с ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΈ Π»ΡƒΡ‡ΡˆΠΈΠΌΠΈ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ°ΠΌΠΈ IaC Π΄ΠΎ сих ΠΏΠΎΡ€ Π΅ΡΡ‚ΡŒ. Π­Ρ‚Π° ΡΡ‚Π°Ρ‚ΡŒΡ стрСмится Ρ‡Π΅Ρ‚ΠΊΠΎ ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ IaC, Π΅Π³ΠΎ прСимущСства ΠΈ Π²Π°ΠΆΠ½Ρ‹Π΅ ограничСния.

Π£ Π½ΠΈΡ… Ρ…ΠΎΡ€ΠΎΡˆΠ°Ρ докумСнтация. Microsoft ΠΌΠ½Π΅ всСгда Π½Ρ€Π°Π²ΠΈΠ»ΠΈΡΡŒ своим ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΎΠΌ ΠΊ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ ΠΈ ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΡŽ. Но Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ дядюшкой Π‘ΠΎΠ±ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ½ΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ здСсь Π½Π΅ ΠΈΠ΄Π΅Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Π²Π°Π»ΠΈΠ΄Π°Ρ†ΠΈΡŽ, Π²Ρ‹Π½Π΅ΡΠ΅Π½Π½ΡƒΡŽ Π²ΠΏΡ€Π°Π²ΠΎ.

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° unit-тСста Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ с Π²Π°ΠΌΠΈ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΡΡ‚ΡŒ JsonΠ° Π½Π° Π²Ρ‹Ρ…ΠΎΠ΄Π΅. Π― ΠΊΠΈΠ½ΡƒΠ» 5 ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ², ΠΌΠ½Π΅ Π²Ρ‹Π΄Π°Π»Π°ΡΡŒ портянка Json Π½Π° 2000 строк. Π― ΠΌΠΎΠ³Ρƒ ΠΏΡ€ΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ здСсь происходит, validate test result…

Π‘Π»ΠΎΠΆΠ½ΠΎ Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Json Π² Go. А Π½Π°Π΄ΠΎ ΠΏΠΈΡΠ°Ρ‚ΡŒ Π² Go, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Ρ‚Π΅Ρ€Ρ€Π°Ρ„ΠΎΡ€ΠΌ Π½Π° Go – это Ρ…ΠΎΡ€ΠΎΡˆΠ°Ρ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ° Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Ρ‚Π΅ΡΡ‚ΠΈΡ€ΡƒΠ΅ΡˆΡŒ Π² Ρ‚ΠΎΠΌ языкС, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Ρ‚Ρ‹ пишСшь. Π‘Π°ΠΌΠ° организация ΠΊΠΎΠ΄Π° ΠΎΡ‡Π΅Π½ΡŒ слабая. ΠŸΡ€ΠΈ этом – это Π»ΡƒΡ‡ΡˆΠ°Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° для тСстирования.

Π‘Π°ΠΌ Microsoft ΠΏΠΈΡˆΠ΅Ρ‚ свои ΠΌΠΎΠ΄ΡƒΠ»ΠΈ, тСстируя ΠΈΡ… Ρ‚Π°ΠΊΠΈΠΌ способом. ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, это Open Source. Всё, ΠΎ Ρ‡Π΅ΠΌ я Π³ΠΎΠ²ΠΎΡ€ΡŽ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΈΠΉΡ‚ΠΈ ΠΈ ΠΏΠΎΡ‡ΠΈΠ½ΠΈΡ‚ΡŒ. Π― ΠΌΠΎΠ³Ρƒ ΡΠ΅ΡΡ‚ΡŒ ΠΈ Π·Π° Π½Π΅Π΄Π΅Π»ΡŒΠΊΡƒ всё ΠΏΠΎΡ‡ΠΈΠ½ΠΈΡ‚ΡŒ, Π·Π°ΠΎΠΏΠ΅Π½ΡΠΎΡ€ΡΠΈΡ‚ΡŒ ΠΏΠ»Π°Π³ΠΈΠ½Ρ‹ VS-ΠΊΠΎΠ΄Π°, Ρ‚Π΅Ρ€Ρ€Π°Ρ„ΠΎΡ€ΠΌ, ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΠ»Π°Π³ΠΈΠ½ для Ρ€Π°ΠΉΠ΄Π΅Ρ€Π°. ΠœΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ, Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΠ°Ρ€ΠΎΡ‡ΠΊΡƒ Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€ΠΎΠ², ΠΏΡ€ΠΈΠΊΡ€ΡƒΡ‚ΠΈΡ‚ΡŒ Π»ΠΈΠ½Ρ‚Π΅Ρ€Ρ‹, Π·Π°ΠΊΠΎΠ½Ρ‚Ρ€ΠΈΠ±ΡŒΡŽΡ‚ΠΈΡ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ для тСстирования. Всё ΠΌΠΎΠ³Ρƒ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ. Но я Π½Π΅ этим Π΄ΠΎΠ»ΠΆΠ΅Π½ Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒΡΡ.

Π›ΡƒΡ‡ΡˆΠΈΠ΅ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ Infrastructure as code

Π•Π΄Π΅ΠΌ дальшС. Если Π² IaC Π½Π΅Ρ‚ тСстов, ΠΏΠ»ΠΎΡ…ΠΎ с IDE ΠΈ Ρ‚ΡƒΠ»ΠΈΠ½Π³ΠΎΠΌ, Ρ‚ΠΎ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ хотя Π±Ρ‹ Π»ΡƒΡ‡ΡˆΠΈΠ΅ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ. Π― просто ΠΏΠΎΡˆΡ‘Π» Π² Π³ΡƒΠ³Π»-Π°Π½Π°Π»ΠΈΡ‚ΠΈΠΊΡƒ ΠΈ ΠΏΡ€ΠΎΠ²Ρ‘Π» сравнСниС Π΄Π²ΡƒΡ… поисковых запросов: Terraform best practices ΠΈ c# best practices.

инфраструктура ΠΊΠ°ΠΊ ΠΊΠΎΠ΄ инструмСнты. image loader. инфраструктура ΠΊΠ°ΠΊ ΠΊΠΎΠ΄ инструмСнты Ρ„ΠΎΡ‚ΠΎ. инфраструктура ΠΊΠ°ΠΊ ΠΊΠΎΠ΄ инструмСнты-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° инфраструктура ΠΊΠ°ΠΊ ΠΊΠΎΠ΄ инструмСнты. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. Infrastructure as Code β€” ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠΉ элСмСнт Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ эффСктивных ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Π½Ρ‹Ρ… сСтапов. Π’ΠΎ, ΠΊΠ°ΠΊ сСйчас DevOps-ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Ρ‹ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‚ со своСй инфраструктурой β€” это нСсомнСнно большой скачок Π²ΠΏΠ΅Ρ€Π΅Π΄. Но Ρ‚Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ спорныС ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρ‹ с ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΈ Π»ΡƒΡ‡ΡˆΠΈΠΌΠΈ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ°ΠΌΠΈ IaC Π΄ΠΎ сих ΠΏΠΎΡ€ Π΅ΡΡ‚ΡŒ. Π­Ρ‚Π° ΡΡ‚Π°Ρ‚ΡŒΡ стрСмится Ρ‡Π΅Ρ‚ΠΊΠΎ ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ IaC, Π΅Π³ΠΎ прСимущСства ΠΈ Π²Π°ΠΆΠ½Ρ‹Π΅ ограничСния.

Π§Ρ‚ΠΎ ΠΌΡ‹ Π²ΠΈΠ΄ΠΈΠΌ? Π‘Π΅ΡΠΏΠΎΡ‰Π°Π΄Π½ΡƒΡŽ статистику Π½Π΅ Π² Π½Π°ΡˆΡƒ ΠΏΠΎΠ»ΡŒΠ·Ρƒ. По количСству ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Π° – Ρ‚ΠΎ ΠΆΠ΅ самоС. Π’ C# Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΌΡ‹ просто купаСмся Π² ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Π°Ρ…, Ρƒ нас Π΅ΡΡ‚ΡŒ ΡΠ²Π΅Ρ€Ρ…Π»ΡƒΡ‡ΡˆΠΈΠ΅ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ, Π΅ΡΡ‚ΡŒ ΠΊΠ½ΠΈΠ³ΠΈ написанныС экспСртами, ΠΈ Ρ‚Π°ΠΊΠΆΠ΅ ΠΊΠ½ΠΈΠΆΠΊΠΈ, написанныС Π½Π° ΠΊΠ½ΠΈΠΆΠΊΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ экспСртами, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΊΡ€ΠΈΡ‚ΠΈΠΊΡƒΡŽΡ‚ Ρ‚Π΅ ΠΊΠ½ΠΈΠΆΠΊΠΈ. ΠœΠΎΡ€Π΅ ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ, статСй, ΠΎΠ±ΡƒΡ‡Π°ΡŽΡ‰ΠΈΡ… курсов, сСйчас Π΅Ρ‰Π΅ ΠΈ open source Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°.

Π§Ρ‚ΠΎ касаСтся запроса ΠΏΠΎ IaC: здСсь Π²Ρ‹ ΠΏΠΎ ΠΊΡ€ΡƒΠΏΠΈΡ†Π°ΠΌ ΠΏΡ‹Ρ‚Π°Π΅Ρ‚Π΅ΡΡŒ ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ ΠΈΠ½Ρ„Ρƒ с Π΄ΠΎΠΊΠ»Π°Π΄ΠΎΠ² Ρ…Π°ΠΉΠ»ΠΎΠ°Π΄Π° ΠΈΠ»ΠΈ HashiConf, с ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ ΠΈ многочислСнных issue Π½Π° Π³ΠΈΡ‚Ρ…Π°Π±Π΅. Как Π²ΠΎΠΎΠ±Ρ‰Π΅ эти ΠΌΠΎΠ΄ΡƒΠ»ΠΈ Ρ€Π°ΡΠΊΠΈΠ΄Ρ‹Π²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ с Π½ΠΈΠΌΠΈ Π΄Π΅Π»Π°Ρ‚ΡŒ? ΠšΠ°ΠΆΠ΅Ρ‚ΡΡ, Ρ‡Ρ‚ΠΎ это Ρ€Π΅Π°Π»ΡŒΠ½Π°Ρ проблСма… Π•ΡΡ‚ΡŒ ΠΆΠ΅ ΠΊΠΎΠΌΡŒΡŽΠ½ΠΈΡ‚ΠΈ, господа, Π³Π΄Π΅ Π½Π° любой вопрос Ρ‚Π΅Π±Π΅ Π΄Π°Π΄ΡƒΡ‚ 10 ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΎΠ² Π½Π° Π³ΠΈΡ‚Ρ…Π°Π±Π΅. Но это Π½Π΅ Ρ‚ΠΎΡ‡Π½ΠΎ.

К соТалСнию, Π² Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ экспСрты Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ ΠΏΠΎΡΠ²Π»ΡΡ‚ΡŒΡΡ. Пока ΠΈΡ… слишком ΠΌΠ°Π»ΠΎ. А само ΠΊΠΎΠΌΡŒΡŽΠ½ΠΈΡ‚ΠΈ болтаСтся Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ Π·Π°Ρ‡Π°Ρ‚ΠΊΠΎΠ².

ΠšΡƒΠ΄Π° всё это двиТСтся ΠΈ Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ

МоТно всё Π±Ρ€ΠΎΡΠΈΡ‚ΡŒ ΠΈ ΠΏΠΎΠΉΡ‚ΠΈ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ Π½Π° C#, Π² ΠΌΠΈΡ€ Ρ€Π°ΠΉΠ΄Π΅Ρ€Π°. Но Π½Π΅Ρ‚. Π—Π°Ρ‡Π΅ΠΌ Π²Ρ‹ Π²ΠΎΠΎΠ±Ρ‰Π΅ стали Π±Ρ‹ этим Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒΡΡ, Ссли Π½Π΅ Π½Π°ΠΉΡ‚ΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅. Π”Π°Π»Π΅Π΅ я ΠΏΡ€ΠΈΠ²ΠΎΠΆΡƒ свои ΡΡƒΠ±ΡŠΠ΅ΠΊΡ‚ΠΈΠ²Π½Ρ‹Π΅ Π²Ρ‹Π²ΠΎΠ΄Ρ‹. ΠœΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΡΠΏΠΎΡ€ΠΈΡ‚ΡŒ со ΠΌΠ½ΠΎΠΉ Π² коммСнтариях, Π±ΡƒΠ΄Π΅Ρ‚ интСрСсно.

Π›ΠΈΡ‡Π½ΠΎ я ΡΡ‚Π°Π²Π»ΡŽ Π½Π° нСсколько Π²Π΅Ρ‰Π΅ΠΉ:

инфраструктура ΠΊΠ°ΠΊ ΠΊΠΎΠ΄ инструмСнты. image loader. инфраструктура ΠΊΠ°ΠΊ ΠΊΠΎΠ΄ инструмСнты Ρ„ΠΎΡ‚ΠΎ. инфраструктура ΠΊΠ°ΠΊ ΠΊΠΎΠ΄ инструмСнты-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° инфраструктура ΠΊΠ°ΠΊ ΠΊΠΎΠ΄ инструмСнты. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. Infrastructure as Code β€” ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠΉ элСмСнт Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ эффСктивных ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Π½Ρ‹Ρ… сСтапов. Π’ΠΎ, ΠΊΠ°ΠΊ сСйчас DevOps-ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Ρ‹ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‚ со своСй инфраструктурой β€” это нСсомнСнно большой скачок Π²ΠΏΠ΅Ρ€Π΅Π΄. Но Ρ‚Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ спорныС ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρ‹ с ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΈ Π»ΡƒΡ‡ΡˆΠΈΠΌΠΈ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ°ΠΌΠΈ IaC Π΄ΠΎ сих ΠΏΠΎΡ€ Π΅ΡΡ‚ΡŒ. Π­Ρ‚Π° ΡΡ‚Π°Ρ‚ΡŒΡ стрСмится Ρ‡Π΅Ρ‚ΠΊΠΎ ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ IaC, Π΅Π³ΠΎ прСимущСства ΠΈ Π²Π°ΠΆΠ½Ρ‹Π΅ ограничСния.

ΠœΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ‚Π΅ΠΌΠ° хайповая, Π½ΠΎ сам Ρ„Π°ΠΊΡ‚ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ сфСра растёт, всСляСт Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π½Π°Π΄Π΅ΠΆΠ΄Ρƒ.

Π‘Π°Π½Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€: совмСстная Ρ€Π°Π±ΠΎΡ‚Π° Ρ‡Π΅Ρ€Π΅Π· pair programming. Он сильно ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ. Когда Ρƒ тСбя Π΅ΡΡ‚ΡŒ рядом сосСд, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ‚ΠΎΠΆΠ΅ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ пытаСтся ΠΏΠΎΠ½ΡΡ‚ΡŒ, вмСстС Π²Ρ‹ ΠΏΠΎΠΉΠΌΡ‘Ρ‚Π΅ Π»ΡƒΡ‡ΡˆΠ΅.

ПониманиС ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ дСлаСтся Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ Π΄Π°ΠΆΠ΅ Π² Ρ‚Π°ΠΊΠΎΠΉ ситуации ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Π΅Π³ΠΎ. Π’ΠΎ Π΅ΡΡ‚ΡŒ, Ρ‚Ρ‹ моТСшь ΠΏΠΎΠΌΠ΅Π½ΡΡ‚ΡŒ Π½Π΅ всё сразу, Π° ΠΏΠΎΠΌΠ΅Π½ΡΡ‚ΡŒ Π½Π΅ΠΉΠΌΠΈΠ½Π³, ΠΏΠΎΡ‚ΠΎΠΌ ΠΏΠΎΠΌΠ΅Π½ΡΡ‚ΡŒ располоТСниС, ΠΏΠΎΡ‚ΠΎΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΊΠ°ΠΊΡƒΡŽ-Ρ‚ΠΎ Ρ‡Π°ΡΡ‚ΡŒ, ΠΎΠΉ, Π° здСсь Π½Π΅ Ρ…Π²Π°Ρ‚Π°Π΅Ρ‚ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π².

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

Π‘Π»Π΅Π΄ΠΎΠΌ ΠΈΠ΄Ρ‘Ρ‚ вторая Ρ‡Π°ΡΡ‚ΡŒ ΡΡ‚Π°Ρ‚ΡŒΠΈ. Π’ Π½Π΅ΠΉ я Ρ€Π°ΡΡΠΊΠ°Π·Ρ‹Π²Π°ΡŽ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ ΠΌΡ‹ примСняли ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ ΡΠΊΡΡ‚Ρ€Π΅ΠΌΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ программирования, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ наш процСсс обучСния ΠΈ Ρ€Π°Π±ΠΎΡ‚Ρƒ с инфраструктурой.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ инфраструктуру ΠΊΠ°ΠΊ ΠΊΠΎΠ΄ с GitLab ΠΈ Ansible

инфраструктура ΠΊΠ°ΠΊ ΠΊΠΎΠ΄ инструмСнты. k1nd9xwkakzlxpmrfbteljd dv8. инфраструктура ΠΊΠ°ΠΊ ΠΊΠΎΠ΄ инструмСнты Ρ„ΠΎΡ‚ΠΎ. инфраструктура ΠΊΠ°ΠΊ ΠΊΠΎΠ΄ инструмСнты-k1nd9xwkakzlxpmrfbteljd dv8. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° инфраструктура ΠΊΠ°ΠΊ ΠΊΠΎΠ΄ инструмСнты. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° k1nd9xwkakzlxpmrfbteljd dv8. Infrastructure as Code β€” ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠΉ элСмСнт Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ эффСктивных ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Π½Ρ‹Ρ… сСтапов. Π’ΠΎ, ΠΊΠ°ΠΊ сСйчас DevOps-ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Ρ‹ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‚ со своСй инфраструктурой β€” это нСсомнСнно большой скачок Π²ΠΏΠ΅Ρ€Π΅Π΄. Но Ρ‚Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ спорныС ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρ‹ с ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΈ Π»ΡƒΡ‡ΡˆΠΈΠΌΠΈ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ°ΠΌΠΈ IaC Π΄ΠΎ сих ΠΏΠΎΡ€ Π΅ΡΡ‚ΡŒ. Π­Ρ‚Π° ΡΡ‚Π°Ρ‚ΡŒΡ стрСмится Ρ‡Π΅Ρ‚ΠΊΠΎ ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ IaC, Π΅Π³ΠΎ прСимущСства ΠΈ Π²Π°ΠΆΠ½Ρ‹Π΅ ограничСния.

Вся ΠΌΠΎΡ‰ΡŒ GitLab CI Π² дСмонстрации ΠΏΠ»Π΅ΠΉΠ±ΡƒΠΊΠΎΠ² Ansible ΠΏΡ€ΠΈ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π΅ «инфраструктура ΠΊΠ°ΠΊ ΠΊΠΎΠ΄Β».

GitLab CI β€” это эффСктивный инструмСнт для самых Ρ€Π°Π·Π½Ρ‹Ρ… сцСнариСв, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ инфраструктуру ΠΊΠ°ΠΊ ΠΊΠΎΠ΄. GitLab ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ с Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ инструмСнтами, Π½ΠΎ Π² этой дСмонстрации ΠΌΡ‹ возьмСм Ansible, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ Π΅Π³ΠΎ Ρ‡Π°Ρ‰Π΅ всСго ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΏΡ€ΠΈ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π΅ «инфраструктура ΠΊΠ°ΠΊ ΠΊΠΎΠ΄Β». Π’ΠΎΡ‚ Π΄Π΅ΠΌΠΎ с двумя ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ‚ΠΎΡ€Π°ΠΌΠΈ ΠΈΠ· курса ΠΏΠΎ сСтям Ansible.

ΠŸΡ€Π΅Π»Π΅ΡΡ‚ΡŒ GitLab CI Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠ΄ ΠΈΠ· ΠΏΠ»Π΅ΠΉΠ±ΡƒΠΊΠ° Ansible ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΈ ΠΏΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ, Π½Π΅ устанавливая Π½ΠΈΠΊΠ°ΠΊΠΈΡ… зависимостСй локально. Π”Π΅ΠΌΠΎ-ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ строк SNMP Π½Π° всСх устройствах ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ мСсяц Π² соотвСтствии с нашСй ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΎΠΉ бСзопасности, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π½Π° GitLab.com, нашСм сСрвисС размСщСния ΠΊΠΎΠ΄Π°.

Для Π½Π°Ρ‡Π°Π»Π° ΠΎΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ ΠΏΠ»Π΅ΠΉΠ±ΡƒΠΊ Ansible, Π³Π΄Π΅ Π΅ΡΡ‚ΡŒ 4 Π·Π°Π΄Π°Ρ‡ΠΈ:

Π’ этом Π΄Π΅ΠΌΠΎ ΠΌΡ‹ сосрСдоточимся Π½Π° настройкС строк SNMP, для ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ нСсколько простых шагов.

НачинаСм с доски Π·Π°Π΄Π°Ρ‡

Π›ΡŽΠ±ΠΎΠΉ ΠΏΠ»Π°Π½ Π½Π° GitLab начинаСтся ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎ: с Π·Π°Π΄Π°Ρ‡ΠΈ. Π˜Ρ‚Π°ΠΊ, ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ шаг Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ процСсса GitLab β€” ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ доску Π·Π°Π΄Π°Ρ‡ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ ansible-demo. На доскС Π·Π°Π΄Π°Ρ‡ ansible-demo ΠΌΡ‹ ΡƒΠΆΠ΅ Π²ΠΈΠ΄ΠΈΠΌ Π·Π°Π΄Π°Ρ‡Ρƒ: ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ строки SNMP Π½Π° всСх ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ‚ΠΎΡ€Π°Ρ…. Π’ Π·Π°Π΄Π°Ρ‡Π΅ Π΅ΡΡ‚ΡŒ ссылка Π½Π° wiki-страницу ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΈ бСзопасности GitLab, Π³Π΄Π΅ сказано, Ρ‡Ρ‚ΠΎ строки SNMP Π½ΡƒΠΆΠ½ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ‚ΡŒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ мСсяц, ΠΈ для ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Β«Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для чтСния» ΠΈ Β«Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ ΠΈ запись» Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π·Π½Ρ‹Π΅ строки.

инфраструктура ΠΊΠ°ΠΊ ΠΊΠΎΠ΄ инструмСнты. image loader. инфраструктура ΠΊΠ°ΠΊ ΠΊΠΎΠ΄ инструмСнты Ρ„ΠΎΡ‚ΠΎ. инфраструктура ΠΊΠ°ΠΊ ΠΊΠΎΠ΄ инструмСнты-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° инфраструктура ΠΊΠ°ΠΊ ΠΊΠΎΠ΄ инструмСнты. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. Infrastructure as Code β€” ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠΉ элСмСнт Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ эффСктивных ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Π½Ρ‹Ρ… сСтапов. Π’ΠΎ, ΠΊΠ°ΠΊ сСйчас DevOps-ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Ρ‹ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‚ со своСй инфраструктурой β€” это нСсомнСнно большой скачок Π²ΠΏΠ΅Ρ€Π΅Π΄. Но Ρ‚Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ спорныС ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρ‹ с ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΈ Π»ΡƒΡ‡ΡˆΠΈΠΌΠΈ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ°ΠΌΠΈ IaC Π΄ΠΎ сих ΠΏΠΎΡ€ Π΅ΡΡ‚ΡŒ. Π­Ρ‚Π° ΡΡ‚Π°Ρ‚ΡŒΡ стрСмится Ρ‡Π΅Ρ‚ΠΊΠΎ ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ IaC, Π΅Π³ΠΎ прСимущСства ΠΈ Π²Π°ΠΆΠ½Ρ‹Π΅ ограничСния.
ΠŸΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ° бСзопасности GitLab прСдписываСт ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ‚ΡŒ строки SNMP ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ мСсяц.

ΠŸΠΎΡ‚ΠΎΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ для настройки строк SNMP Π² Π΄Π΅ΠΌΠΎ с двумя ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ‚ΠΎΡ€Π°ΠΌΠΈ Π½Π΅ Π½Π°Ρ€ΡƒΡˆΠ°ΡŽΡ‚ ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΡƒ бСзопасности GitLab, ΠΎΠΏΠΈΡΠ°Π½Π½ΡƒΡŽ Π² Π·Π°Π΄Π°Ρ‡Π΅.

инфраструктура ΠΊΠ°ΠΊ ΠΊΠΎΠ΄ инструмСнты. image loader. инфраструктура ΠΊΠ°ΠΊ ΠΊΠΎΠ΄ инструмСнты Ρ„ΠΎΡ‚ΠΎ. инфраструктура ΠΊΠ°ΠΊ ΠΊΠΎΠ΄ инструмСнты-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° инфраструктура ΠΊΠ°ΠΊ ΠΊΠΎΠ΄ инструмСнты. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. Infrastructure as Code β€” ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠΉ элСмСнт Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ эффСктивных ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Π½Ρ‹Ρ… сСтапов. Π’ΠΎ, ΠΊΠ°ΠΊ сСйчас DevOps-ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Ρ‹ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‚ со своСй инфраструктурой β€” это нСсомнСнно большой скачок Π²ΠΏΠ΅Ρ€Π΅Π΄. Но Ρ‚Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ спорныС ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρ‹ с ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΈ Π»ΡƒΡ‡ΡˆΠΈΠΌΠΈ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ°ΠΌΠΈ IaC Π΄ΠΎ сих ΠΏΠΎΡ€ Π΅ΡΡ‚ΡŒ. Π­Ρ‚Π° ΡΡ‚Π°Ρ‚ΡŒΡ стрСмится Ρ‡Π΅Ρ‚ΠΊΠΎ ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ IaC, Π΅Π³ΠΎ прСимущСства ΠΈ Π²Π°ΠΆΠ½Ρ‹Π΅ ограничСния.
ΠšΠΎΠΌΠ°Π½Π΄Ρ‹ для настройки строк SNMP доступны Π² ΠΏΠ»Π΅ΠΉΠ±ΡƒΠΊΠ΅ Ansible.

ΠŸΠΎΡ‚ΠΎΠΌ Π²Π΅Ρ€Π½ΠΈΡ‚Π΅ΡΡŒ ΠΊ Π·Π°Π΄Π°Ρ‡Π΅, Π½Π°Π·Π½Π°Ρ‡ΡŒΡ‚Π΅ Π΅Π΅ сСбС ΠΈ смСнитС ярлык с to-do Π½Π° doing Π½Π° ΠΏΡ€Π°Π²ΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ ΠΈΠ»ΠΈ просто ΠΏΠ΅Ρ€Π΅Ρ‚Π°Ρ‰ΠΈΡ‚Π΅ Π·Π°Π΄Π°Ρ‡Ρƒ Π½Π° доскС ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ столбца Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ.

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΌΠ΅Ρ€Π΄ΠΆ-рСквСста

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈΠ· Π·Π°Π΄Π°Ρ‡ΠΈ ΠΌΠ΅Ρ€Π΄ΠΆ-рСквСст. Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Ρƒ ΠΌΠ΅Ρ€Π΄ΠΆ-рСквСста Π΅ΡΡ‚ΡŒ Ρ„Π»Π°Π³ Work in Progress (WIP), Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ Π½Π΅ ΠΏΠΎΠΏΠ°Π» Π² мастСр ΠΏΡ€Π΅ΠΆΠ΄Π΅Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ. ВмСсто локального ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ GitLab Web IDE, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ измСнСния Π² строках SNMP Π½Π΅Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹.

ΠšΠΎΠΌΠΌΠΈΡ‚ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ

Π’Ρ‹ ΠΎΠ±Π½ΠΎΠ²ΠΈΠ»ΠΈ строку SNMP ΠΏΠΎ инструкции, Π° Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π½ΡƒΠΆΠ½ΠΎ Π·Π°ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΈΡ‚ΡŒ измСнСния. ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎΠ΅ сравнСниС ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ ΠΌΠ΅Ρ€Π΄ΠΆ-рСквСст содСрТит послСдний ΠΊΠΎΠΌΠΌΠΈΡ‚.

инфраструктура ΠΊΠ°ΠΊ ΠΊΠΎΠ΄ инструмСнты. image loader. инфраструктура ΠΊΠ°ΠΊ ΠΊΠΎΠ΄ инструмСнты Ρ„ΠΎΡ‚ΠΎ. инфраструктура ΠΊΠ°ΠΊ ΠΊΠΎΠ΄ инструмСнты-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° инфраструктура ΠΊΠ°ΠΊ ΠΊΠΎΠ΄ инструмСнты. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. Infrastructure as Code β€” ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠΉ элСмСнт Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ эффСктивных ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Π½Ρ‹Ρ… сСтапов. Π’ΠΎ, ΠΊΠ°ΠΊ сСйчас DevOps-ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Ρ‹ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‚ со своСй инфраструктурой β€” это нСсомнСнно большой скачок Π²ΠΏΠ΅Ρ€Π΅Π΄. Но Ρ‚Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ спорныС ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρ‹ с ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΈ Π»ΡƒΡ‡ΡˆΠΈΠΌΠΈ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ°ΠΌΠΈ IaC Π΄ΠΎ сих ΠΏΠΎΡ€ Π΅ΡΡ‚ΡŒ. Π­Ρ‚Π° ΡΡ‚Π°Ρ‚ΡŒΡ стрСмится Ρ‡Π΅Ρ‚ΠΊΠΎ ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ IaC, Π΅Π³ΠΎ прСимущСства ΠΈ Π²Π°ΠΆΠ½Ρ‹Π΅ ограничСния.
Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ сравнСния наглядно ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ измСнСния.

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹

ΠšΠΎΠΌΠΌΠΈΡ‚ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ автоматичСски запустит ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½ GitLab CI. Он Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Π·Π°Π΄Π°Ρ‡ΠΈ:

ΠœΡ‹ Π²ΠΈΠ΄ΠΈΠΌ прогрСсс ΠΈ Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ задания Π² ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½Π΅ GitLab CI, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ обновляСт SNMP.

инфраструктура ΠΊΠ°ΠΊ ΠΊΠΎΠ΄ инструмСнты. image loader. инфраструктура ΠΊΠ°ΠΊ ΠΊΠΎΠ΄ инструмСнты Ρ„ΠΎΡ‚ΠΎ. инфраструктура ΠΊΠ°ΠΊ ΠΊΠΎΠ΄ инструмСнты-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° инфраструктура ΠΊΠ°ΠΊ ΠΊΠΎΠ΄ инструмСнты. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. Infrastructure as Code β€” ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠΉ элСмСнт Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ эффСктивных ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Π½Ρ‹Ρ… сСтапов. Π’ΠΎ, ΠΊΠ°ΠΊ сСйчас DevOps-ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Ρ‹ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‚ со своСй инфраструктурой β€” это нСсомнСнно большой скачок Π²ΠΏΠ΅Ρ€Π΅Π΄. Но Ρ‚Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ спорныС ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρ‹ с ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΈ Π»ΡƒΡ‡ΡˆΠΈΠΌΠΈ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ°ΠΌΠΈ IaC Π΄ΠΎ сих ΠΏΠΎΡ€ Π΅ΡΡ‚ΡŒ. Π­Ρ‚Π° ΡΡ‚Π°Ρ‚ΡŒΡ стрСмится Ρ‡Π΅Ρ‚ΠΊΠΎ ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ IaC, Π΅Π³ΠΎ прСимущСства ΠΈ Π²Π°ΠΆΠ½Ρ‹Π΅ ограничСния.
Π’Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ вашСй Π·Π°Π΄Π°Ρ‡ΠΈ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚, Ρ‡Ρ‚ΠΎ обновлСния SNMP Π² искусствСнной срСдС ΠΏΡ€ΠΎΡˆΠ»ΠΈ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ.

ВсС эти Π·Π°Π΄Π°Ρ‡ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ Π·Π°ΠΏΡƒΡ‰Π΅Π½Ρ‹ ΠΈ Π·Π°Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ Π² ΠΌΠ΅Ρ€Π΄ΠΆ-рСквСстС.

инфраструктура ΠΊΠ°ΠΊ ΠΊΠΎΠ΄ инструмСнты. image loader. инфраструктура ΠΊΠ°ΠΊ ΠΊΠΎΠ΄ инструмСнты Ρ„ΠΎΡ‚ΠΎ. инфраструктура ΠΊΠ°ΠΊ ΠΊΠΎΠ΄ инструмСнты-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° инфраструктура ΠΊΠ°ΠΊ ΠΊΠΎΠ΄ инструмСнты. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. Infrastructure as Code β€” ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠΉ элСмСнт Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ эффСктивных ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Π½Ρ‹Ρ… сСтапов. Π’ΠΎ, ΠΊΠ°ΠΊ сСйчас DevOps-ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Ρ‹ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‚ со своСй инфраструктурой β€” это нСсомнСнно большой скачок Π²ΠΏΠ΅Ρ€Π΅Π΄. Но Ρ‚Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ спорныС ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρ‹ с ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΈ Π»ΡƒΡ‡ΡˆΠΈΠΌΠΈ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ°ΠΌΠΈ IaC Π΄ΠΎ сих ΠΏΠΎΡ€ Π΅ΡΡ‚ΡŒ. Π­Ρ‚Π° ΡΡ‚Π°Ρ‚ΡŒΡ стрСмится Ρ‡Π΅Ρ‚ΠΊΠΎ ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ IaC, Π΅Π³ΠΎ прСимущСства ΠΈ Π²Π°ΠΆΠ½Ρ‹Π΅ ограничСния.
Π“Π°Π»ΠΎΡ‡ΠΊΠΈ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚, Ρ‡Ρ‚ΠΎ Π·Π°Π΄Π°Ρ‡Π° Π² ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½Π΅ GitLab CI Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π°.

Π—Π°Ρ‚Π΅ΠΌ Π²ΠΎΠΉΠ΄ΠΈΡ‚Π΅ Π² ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ‚ΠΎΡ€Ρ‹ для Π΄Π΅ΠΌΠΎ ΠΈ посмотритС измСнСния.

инфраструктура ΠΊΠ°ΠΊ ΠΊΠΎΠ΄ инструмСнты. image loader. инфраструктура ΠΊΠ°ΠΊ ΠΊΠΎΠ΄ инструмСнты Ρ„ΠΎΡ‚ΠΎ. инфраструктура ΠΊΠ°ΠΊ ΠΊΠΎΠ΄ инструмСнты-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° инфраструктура ΠΊΠ°ΠΊ ΠΊΠΎΠ΄ инструмСнты. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. Infrastructure as Code β€” ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠΉ элСмСнт Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ эффСктивных ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Π½Ρ‹Ρ… сСтапов. Π’ΠΎ, ΠΊΠ°ΠΊ сСйчас DevOps-ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Ρ‹ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‚ со своСй инфраструктурой β€” это нСсомнСнно большой скачок Π²ΠΏΠ΅Ρ€Π΅Π΄. Но Ρ‚Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ спорныС ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρ‹ с ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΈ Π»ΡƒΡ‡ΡˆΠΈΠΌΠΈ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ°ΠΌΠΈ IaC Π΄ΠΎ сих ΠΏΠΎΡ€ Π΅ΡΡ‚ΡŒ. Π­Ρ‚Π° ΡΡ‚Π°Ρ‚ΡŒΡ стрСмится Ρ‡Π΅Ρ‚ΠΊΠΎ ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ IaC, Π΅Π³ΠΎ прСимущСства ΠΈ Π²Π°ΠΆΠ½Ρ‹Π΅ ограничСния.
ИзмСнСния строк SNMP RO ΠΈ RW ΠΎΡ‚Ρ€Π°ΠΆΠ΅Π½Ρ‹ Π² ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ‚ΠΎΡ€Π°Ρ….

РСвью ΠΌΠ΅Ρ€Π΄ΠΆ-рСквСста

МоТно Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ шаг β€” ΠΎΠ΄ΠΎΠ±Ρ€Π΅Π½ΠΈΠ΅ ΠΌΠ΅Ρ€Π΄ΠΆ-рСквСста. Если Π²Ρ‹ настроитС ΠΎΠ΄ΠΎΠ±Ρ€Π΅Π½ΠΈΠ΅, нСсколько ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ смогут ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ измСнСния, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΎΠ½ΠΈ ΠΏΠΎΠΏΠ°Π΄ΡƒΡ‚ Π² ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ΅Π½.

инфраструктура ΠΊΠ°ΠΊ ΠΊΠΎΠ΄ инструмСнты. image loader. инфраструктура ΠΊΠ°ΠΊ ΠΊΠΎΠ΄ инструмСнты Ρ„ΠΎΡ‚ΠΎ. инфраструктура ΠΊΠ°ΠΊ ΠΊΠΎΠ΄ инструмСнты-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° инфраструктура ΠΊΠ°ΠΊ ΠΊΠΎΠ΄ инструмСнты. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. Infrastructure as Code β€” ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠΉ элСмСнт Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ эффСктивных ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Π½Ρ‹Ρ… сСтапов. Π’ΠΎ, ΠΊΠ°ΠΊ сСйчас DevOps-ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Ρ‹ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‚ со своСй инфраструктурой β€” это нСсомнСнно большой скачок Π²ΠΏΠ΅Ρ€Π΅Π΄. Но Ρ‚Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ спорныС ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρ‹ с ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΈ Π»ΡƒΡ‡ΡˆΠΈΠΌΠΈ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ°ΠΌΠΈ IaC Π΄ΠΎ сих ΠΏΠΎΡ€ Π΅ΡΡ‚ΡŒ. Π­Ρ‚Π° ΡΡ‚Π°Ρ‚ΡŒΡ стрСмится Ρ‡Π΅Ρ‚ΠΊΠΎ ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ IaC, Π΅Π³ΠΎ прСимущСства ΠΈ Π²Π°ΠΆΠ½Ρ‹Π΅ ограничСния.
ΠœΠ΅Ρ€Π΄ΠΆ-рСквСст ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ провСрял ваши Ρ‚Ρ€ΡƒΠ΄Ρ‹, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΎΠ½ΠΈ окаТутся Π² мастСрС.

ΠŸΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° Π² мастСр

ИзмСнСния ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Π² мастСр сразу послС тСстирования. ΠœΠ°ΡΡ‚Π΅Ρ€ β€” это главная Π²Π΅Ρ‚Π²ΡŒ, которая содСрТит ΠΊΠΎΠ΄ Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ срСды.

Когда Π²Ρ‹ Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚Π΅ статус WIP, ΠΌΠ΅Ρ€Π΄ΠΆ-рСквСст ΠΌΠΎΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ Π² мастСр, Π° Π·Π°Π΄Π°Ρ‡Ρƒ β€” Π·Π°ΠΊΡ€Ρ‹Ρ‚ΡŒ.

Новый ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½ ΠΏΡ€ΠΎΠ³ΠΎΠ½ΠΈΡ‚ всС тСсты, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ»ΠΈ Π½Π° Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΌ шагС запуска ΠΏΠ»Π΅ΠΉΠ±ΡƒΠΊΠ° Π² ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ΅Π½Π΅.

Π‘Π»Π΅Π΄ΠΈΡ‚Π΅ Π·Π° прогрСссом ΠΈ Π»ΠΎΠ³Π°ΠΌΠΈ Π½Π° экранС ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½Π°. Когда процСсс Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡΡ, Π²ΠΎΠΉΠ΄ΠΈΡ‚Π΅ Π² Ρ€Π°Π±ΠΎΡ‡ΠΈΠ΅ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ‚ΠΎΡ€Ρ‹ ΠΈ ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ строки SNMP измСнились.

Магия GitLab CI

ВсС это Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ благодаря ΠΌΠ°Π³ΠΈΠΈ GitLab CI. ΠŸΠ°ΠΉΠΏΠ»Π°ΠΉΠ½Ρ‹ GitLab CI β€” это ряды ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ всС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠ΅ для тСстирования ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΊΠΎΠ΄Π° Ansible.

GitLab CI запускаСтся с Π±Π°Π·ΠΎΠ²Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ. Π’ этом случаС ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΠΎΠ±Ρ€Π°Π· Docker, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ содСрТит вСсь Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ΠΉ ΠΊΠΎΠ΄ ΠΈ зависимости Ansible. Π£ΠΊΠ°ΠΆΠΈΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ этапС, ΠΈ зависимости.

инфраструктура ΠΊΠ°ΠΊ ΠΊΠΎΠ΄ инструмСнты. image loader. инфраструктура ΠΊΠ°ΠΊ ΠΊΠΎΠ΄ инструмСнты Ρ„ΠΎΡ‚ΠΎ. инфраструктура ΠΊΠ°ΠΊ ΠΊΠΎΠ΄ инструмСнты-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° инфраструктура ΠΊΠ°ΠΊ ΠΊΠΎΠ΄ инструмСнты. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. Infrastructure as Code β€” ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠΉ элСмСнт Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ эффСктивных ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Π½Ρ‹Ρ… сСтапов. Π’ΠΎ, ΠΊΠ°ΠΊ сСйчас DevOps-ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Ρ‹ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‚ со своСй инфраструктурой β€” это нСсомнСнно большой скачок Π²ΠΏΠ΅Ρ€Π΅Π΄. Но Ρ‚Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ спорныС ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρ‹ с ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΈ Π»ΡƒΡ‡ΡˆΠΈΠΌΠΈ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ°ΠΌΠΈ IaC Π΄ΠΎ сих ΠΏΠΎΡ€ Π΅ΡΡ‚ΡŒ. Π­Ρ‚Π° ΡΡ‚Π°Ρ‚ΡŒΡ стрСмится Ρ‡Π΅Ρ‚ΠΊΠΎ ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ IaC, Π΅Π³ΠΎ прСимущСства ΠΈ Π²Π°ΠΆΠ½Ρ‹Π΅ ограничСния.
ΠŸΡ€ΠΎΡΡ‚ΠΎΠΉ Ρ„Π°ΠΉΠ» YAML содСрТит Ρ‚Ρ€ΠΈ этапа GitLab CI.

инфраструктура ΠΊΠ°ΠΊ ΠΊΠΎΠ΄ инструмСнты. image loader. инфраструктура ΠΊΠ°ΠΊ ΠΊΠΎΠ΄ инструмСнты Ρ„ΠΎΡ‚ΠΎ. инфраструктура ΠΊΠ°ΠΊ ΠΊΠΎΠ΄ инструмСнты-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° инфраструктура ΠΊΠ°ΠΊ ΠΊΠΎΠ΄ инструмСнты. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. Infrastructure as Code β€” ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠΉ элСмСнт Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ эффСктивных ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Π½Ρ‹Ρ… сСтапов. Π’ΠΎ, ΠΊΠ°ΠΊ сСйчас DevOps-ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Ρ‹ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‚ со своСй инфраструктурой β€” это нСсомнСнно большой скачок Π²ΠΏΠ΅Ρ€Π΅Π΄. Но Ρ‚Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ спорныС ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρ‹ с ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΈ Π»ΡƒΡ‡ΡˆΠΈΠΌΠΈ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ°ΠΌΠΈ IaC Π΄ΠΎ сих ΠΏΠΎΡ€ Π΅ΡΡ‚ΡŒ. Π­Ρ‚Π° ΡΡ‚Π°Ρ‚ΡŒΡ стрСмится Ρ‡Π΅Ρ‚ΠΊΠΎ ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ IaC, Π΅Π³ΠΎ прСимущСства ΠΈ Π²Π°ΠΆΠ½Ρ‹Π΅ ограничСния.
Π­Ρ‚Π°ΠΏ дСмонстрации GitLab CI, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ выполняСтся ΠΏΠ»Π΅ΠΉΠ±ΡƒΠΊ Ansible.

ΠœΡ‹ заглянули Π²Π½ΡƒΡ‚Ρ€ΡŒ ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½Π° ΠΈ ΡƒΠ²ΠΈΠ΄Π΅Π»ΠΈ, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ GitLab CI, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ инфраструктуру ΠΊΠ°ΠΊ ΠΊΠΎΠ΄, Π΄Π°ΠΆΠ΅ Π½Π΅ устанавливая зависимости Ansible Π½Π° ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€. Π­Ρ‚ΠΎ лишь ΠΎΠ΄ΠΈΠ½ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ GitLab CI, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ инфраструктуру ΠΊΠ°ΠΊ ΠΊΠΎΠ΄. ПолноС руководство смотритС Π² Π²ΠΈΠ΄Π΅ΠΎ:

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *