ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ° ΠΊΠ°ΠΊ ΠΊΠΎΠ΄ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ
Infrastructure as Code: ΠΠ»ΡΡΡ, ΠΠΈΠ½ΡΡΡ ΠΈ ΠΡΠ΄ΡΡΠ΅Π΅
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 ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ ΡΠ²ΠΎΠ»ΡΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π», ΠΈ, Π²Π΅ΡΠΎΡΡΠ½ΠΎ, ΠΏΠΎΡΡΠ΅Π±ΠΎΠ²Π°Π»Π°ΡΡ Π±Ρ ΡΠ΅Π»Π°Ρ ΡΡΠ°ΡΡΡ, ΡΡΠΎΠ±Ρ Π΄Π°ΡΡ ΠΈΡΡΠ΅ΡΠΏΡΠ²Π°ΡΡΠΈΠΉ ΠΎΠ±Π·ΠΎΡ Π²ΡΠ΅Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ² ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΡΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π° Π² Π΅Π΅ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ΅. ΠΠ΄Π½Π°ΠΊΠΎ ΠΌΡ ΡΠΎΡΡΠ°Π²ΠΈΠ»ΠΈ ΠΊΡΠ°ΡΠΊΡΡ Ρ ΡΠΎΠ½ΠΎΠ»ΠΎΠ³ΠΈΡ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ², ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Π½ΡΡ ΠΏΠΎ Π΄Π°ΡΠ΅ ΡΠ΅Π»ΠΈΠ·Π°:
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ «ΠΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ° ΠΊΠ°ΠΊ ΠΊΠΎΠ΄»?
ΠΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ° ΠΊΠ°ΠΊ ΠΊΠΎΠ΄ (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: ΠΎΠ±Π·ΠΎΡ ΠΎΠΏΠ΅Π½ΡΠΎΡΡΠ½ΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ²
ΠΠ°Π²Π°ΠΉΡΠ΅ Π²Π·Π³Π»ΡΠ½Π΅ΠΌ Π½Π° ΡΠ΅ΠΊΡΡΠ΅Π΅ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π²Π΅ΡΠ΅ΠΉ Π² ΠΈΠ½Π΄ΡΡΡΡΠΈΠΈ Π²ΡΡΠΎΠΊΠΈΡ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ. ΠΡΠ΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΈ Π³ΠΎΠ²ΠΎΡΡΡ, ΡΡΠΎ ΠΎ 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-ΠΊΠΎΠΌΠ°Π½Π΄Ρ. Π― Π·Π°ΡΡΠ» Π²ΠΎ Π²ΡΡ ΡΡΡ ΠΈΡΡΠΎΡΠΈΡ ΡΠΎ ΡΡΠΎΡΠΎΠ½Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ. Π ΠΏΡΠΎΡΠ΅ΡΡΠ΅ Ρ ΠΌΠ΅Π½Ρ ΠΏΠΎΡΠ²ΠΈΠ»ΠΈΡΡ ΠΌΡΡΠ»ΠΈ ΠΈ ΠΈΠ½ΡΠ°ΠΉΡΡ, ΠΊΠΎΡΠΎΡΡΠΌΠΈ Ρ Ρ ΠΎΡΡ ΠΏΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌΠΈ. Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅-ΡΠ°Π·ΠΌΡΡΠ»Π΅Π½ΠΈΠΈ Ρ Π³ΠΎΠ²ΠΎΡΡ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ, ΠΊΠ°ΠΊ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ, ΠΈ ΠΊΠ°ΠΊ Π²ΡΠ΅ΠΌ Π΄Π°Π»ΡΡΠ΅ Ρ ΡΡΠΈΠΌ ΠΆΠΈΡΡ.
ΠΡΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΠ΅ ΡΠ΅ΡΠΈΠΈ ΡΡΠ°ΡΠ΅ΠΉ, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΡ ΠΏΠΎ ΠΌΠΎΡΠΈΠ²Π°ΠΌ Π²ΡΡΡΡΠΏΠ»Π΅Π½ΠΈΠΉ Π½Π° Π½Π°ΡΠ΅ΠΌ Π²Π½ΡΡΡΠ΅Π½Π½Π΅ΠΌ ΠΌΠ΅ΡΠΎΠΏΡΠΈΡΡΠΈΠΈ DevForum:
ΠΡ ΡΠ΅ΡΠΈΠ»ΠΈ ΡΠ΄Π΅Π»Π°ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ SRE, Π²ΠΎΠΏΠ»ΠΎΡΠΈΠ² ΠΈΠ΄Π΅ΠΈ google sre. ΠΠ°Π±ΡΠ°Π»ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠΎΠ² ΠΈΠ· ΡΠ²ΠΎΠΈΡ ΠΆΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΠΈ ΠΎΡΠΏΡΠ°Π²ΠΈΠ»ΠΈ ΠΈΡ ΠΎΠ±ΡΡΠ°ΡΡΡΡ Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΌΠ΅ΡΡΡΠ΅Π².
ΠΠ΅ΡΠ΅Π΄ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ ΡΡΠΎΡΠ»ΠΈ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΡΠ΅Π±Π½ΡΠ΅ Π·Π°Π΄Π°ΡΠΈ:
ΠΠ²ΠΎΠ΄ΠΈΠΌ ΠΏΠΎΠ½ΡΡΠΈΠ΅ Infrastructure as code
Π ΠΎΠ±ΡΡΠ½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΌΠΈΡΠ° (ΠΊΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠΎΠΌ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ) Π·Π½Π°Π½ΠΈΡ ΠΎΠ± ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ΅ Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ Π² Π΄Π²ΡΡ ΠΌΠ΅ΡΡΠ°Ρ :
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ° ΠΊΠ°ΠΊ ΠΊΠΎΠ΄ (Incfastructure as Code β IaC) β ΡΡΠΎ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π²ΡΠ΅ΠΉ ΠΈΠΌΠ΅ΡΡΠ΅ΠΉΡΡ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΡ Π² Π²ΠΈΠ΄Π΅ ΠΊΠΎΠ΄Π°, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠΎΠΏΡΡΡΡΠ²ΡΡΡΠΈΠ΅ ΡΡΠ΅Π΄ΡΡΠ²Π° ΠΏΠΎ ΡΠ°Π±ΠΎΡΠ΅ Ρ Π½ΠΈΠΌ ΠΈ Π²ΠΎΠΏΠ»ΠΎΡΠ΅Π½ΠΈΡ ΠΈΠ· Π½Π΅Π³ΠΎ ΠΆΠ΅ ΡΠ΅Π°Π»ΡΠ½ΠΎΠΉ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΡ.
ΠΡΠ°ΠΊ, ΠΌΡ ΡΠ΅ΡΠΈΠ»ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ Π½ΠΎΠ²ΡΡ SRE-ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΠΎΠ², Π½ΠΎ ΠΎΡΠΊΡΠ΄Π° ΠΈΡ Π±ΡΠ°ΡΡ? ΠΠ½ΠΈΠΆΠΊΠ° Ρ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΌΠΈ ΠΎΡΠ²Π΅ΡΠ°ΠΌΠΈ (Google SRE Book) Π³ΠΎΠ²ΠΎΡΠΈΡ Π½Π°ΠΌ: ΠΈΠ· ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ². ΠΠ΅Π΄Ρ ΠΎΠ½ΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΠΊΠΎΠ΄ΠΎΠΌ, Π° Π²Ρ Π΄ΠΎΡΡΠΈΠ³Π°Π΅ΡΠ΅ ΠΈΠ΄Π΅Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ.
ΠΡ ΠΌΠ½ΠΎΠ³ΠΎ ΠΈ Π΄ΠΎΠ»Π³ΠΎ ΠΈΡΠΊΠ°Π»ΠΈ ΠΈΡ Π½Π° ΠΊΠ°Π΄ΡΠΎΠ²ΠΎΠΌ ΡΡΠ½ΠΊΠ΅ Π·Π° ΠΏΡΠ΅Π΄Π΅Π»Π°ΠΌΠΈ Π½Π°ΡΠ΅ΠΉ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ. ΠΠΎ Π²ΡΠ½ΡΠΆΠ΄Π΅Π½Ρ ΠΏΡΠΈΠ·Π½Π°ΡΡ, ΡΡΠΎ Π½Π΅ Π½Π°ΡΠ»ΠΈ Π½ΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄ Π½Π°ΡΠΈ Π·Π°ΠΏΡΠΎΡΡ. ΠΡΠΈΡΠ»ΠΎΡΡ ΠΏΠΎΡΠ΅ΡΡΡΠΈΡΡ ΡΡΠ΅Π΄ΠΈ ΡΠ²ΠΎΠΈΡ .
ΠΡΠΎΠ±Π»Π΅ΠΌΡ Infrastructure as code
Π’Π΅ΠΏΠ΅ΡΡ Π΄Π°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ ΠΏΡΠΈΠΌΠ΅ΡΡ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π·Π°ΡΠΈΡΠ° Π² ΠΊΠΎΠ΄. ΠΠΎΠ΄ Ρ ΠΎΡΠΎΡΠΎ Π½Π°ΠΏΠΈΡΠ°Π½, ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ, Ρ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΠΌΠΈ ΠΈ ΠΎΡΡΡΡΠΏΠ°ΠΌΠΈ.
ΠΡΠΈΠΌΠ΅Ρ ΠΊΠΎΠ΄Π° ΠΈΠ· Terraforma.
ΠΡΠΈΠΌΠ΅Ρ ΠΊΠΎΠ΄Π° ΠΈΠ· Ansible.
ΠΠΎΡΠΏΠΎΠ΄Π°, Π½ΠΎ Π΅ΡΠ»ΠΈ Π±Ρ Π²ΡΡ Π±ΡΠ»ΠΎ ΡΠ°ΠΊ ΠΏΡΠΎΡΡΠΎ! ΠΡ ΠΆΠ΅ Ρ Π²Π°ΠΌΠΈ Π² ΡΠ΅Π°Π»ΡΠ½ΠΎΠΌ ΠΌΠΈΡΠ΅, Π° ΠΎΠ½ Π²ΡΠ΅Π³Π΄Π° Π³ΠΎΡΠΎΠ² ΡΠ΄ΠΈΠ²ΠΈΡΡ Π²Π°Ρ, ΠΏΡΠ΅ΠΏΠΎΠ΄Π½Π΅ΡΡΠΈ ΡΡΡΠΏΡΠΈΠ·Ρ, ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ. ΠΠ΅ ΠΎΠ±Ρ ΠΎΠ΄ΠΈΡΡΡ Π±Π΅Π· Π½ΠΈΡ ΠΈ Π·Π΄Π΅ΡΡ.
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.
Π£ Π½ΠΈΡ Ρ ΠΎΡΠΎΡΠ°Ρ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ. 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.
Π§ΡΠΎ ΠΌΡ Π²ΠΈΠ΄ΠΈΠΌ? ΠΠ΅ΡΠΏΠΎΡΠ°Π΄Π½ΡΡ ΡΡΠ°ΡΠΈΡΡΠΈΠΊΡ Π½Π΅ Π² Π½Π°ΡΡ ΠΏΠΎΠ»ΡΠ·Ρ. ΠΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Ρ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»Π° β ΡΠΎ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅. Π C# ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ ΠΌΡ ΠΏΡΠΎΡΡΠΎ ΠΊΡΠΏΠ°Π΅ΠΌΡΡ Π² ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»Π°Ρ , Ρ Π½Π°Ρ Π΅ΡΡΡ ΡΠ²Π΅ΡΡ Π»ΡΡΡΠΈΠ΅ ΠΏΡΠ°ΠΊΡΠΈΠΊΠΈ, Π΅ΡΡΡ ΠΊΠ½ΠΈΠ³ΠΈ Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΠ΅ ΡΠΊΡΠΏΠ΅ΡΡΠ°ΠΌΠΈ, ΠΈ ΡΠ°ΠΊΠΆΠ΅ ΠΊΠ½ΠΈΠΆΠΊΠΈ, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΠ΅ Π½Π° ΠΊΠ½ΠΈΠΆΠΊΠΈ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΡΠΊΡΠΏΠ΅ΡΡΠ°ΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΊΡΠΈΡΠΈΠΊΡΡΡ ΡΠ΅ ΠΊΠ½ΠΈΠΆΠΊΠΈ. ΠΠΎΡΠ΅ ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎΠΉ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ, ΡΡΠ°ΡΠ΅ΠΉ, ΠΎΠ±ΡΡΠ°ΡΡΠΈΡ ΠΊΡΡΡΠΎΠ², ΡΠ΅ΠΉΡΠ°Ρ Π΅ΡΠ΅ ΠΈ open source ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°.
Π§ΡΠΎ ΠΊΠ°ΡΠ°Π΅ΡΡΡ Π·Π°ΠΏΡΠΎΡΠ° ΠΏΠΎ IaC: Π·Π΄Π΅ΡΡ Π²Ρ ΠΏΠΎ ΠΊΡΡΠΏΠΈΡΠ°ΠΌ ΠΏΡΡΠ°Π΅ΡΠ΅ΡΡ ΡΠΎΠ±ΡΠ°ΡΡ ΠΈΠ½ΡΡ Ρ Π΄ΠΎΠΊΠ»Π°Π΄ΠΎΠ² Ρ Π°ΠΉΠ»ΠΎΠ°Π΄Π° ΠΈΠ»ΠΈ HashiConf, Ρ ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎΠΉ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΡΠΈΡΠ»Π΅Π½Π½ΡΡ issue Π½Π° Π³ΠΈΡΡ Π°Π±Π΅. ΠΠ°ΠΊ Π²ΠΎΠΎΠ±ΡΠ΅ ΡΡΠΈ ΠΌΠΎΠ΄ΡΠ»ΠΈ ΡΠ°ΡΠΊΠΈΠ΄ΡΠ²Π°ΡΡ, ΡΡΠΎ Ρ Π½ΠΈΠΌΠΈ Π΄Π΅Π»Π°ΡΡ? ΠΠ°ΠΆΠ΅ΡΡΡ, ΡΡΠΎ ΡΡΠΎ ΡΠ΅Π°Π»ΡΠ½Π°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°β¦ ΠΡΡΡ ΠΆΠ΅ ΠΊΠΎΠΌΡΡΠ½ΠΈΡΠΈ, Π³ΠΎΡΠΏΠΎΠ΄Π°, Π³Π΄Π΅ Π½Π° Π»ΡΠ±ΠΎΠΉ Π²ΠΎΠΏΡΠΎΡ ΡΠ΅Π±Π΅ Π΄Π°Π΄ΡΡ 10 ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠΎΠ² Π½Π° Π³ΠΈΡΡ Π°Π±Π΅. ΠΠΎ ΡΡΠΎ Π½Π΅ ΡΠΎΡΠ½ΠΎ.
Π ΡΠΎΠΆΠ°Π»Π΅Π½ΠΈΡ, Π² Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΡΠΊΡΠΏΠ΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π½Π°ΡΠΈΠ½Π°ΡΡ ΠΏΠΎΡΠ²Π»ΡΡΡΡΡ. ΠΠΎΠΊΠ° ΠΈΡ ΡΠ»ΠΈΡΠΊΠΎΠΌ ΠΌΠ°Π»ΠΎ. Π ΡΠ°ΠΌΠΎ ΠΊΠΎΠΌΡΡΠ½ΠΈΡΠΈ Π±ΠΎΠ»ΡΠ°Π΅ΡΡΡ Π½Π° ΡΡΠΎΠ²Π½Π΅ Π·Π°ΡΠ°ΡΠΊΠΎΠ².
ΠΡΠ΄Π° Π²ΡΡ ΡΡΠΎ Π΄Π²ΠΈΠΆΠ΅ΡΡΡ ΠΈ ΡΡΠΎ Π΄Π΅Π»Π°ΡΡ
ΠΠΎΠΆΠ½ΠΎ Π²ΡΡ Π±ΡΠΎΡΠΈΡΡ ΠΈ ΠΏΠΎΠΉΡΠΈ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ Π½Π° C#, Π² ΠΌΠΈΡ ΡΠ°ΠΉΠ΄Π΅ΡΠ°. ΠΠΎ Π½Π΅Ρ. ΠΠ°ΡΠ΅ΠΌ Π²Ρ Π²ΠΎΠΎΠ±ΡΠ΅ ΡΡΠ°Π»ΠΈ Π±Ρ ΡΡΠΈΠΌ Π·Π°Π½ΠΈΠΌΠ°ΡΡΡΡ, Π΅ΡΠ»ΠΈ Π½Π΅ Π½Π°ΠΉΡΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅. ΠΠ°Π»Π΅Π΅ Ρ ΠΏΡΠΈΠ²ΠΎΠΆΡ ΡΠ²ΠΎΠΈ ΡΡΠ±ΡΠ΅ΠΊΡΠΈΠ²Π½ΡΠ΅ Π²ΡΠ²ΠΎΠ΄Ρ. ΠΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΡΠΏΠΎΡΠΈΡΡ ΡΠΎ ΠΌΠ½ΠΎΠΉ Π² ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡΡ , Π±ΡΠ΄Π΅Ρ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ.
ΠΠΈΡΠ½ΠΎ Ρ ΡΡΠ°Π²Π»Ρ Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π²Π΅ΡΠ΅ΠΉ:
ΠΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠ΅ΠΌΠ° Ρ Π°ΠΉΠΏΠΎΠ²Π°Ρ, Π½ΠΎ ΡΠ°ΠΌ ΡΠ°ΠΊΡ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΡΡΠ΅ΡΠ° ΡΠ°ΡΡΡΡ, Π²ΡΠ΅Π»ΡΠ΅Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ Π½Π°Π΄Π΅ΠΆΠ΄Ρ.
ΠΠ°Π½Π°Π»ΡΠ½ΡΠΉ ΠΏΡΠΈΠΌΠ΅Ρ: ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½Π°Ρ ΡΠ°Π±ΠΎΡΠ° ΡΠ΅ΡΠ΅Π· pair programming. ΠΠ½ ΡΠΈΠ»ΡΠ½ΠΎ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡΡΡ. ΠΠΎΠ³Π΄Π° Ρ ΡΠ΅Π±Ρ Π΅ΡΡΡ ΡΡΠ΄ΠΎΠΌ ΡΠΎΡΠ΅Π΄, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΠΆΠ΅ ΡΡΠΎ-ΡΠΎ ΠΏΡΡΠ°Π΅ΡΡΡ ΠΏΠΎΠ½ΡΡΡ, Π²ΠΌΠ΅ΡΡΠ΅ Π²Ρ ΠΏΠΎΠΉΠΌΡΡΠ΅ Π»ΡΡΡΠ΅.
ΠΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ Π΄Π΅Π»Π°Π΅ΡΡΡ ΡΠ΅ΡΠ°ΠΊΡΠΎΡΠΈΠ½Π³ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ Π΄Π°ΠΆΠ΅ Π² ΡΠ°ΠΊΠΎΠΉ ΡΠΈΡΡΠ°ΡΠΈΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡ Π΅Π³ΠΎ. Π’ΠΎ Π΅ΡΡΡ, ΡΡ ΠΌΠΎΠΆΠ΅ΡΡ ΠΏΠΎΠΌΠ΅Π½ΡΡΡ Π½Π΅ Π²ΡΡ ΡΡΠ°Π·Ρ, Π° ΠΏΠΎΠΌΠ΅Π½ΡΡΡ Π½Π΅ΠΉΠΌΠΈΠ½Π³, ΠΏΠΎΡΠΎΠΌ ΠΏΠΎΠΌΠ΅Π½ΡΡΡ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΏΠΎΡΠΎΠΌ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠ΄Π΅Π»ΠΈΡΡ ΠΊΠ°ΠΊΡΡ-ΡΠΎ ΡΠ°ΡΡΡ, ΠΎΠΉ, Π° Π·Π΄Π΅ΡΡ Π½Π΅ Ρ Π²Π°ΡΠ°Π΅Ρ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅Π².
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
Π‘Π»Π΅Π΄ΠΎΠΌ ΠΈΠ΄ΡΡ Π²ΡΠΎΡΠ°Ρ ΡΠ°ΡΡΡ ΡΡΠ°ΡΡΠΈ. Π Π½Π΅ΠΉ Ρ ΡΠ°ΡΡΠΊΠ°Π·ΡΠ²Π°Ρ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΠΌΡ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ»ΠΈ ΠΏΡΠ°ΠΊΡΠΈΠΊΠΈ ΡΠΊΡΡΡΠ΅ΠΌΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΡΡΠΎΠ±Ρ ΡΠ»ΡΡΡΠΈΡΡ Π½Π°Ρ ΠΏΡΠΎΡΠ΅ΡΡ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ ΠΈ ΡΠ°Π±ΠΎΡΡ Ρ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠΎΠΉ.
Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΡ ΠΊΠ°ΠΊ ΠΊΠΎΠ΄ Ρ GitLab ΠΈ Ansible
ΠΡΡ ΠΌΠΎΡΡ 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 Π½ΡΠΆΠ½ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΌΠ΅ΡΡΡ, ΠΈ Π΄Π»Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ Β«ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡΒ» ΠΈ Β«ΡΡΠ΅Π½ΠΈΠ΅ ΠΈ Π·Π°ΠΏΠΈΡΡΒ» Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΡΠ°Π·Π½ΡΠ΅ ΡΡΡΠΎΠΊΠΈ.
ΠΠΎΠ»ΠΈΡΠΈΠΊΠ° Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ GitLab ΠΏΡΠ΅Π΄ΠΏΠΈΡΡΠ²Π°Π΅Ρ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡ ΡΡΡΠΎΠΊΠΈ SNMP ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΌΠ΅ΡΡΡ.
ΠΠΎΡΠΎΠΌ Π½ΡΠΆΠ½ΠΎ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ, ΡΡΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π΄Π»Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΡΡΡΠΎΠΊ SNMP Π² Π΄Π΅ΠΌΠΎ Ρ Π΄Π²ΡΠΌΡ ΠΌΠ°ΡΡΡΡΡΠΈΠ·Π°ΡΠΎΡΠ°ΠΌΠΈ Π½Π΅ Π½Π°ΡΡΡΠ°ΡΡ ΠΏΠΎΠ»ΠΈΡΠΈΠΊΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ GitLab, ΠΎΠΏΠΈΡΠ°Π½Π½ΡΡ Π² Π·Π°Π΄Π°ΡΠ΅.
ΠΠΎΠΌΠ°Π½Π΄Ρ Π΄Π»Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΡΡΡΠΎΠΊ SNMP Π΄ΠΎΡΡΡΠΏΠ½Ρ Π² ΠΏΠ»Π΅ΠΉΠ±ΡΠΊΠ΅ Ansible.
ΠΠΎΡΠΎΠΌ Π²Π΅ΡΠ½ΠΈΡΠ΅ΡΡ ΠΊ Π·Π°Π΄Π°ΡΠ΅, Π½Π°Π·Π½Π°ΡΡΡΠ΅ Π΅Π΅ ΡΠ΅Π±Π΅ ΠΈ ΡΠΌΠ΅Π½ΠΈΡΠ΅ ΡΡΠ»ΡΠΊ Ρ to-do Π½Π° doing Π½Π° ΠΏΡΠ°Π²ΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ ΠΈΠ»ΠΈ ΠΏΡΠΎΡΡΠΎ ΠΏΠ΅ΡΠ΅ΡΠ°ΡΠΈΡΠ΅ Π·Π°Π΄Π°ΡΡ Π½Π° Π΄ΠΎΡΠΊΠ΅ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΡΠΎΠ»Π±ΡΠ° Π² Π΄ΡΡΠ³ΠΎΠΉ.
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΌΠ΅ΡΠ΄ΠΆ-ΡΠ΅ΠΊΠ²Π΅ΡΡΠ°
Π’Π΅ΠΏΠ΅ΡΡ Π½ΡΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΠΈΠ· Π·Π°Π΄Π°ΡΠΈ ΠΌΠ΅ΡΠ΄ΠΆ-ΡΠ΅ΠΊΠ²Π΅ΡΡ. Π£Π±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ Ρ ΠΌΠ΅ΡΠ΄ΠΆ-ΡΠ΅ΠΊΠ²Π΅ΡΡΠ° Π΅ΡΡΡ ΡΠ»Π°Π³ Work in Progress (WIP), ΡΡΠΎΠ±Ρ ΠΎΠ½ Π½Π΅ ΠΏΠΎΠΏΠ°Π» Π² ΠΌΠ°ΡΡΠ΅Ρ ΠΏΡΠ΅ΠΆΠ΄Π΅Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ. ΠΠΌΠ΅ΡΡΠΎ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ GitLab Web IDE, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΡΡΡΠΎΠΊΠ°Ρ SNMP Π½Π΅Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½Ρ.
ΠΠΎΠΌΠΌΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ
ΠΡ ΠΎΠ±Π½ΠΎΠ²ΠΈΠ»ΠΈ ΡΡΡΠΎΠΊΡ SNMP ΠΏΠΎ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ, Π° ΡΠ΅ΠΏΠ΅ΡΡ Π½ΡΠΆΠ½ΠΎ Π·Π°ΠΊΠΎΠΌΠΌΠΈΡΠΈΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ. ΠΡΠΊΡΠΎΠΉΡΠ΅ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎΠ΅ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, ΡΡΠΎΠ±Ρ ΡΠ±Π΅Π΄ΠΈΡΡΡΡ, ΡΡΠΎ ΠΌΠ΅ΡΠ΄ΠΆ-ΡΠ΅ΠΊΠ²Π΅ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΠΊΠΎΠΌΠΌΠΈΡ.
ΠΠ½ΡΡΡΡΠΌΠ΅Π½Ρ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎΠ³ΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Π½Π°Π³Π»ΡΠ΄Π½ΠΎ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ.
Π Π΅Π·ΡΠ»ΡΡΠ°ΡΡ
ΠΠΎΠΌΠΌΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π·Π°ΠΏΡΡΡΠΈΡ ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½ GitLab CI. ΠΠ½ Π²ΡΠΏΠΎΠ»Π½ΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ Π·Π°Π΄Π°ΡΠΈ:
ΠΡ Π²ΠΈΠ΄ΠΈΠΌ ΠΏΡΠΎΠ³ΡΠ΅ΡΡ ΠΈ Π²ΡΡ ΠΎΠ΄Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π·Π°Π΄Π°Π½ΠΈΡ Π² ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½Π΅ GitLab CI, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅Ρ SNMP.
ΠΡΡ
ΠΎΠ΄Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ Π²Π°ΡΠ΅ΠΉ Π·Π°Π΄Π°ΡΠΈ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡ, ΡΡΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ SNMP Π² ΠΈΡΠΊΡΡΡΡΠ²Π΅Π½Π½ΠΎΠΉ ΡΡΠ΅Π΄Π΅ ΠΏΡΠΎΡΠ»ΠΈ ΡΡΠΏΠ΅ΡΠ½ΠΎ.
ΠΡΠ΅ ΡΡΠΈ Π·Π°Π΄Π°ΡΠΈ Π±ΡΠ΄ΡΡ Π·Π°ΠΏΡΡΠ΅Π½Ρ ΠΈ Π·Π°Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Ρ Π² ΠΌΠ΅ΡΠ΄ΠΆ-ΡΠ΅ΠΊΠ²Π΅ΡΡΠ΅.
ΠΠ°Π»ΠΎΡΠΊΠΈ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡ, ΡΡΠΎ Π·Π°Π΄Π°ΡΠ° Π² ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½Π΅ GitLab CI Π²ΡΠΏΠΎΠ»Π½Π΅Π½Π°.
ΠΠ°ΡΠ΅ΠΌ Π²ΠΎΠΉΠ΄ΠΈΡΠ΅ Π² ΠΌΠ°ΡΡΡΡΡΠΈΠ·Π°ΡΠΎΡΡ Π΄Π»Ρ Π΄Π΅ΠΌΠΎ ΠΈ ΠΏΠΎΡΠΌΠΎΡΡΠΈΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ.
ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΡΡΠΎΠΊ SNMP RO ΠΈ RW ΠΎΡΡΠ°ΠΆΠ΅Π½Ρ Π² ΠΌΠ°ΡΡΡΡΡΠΈΠ·Π°ΡΠΎΡΠ°Ρ
.
Π Π΅Π²ΡΡ ΠΌΠ΅ΡΠ΄ΠΆ-ΡΠ΅ΠΊΠ²Π΅ΡΡΠ°
ΠΠΎΠΆΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΡΠ°Π³ β ΠΎΠ΄ΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΌΠ΅ΡΠ΄ΠΆ-ΡΠ΅ΠΊΠ²Π΅ΡΡΠ°. ΠΡΠ»ΠΈ Π²Ρ Π½Π°ΡΡΡΠΎΠΈΡΠ΅ ΠΎΠ΄ΠΎΠ±ΡΠ΅Π½ΠΈΠ΅, Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ ΡΠΌΠΎΠ³ΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΠΏΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ ΠΎΠ½ΠΈ ΠΏΠΎΠΏΠ°Π΄ΡΡ Π² ΠΏΡΠΎΠ΄Π°ΠΊΡΠ΅Π½.
ΠΠ΅ΡΠ΄ΠΆ-ΡΠ΅ΠΊΠ²Π΅ΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΡΡΡΠΎΠΈΡΡ ΡΠ°ΠΊ, ΡΡΠΎΠ±Ρ Π΄ΡΡΠ³ΠΎΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΡΠ» Π²Π°ΡΠΈ ΡΡΡΠ΄Ρ, ΠΏΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ ΠΎΠ½ΠΈ ΠΎΠΊΠ°ΠΆΡΡΡΡ Π² ΠΌΠ°ΡΡΠ΅ΡΠ΅.
ΠΠ΅ΡΠ΅Π΄Π°ΡΠ° Π² ΠΌΠ°ΡΡΠ΅Ρ
ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π² ΠΌΠ°ΡΡΠ΅Ρ ΡΡΠ°Π·Ρ ΠΏΠΎΡΠ»Π΅ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΠ°ΡΡΠ΅Ρ β ΡΡΠΎ Π³Π»Π°Π²Π½Π°Ρ Π²Π΅ΡΠ²Ρ, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΊΠΎΠ΄ ΡΠ°Π±ΠΎΡΠ΅ΠΉ ΡΡΠ΅Π΄Ρ.
ΠΠΎΠ³Π΄Π° Π²Ρ ΡΠ°Π·ΡΠ΅ΡΠΈΡΠ΅ ΡΡΠ°ΡΡΡ WIP, ΠΌΠ΅ΡΠ΄ΠΆ-ΡΠ΅ΠΊΠ²Π΅ΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ ΠΎΡΠΏΡΠ°Π²ΠΈΡΡ Π² ΠΌΠ°ΡΡΠ΅Ρ, Π° Π·Π°Π΄Π°ΡΡ β Π·Π°ΠΊΡΡΡΡ.
ΠΠΎΠ²ΡΠΉ ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½ ΠΏΡΠΎΠ³ΠΎΠ½ΠΈΡ Π²ΡΠ΅ ΡΠ΅ΡΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ Π²ΡΠΏΠΎΠ»Π½ΠΈΠ»ΠΈ Π½Π° Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΌ ΡΠ°Π³Π΅ Π·Π°ΠΏΡΡΠΊΠ° ΠΏΠ»Π΅ΠΉΠ±ΡΠΊΠ° Π² ΠΏΡΠΎΠ΄Π°ΠΊΡΠ΅Π½Π΅.
Π‘Π»Π΅Π΄ΠΈΡΠ΅ Π·Π° ΠΏΡΠΎΠ³ΡΠ΅ΡΡΠΎΠΌ ΠΈ Π»ΠΎΠ³Π°ΠΌΠΈ Π½Π° ΡΠΊΡΠ°Π½Π΅ ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½Π°. ΠΠΎΠ³Π΄Π° ΠΏΡΠΎΡΠ΅ΡΡ Π·Π°Π²Π΅ΡΡΠΈΡΡΡ, Π²ΠΎΠΉΠ΄ΠΈΡΠ΅ Π² ΡΠ°Π±ΠΎΡΠΈΠ΅ ΠΌΠ°ΡΡΡΡΡΠΈΠ·Π°ΡΠΎΡΡ ΠΈ ΡΠ±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ ΡΡΡΠΎΠΊΠΈ SNMP ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΈΡΡ.
ΠΠ°Π³ΠΈΡ GitLab CI
ΠΡΠ΅ ΡΡΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ ΠΌΠ°Π³ΠΈΠΈ GitLab CI. ΠΠ°ΠΉΠΏΠ»Π°ΠΉΠ½Ρ GitLab CI β ΡΡΠΎ ΡΡΠ΄Ρ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΡΡ Π·Π°Π΄Π°Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ Π²ΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΠ΅ Π΄Π»Ρ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΊΠΎΠ΄Π° Ansible.
GitLab CI Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ Ρ Π±Π°Π·ΠΎΠ²ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ. Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΠΎΠ±ΡΠ°Π· Docker, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π²Π΅ΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠΉ ΠΊΠΎΠ΄ ΠΈ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ Ansible. Π£ΠΊΠ°ΠΆΠΈΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ΄ΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΡΡΠ°ΠΏΠ΅, ΠΈ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ.
ΠΡΠΎΡΡΠΎΠΉ ΡΠ°ΠΉΠ» YAML ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΡΠΈ ΡΡΠ°ΠΏΠ° GitLab CI.
ΠΡΠ°ΠΏ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠ°ΡΠΈΠΈ GitLab CI, Π½Π° ΠΊΠΎΡΠΎΡΠΎΠΌ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΏΠ»Π΅ΠΉΠ±ΡΠΊ Ansible.
ΠΡ Π·Π°Π³Π»ΡΠ½ΡΠ»ΠΈ Π²Π½ΡΡΡΡ ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½Π° ΠΈ ΡΠ²ΠΈΠ΄Π΅Π»ΠΈ, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ GitLab CI, ΡΡΠΎΠ±Ρ ΡΠΎΠ·Π΄Π°ΡΡ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΡ ΠΊΠ°ΠΊ ΠΊΠΎΠ΄, Π΄Π°ΠΆΠ΅ Π½Π΅ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Ρ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ Ansible Π½Π° ΠΊΠΎΠΌΠΏΡΡΡΠ΅Ρ. ΠΡΠΎ Π»ΠΈΡΡ ΠΎΠ΄ΠΈΠ½ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ GitLab CI, ΡΡΠΎΠ±Ρ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΡ ΠΊΠ°ΠΊ ΠΊΠΎΠ΄. ΠΠΎΠ»Π½ΠΎΠ΅ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΡΠΌΠΎΡΡΠΈΡΠ΅ Π² Π²ΠΈΠ΄Π΅ΠΎ: