ΠΏΠ»ΡΡΡ ΠΈ ΠΌΠΈΠ½ΡΡΡ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ° ΠΊΠ°ΠΊ ΠΊΠΎΠ΄
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 ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ ΡΠ²ΠΎΠ»ΡΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π», ΠΈ, Π²Π΅ΡΠΎΡΡΠ½ΠΎ, ΠΏΠΎΡΡΠ΅Π±ΠΎΠ²Π°Π»Π°ΡΡ Π±Ρ ΡΠ΅Π»Π°Ρ ΡΡΠ°ΡΡΡ, ΡΡΠΎΠ±Ρ Π΄Π°ΡΡ ΠΈΡΡΠ΅ΡΠΏΡΠ²Π°ΡΡΠΈΠΉ ΠΎΠ±Π·ΠΎΡ Π²ΡΠ΅Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ² ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΡΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π° Π² Π΅Π΅ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ΅. ΠΠ΄Π½Π°ΠΊΠΎ ΠΌΡ ΡΠΎΡΡΠ°Π²ΠΈΠ»ΠΈ ΠΊΡΠ°ΡΠΊΡΡ Ρ ΡΠΎΠ½ΠΎΠ»ΠΎΠ³ΠΈΡ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ², ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Π½ΡΡ ΠΏΠΎ Π΄Π°ΡΠ΅ ΡΠ΅Π»ΠΈΠ·Π°:
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. ΠΠ½ ΡΠΈΠ»ΡΠ½ΠΎ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡΡΡ. ΠΠΎΠ³Π΄Π° Ρ ΡΠ΅Π±Ρ Π΅ΡΡΡ ΡΡΠ΄ΠΎΠΌ ΡΠΎΡΠ΅Π΄, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΠΆΠ΅ ΡΡΠΎ-ΡΠΎ ΠΏΡΡΠ°Π΅ΡΡΡ ΠΏΠΎΠ½ΡΡΡ, Π²ΠΌΠ΅ΡΡΠ΅ Π²Ρ ΠΏΠΎΠΉΠΌΡΡΠ΅ Π»ΡΡΡΠ΅.
ΠΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ Π΄Π΅Π»Π°Π΅ΡΡΡ ΡΠ΅ΡΠ°ΠΊΡΠΎΡΠΈΠ½Π³ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ Π΄Π°ΠΆΠ΅ Π² ΡΠ°ΠΊΠΎΠΉ ΡΠΈΡΡΠ°ΡΠΈΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡ Π΅Π³ΠΎ. Π’ΠΎ Π΅ΡΡΡ, ΡΡ ΠΌΠΎΠΆΠ΅ΡΡ ΠΏΠΎΠΌΠ΅Π½ΡΡΡ Π½Π΅ Π²ΡΡ ΡΡΠ°Π·Ρ, Π° ΠΏΠΎΠΌΠ΅Π½ΡΡΡ Π½Π΅ΠΉΠΌΠΈΠ½Π³, ΠΏΠΎΡΠΎΠΌ ΠΏΠΎΠΌΠ΅Π½ΡΡΡ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΏΠΎΡΠΎΠΌ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠ΄Π΅Π»ΠΈΡΡ ΠΊΠ°ΠΊΡΡ-ΡΠΎ ΡΠ°ΡΡΡ, ΠΎΠΉ, Π° Π·Π΄Π΅ΡΡ Π½Π΅ Ρ Π²Π°ΡΠ°Π΅Ρ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅Π².
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
Π‘Π»Π΅Π΄ΠΎΠΌ ΠΈΠ΄ΡΡ Π²ΡΠΎΡΠ°Ρ ΡΠ°ΡΡΡ ΡΡΠ°ΡΡΠΈ. Π Π½Π΅ΠΉ Ρ ΡΠ°ΡΡΠΊΠ°Π·ΡΠ²Π°Ρ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΠΌΡ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ»ΠΈ ΠΏΡΠ°ΠΊΡΠΈΠΊΠΈ ΡΠΊΡΡΡΠ΅ΠΌΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΡΡΠΎΠ±Ρ ΡΠ»ΡΡΡΠΈΡΡ Π½Π°Ρ ΠΏΡΠΎΡΠ΅ΡΡ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ ΠΈ ΡΠ°Π±ΠΎΡΡ Ρ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠΎΠΉ.
ΠΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ° ΠΊΠ°ΠΊ ΠΊΠΎΠ΄. ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π΄Π»Ρ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΡ
Π‘ΠΎΠ³Π»Π°ΡΠ½ΠΎ ΠΎΡΡΠ΅ΡΡ Β«State of DevOps 2019Β», 80% ΡΠ΅ΡΠΏΠΎΠ½Π΄Π΅Π½ΡΠΎΠ² ΡΠΊΠ°Π·Π°Π»ΠΈ, ΡΡΠΎ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ ΡΠ»ΡΠΆΠ±Π°, ΠΊΠΎΡΠΎΡΡΡ ΠΎΠ½ΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π»ΠΈ, Π±ΡΠ»ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ΠΎ Π½Π° ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ ΠΎΠ±Π»Π°ΡΠ½ΠΎΠΉ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅. 50% ΡΠ΅ΡΠΏΠΎΠ½Π΄Π΅Π½ΡΠΎΠ² Π·Π°ΡΠ²ΠΈΠ»ΠΈ, ΡΡΠΎ ΠΈΡ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ΠΎ Π² ΠΏΡΠ±Π»ΠΈΡΠ½ΠΎΠΌ ΠΎΠ±Π»Π°ΠΊΠ΅.
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ° ΠΊΠ°ΠΊ ΠΊΠΎΠ΄?
ΠΠ΄Π΅Ρ ΡΠΎΡΡΠΎΠΈΡ Π² ΡΠΎΠΌ, ΡΡΠΎ Π²Ρ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅ΡΡ ΠΊ ΡΠ²ΠΎΠ΅ΠΉ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ΅ ΠΊΠ°ΠΊ ΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠΌΡ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ, Π° Π·Π°ΡΠ΅ΠΌ ΠΏΠΈΡΠ΅ΡΠ΅, ΡΠ΅ΡΡΠΈΡΡΠ΅ΡΠ΅ ΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΠ΅ ΠΊΠΎΠ΄ Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ, ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΡ, ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΠΈ ΡΠ½ΠΈΡΡΠΎΠΆΠ΅Π½ΠΈΡ ΡΠ²ΠΎΠ΅ΠΉ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΡ.
ΠΡ ΠΏΠΈΡΠ΅ΡΠ΅ ΠΊΠΎΠ΄ Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠ²ΠΎΠΈΠΌΠΈ ΡΠ΅ΡΠ²Π΅ΡΠ°ΠΌΠΈ, Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½ΡΡ , ΡΠ΅ΡΡΠΌΠΈ, ΠΆΡΡΠ½Π°Π»Π°ΠΌΠΈ, ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠΎΠΉ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠΠΎΠ³Π΄Π° Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ Π²Π½Π΅ΡΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΡΠ²ΠΎΡ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΡ, Π²Ρ Π²Π½ΠΎΡΠΈΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΠΊΠΎΠ΄, ΡΠ΅ΡΡΠΈΡΡΠ΅ΡΠ΅ Π΅Π³ΠΎ, Π° Π·Π°ΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΠ΅ Π΅Π³ΠΎ Π² ΡΠ²ΠΎΠΈΡ ΡΠΈΡΡΠ΅ΠΌΠ°Ρ .
ΠΡΠ³ΠΎΡΡ
ΠΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ° ΠΊΠ°ΠΊ ΠΊΠΎΠ΄ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° ΠΏΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ ΡΡΡΠ½ΠΎΠΉ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠΎΠΉ:
Π‘Π°ΠΌΠΎΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π½ΠΈΠ΅
ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ ΠΊΠ°ΠΊ ΠΊΠΎΠ΄, Π²Π΅ΡΡ ΠΏΡΠΎΡΠ΅ΡΡ ΠΈ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΠ΅ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Ρ ΠΈ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π·Π°ΠΏΡΡΠ΅Π½Ρ Π»ΡΠ±ΡΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π΅ DevOps. ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΡ ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΡΠ΅ΡΡΡΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠΌ Π½ΡΠΆΠ½Ρ, ΠΊΠΎΠ³Π΄Π° ΠΈΠΌ ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ.
ΠΠ΄Π΅ΠΌΠΏΠΎΡΠ΅Π½ΡΠ½ΠΎΡΡΡ
ΠΠ΄Π΅ΠΌΠΏΠΎΡΠ΅Π½ΡΠ½ΠΎΡΡΡ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Π²Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΠ΅ ΠΆΠ΅Π»Π°Π΅ΠΌΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅, ΠΈ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΡΠΎΠ³ΠΎ, ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π· Π²Ρ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΠ΅ ΡΠΊΡΠΈΠΏΡ, ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π±ΡΠ΄Π΅Ρ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠΌ. ΠΠ½ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ ΡΠ΅ΠΊΡΡΠ΅Π΅ ΠΈ ΠΆΠ΅Π»Π°Π΅ΠΌΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΈ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅Ρ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡ. ΠΡΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΡΠ΅Π·Π²ΡΡΠ°ΠΉΠ½ΠΎ ΡΡΡΠ΄Π½ΠΎ Π΄ΠΎΡΡΠΈΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠΊΡΠΈΠΏΡΠΎΠ² bash.
Π’Π°ΠΊΠΈΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ, ΠΊΠ°ΠΊ Ansible ΠΈ Terraform, ΠΈΠΌΠ΅ΡΡ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π΄Π΅Π»Π°ΡΡ Π²Π°Ρ ΠΊΠΎΠ΄ ΠΈΠ΄Π΅ΠΌΠΏΠΎΡΠ΅Π½ΡΠ½ΡΠΌ.
Π‘Π½ΠΈΠΆΠ΅Π½ΠΈΠ΅ Π·Π°ΡΡΠ°Ρ
Π‘ΠΎΠΊΡΠ°ΡΠ°Π΅Ρ Π²ΡΠ΅ΠΌΡ ΠΈ ΡΡΠΈΠ»ΠΈΡ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ Π΄Π»Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΡ, Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ ΠΌΠ΅Π½ΡΡΠ΅, ΡΠ΅ΠΌ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠ° Π²ΡΡΡΠ½ΡΡ.
ΠΠΎΠ»Π΅Π΅ Π±ΡΡΡΡΠ°Ρ Π΄ΠΎΡΡΠ°Π²ΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ
ΠΡΡΡΡΠΎΠ΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΡ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ, ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π±ΡΡΡΡΠ΅Π΅ Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΏΡΠΎΡΠ΅ΡΡ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°Π½, ΠΎΠ½ ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΡΠΉ ΠΈ ΠΏΠΎΠ²ΡΠΎΡΡΠ΅ΠΌΡΠΉ.
Π‘Π°ΠΌΠΎΠ΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅
Π‘ΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ Π² ΠΊΠΎΠ΄Π΅, ΠΊΠΎΡΠΎΡΡΠΉ Π»Π΅Π³ΠΊΠΎ ΡΠΈΡΠ°Π΅ΡΡΡ Π»ΡΠ±ΡΠΌ ΡΠ΅Π»ΠΎΠ²Π΅ΠΊΠΎΠΌ.
ΠΠΎΠ½ΡΡΠΎΠ»ΠΈΡΡΠ΅ΠΌΠ°Ρ Π²Π΅ΡΡΠΈΡ
Π’ΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²Π΅Π½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌΠ°Ρ ΡΡΠΈΡΠ°ΡΡΡΡ ΡΠΈΡΠΊΠΎΠ²Π°Π½Π½ΡΠΌΠΈ. ΠΠΎ ΡΠΎΠ³Π΄Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π½Π΅ΠΈΠ·Π±Π΅ΠΆΠ½Ρ. ΠΠ°ΠΌ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΡΡΠ΅Π±ΠΎΠ²Π°ΡΡΡΡ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π½ΠΎΠ²ΡΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ ΠΏΡΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΈ Π½ΠΎΠ²ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΠ°ΠΌ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΡΡΠ΅Π±ΠΎΠ²Π°ΡΡΡΡ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π½ΠΎΠ²ΡΠ΅ ΡΠ΅ΡΠ²Π΅ΡΡ ΠΈΠ»ΠΈ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ Π² ΠΊΠ»Π°ΡΡΠ΅Ρ. ΠΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ° ΠΊΠ°ΠΊ ΠΊΠΎΠ΄ ΡΠΌΠ΅Π½ΡΡΠ°Π΅Ρ ΡΡΠΈΠ»ΠΈΡ ΠΈ ΡΠΈΡΠΊ Π²Π½Π΅ΡΠ΅Π½ΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΡ.
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΡΠ²ΠΎΠΈ ΠΈΡΡ ΠΎΠ΄Π½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π²Π΅ΡΡΠΈΡΠΌΠΈ, ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°ΡΡ Π²ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, Π²Π½Π΅ΡΠ΅Π½Π½ΡΠ΅ Π² ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΡ, ΠΈ Π±ΡΡΡΡΠΎ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΡΡ ΠΊ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΉ Π²Π΅ΡΡΠΈΠΈ, Π΅ΡΠ»ΠΈ ΡΡΠΎ-ΡΠΎ ΡΠ»ΠΎΠΌΠ°Π΅ΡΡΡ.
ΠΠ°Π»ΠΈΠ΄Π°ΡΠΈΡ ΠΈ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅
ΠΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ° ΠΊΠ°ΠΊ ΠΊΠΎΠ΄ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ Π½Π΅Π±ΠΎΠ»ΡΡΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π²ΡΠ΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΊΠΎΠ΄ΠΎΠΌ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΎΠ²Π΅ΡΡΡΡ ΠΎΡΠΈΠ±ΠΊΠΈ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π°Π½Π°Π»ΠΈΠ· ΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠ΅ΡΡΡ.
Π£Π»ΡΡΡΠ΅Π½Π½Π°Ρ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ
ΠΠ΅ΡΠ΅Ρ ΠΎΠ΄ ΠΊ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ΅ Π² Π²ΠΈΠ΄Π΅ ΠΊΠΎΠ΄Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²ΡΡΡΠΎΠΈΡΡ ΡΠΈΡΡΠ΅ΠΌΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ Ρ ΡΠ°ΠΌΠΎΠ³ΠΎ Π½Π°ΡΠ°Π»Π°, Π° Π·Π°ΡΠ΅ΠΌ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°Π΄Π΅ΠΆΠ½ΠΎ ΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ.
ΠΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ° ΠΊΠ°ΠΊ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ ΠΊΠΎΠ΄Π°
ΠΠ΅ΡΠΌΠΎΡΡΡ Π½Π° ΡΠΎ, ΡΡΠΎ Π΄ΠΎΡΡΡΠΏΠ½ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ², Π²ΡΠ±ΡΠ°ΡΡ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π½ΠΈΡ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π½Π΅Π»Π΅Π³ΠΊΠΎ. ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΎΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ ΠΎΠΊΠ°Π·Π°ΡΡΡΡ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΌΠΈ:
Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠ΅ΠΉ ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ
Π ΡΠ΅Π»ΠΎΠΌ Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ ΠΏΠΎΠ΄ΠΏΠ°Π΄Π°ΡΡ ΠΏΠΎΠ΄ Π΄Π²Π΅ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ:
ΠΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠ΅ΠΉ
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠ΅ΠΉ Π΄Π»Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ°Ρ .
ΠΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ
Terraform, CloudFormatio, OpenStack Heat, Ρ Π΄ΡΡΠ³ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Ρ, ΡΠ²Π»ΡΡΡΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ, Ρ.Π΅. ΠΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠ΅ΡΠ²Π΅ΡΠΎΠ², ΡΠ΅ΡΠ²Π΅ΡΠΎΠ² Π±Π°Π· Π΄Π°Π½Π½ΡΡ , Π±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²ΡΠΈΠΊΠΎΠ² Π½Π°Π³ΡΡΠ·ΠΊΠΈ, ΠΎΡΠ΅ΡΠ΅Π΄Π΅ΠΉ, ΠΏΠΎΠ΄ΡΠ΅ΡΠ΅ΠΉ, Π±ΡΠ°Π½Π΄ΠΌΠ°ΡΡΡΠΎΠ² ΠΈ Π²ΡΠ΅Ρ Π΄ΡΡΠ³ΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² Π²Π°ΡΠ΅ΠΉ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΡ. ΠΡΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ Π΄Π΅Π»Π°ΡΡ API-Π²ΡΠ·ΠΎΠ²Ρ ΠΊ ΠΏΡΠΎΠ²Π°ΠΉΠ΄Π΅ΡΠ°ΠΌ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΠΉ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΡ.
ΠΠ·ΠΌΠ΅Π½ΡΠΈΠ²Π°Ρ ΠΈ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½Π°Ρ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ°
ΠΠΎΡΠ»Π΅ ΠΌΠ½ΠΎΠ³ΠΈΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ΅ΡΠ²Π΅Ρ, Π²Π΅ΡΠΎΡΡΠ½ΠΎ, Π±ΡΠ΄Π΅Ρ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ ΠΎΡ Π΄ΡΡΠ³ΠΈΡ , ΡΡΠΎ ΠΏΡΠΈΠ²Π΅Π΄Π΅Ρ ΠΊ ΡΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΡΠ»ΠΈΡΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π° ΡΠ΅ΡΡΠΎΠ²ΡΡ ΡΠ΅ΡΠ²Π΅ΡΠ°Ρ , ΠΌΠΎΠ³ΡΡ Π½Π΅ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²Π΅Π½Π½ΡΡ ΡΠ΅ΡΠ²Π΅ΡΠ°Ρ .
Π’Π°ΠΊΠΈΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ, ΠΊΠ°ΠΊ Terraform ΠΈ CloudFormation, ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Ρ Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π· ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π½ΠΎΠ²ΡΠΉ ΡΠ΅ΡΠ²Π΅Ρ ΠΈΠ· ΠΎΠ±ΡΠ°Π·Π° ΠΌΠ°ΡΠΈΠ½Ρ ΠΈΠ»ΠΈ ΠΎΠ±ΡΠ°Π·Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°. ΠΡΠ»ΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ ΡΠ΅ΡΠ²Π΅ΡΡ, Π²Ρ Π·Π°ΠΌΠ΅Π½ΠΈΡΠ΅ ΠΈΡ Π½ΠΎΠ²ΡΠΌΠΈ ΡΠ΅ΡΠ²Π΅ΡΠ°ΠΌΠΈ.
ΠΠΎΠ³Π΄Π° Π½ΠΎΠ²ΡΠ΅ ΡΠ΅ΡΠ²Π΅ΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΡΠΊΠ»ΡΡΠΈΡΡ ΡΡΠ°ΡΡΠ΅. ΠΠ°ΠΆΠ΄ΠΎΠ΅ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΡΠΉ ΠΎΠ±ΡΠ°Π· Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠ΅ΡΠ²Π΅ΡΠ°, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ ΡΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ.
ΠΠΌΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΡΠ΅ ΠΈ Π΄Π΅ΠΊΠ»Π°ΡΠ°ΡΠΈΠ²Π½ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ
ΠΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ ΠΏΠΎΡ ΠΎΠΆΠΈ Π½Π° ΡΠΊΡΠΈΠΏΡΡ. ΠΡ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»ΡΠ΅ΡΠ΅ ΡΠ°Π³ΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡΠ΅Π΄ΠΏΡΠΈΠ½ΡΡΡ Π΄Π»Ρ Π΄ΠΎΡΡΠΈΠΆΠ΅Π½ΠΈΡ ΠΆΠ΅Π»Π°Π΅ΠΌΠΎΠ³ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ. ΠΠ΅ΠΊΠ»Π°ΡΠ°ΡΠΈΠ²Π½ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ Π²Π°ΠΌ ΡΠΊΠ°Π·Π°ΡΡ ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅, ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ ΡΠ°Π³ΠΈ Π΄Π»Ρ Π΄ΠΎΡΡΠΈΠΆΠ΅Π½ΠΈΡ ΡΡΠΎΠ³ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ.
Π ΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠ°ΠΊ Chef ΡΠ²Π»ΡΠ΅ΡΡΡ Π² ΠΏΠ΅ΡΠ²ΡΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ ΠΈΠΌΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΡΠΌ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠΌ, Ansible ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π³ΠΈΠ±ΡΠΈΠ΄Π½ΡΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΠΊΠ°ΠΊ ΠΈΠΌΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΡΠ΅, ΡΠ°ΠΊ ΠΈ Π΄Π΅ΠΊΠ»Π°ΡΠ°ΡΠΈΠ²Π½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ.
Terraform, CloudFormation, Puppet, OpenStack Heat ΠΈ SaltStack ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Ρ ΠΊ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ Π΄Π΅ΠΊΠ»Π°ΡΠ°ΡΠΈΠ²Π½ΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ², Π² ΠΊΠΎΡΠΎΡΠΎΠΉ Π²Ρ ΠΎΠ±ΡΡΠ²Π»ΡΠ΅ΡΠ΅ ΠΆΠ΅Π»Π°Π΅ΠΌΠΎΠ΅ ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅.
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² Π²ΠΌΠ΅ΡΡΠ΅
Π₯ΠΎΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΈΠ· ΡΡΠΈΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ, ΠΎΠ±ΡΠΈΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΡΠΎΡΡΠΎΠΈΡ Π² ΡΠΎΠΌ, ΡΡΠΎΠ±Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈΡ Π²ΠΌΠ΅ΡΡΠ΅. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Terraform Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ VPC, ΠΏΠΎΠ΄ΡΠ΅ΡΠ΅ΠΉ, ΠΈΠ½ΡΠ΅ΡΠ½Π΅Ρ-ΡΠ»ΡΠ·ΠΎΠ², Π±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²ΡΠΈΠΊΠΎΠ² Π½Π°Π³ΡΡΠ·ΠΊΠΈ ΠΈ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΡ ΠΌΠ°ΡΠΈΠ½, Π° Π·Π°ΡΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Ansible Π΄Π»Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΈ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΡ ΡΠ»ΡΠΆΠ± Π² ΡΡΠΈΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ°Ρ .
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
ΠΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ° ΠΊΠ°ΠΊ ΠΊΠΎΠ΄, Π²ΡΠΈΠ³ΡΡΠ²Π°Π΅ΠΌ Π½Π° ΠΌΠ°ΡΡΡΠ°Π±Π΅ (ΠΠΈΡΠΈΠ»Π» ΠΠ΅ΡΡΠΈΠ½ΠΊΠΈΠ½, TYME)
ΠΠΎΠ΄Π΅Π»Ρ Β«ΠΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ° ΠΊΠ°ΠΊ ΠΊΠΎΠ΄ (IaC)Β», ΠΊΠΎΡΠΎΡΡΡ ΠΈΠ½ΠΎΠ³Π΄Π° Π½Π°Π·ΡΠ²Π°ΡΡ Β«ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ΅ΠΌΠΎΠΉ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠΎΠΉΒ», β ΡΡΠΎ ΠΌΠΎΠ΄Π΅Π»Ρ, ΠΏΠΎ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΏΡΠΎΡΠ΅ΡΡ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΡ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ΅Π½ ΠΏΡΠΎΡΠ΅ΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΠ. ΠΠΎ ΡΡΡΠΈ, ΠΎΠ½Π° ΠΏΠΎΠ»ΠΎΠΆΠΈΠ»Π° Π½Π°ΡΠ°Π»ΠΎ ΡΡΡΡΠ°Π½Π΅Π½ΠΈΡ Π³ΡΠ°Π½ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠ΅ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ΠΌ ΡΡΠ΅Π΄ Π΄Π»Ρ ΡΡΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΌΠΎΠ³ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΡΠΊΡΠΈΠΏΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ²ΠΎΠΈ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠ΅ ΠΌΠ°ΡΠΈΠ½Ρ ΠΈ ΡΠΏΡΠ°Π²Π»ΡΡΡ ΠΈΠΌΠΈ. ΠΡΠΎ ΠΎΡΠ½ΠΎΠ²Π° ΠΎΠ±Π»Π°ΡΠ½ΡΡ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠΉ ΠΈ Π½Π΅ΠΎΡΡΠ΅ΠΌΠ»Π΅ΠΌΠ°Ρ ΡΠ°ΡΡΡ DevOps.
ΠΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ° ΠΊΠ°ΠΊ ΠΊΠΎΠ΄ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΏΡΠ°Π²Π»ΡΡΡ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠΌΠΈ ΠΌΠ°ΡΠΈΠ½Π°ΠΌΠΈ Π½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠΌ ΡΡΠΎΠ²Π½Π΅. ΠΡΠΎ ΠΈΡΠΊΠ»ΡΡΠ°Π΅Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ ΡΡΡΠ½ΠΎΠΉ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ Π΄Π»Ρ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² ΠΎΠ±ΠΎΡΡΠ΄ΠΎΠ²Π°Π½ΠΈΡ. ΠΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ° ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ ΡΡΠ΅Π·Π²ΡΡΠ°ΠΉΠ½ΠΎ «ΡΠ»Π°ΡΡΠΈΡΠ½ΠΎΠΉ», ΡΠΎ Π΅ΡΡΡ Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΠΌΠΎΠΉ ΠΈ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΡΠ΅ΠΌΠΎΠΉ. ΠΠ΄Π½ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΠ΅ ΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠ°ΠΊ ΠΎΠ΄Π½ΠΎΠΉ, ΡΠ°ΠΊ ΠΈ 1000 ΠΌΠ°ΡΠΈΠ½Π°ΠΌΠΈ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΎΠ΄ΠΈΠ½ ΠΈ ΡΠΎΡ ΠΆΠ΅ Π½Π°Π±ΠΎΡ ΠΊΠΎΠ΄Π°. Π‘ΡΠ΅Π΄ΠΈ Π³Π°ΡΠ°Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ² ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΡ ΠΊΠ°ΠΊ ΠΊΠΎΠ΄Π° β ΡΠΊΠΎΡΠΎΡΡΡ, ΡΠΊΠΎΠ½ΠΎΠΌΠΈΡΠ½ΠΎΡΡΡ ΠΈ ΡΠΌΠ΅Π½ΡΡΠ΅Π½ΠΈΠ΅ ΡΠΈΡΠΊΠ°.
ΠΠ°ΠΊ ΡΠ°Π· ΠΎΠ± ΡΡΠΎΠΌ ΡΠ°ΡΡΠΈΡΡΠΎΠ²ΠΊΠ° Π΄ΠΎΠΊΠ»Π°Π΄Π° ΠΠΈΡΠΈΠ»Π»Π° ΠΠ΅ΡΡΠΈΠ½ΠΊΠΈΠ½Π° Π½Π° DevOpsDays Moscow 2018. Π Π΄ΠΎΠΊΠ»Π°Π΄Π΅: ΠΏΠ΅ΡΠ΅ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ Ansible, Ρ ΡΠ°Π½Π΅Π½ΠΈΠ΅ Π² Git, ΡΠ΅Π²ΡΡ, ΠΏΠ΅ΡΠ΅ΡΠ±ΠΎΡΠΊΠ°, ΡΠΈΠ½Π°Π½ΡΠΎΠ²ΡΠ΅ Π²ΡΠ³ΠΎΠ΄Ρ, Π³ΠΎΡΠΈΠ·ΠΎΠ½ΡΠ°Π»ΡΠ½ΠΎΠ΅ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π² 1 ΠΊΠ»ΠΈΠΊ.
ΠΠΎΠΌΡ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ, ΠΏΡΠΎΡΡ ΠΏΠΎΠ΄ ΠΊΠ°Ρ.
ΠΡΠ΅ΠΌ ΠΏΡΠΈΠ²Π΅Ρ. ΠΠ°ΠΊ ΡΠΆΠ΅ Π³ΠΎΠ²ΠΎΡΠΈΠ»ΠΈ, Ρ ΠΠ΅ΡΡΠΈΠ½ΠΊΠΈΠ½ ΠΠΈΡΠΈΠ»Π». Π― ΡΠ°Π±ΠΎΡΠ°Ρ Π² ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ TYME ΠΈ ΡΠ΅Π³ΠΎΠ΄Π½Ρ ΠΌΡ Ρ Π²Π°ΠΌΠΈ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡΠΈΠΌ ΠΏΡΠΎ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΡ ΠΊΠ°ΠΊ ΠΊΠΎΠ΄. Π’Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡΠΈΠΌ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΠΌΡ Π½Π°ΡΡΠΈΠ»ΠΈΡΡ ΡΠΊΠΎΠ½ΠΎΠΌΠΈΡΡ Π½Π° ΡΡΠΎΠΉ ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΎΠ½Π° Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π΄ΠΎΡΠΎΠ³Π°Ρ. ΠΠΈΡΠ°ΡΡ ΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, Π΄Π»Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π·Π°ΡΡΠ°ΡΠ½ΠΎ.
ΠΠΊΡΠ°ΡΡΠ΅ ΡΠ°ΡΡΠΊΠ°ΠΆΡ ΠΎ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ. Π― ΡΠ°Π±ΠΎΡΠ°Ρ Π² ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ TYME. Π£ Π½Π°Ρ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ΅Π» ΡΠ΅Π±ΡΠ΅Π½Π΄ΠΈΠ½Π³. Π‘Π΅ΠΉΡΠ°Ρ ΠΌΡ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΡ PaySystem β ΠΊΠ°ΠΊ Π²ΠΈΠ΄Π½ΠΎ ΠΈΠ· Π½Π°Π·Π²Π°Π½ΠΈΡ, ΠΌΡ Π·Π°Π½ΠΈΠΌΠ°Π΅ΠΌΡΡ ΠΏΠ»Π°ΡΠ΅ΠΆΠ½ΡΠΌΠΈ ΡΠΈΡΡΠ΅ΠΌΠ°ΠΌΠΈ. Π£ Π½Π°Ρ Π΅ΡΡΡ ΠΊΠ°ΠΊ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ β ΡΡΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠΈΠ½Π³ΠΈ, ΡΠ°ΠΊ ΠΈ Π·Π°ΠΊΠ°Π·Π½Π°Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°. ΠΠ°ΠΊΠ°Π·Π½Π°Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° β ΡΡΠΎ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΡΠ΅ Π±Π°Π½ΠΊΠΈ, Π±ΠΈΠ»Π»ΠΈΠ½Π³ΠΈ ΠΈ ΡΠΎΠΌΡ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠ΅ Π²Π΅ΡΠΈ. Π ΠΊΠ°ΠΊ Π²Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅ΡΠ΅, Π΅ΡΠ»ΠΈ ΡΡΠΎ Π·Π°ΠΊΠ°Π·Π½Π°Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°, ΡΠΎ ΡΡΠΎ ΠΊΠ°ΠΆΠ΄ΡΠΉ Π³ΠΎΠ΄ Π±ΠΎΠ»ΡΡΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ². ΠΡΠΎΠ΅ΠΊΡ ΠΈΠ΄Π΅Ρ Π·Π° ΠΏΡΠΎΠ΅ΠΊΡΠΎΠΌ. Π§Π΅ΠΌ Π±ΠΎΠ»ΡΡΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ², ΡΠ΅ΠΌ Π±ΠΎΠ»ΡΡΠ΅ ΠΎΠ΄Π½ΠΎΡΠΈΠΏΠ½ΠΎΠΉ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΡ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ ΠΏΠΎΠ΄Π½ΠΈΠΌΠ°ΡΡ. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΏΡΠΎΠ΅ΠΊΡΡ Π·Π°ΡΠ°ΡΡΡΡ Π²ΡΡΠΎΠΊΠΎΠ½Π°Π³ΡΡΠΆΠ΅Π½Π½ΡΠ΅, ΡΠΎ ΠΌΡ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΠΌ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠ½ΡΡ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ. ΠΠΎΡΡΠΎΠΌΡ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡΡΡ Π΅ΡΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ-ΠΌΠ½ΠΎΠ³ΠΎ ΠΌΠ°Π»Π΅Π½ΡΠΊΠΈΡ ΠΏΠΎΠ΄ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ².
Π‘ΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ, Π²ΡΠ΅ΠΌ ΡΡΠΈΠΌ Π·ΠΎΠΎΠΏΠ°ΡΠΊΠΎΠΌ ΡΠΏΡΠ°Π²Π»ΡΡΡ Π±Π΅Π· ΠΏΠΎΠ»Π½ΠΎΡΠ΅Π½Π½ΠΎΠ³ΠΎ DevOps Π²Π΅ΡΡΠΌΠ° ΡΠ»ΠΎΠΆΠ½ΠΎ. ΠΠΎΡΡΠΎΠΌΡ Π² Π½Π°ΡΠ΅ΠΉ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Π²Π½Π΅Π΄ΡΠΈΠ»ΠΈ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΠΏΡΠ°ΠΊΡΠΈΠΊΠΈ DevOps. ΠΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ, ΠΌΡ ΡΠ°Π±ΠΎΡΠ°Π΅ΠΌ ΠΏΠΎ kanban, ΠΏΠΎ SCRUM, Π²ΡΠ΅ Ρ ΡΠ°Π½ΠΈΠΌ Π² git. ΠΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π·Π°ΠΊΠΎΠΌΠΌΠΈΡΠΈΠ»ΠΈ, ΠΈΠ΄Π΅Ρ Π½Π΅ΠΏΡΠ΅ΡΡΠ²Π½Π°Ρ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ, ΠΏΡΠΎΠ³ΠΎΠ½ΡΡΡΡΡ ΡΠ΅ΡΡΡ. Π’Π΅ΡΡΠΈΡΠΎΠ²ΡΠΈΠΊΠΈ ΠΏΠΈΡΡΡ Π½Π° PyTest end-to-end ΡΠ΅ΡΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΊΠ°ΠΆΠ΄ΡΡ Π½ΠΎΡΡ ΡΡΠ°ΡΡΡΡΡ. Unit-test ΡΡΠ°ΡΡΡΡΡ ΠΏΠΎΡΠ»Π΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠ°. ΠΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΡΠ°Π·Π΄Π΅Π»ΡΠ½ΡΠΉ ΠΏΡΠΎΡΠ΅ΡΡ ΡΠ±ΠΎΡΠΊΠΈ ΠΈ Π΄Π΅ΠΏΠ»ΠΎΡ: ΡΠΎΠ±ΡΠ°Π»ΠΈ, ΠΏΠΎΡΠΎΠΌ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ°Π· Π΄Π΅ΠΏΠ»ΠΎΠΈΠΌ Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΡΠ΅Π΄Ρ. ΠΡ Π±ΡΠ»ΠΈ Π½Π° windows. ΠΠ° windows ΠΌΡ Π΄Π΅ΠΏΠ»ΠΎΠΈΠ»ΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Octopus deploy, Π ΡΡΠΎΠΌ Π³ΠΎΠ΄Ρ ΠΌΡ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΠΌ Π½Π° DotNet Core. ΠΠΎΡΡΠΎΠΌΡ ΠΌΡ ΠΈΠΌΠ΅Π΅ΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠ΅ΠΏΠ΅ΡΡ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΠΠ Π½Π° Linux ΡΠΈΡΡΠ΅ΠΌΠ°Ρ . ΠΡ ΡΡΠ»ΠΈ ΠΎΡ Octopus ΠΈ ΠΏΡΠΈΡΠ»ΠΈ ΠΊ Ansible. Π‘Π΅Π³ΠΎΠ΄Π½Ρ ΠΌΡ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡΠΈΠΌ ΠΎΠ± ΡΡΠΎΠΉ ΡΠ°ΡΡΠΈ, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡΠ΅ΠΉ ΠΈΠ· ΡΠ΅Π±Ρ Π½ΠΎΠ²ΡΡ ΠΏΡΠ°ΠΊΡΠΈΠΊΡ, ΠΊΠΎΡΠΎΡΡΡ ΠΌΡ ΡΠ°Π·Π²ΠΈΠ»ΠΈ Π² ΡΡΠΎΠΌ Π³ΠΎΠ΄Ρ, ΡΠΎ ΡΠ΅Π³ΠΎ Ρ Π½Π°Ρ ΡΠ°Π½ΡΡΠ΅ Π½Π΅ Π±ΡΠ»ΠΎ. ΠΠΎΠ³Π΄Π° Ρ Π²Π°Ρ Π΅ΡΡΡ ΡΠ΅ΡΡΡ, ΠΊΠΎΠ³Π΄Π° Π²Ρ ΡΠΌΠ΅Π΅ΡΠ΅ Ρ ΠΎΡΠΎΡΠΎ ΡΠΎΠ±ΠΈΡΠ°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π΄Π΅ΠΏΠ»ΠΎΠΈΡΡ Π΅Π³ΠΎ ΠΊΡΠ΄Π°-ΡΠΎ β Π²ΡΠ΅ ΠΏΡΠ΅ΠΊΡΠ°ΡΠ½ΠΎ. ΠΠΎ Π΅ΡΠ»ΠΈ Ρ Π²Π°Ρ Π΄Π²Π΅ ΡΡΠ΅Π΄Ρ Π½Π°ΡΡΡΠΎΠ΅Π½Ρ ΠΏΠΎ-ΡΠ°Π·Π½ΠΎΠΌΡ, ΡΠΎ Π²Ρ Π²ΡΠ΅ ΡΠ°Π²Π½ΠΎ ΡΠΏΠ°Π΄Π΅ΡΠ΅, ΠΏΡΠΈΡΠ΅ΠΌ ΡΠΏΠ°Π΄Π΅ΡΠ΅ Π½Π° production. ΠΠΎΡΡΠΎΠΌΡ ΡΠΏΡΠ°Π²Π»ΡΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΠΌΠΈ ΡΡΠΎ ΠΎΡΠ΅Π½Ρ Π²Π°ΠΆΠ½Π°Ρ ΠΏΡΠ°ΠΊΡΠΈΠΊΠ°. ΠΠΎΡ ΠΎ Π½Π΅ΠΉ ΠΌΡ ΡΠ΅Π³ΠΎΠ΄Π½Ρ Π±ΡΠ΄Π΅ΠΌ Π³ΠΎΠ²ΠΎΡΠΈΡΡ.
ΠΠΊΡΠ°ΡΡΠ΅ ΡΠ°ΡΡΠΊΠ°ΠΆΡ ΠΊΠ°ΠΊ Π²ΠΎΠΎΠ±ΡΠ΅ ΡΡΡΠΎΠΈΡΡΡ ΡΠΊΠΎΠ½ΠΎΠΌΠΈΠΊΠ° ΠΏΡΠΎΠ΄ΡΠΊΡΠ° ΠΏΠΎ ΡΡΡΠ΄ΠΎΠ·Π°ΡΡΠ°ΡΠ°ΠΌ: 60 ΠΏΡΠΎΡΠ΅Π½ΡΠΎΠ² Ρ Π½Π°Ρ ΡΡΠ°ΡΠΈΡΡΡΡ Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΡ, Π°Π½Π°Π»ΠΈΡΠΈΠΊΠ° Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ Π³Π΄Π΅-ΡΠΎ 10 ΠΏΡΠΎΡΠ΅Π½ΡΠΎΠ², QA (ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅) Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ ΠΎΠΊΠΎΠ»ΠΎ 20 ΠΏΡΠΎΡΠ΅Π½ΡΠΎΠ² ΠΈ Π²ΡΠ΅ ΠΎΡΡΠ°Π»ΡΠ½ΠΎΠ΅ ΠΊΠ°ΠΊ ΡΠ°Π· ΠΎΡΠ²ΠΎΠ΄ΠΈΡΡΡ Π½Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅. ΠΠΎΠ³Π΄Π° ΡΠΈΡΡΠ΅ΠΌΡ ΠΈΠ΄ΡΡ ΡΠ΅Π»ΡΠΌ ΠΏΠΎΡΠΎΠΊΠΎΠΌ, Π² Π½ΠΈΡ
ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΡΡΠΎΡΠΎΠ½Π½Π΅Π΅ ΠΠ, ΡΠ°ΠΌΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°ΡΡΡΡ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎ. ΠΡ Π½Π° ΡΡΠΎ ΡΡΠ°ΡΠΈΠΌ Π»ΠΈΡΠ½Π΅Π΅ Π²ΡΠ΅ΠΌΡ, Π΄Π΅Π»Π°Ρ ΠΏΠΎ ΡΡΡΠΈ ΠΎΠ΄Π½ΠΎ ΠΈ ΡΠΎΠΆΠ΅. ΠΠΎΡΠ²ΠΈΠ»Π°ΡΡ ΠΈΠ΄Π΅Ρ ΡΡΠΎ Π²ΡΠ΅ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΈ ΡΠ½ΠΈΠ·ΠΈΡΡ ΠΈΠ·Π΄Π΅ΡΠΆΠΊΠΈ Π½Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΡ. ΠΠ΄Π½ΠΎΡΠΈΠΏΠ½ΡΠ΅ Π·Π°Π΄Π°ΡΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Ρ, Ρ
ΠΎΡΠΎΡΠΎ ΠΎΡΠ»Π°ΠΆΠ΅Π½Ρ ΠΈ Π½Π΅ ΡΠΎΠ΄Π΅ΡΠΆΠ°Ρ ΡΡΡΠ½ΡΡ
ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ.
ΠΠ°ΠΆΠ΄ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π² ΠΊΠ°ΠΊΠΎΠΌ-ΡΠΎ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠΈ. ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ, ΠΈΠ· ΡΠ΅Π³ΠΎ ΡΡΠΎ Π²ΡΠ΅ ΡΠΎΡΡΠΎΠΈΡ. Π£ Π½Π°Ρ ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡΠΌ Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ°, Π΅Π΅ Π½ΡΠΆΠ½ΠΎ ΡΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠΎΠ²Π°ΡΡ, Π΅ΡΡΡ ΠΊΠ°ΠΊΠΈΠ΅-ΡΠΎ ΡΡΠΎΡΠΎΠ½Π½ΠΈΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΎΠΆΠ΅ Π½ΡΠΆΠ½ΠΎ ΡΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠΎΠ²Π°ΡΡ, ΡΠ°ΠΌΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ, Π½ΠΎ ΡΡΠΎΠ±Ρ Π²Π΅ΡΡ ΠΏΡΠΎΠ΄ΡΠΊΡ Π·Π°ΡΠ°Π±ΠΎΡΠ°Π», Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π·Π°ΠΏΡΡΡΠΈΡΡΡΡ ΡΠ°ΠΌΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π²ΠΎ Π²ΡΠ΅ΠΉ ΡΡΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅ ΡΡΠ½ΠΊΡΠΈΠΎΠ½ΠΈΡΡΠ΅Ρ. ΠΡΡΡ Π΅ΡΠ΅ ΡΠ΅ΡΡ, ΠΊΠΎΡΠΎΡΡΡ ΡΠΎΠΆΠ΅ Π½ΡΠΆΠ½ΠΎ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°ΡΡ, Π½ΠΎ ΠΏΡΠΎ ΡΠ΅ΡΡ ΠΌΡ ΡΠ΅Π³ΠΎΠ΄Π½Ρ Π³ΠΎΠ²ΠΎΡΠΈΡΡ Π½Π΅ Π±ΡΠ΄Π΅ΠΌ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Ρ Π½Π°Ρ ΡΠ°Π·Π½ΡΠ΅ Π·Π°ΠΊΠ°Π·ΡΠΈΠΊΠΈ, ΡΠ°Π·Π½ΡΠ΅ ΡΠ΅ΡΠ΅Π²ΡΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²Π°. ΠΡ ΠΏΡΡΠ°Π»ΠΈΡΡ ΡΠΎΠΆΠ΅ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ΅ΡΠΈ, Π½ΠΎ ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π° ΡΠ°Π·Π½ΡΠ΅, Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ ΠΎΡΠΎΠ±ΠΎ ΡΠΎΠ»ΠΊΡ ΠΎΡ ΡΡΠΎΠ³ΠΎ Π½Π΅ Π±ΡΠ»ΠΎ, Π±ΠΎΠ»ΡΡΠ΅ ΡΡΠ°ΡΠΈΠ»ΠΈ ΡΠ΅ΡΡΡΡΠΎΠ² Π½Π° ΡΡΠΎ. ΠΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ, ΡΡΠΎΡΠΎΠ½Π½ΠΈΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ
ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² Π² ΡΠ°ΠΌΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΌΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°Π»ΠΈ.
ΠΠ²Π° ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π° ΠΊΠ°ΠΊ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ΅ΡΠ²Π΅ΡΠ°: ΡΡΠΊΠ°ΠΌΠΈ β Π΅ΡΠ»ΠΈ Π²Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΡΠ΅ΡΠ΅ ΠΈΡ ΡΡΠΊΠ°ΠΌΠΈ, Ρ Π²Π°Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡΡΡ ΡΠ°ΠΊΠ°Ρ ΡΠΈΡΡΠ°ΡΠΈΡ, ΡΡΠΎ Ρ Π²Π°Ρ production Π½Π°ΡΡΡΠΎΠ΅Π½ ΠΎΠ΄Π½ΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΠ΅ΡΡ Π΄ΡΡΠ³ΠΈΠΌ, Π½Π° ΡΠ΅ΡΡΠ΅ Π²ΡΠ΅ Π·Π΅Π»Π΅Π½ΠΎΠ΅, ΡΠ΅ΡΡΡ Π·Π΅Π»Π΅Π½ΡΠ΅. ΠΡ Π΄Π΅ΠΏΠ»ΠΎΠΈΡΠ΅ Π½Π° production, Π° ΡΠ°ΠΌ Π½Π΅ ΡΡΠΎΠΈΡ ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ β Ρ Π²Π°Ρ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ. ΠΡΡΠ³ΠΎΠΉ ΠΏΡΠΈΠΌΠ΅Ρ: ΡΡΠΈ Application ΡΠ΅ΡΠ²Π΅ΡΠ° Π½Π°ΡΡΡΠΎΠ΅Π½Ρ ΡΡΠΊΠ°ΠΌΠΈ. ΠΠ΄ΠΈΠ½ Application ΡΠ΅ΡΠ²Π΅Ρ Π½Π°ΡΡΡΠΎΠΈΠ»ΠΈ ΠΎΠ΄Π½ΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π΄ΡΡΠ³ΠΎΠΉ Application ΡΠ΅ΡΠ²Π΅Ρ Π΄ΡΡΠ³ΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ. Π‘Π΅ΡΠ²Π΅ΡΠ° ΠΌΠΎΠ³ΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΏΠΎ-ΡΠ°Π·Π½ΠΎΠΌΡ. ΠΡΠ΅ ΠΏΡΠΈΠΌΠ΅Ρ: Π±ΡΠ»Π° ΡΠΈΡΡΠ°ΡΠΈΡ, ΠΊΠΎΠ³Π΄Π° Ρ Π½Π°Ρ ΠΎΠ΄ΠΈΠ½ Stage ΡΠ΅ΡΠ²Π΅Ρ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΏΠ΅ΡΠ΅ΡΡΠ°Π» ΡΠ°Π±ΠΎΡΠ°ΡΡ. ΠΠ°ΠΏΡΡΡΠΈΠ»ΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΡΠ΅ΡΠ²Π΅ΡΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΈ ΡΠ΅ΡΠ΅Π· 30 ΡΠ΅ΡΠ²Π΅Ρ Π±ΡΠ» Π³ΠΎΡΠΎΠ². ΠΡΠ΅ ΠΏΡΠΈΠΌΠ΅Ρ: ΡΠ΅ΡΠ²Π΅Ρ ΠΏΡΠΎΡΡΠΎ ΠΏΠ΅ΡΠ΅ΡΡΠ°Π» ΡΠ°Π±ΠΎΡΠ°ΡΡ. ΠΡΠ»ΠΈ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π»ΠΈ ΡΡΠΊΠ°ΠΌΠΈ, ΡΠΎ Π½ΡΠΆΠ½ΠΎ ΠΈΡΠΊΠ°ΡΡ ΡΠ΅Π»ΠΎΠ²Π΅ΠΊΠ°, ΠΊΠΎΡΠΎΡΡΠΉ Π·Π½Π°Π΅Ρ ΠΊΠ°ΠΊ Π΅Π³ΠΎ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°ΡΡ, Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΠ΄Π½ΠΈΠΌΠ°ΡΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ. ΠΠ°ΠΊ ΠΌΡ Π·Π½Π°Π΅ΠΌ, Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ Π²ΡΡΠ΄ Π»ΠΈ Π±ΡΠ²Π°Π΅Ρ Π°ΠΊΡΡΠ°Π»ΡΠ½ΠΎΠΉ. ΠΡΠΎ Π±ΠΎΠ»ΡΡΠΈΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ. Π, ΡΠ°ΠΌΠΎΠ΅ Π³Π»Π°Π²Π½ΠΎΠ΅, β ΡΡΠΎ Π°ΡΠ΄ΠΈΡ, ΡΠΎ Π΅ΡΡΡ Π³ΡΡΠ±ΠΎ Π³ΠΎΠ²ΠΎΡΡ, Ρ Π²Π°Ρ Π΅ΡΡΡ Π΄Π΅ΡΡΡΡ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠΎΠ², ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΈΠ· Π½ΠΈΡ ΡΡΠΎ-ΡΠΎ ΡΡΠΊΠ°ΠΌΠΈ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π΅Ρ, ΡΠΎ Π½Π΅ ΠΎΡΠΎΠ±ΠΎ ΠΏΠΎΠ½ΡΡΠ½ΠΎ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎ ΠΎΠ½ΠΈ ΡΡΠΎ Π½Π°ΡΡΡΠΎΠΈΠ»ΠΈ ΠΈΠ»ΠΈ Π½Π΅ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎ, ΠΈ ΠΊΠ°ΠΊ Π²ΠΎΠΎΠ±ΡΠ΅ ΠΏΠΎΠ½ΡΡΡ, Π½ΡΠΆΠ½ΠΎ Π»ΠΈ Π΄Π΅Π»Π°ΡΡ ΠΊΠ°ΠΊΠΈΠ΅-ΡΠΎ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ, ΠΌΠΎΠ³Π»ΠΈ ΡΡΠΎ-ΡΠΎ Π»ΠΈΡΠ½Π΅Π΅ ΠΏΠΎΡΡΠ°Π²ΠΈΡΡ, ΠΎΡΠΊΡΡΡΡ ΠΊΠ°ΠΊΠΈΠ΅-ΡΠΎ Π½Π΅Π½ΡΠΆΠ½ΡΠ΅ ΠΏΠΎΡΡΡ.
ΠΡΡΡ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π½ΡΠΉ Π²Π°ΡΠΈΠ°Π½Ρ β ΡΡΠΎ ΠΊΠ°ΠΊ ΡΠ°Π· ΡΠΎ, ΠΏΡΠΎ ΡΡΠΎ ΠΌΡ ΡΠ΅Π³ΠΎΠ΄Π½Ρ Π³ΠΎΠ²ΠΎΡΠΈΠΌ β ΡΡΠΎ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ· ΠΊΠΎΠ΄Π°. Π’ΠΎ Π΅ΡΡΡ Ρ Π½Π°Ρ Π΅ΡΡΡ git ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π²ΡΡ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ° Ρ ΡΠ°Π½ΠΈΡΡΡ. Π’Π°ΠΌ Ρ ΡΠ°Π½ΡΡΡΡ Π²ΡΠ΅ ΡΠΊΡΠΈΠΏΡΡ, Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΡΠΎΡΡΡ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΡΡΠΎ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°ΡΡ. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΡΠΎ Π²ΡΠ΅ Π² git, ΠΌΡ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ Π²ΡΠ΅ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° ΠΎΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΊΠΎΠ΄ΠΎΠΌ, ΠΊΠ°ΠΊ Π² ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅, ΡΠΎ Π΅ΡΡΡ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π΅Π»Π°ΡΡ ΡΠ΅Π²ΡΡ, Π°ΡΠ΄ΠΈΡ, ΠΈΡΡΠΎΡΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, ΠΊΡΠΎ ΡΠ΄Π΅Π»Π°Π», ΠΏΠΎΡΠ΅ΠΌΡ ΡΠ΄Π΅Π»Π°Π», ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ, ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΡΠΊΠ°ΡΡΠ²Π°ΡΡΡΡ. Π§ΡΠΎΠ±Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΠΊΠΎΠ΄ΠΎΠΌ Π½ΡΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ Π½Π΅ΠΏΡΠ΅ΡΡΠ²Π½ΠΎΠΉ ΡΠ±ΠΎΡΠΊΠΈ β ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΡ. Π§ΡΠΎΠ±Ρ ΠΊΠ°ΠΊΠ°Ρ-ΡΠΎ ΡΠΈΡΡΠ΅ΠΌΠ° ΠΈΠΌΠ΅Π½Π½ΠΎ Π²Π½ΠΎΡΠΈΠ»Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΡΠ΅ΡΠ²Π΅ΡΠ°, ΡΠΎ Π΅ΡΡΡ Π½Π΅ ΡΠ΅Π»ΠΎΠ²Π΅ΠΊ ΡΡΠΎ-ΡΠΎ ΡΡΠΊΠ°ΠΌΠΈ Π΄Π΅Π»Π°Π», Π° ΠΈΡΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π΄Π΅Π»Π°Π»Π° ΡΡΠΎ ΡΠΈΡΡΠ΅ΠΌΠ°.
Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠΈΡΡΠ΅ΠΌΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π²Π½ΠΎΡΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ Ansible. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ Ρ Π½Π°Ρ Π½Π΅Ρ ΠΎΠ³ΡΠΎΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΡΠ΅ΡΠ²Π΅ΡΠΎΠ², ΠΎΠ½ Π½Π°ΠΌ Π²ΠΏΠΎΠ»Π½Π΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ. ΠΡΠ»ΠΈ Ρ Π²Π°Ρ ΡΠ°ΠΌ 100-200 ΡΠ΅ΡΠ²Π΅ΡΠΎΠ², ΡΠΎ Ρ Π²Π°Ρ Π±ΡΠ΄ΡΡ Π½Π΅Π±ΠΎΠ»ΡΡΠΈΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΎΠ½ (Ρ.Π΅. Ansible) Π²ΡΠ΅-ΡΠ°ΠΊΠΈ ΡΠΎΠ΅Π΄ΠΈΠ½ΡΠ΅ΡΡΡ Ρ ΠΊΠ°ΠΆΠ΄ΡΠΌ ΠΈ ΠΏΠΎ ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ ΠΈΡ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π΅Ρ β ΡΡΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°. ΠΡΡΡΠ΅ Π΄ΡΡΠ³ΠΈΠ΅ ΡΡΠ΅Π΄ΡΡΠ²Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ ΠΏΡΡΠ°Ρ (push), Π° ΠΏΡΠ»ΡΡ (pull). ΠΠΎ Π΄Π»Ρ Π½Π°ΡΠ΅ΠΉ ΠΈΡΡΠΎΡΠΈΠΈ, ΠΊΠΎΠ³Π΄Π° Ρ Π½Π°Ρ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ², Π½ΠΎ ΡΠ΅ΡΠ²Π΅ΡΠΎΠ² Π½Π΅ Π±ΠΎΠ»ΡΡΠ΅ 20 β Π½Π°ΠΌ ΡΡΠΎ Π²ΠΏΠΎΠ»Π½Π΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ. Π£ Ansible Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΏΠ»ΡΡ β ΡΡΠΎ Π½ΠΈΠ·ΠΊΠΈΠΉ ΠΏΠΎΡΠΎΠ³ Π²Ρ ΠΎΠΆΠ΄Π΅Π½ΠΈΡ. Π’ΠΎ Π΅ΡΡΡ Π±ΡΠΊΠ²Π°Π»ΡΠ½ΠΎ Π»ΡΠ±ΠΎΠΉ ΠΠ’-ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΡΡ Π·Π° ΡΡΠΈ Π½Π΅Π΄Π΅Π»ΠΈ ΠΌΠΎΠΆΠ΅Ρ Π΅Π³ΠΎ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΎΡΠ²ΠΎΠΈΡΡ. Π£ Π½Π΅Π³ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ. Π’ΠΎ Π΅ΡΡΡ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΏΡΠ°Π²Π»ΡΡΡ ΠΎΠ±Π»Π°ΠΊΠ°ΠΌΠΈ, ΡΠ΅ΡΡΠΌΠΈ, ΡΠ°ΠΉΠ»Π°ΠΌΠΈ, ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ, Π΄Π΅ΠΏΠ»ΠΎΠ΅ΠΌ β Π°Π±ΡΠΎΠ»ΡΡΠ½ΠΎ Π²ΡΠ΅ΠΌ. ΠΡΠ»ΠΈ Π½Π΅Ρ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΡΠ²ΠΎΠΉ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π² ΠΊΠΎΠ½ΡΠ΅ ΠΊΠΎΠ½ΡΠΎΠ² Π½Π°ΠΏΠΈΡΠ°ΡΡ ΡΡΠΎ-ΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ Ansible shell ΠΈΠ»ΠΈ command.
Π ΠΎΠ±ΡΠ΅ΠΌ, Π²ΠΊΡΠ°ΡΡΠ΅ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΊΠ°ΠΊ ΠΎΠ½ Π²ΠΎΠΎΠ±ΡΠ΅ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ, ΡΡΠΎΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ. Π£ Ansible Π΅ΡΡΡ ΠΌΠΎΠ΄ΡΠ»ΠΈ, ΠΏΡΠΎ ΠΊΠΎΡΠΎΡΡΠ΅ Ρ ΡΠΆΠ΅ Π³ΠΎΠ²ΠΎΡΠΈΠ». Π’ΠΎ Π΅ΡΡΡ ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ, ΡΠ°ΠΌΠΈΠΌ ΠΏΠΈΡΠ°ΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΠΎ-ΡΠΎ Π΄Π΅Π»Π°ΡΡ. ΠΡΡΡ inventories β ΡΡΠΎ ΠΊΡΠ΄Π° ΠΌΡ Π±ΡΠ΄Π΅ΠΌ Π½Π°ΠΊΠ°ΡΡΠ²Π°ΡΡ Π½Π°ΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΡΠΎ Π΅ΡΡΡ ΡΡΠΎ Ρ ΠΎΡΡΡ, ΠΈΡ IP Π°Π΄ΡΠ΅ΡΠ°, ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅, ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΡΠ΅ Π΄Π»Ρ ΡΡΠΈΡ Ρ ΠΎΡΡΠΎΠ². Π, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ, ΡΠΎΠ»ΠΈ. Π ΠΎΠ»ΠΈ β ΡΡΠΎ ΡΡΠΎ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ Π½Π°ΠΊΠ°ΡΡΠ²Π°ΡΡ Π½Π° ΡΡΠΈ ΡΠ΅ΡΠ²Π΅ΡΠ°. Π ΡΠ°ΠΊΠΆΠ΅ Ρ Π½Π°Ρ Ρ ΠΎΡΡΡ Π³ΡΡΠΏΠΏΠΈΡΡΡΡΡΡ ΠΏΠΎ Π³ΡΡΠΏΠΏΠ°ΠΌ, ΡΠΎ Π΅ΡΡΡ Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΌΡ Π²ΠΈΠ΄ΠΈΠΌ, ΡΡΠΎ Ρ Π½Π°Ρ Π΅ΡΡΡ Π΄Π²Π΅ Π³ΡΡΠΏΠΏΡ: ΡΠ΅ΡΠ²Π΅ΡΠ° Π±Π°Π· Π΄Π°Π½Π½ΡΡ ΠΈ ΡΠ΅ΡΠ²Π΅ΡΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π³ΡΡΠΏΠΏΠ΅ Ρ Π½Π°Ρ ΠΏΠΎ ΡΡΠΈ ΠΌΠ°ΡΠΈΠ½Ρ. ΠΠ½ΠΈ ΠΏΠΎ ssh ΡΠΎΠ΅Π΄ΠΈΠ½ΡΡΡΡΡ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΌΡ ΡΠ΅ΡΠ°Π΅ΠΌ ΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, ΠΏΡΠΎ ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΡ Π³ΠΎΠ²ΠΎΡΠΈΠ»ΠΈ ΡΠ°Π½ΡΡΠ΅, ΡΡΠΎ Ρ Π½Π°Ρ Π²ΠΎ ΠΏΠ΅ΡΠ²ΡΡ ΡΠ΅ΡΠ²Π΅ΡΠ° Π½Π°ΡΡΡΠΎΠ΅Π½Ρ ΠΈΠ΄Π΅Π½ΡΠΈΡΠ½ΠΎ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΠ΄Π½Π° ΠΈ ΡΠ° ΠΆΠ΅ ΡΠΎΠ»Ρ Π½Π°ΠΊΠ°ΡΡΠ²Π°Π΅ΡΡΡ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ°. Π ΡΠΎΡΠ½ΠΎ ΡΠ°ΠΊ ΠΆΠ΅, Π΅ΡΠ»ΠΈ ΡΡΡ ΡΠΎΠ»Ρ Π·Π°ΠΏΡΡΡΠΈΠΌ Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΌΠ°ΡΠΈΠ½Π°Ρ , ΡΠΎ Π½Π° ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠΎΠΆΠ΅ ΠΎΠ½Π° ΠΎΡΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ.
ΠΡΠ»ΠΈ ΠΌΡ Π±ΠΎΠ»Π΅Π΅ Π³Π»ΡΠ±ΠΎΠΊΠΎ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ Π½Π° ΡΠΎ, ΠΊΠ°ΠΊ ΡΡΡΡΠΎΠ΅Π½ ΠΏΡΠΎΠ΅ΠΊΡ Ansible, ΡΠΎ Π·Π΄Π΅ΡΡ ΠΌΡ Π²ΠΈΠ΄ΠΈΠΌ, ΡΡΠΎ Π²ΠΎΡ inventories Ρ ΠΎΡΡΡ Π΄ΠΎΠΏΡΡΡΠΈΠΌ Π΄Π»Ρ production. ΠΠΎΡ ΡΡΠ° Π³ΡΡΠΏΠΏΠ° ΡΠΊΠ°Π·Π°Π½Π° ΠΈ Π² Π½Π΅ΠΉ Π΄Π²Π° ΡΠ΅ΡΠ²Π΅ΡΠ°. ΠΡΠ»ΠΈ ΠΌΡ Π·Π°ΠΉΠ΄Π΅ΠΌ Π² ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΉ ΡΠ΅ΡΠ²Π΅Ρ, ΡΠΎ Π²ΠΈΠ΄ΠΈΠΌ ΡΡΠΎ Π·Π΄Π΅ΡΡ ΡΠΊΠ°Π·Π°Π½ IP Π°Π΄ΡΠ΅Ρ ΡΡΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Ρ. Π’Π°ΠΊΠΆΠ΅ ΡΠ°ΠΌ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΡΠΊΠ°Π·Π°Π½Ρ Π΄ΡΡΠ³ΠΈΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ β ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅, ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΡΠ΅ Π΄Π»Ρ ΡΡΠΎΠΉ ΡΡΠ΅Π΄Ρ. ΠΡΠ»ΠΈ ΠΌΡ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ Π½Π° ΡΠΎΠ»ΠΈ. Π’ΠΎ ΡΠΎΠ»Ρ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π·Π°Π΄Π°Ρ (task), ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ΄ΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ. Π Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΡΠΎ ΡΠΎΠ»Ρ Π΄Π»Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ PostgreSQL. Π’ΠΎ Π΅ΡΡΡ ΠΌΡ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΡΠΎΠ·Π΄Π°Π΅ΠΌ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ . ΠΠ΄Π΅ΡΡ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΡΠΈΠΊΠ». ΠΡ (Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ ) Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΎΠ·Π΄Π°ΡΡΡΡ. ΠΠ°ΡΠ΅ΠΌ ΠΌΡ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΠ΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ β IP Π°Π΄ΡΠ΅ΡΠ°, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ Π² ΡΡΠΎΠΉ Π±Π°Π·Π΅ Π°Π²ΡΠΎΡΠΈΠ·ΠΎΠ²Π°ΡΡΡΡ. Π, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ, Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΠΌ Π² ΡΠ°ΠΌΠΎΠΌ ΠΊΠΎΠ½ΡΠ΅ firewall. ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ Π±ΡΠ΄ΡΡ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½Ρ ΠΊΠΎ Π²ΡΠ΅ΠΌ ΡΠ΅ΡΠ²Π΅ΡΠ°ΠΌ Π² Π³ΡΡΠΏΠΏΠ΅.
ΠΠ°ΠΊ ΡΠ°Π· ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΠΌ ΠΊ ΡΠ°ΠΌΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ΅: ΠΌΡ ΠΎΡΠ»ΠΈΡΠ½ΠΎ Π½Π°ΡΡΠΈΠ»ΠΈΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ΅ΡΠ²Π΅ΡΠ° Ρ ΠΏΠΎΠΌΠΎΡΡΡ Ansible ΠΈ Π±ΡΠ»ΠΎ Π²ΡΠ΅ ΠΏΡΠ΅ΠΊΡΠ°ΡΠ½ΠΎ. ΠΠΎ, ΠΊΠ°ΠΊ Ρ ΡΠΆΠ΅ Π³ΠΎΠ²ΠΎΡΠΈΠ», Ρ Π½Π°Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ². ΠΠ½ΠΈ ΠΏΠΎΡΡΠΈ Π²ΡΠ΅ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ. Π ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ΅ ΡΡΠ°ΡΡΠ²ΡΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ Π²ΠΎΡ ΡΠ°ΠΊΠΈΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ (k8s, RabbitMQ, Vault, ELK, PostgreSQL, HAProxy). ΠΠ»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΌΡ Π½Π°ΠΏΠΈΡΠ°Π»ΠΈ ΡΠ²ΠΎΡ ΡΠΎΠ»Ρ. ΠΡ Π΅Π΅ ΠΌΠΎΠΆΠ΅ΠΌ Π½Π°ΠΊΠ°ΡΡΠ²Π°ΡΡ Ρ ΠΊΠ½ΠΎΠΏΠΊΠΈ.
ΠΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ² ΡΠΎ Ρ Π½Π°Ρ ΠΌΠ½ΠΎΠ³ΠΎ ΠΈ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΎΠ½ΠΈ ΠΏΠΎ ΡΡΡΠΈ ΠΏΠ΅ΡΠ΅ΡΠ΅ΠΊΠ°ΡΡΡΡ. Π’ΠΎ Π΅ΡΡΡ Π² ΠΎΠ΄Π½ΠΎΠΌ ΡΠ°ΠΊΠΎΠΉ Π½Π°Π±ΠΎΡ, Π²ΠΎ Π²ΡΠΎΡΠΎΠΌ ΡΠ°ΠΊΠΎΠΉ, Π² ΡΡΠ΅ΡΡΠ΅ΠΌ ΡΠ°ΠΊΠΎΠΉ. Π£ Π½Π°Ρ ΠΏΠΎΠ»ΡΡΠ°ΡΡΡΡ ΡΠΎΡΠΊΠΈ ΠΏΠ΅ΡΠ΅ΡΠ΅ΡΠ΅Π½ΠΈΡ, Π² ΠΊΠΎΡΠΎΡΡΡ ΠΎΠ΄Π½ΠΈ ΠΈ ΡΠ΅ ΠΆΠ΅ ΡΠΎΠ»ΠΈ Π² ΡΠ°Π·Π½ΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°Ρ .
Π£ Π½Π°Ρ Π΅ΡΡΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ, Π΅ΡΡΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ Ρ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠΎΠΉ Π΄Π»Ρ ΠΏΡΠΎΠ΅ΠΊΡΠ°. Π£ Π²ΡΠΎΡΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΡΠΎΡΠ½ΠΎ ΡΠ°ΠΊΠΆΠ΅. ΠΡΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΡ. Π Ρ ΡΡΠ΅ΡΡΠ΅Π³ΠΎ. ΠΡΠ»ΠΈ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΠΎΠ΄Π½ΠΎ ΠΈ ΡΠΎ ΠΆΠ΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²ΡΠ²Π°ΡΡ, ΡΠΎ ΠΏΠΎ ΡΡΡΠΈ ΠΏΠΎΠ»ΡΡΠΈΡΡΡ copy-paste. ΠΠ° ΠΎΠ΄Π½Ρ ΠΈ ΡΡ ΠΆΠ΅ ΡΠΎΠ»Ρ Π² 10 ΠΌΠ΅ΡΡΠ°Ρ ΡΠ΄Π΅Π»Π°Π΅ΠΌ. ΠΠΎΡΠΎΠΌ, Π΅ΡΠ»ΠΈ Π±ΡΠ΄Π΅Ρ ΠΊΠ°ΠΊΠ°Ρ-ΡΠΎ ΠΎΡΠΈΠ±ΠΊΠ°, ΠΌΡ Π±ΡΠ΄Π΅ΠΌ Π² 10 ΠΌΠ΅ΡΡΠ°Ρ ΠΏΡΠ°Π²ΠΈΡΡ.
Π§ΡΠΎ ΠΌΡ ΡΠ΄Π΅Π»Π°Π»ΠΈ: ΠΌΡ ΠΊΠ°ΠΆΠ΄ΡΡ ΡΠΎΠ»Ρ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΎΠ±ΡΠ°Ρ Π΄Π»Ρ Π²ΡΠ΅Ρ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ² ΠΈ Π²ΡΠ΅ Π΅Π΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΈΡ ΠΎΠ΄ΡΡ ΠΈΠ·Π²Π½Π΅, Π²ΡΠ½Π΅ΡΠ»ΠΈ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ ΠΈ ΠΏΠΎΠ»ΠΎΠΆΠΈΠ»ΠΈ ΠΈΡ Π² Π³ΠΈΡ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΠΏΠ°ΠΏΠΎΡΠΊΡ β Π½Π°Π·Π²Π°Π»ΠΈ TYME Infrastructure. Π’Π°ΠΌ Ρ Π½Π°Ρ Π»Π΅ΠΆΠΈΡ ΡΠΎΠ»Ρ Π΄Π»Ρ PostgreSQL, Π΄Π»Ρ ELK, Π΄Π»Ρ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΡ ΠΊΠ»Π°ΡΡΠ΅ΡΠΎΠ² Kubernetes. ΠΡΠ»ΠΈ Π½Π°ΠΌ Π² ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ ΠΏΡΠΎΠ΅ΠΊΡ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ ΠΏΠΎΡΡΠ°Π²ΠΈΡΡ Π΄ΠΎΠΏΡΡΡΠΈΠΌ ΡΠΎΡ ΠΆΠ΅ PostgreSQL, ΡΠΎ ΠΏΡΠΎΡΡΠΎ Π²ΠΊΠ»ΡΡΠ°Π΅ΠΌ Π΅Π³ΠΎ ΠΊΠ°ΠΊ submodule, ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΡΠ²Π°Π΅ΠΌ inventories, ΡΠΎ Π΅ΡΡΡ, Π³ΡΡΠ±ΠΎ Π³ΠΎΠ²ΠΎΡΡ, ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ ΠΊΡΠ΄Π° ΡΡΡ ΡΠΎΠ»Ρ Π½Π°ΠΊΠ°ΡΡΠ²Π°ΡΡ. Π‘Π°ΠΌΡ ΡΠΎΠ»Ρ ΠΌΡ Π½Π΅ ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΡΠ²Π°Π΅ΠΌ: ΠΎΠ½Π° ΡΠΆΠ΅ Π΅ΡΡΡ. Π Ρ Π½Π°Ρ ΠΏΠΎ ΠΊΠ»ΠΈΠΊΡ ΠΊΠ½ΠΎΠΏΠΊΠΈ Π²ΠΎ Π²ΡΠ΅Ρ Π½ΠΎΠ²ΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°Ρ ΠΏΠΎΡΠ²Π»ΡΠ΅ΡΡΡ PostgreSQL. ΠΡΠ»ΠΈ Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΠ΄Π½ΡΡΡ ΠΊΠ»Π°ΡΡΠ΅Ρ Kubernetes β ΡΠΎ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅.
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΎΡΡ ΡΠ½ΠΈΠ·ΠΈΡΡ ΠΈΠ·Π΄Π΅ΡΠΆΠΊΠΈ Π½Π° Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΠΎΠ»Π΅ΠΉ. Π’ΠΎ Π΅ΡΡΡ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π· Π½Π°ΠΏΠΈΡΠ°Π»ΠΈ β 10 ΡΠ°Π· ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ. ΠΠΎΠ³Π΄Π° ΠΏΡΠΎΠ΅ΠΊΡ ΠΈΠ΄Π΅Ρ Π·Π° ΠΏΡΠΎΠ΅ΠΊΡΠΎΠΌ β ΡΡΠΎ ΠΎΡΠ΅Π½Ρ ΡΠ΄ΠΎΠ±Π½ΠΎ. ΠΠΎ ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΌΡ ΡΠ΅ΠΏΠ΅ΡΡ ΡΠ°Π±ΠΎΡΠ°Π΅ΠΌ Ρ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠΎΠΉ ΠΊΠ°ΠΊ Ρ ΠΊΠΎΠ΄ΠΎΠΌ, Π½Π°ΠΌ, Π΅ΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ, Π½ΡΠΆΠ½Ρ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅ΡΡ, ΠΏΡΠΎ ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΡ Π³ΠΎΠ²ΠΎΡΠΈΠ»ΠΈ. ΠΡΠ΄ΠΈ ΠΊΠΎΠΌΠΌΠΈΡΡΡ Π² git, ΠΌΠΎΠ³ΡΡ Π·Π°ΠΊΠΎΠΌΠΌΠΈΡΠΈΡΡ ΠΊΠ°ΠΊΡΡ-ΡΠΎ Π½Π΅ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΡΡΡ β Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΡΠΎ Π²ΡΠ΅ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°ΡΡ. ΠΠΎΡΡΠΎΠΌΡ Ρ Π½Π°Ρ ΠΏΠΎΡΡΡΠΎΠ΅Π½ Π²ΠΎΡ ΡΠ°ΠΊΠΎΠΉ pipeline. Π’ΠΎ Π΅ΡΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΊΠΎΠΌΠΌΠΈΡΠΈΡ Π² git ΡΠΊΡΠΈΠΏΡΡ Ansible. TeamΠ‘ity ΠΈΡ ΡΡΠ΅ΠΊΠ°Π΅Ρ ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅Ρ Π² Ansible. Teamcity Π·Π΄Π΅ΡΡ Π½ΡΠΆΠ΅Π½ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΡΠΈΡΠΈΠ½Π΅: Π²ΠΎ ΠΏΠ΅ΡΠ²ΡΡ , Ρ Π½Π΅Π³ΠΎ Π²ΠΈΠ·ΡΠ°Π»ΡΠ½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ (Π΅ΡΡΡ Π±Π΅ΡΠΏΠ»Π°ΡΠ½Π°Ρ Π²Π΅ΡΡΠΈΡ Ansible Tower β AWX, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠ΅ΡΠ°Π΅Ρ ΡΡΡ ΠΆΠ΅ Π·Π°Π΄Π°ΡΡ β ΠΏΡΠΈΠΌ. ΡΠ΅Π΄.) Π² ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ Ansible Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΠΎΠ³ΠΎ ΠΈ, Π² ΠΏΡΠΈΠ½ΡΠΈΠΏΠ΅, Ρ Π½Π°Ρ Teamcity ΠΊΠ°ΠΊ Π΅Π΄ΠΈΠ½ΡΠΉ CI. Π’Π°ΠΊ-ΡΠΎ Π² ΠΏΡΠΈΠ½ΡΠΈΠΏΠ΅ Ansible ΠΈΠΌΠ΅Π΅Ρ ΠΌΠΎΠ΄ΡΠ»Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ°ΠΌ ΠΌΠΎΠΆΠ΅Ρ git ΡΡΠ΅ΠΊΠ°ΡΡ. ΠΠΎ Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΠ΄Π΅Π»Π°Π»ΠΈ ΠΏΡΠΎΡΡΠΎ ΠΏΠΎ ΠΎΠ±ΡΠ°Π·Ρ ΠΈ ΠΏΠΎΠ΄ΠΎΠ±ΠΈΡ. Π ΠΊΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ½ Π΅Π³ΠΎ ΡΡΡΠΊΠ½ΡΠ», ΠΎΠ½ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅Ρ Π²Π΅ΡΡ ΠΊΠΎΠ΄ Π² Ansible ΠΈ Ansible ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ ΠΈΡ Π½Π° integration ΡΠ΅ΡΠ²Π΅ΡΠ΅ ΠΈ ΠΌΠ΅Π½ΡΠ΅Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ. ΠΡΠ»ΠΈ ΡΡΠΎΡ ΠΏΡΠΎΡΠ΅ΡΡ Π½Π°ΡΡΡΠΈΠ»ΡΡ, Π·Π½Π°ΡΠΈΡ ΠΌΡ ΡΠ°Π·Π±ΠΈΡΠ°Π΅ΠΌ ΡΡΠΎ Π½Π΅ ΡΠ°ΠΊ, ΠΏΠΎΡΠ΅ΠΌΡ ΠΏΠ»ΠΎΡ ΠΎ Π½Π°ΠΏΠΈΡΠ°Π»ΠΈ ΡΠΊΡΠΈΠΏΡΡ.
ΠΡΠΎΡΠΎΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ, ΡΡΠΎ Π΅ΡΡΡ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½Π°Ρ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ°, ΡΠΎ Π·Π΄Π΅ΡΡ Ρ Π½Π°Ρ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ° Π΄Π΅ΠΏΠ»ΠΎΠΈΡΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ, ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄Π΅ΠΏΠ»ΠΎΠΈΡΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ. ΠΠΎ Π΅ΡΡΡ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΡΡ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ° Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΡΠΎ Π΅ΡΡΡ ΠΊΠΎΡΠΎΡΡΡ Π½ΡΠΆΠ½ΠΎ Π΄Π΅ΠΏΠ»ΠΎΠΈΡΡ ΠΏΠ΅ΡΠ΅Π΄ ΡΠ΅ΠΌ, ΠΊΠ°ΠΊ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ Π΅Π³ΠΎ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ. ΠΠ΄Π΅ΡΡ, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ, Π½Π΅Π»ΡΠ·Ρ Π²ΡΠ½ΠΎΡΠΈΡΡ ΡΡΠΎ Π² ΡΠ°Π·Π½ΡΠΉ pipeline. Π£ Π²Π°Ρ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΡΠΎ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°ΡΡΡΡ Π² ΡΠΎΠΌ ΠΆΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ΅, ΡΡΠΎ ΠΈ ΡΠ°ΠΌΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π’ΠΎ Π΅ΡΡΡ, Π΄ΠΎΠΏΡΡΡΠΈΠΌ, ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΈ β ΠΏΠΎΠΏΡΠ»ΡΡΠ½Π°Ρ Π²Π΅ΡΡ, ΠΊΠΎΠ³Π΄Π° Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π΄Π»Ρ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΎΠ΄ΠΈΠ½ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ ΠΏΠΎΡΡΠ°Π²ΠΈΡΡ, Π΄Π»Ρ Π΄ΡΡΠ³ΠΎΠ³ΠΎ Π΄ΡΡΠ³ΠΎΠΉ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ ΠΏΠΎΡΡΠ°Π²ΠΈΡΡ. ΠΠΎΡ ΠΊΠ°ΠΊ Ρ Π΄Π°Π½Π½ΠΎΠΉ ΡΠΈΡΡΠ°ΡΠΈΠ΅ΠΉ. ΠΠΈΠ±ΠΎ ΠΊΡΡΠΈ Π½Π°Π΄ΠΎ ΠΏΠΎΡΠΈΡΡΠΈΡΡ. Π ΠΏΡΠΈΠΌΠ΅ΡΡ, Ansible ΠΌΠΎΠΆΠ΅Ρ ΡΠ°ΠΊΠΆΠ΅ Π·Π°Π»Π΅Π·ΡΡ, ΠΊΡΡ ΠΏΠΎΡΠΈΡΡΠΈΡΡ.
ΠΠΎ Π·Π΄Π΅ΡΡ ΠΌΡ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΠΌ Π΄ΠΎΠΊΠ΅Ρ Π² ΡΠΎΡΠ΅ΡΠ°Π½ΠΈΠΈ Ρ Ansible. Π’ΠΎ Π΅ΡΡΡ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½Π°Ρ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ° Π½Π°Ρ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² Π΄ΠΎΠΊΠ΅ΡΠ΅, Π½Π΅ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½Π°Ρ Π² Ansible. Π ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΌΡ ΠΊΠ°ΠΊ Π±Ρ ΡΠ°Π·Π΄Π΅Π»ΡΠ΅ΠΌ Π²ΠΎΡ ΡΡΡ ΠΌΠ°Π»Π΅Π½ΡΠΊΡΡ Π΄Π΅Π»ΡΡΡ Π² Π΄ΠΎΠΊΠ΅ΡΠ΅, Π²ΡΠ΅ ΠΎΡΡΠ°Π»ΡΠ½ΠΎΠ΅, ΡΡΠ½Π΄Π°ΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΠΎΠ΅ β Π² Ansible.
ΠΡΠ΅Π½Ρ Π²Π°ΠΆΠ½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ β Π΅ΡΠ»ΠΈ Π²Ρ ΠΊΠ°ΡΠΈΡΠ΅ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΡ ΡΠ΅ΡΠ΅Π· ΠΊΠ°ΠΊΠΈΠ΅-ΡΠΎ ΡΠΊΡΠΈΠΏΡΡ, ΡΠ΅ΡΠ΅Π· ΠΊΠΎΠ΄, ΡΠΎ Π΅ΡΠ»ΠΈ Ρ Π²Π°Ρ Π²ΡΠ΅ ΠΆΠ΅ ΠΎΡΡΠ°ΡΡΡΡ ΡΡΡΠ½ΡΠ΅ ΠΌΠ°Π½ΠΈΠΏΡΠ»ΡΡΠΈΠΈ ΡΠ΅ΡΠ²Π΅ΡΠ°ΠΌΠΈ, ΡΠΎ ΡΡΠΎ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½Π°Ρ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΡ. ΠΠΎΡΠΎΠΌΡ ΡΡΠΎ Π΄ΠΎΠΏΡΡΡΠΈΠΌ, Π²Ρ Π½Π° ΡΠ΅ΡΡΠΎΠ²ΡΠΉ ΡΠ΅ΡΠ²Π΅Ρ ΠΏΠΎΡΡΠ°Π²ΠΈΠ»ΠΈ java, Π½Π°ΠΏΠΈΡΠ°Π»ΠΈ ΡΠΎΠ»Ρ ELK, Π½Π°ΠΊΠ°ΡΠΈΠ»ΠΈ Π΅Π΅. ΠΠ΅ΠΏΠ»ΠΎΠΉ Π² ΡΠ΅ΡΡ ΠΏΡΠΎΡΠ΅Π» ΡΡΠΏΠ΅ΡΠ½ΠΎ. ΠΠ΅ΠΏΠ»ΠΎΠΈΡΠ΅ Π² production, Π° ΡΠ°ΠΌ java Π½Π΅Ρ. Π java Π² ΡΠΊΡΠΈΠΏΡΠ΅ Π²Ρ Π½Π΅ ΡΠΊΠ°Π·Π°Π»ΠΈ β Π΄Π΅ΠΏΠ»ΠΎΠΉ Π² production ΡΠΏΠ°Π». ΠΠΎΡΡΠΎΠΌΡ Π½ΡΠΆΠ½ΠΎ Π·Π°Π±ΡΠ°ΡΡ ΠΏΡΠ°Π²Π° ΡΠΎ Π²ΡΠ΅Ρ ΡΠ΅ΡΠ²Π΅ΡΠΎΠ² Ρ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠΎΠ², ΡΡΠΎΠ±Ρ ΠΎΠ½ΠΈ ΡΡΠΊΠ°ΠΌΠΈ ΡΡΠ΄Π° Π½Π΅ Π·Π°Π»Π΅Π·Π°Π»ΠΈ ΠΈ Π²ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π²Π½ΠΎΡΠΈΠ»ΠΈ ΡΠ΅ΡΠ΅Π· git. ΠΠ΅ΡΡ ΡΡΠΎΡ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ ΠΌΡ ΡΠ°ΠΌΠΈ ΠΏΡΠΎΡ ΠΎΠ΄ΠΈΠ»ΠΈ. ΠΠ΄Π΅ΡΡ Π΅ΡΡΡ ΠΎΠ΄Π½ΠΎ Π½ΠΎ β Π½Π΅ Π½Π°Π΄ΠΎ ΡΠΈΠ»ΡΠ½ΠΎ Π·Π°ΠΊΡΡΡΠΈΠ²Π°ΡΡ Π³Π°ΠΉΠΊΠΈ. Π’ΠΎ Π΅ΡΡΡ Π½ΡΠΆΠ½ΠΎ Π²Π½Π΅Π΄ΡΡΡΡ ΡΠ°ΠΊΠΎΠΉ ΠΏΡΠΎΡΠ΅ΡΡ ΠΏΠΎΡΡΠ΅ΠΏΠ΅Π½Π½ΠΎ. ΠΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΎΠ½ Π²ΡΠ΅ Π΅ΡΠ΅ Π½Π΅ΠΎΠ±ΠΊΠ°ΡΠ°Π½Π½ΡΠΉ. Π Π½Π°ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΌΡ ΠΎΡΡΠ°Π²ΠΈΠ»ΠΈ Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ Π²ΡΠ΅Ρ ΡΠΈΡΡΠ΅ΠΌ Ρ ΡΠ°ΠΌΠΎΠ³ΠΎ Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΠΈΡΠ΅Π»Ρ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠΎΠ² Π½Π° ΡΠ»ΡΡΠ°ΠΉ Π½Π΅ΠΏΡΠ΅Π΄Π²ΠΈΠ΄Π΅Π½Π½ΡΡ ΠΈΠ½ΡΠΈΠ΄Π΅Π½ΡΠΎΠ². ΠΠΎΡΡΡΠΏ Π²ΡΠ΄Π°Π½ Ρ ΡΡΠ»ΠΎΠ²ΠΈΠ΅ΠΌ, ΡΡΠΎ ΠΎΠ½ Π½Π΅ Π±ΡΠ΄Π΅Ρ Π½ΠΈΡΠ΅Π³ΠΎ ΡΡΠΊΠ°ΠΌΠΈ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°ΡΡ.
ΠΠ°ΠΊ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°? ΠΡΠΊΠ°ΡΠΊΠ° Π² staging, production Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ Π±Π΅Π· ΠΎΡΠΈΠ±ΠΎΠΊ. Π£ Π½Π°Ρ ΡΡΠΎ-ΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΡΠ»ΠΎΠΌΠ°ΡΡΡΡ. ΠΡΠ»ΠΈ Π²ΡΠΊΠ°ΡΠΊΠ° Π² integration ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ ΠΏΠ°Π΄Π°ΡΡ Π½Π° ΠΎΡΠΈΠ±ΠΊΠ°Ρ β ΡΡΠΎ Π±ΡΠ΄Π΅Ρ ΠΏΠ»ΠΎΡ ΠΎ. ΠΡΠΎ ΠΏΠΎΡ ΠΎΠΆΠ΅ Π½Π° ΠΎΡΠ»Π°ΠΆΠΈΠ²Π°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π° ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Π΅. ΠΠΎΠ³Π΄Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ ΡΠ½Π°ΡΠ°Π»Π° Π²ΡΠ΅ Π½Π° ΠΌΠ°ΡΠΈΠ½Π΅, ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅Ρ. ΠΡΠ»ΠΈ Π²ΡΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅ΡΡΡ, ΠΏΠΎΡΠΎΠΌ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ. ΠΠ΄Π΅ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠ°ΠΊΠΎΠΉ ΠΆΠ΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄. Π Π°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ Visual Studio Code Ρ ΠΏΠ»Π°Π³ΠΈΠ½Π°ΠΌΠΈ Ansible, Vagrant, Docker ΠΈ Ρ.Π΄. Π Π°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΡΠ΅ΡΡΠΈΡΡΡΡ ΡΠ²ΠΎΠΉ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ½ΡΠΉ ΠΊΠΎΠ΄ Π½Π° Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΌ vagrant. Π’Π°ΠΌ ΠΏΠΎΠ΄Π½ΠΈΠΌΠ°Π΅ΡΡΡ ΡΠΈΡΡΠ°Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ°. Π‘Π°ΠΌΠΈ ΡΠΊΡΠΈΠΏΡΡ Π΄Π»Ρ ΠΏΠΎΠ΄Π½ΡΡΠΈΡ ΡΡΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Ρ ΡΠΎΠΆΠ΅ Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ Π² ΡΡΠΎΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ Ρ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠΎΠΉ, ΠΏΡΠΎ ΠΊΠΎΡΠΎΡΡΡ ΠΌΡ Π³ΠΎΠ²ΠΎΡΠΈΠ»ΠΈ. Π Π°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ Π½Π°ΡΠΈΠ½Π°Π΅Ρ Π½Π° Π½Π΅ΠΉ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ FTP-ΡΠ΅ΡΠ²Π΅Ρ. ΠΡΠ»ΠΈ ΡΡΠΎ-ΡΠΎ ΠΏΠΎΡΠ»ΠΎ Π½Π΅ ΡΠ°ΠΊ, ΠΎΠ½ Π΅Π΅ ΠΏΡΠΎΡΡΠΎ ΡΠ΄Π°Π»ΡΠ΅Ρ, Π·Π°Π½ΠΎΠ²ΠΎ Π·Π°Π³ΡΡΠΆΠ°Π΅Ρ, ΠΈ Π·Π°Π½ΠΎΠ²ΠΎ ΠΏΡΡΠ°Π΅ΡΡΡ Π½Π° Π½Π΅Π΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π½ΡΠΆΠ½ΠΎΠ΅ ΠΠ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠΊΡΠΈΠΏΡΡ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΡ. ΠΠΎΡΠ»Π΅ ΠΎΡΠ»Π°Π΄ΠΊΠΈ ΡΠΊΡΠΈΠΏΡΠΎΠ² ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΡ ΠΎΠ½ Π΄Π΅Π»Π°Π΅Ρ Merge Request Π² ΠΎΡΠ½ΠΎΠ²Π½ΡΡ Π²Π΅ΡΠΊΡ. ΠΠΎΡΠ»Π΅ ΡΠ»ΠΈΡΠ½ΠΈΡ Merge Request CI ΡΠ°ΡΠΊΠ°ΡΡΠ²Π°Π΅Ρ ΡΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ integration ΡΠ΅ΡΠ²Π΅Ρ.
ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π²ΡΠ΅ ΡΠΊΡΠΈΠΏΡΡ ΡΡΠΎ ΠΊΠΎΠ΄, ΡΠΎ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΈΡΠ°ΡΡ ΡΠ΅ΡΡΡ. ΠΠΎΠΏΡΡΡΠΈΠΌ, ΠΌΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΠ»ΠΈ PostgreSQL. Π₯ΠΎΡΠΈΠΌ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΎΠ½ ΠΈΠ»ΠΈ Π½Π΅Ρ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΠΌΠΎΠ΄ΡΠ»Ρ Ansible assert. Π‘ΡΠ°Π²Π½ΠΈΠ²Π°Π΅ΠΌ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΡ Π²Π΅ΡΡΠΈΡ PostgreSQL Ρ Π²Π΅ΡΡΠΈΠ΅ΠΉ Π² ΡΠΊΡΠΈΠΏΡΠ°Ρ . Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΌΡ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅ΠΌ, ΡΡΠΎ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½, ΠΎΠ½ Π²ΠΎΠΎΠ±ΡΠ΅ Π·Π°ΠΏΡΡΠ΅Π½, ΠΎΠ½ ΡΠΎΠΉ ΡΠ°ΠΌΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΌΡ ΠΎΠΆΠΈΠ΄Π°Π»ΠΈ.
ΠΡ Π²ΠΈΠ΄ΠΈΠΌ, ΡΡΠΎ ΡΠ΅ΡΡ ΠΏΡΠΎΡΠ΅Π». ΠΠ½Π°ΡΠΈΡ Π½Π°Ρ playbook ΠΎΡΡΠ°Π±ΠΎΡΠ°Π» ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎ. Π’Π°ΠΊΠΈΡ ΡΠ΅ΡΡΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΈΡΠ°ΡΡ ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ³ΠΎΠ΄Π½ΠΎ. ΠΠ½ΠΈ ΠΈΠ΄Π΅ΠΌΠΏΠΎΡΠ΅Π½ΡΠ½ΡΠ΅. ΠΠ΄Π΅ΠΌΠΏΠΎΡΠ΅Π½ΡΠ½ΠΎΡΡΡ (ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π΅ΡΠ»ΠΈ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΠΊ Π»ΡΠ±ΠΎΠΌΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π· β Π²ΡΠ΅Π³Π΄Π° ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΡΡ ΡΠΎ ΠΆΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΠΊΠ°ΠΊ ΠΈ ΠΏΡΠΈ ΠΎΠ΄Π½ΠΎΠΊΡΠ°ΡΠ½ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΈ). ΠΡΠ»ΠΈ Π²Ρ ΠΏΠΈΡΠΈΡΠ΅ ΡΠ²ΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΡΠΊΡΠΈΠΏΡ ΠΏΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅, Π½Π°ΡΡΡΠΎΠΉΠΊΠ΅, ΡΠΎ ΡΠ±Π΅Π΄ΠΈΡΠ΅ΡΡ ΡΡΠΎ Π²Π°ΡΠΈ ΡΠΊΡΠΈΠΏΡΡ Π²ΡΠ΅Π³Π΄Π° ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ ΡΠΎ ΠΆΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, Π΅ΡΠ»ΠΈ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΠΈΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π·.
ΠΡΡΡ Π΅ΡΠ΅ Π΄ΡΡΠ³ΠΎΠΉ ΡΠΈΠΏ ΡΠ΅ΡΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΊ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΡ Π½Π°ΠΏΡΡΠΌΡΡ Π½Π΅ ΠΎΡΠ½ΠΎΡΡΡΡΡ. ΠΠΎ ΠΎΠ½ΠΈ ΠΊΠ°ΠΊ Π±Ρ ΠΊΠΎΡΠ²Π΅Π½Π½ΠΎ Π·Π°ΡΡΠ°Π³ΠΈΠ²Π°ΡΡ Π΅Π³ΠΎ. ΠΡΠΎ end-to-end ΡΠ΅ΡΡΡ. Π£ Π½Π°Ρ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ° ΠΈ ΡΠ°ΠΌΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡΡΡ Π½Π° ΠΎΠ΄ΠΈΠ½ ΠΈ ΡΠΎΡ ΠΆΠ΅ ΡΠ΅ΡΠ²Π΅Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ΅ΡΡΠΈΡΠΎΠ²ΡΠΈΠΊΠΈ ΡΠ΅ΡΡΠΈΡΡΡΡ. ΠΡΠ»ΠΈ ΠΌΡ Π½Π°ΠΊΠ°ΡΠΈΠ»ΠΈ ΠΊΠ°ΠΊΡΡ-ΡΠΎ Π½Π΅ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΡΡ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΡ, ΡΠΎ Ρ Π½Π°Ρ ΠΏΡΠΎΡΡΠΎ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΠ½ΡΠ΅ ΡΠ΅ΡΡΡ Π½Π΅ ΠΏΡΠΎΠΉΠ΄ΡΡ. Π’ΠΎ Π΅ΡΡΡ Π½Π°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π±ΡΠ΄Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΊΠ°ΠΊ-ΡΠΎ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ. Π Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ Π½Π° production ΡΡΡΠ°Π½ΠΎΠ²ΠΈΠ»ΠΈ Π½ΠΎΠ²ΡΡ Π²Π΅ΡΡΠΈΡ β ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ. ΠΠ°ΡΠ΅ΠΌ Π±ΡΠ» ΡΠ΄Π΅Π»Π°Π½ commit Π² git ΠΈ end-to-end ΡΠ΅ΡΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΎΡ ΠΎΠ΄ΠΈΡ ΠΏΠΎ Π½ΠΎΡΠ°ΠΌ, ΠΎΡΡΠ»Π΅Π΄ΠΈΠ»ΠΈ, ΡΡΠΎ Π²ΠΎΡ Π·Π΄Π΅ΡΡ Ρ Π½Π°Ρ ΠΎΡΡΡΡΡΡΠ²ΡΠ΅Ρ ΡΠ°ΠΉΠ» Π½Π° ftp. Π Π°Π·Π±ΠΈΡΠ°Π΅ΠΌ ΡΡΠΎΡ ΠΊΠ΅ΠΉΡ ΠΈ Π²ΠΈΠ΄ΠΈΠΌ, ΡΡΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΠΈΠΌΠ΅Π½Π½ΠΎ Π² Π½Π°ΡΡΡΠΎΠΉΠΊΠ°Ρ ftp. ΠΡ ΠΈΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌ ΡΠΊΡΠΈΠΏΡΡ Π² ΠΊΠΎΠ΄Π΅, ΡΠ½ΠΎΠ²Π° Π΄Π΅ΠΏΠ»ΠΎΠΈΠΌ ΠΈ Π²ΡΠ΅ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ Π·Π΅Π»Π΅Π½ΡΠΌ. Π’Π°ΠΊΠ°Ρ ΠΆΠ΅ ΠΈΡΡΠΎΡΠΈΡ Ρ ΠΊΠΎΠ΄ΠΎΠΌ. ΠΠΎΠ΄ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΡ ΠΈ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ° ΡΠ°ΠΊ ΠΈΠ»ΠΈ ΠΈΠ½Π°ΡΠ΅ ΠΊΠΎΡΠ²Π΅Π½Π½ΠΎ ΡΠ΅ΡΡΠΈΡΡΠ΅ΡΡΡ. ΠΡ Π΅Π΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΡΠΎΠΌ Π΄Π΅ΠΏΠ»ΠΎΠΈΡΡ Π½Π° production.
ΠΠΎΠ³Π΄Π° ΠΌΡ ΡΡΠΎΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ Π²Π½Π΅Π΄ΡΠΈΠ»ΠΈ, CI (Teamcity), ΠΊΠΎΡΠΎΡΡΠΉ Π²ΡΠΊΠ°ΡΡΠ²Π°Π» ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π½Π° integration ΡΠ΅ΡΠ²Π΅Ρ ΠΏΠ°Π΄Π°Π» 8 ΡΠ°Π· ΠΈΠ· 10. ΠΠΈΠΊΡΠΎ Π½Π΅ ΠΎΠ±ΡΠ°ΡΠ°Π» Π½Π° ΡΡΠΎ Π²Π½ΠΈΠΌΠ°Π½ΠΈΡ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Π½Π΅ Π±ΡΠ»ΠΎ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΉ ΡΠ²ΡΠ·ΠΈ. Π£ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΡΡΠΈ ΠΏΡΠΎΡΠ΅ΡΡΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π΄Π°Π²Π½ΠΎ Π±ΡΠ»ΠΈ Π²Π½Π΅Π΄ΡΠ΅Π½Ρ, Π° Π΄ΠΎ OPS (ΡΠΈΡΡΠ΅ΠΌΠ½ΡΡ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠΎΠ²) ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Π½Π΅ Π΄ΠΎΡ ΠΎΠ΄ΠΈΠ»ΠΈ. ΠΠΎΡΡΠΎΠΌΡ ΠΌΡ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ Dashboard ΡΠΎ ΡΠ±ΠΎΡΠΊΠ°ΠΌΠΈ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ° Π½Π° Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΌΠΎΠ½ΠΈΡΠΎΡ Π² ΡΠ°ΠΌΠΎΠΌ Π²ΠΈΠ΄Π½ΠΎΠΌ ΠΌΠ΅ΡΡΠ΅ Π² ΠΎΡΠΈΡΠ΅. ΠΠ° Π½Π΅ΠΌ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΡ Π²ΡΠ΄Π΅Π»Π΅Π½Ρ Π·Π΅Π»Π΅Π½ΡΠΌ β ΡΡΠΎ Π·Π½Π°ΡΠΈΡ, ΡΡΠΎ Ρ Π½ΠΈΠΌ Π²ΡΠ΅ Π² ΠΏΠΎΡΡΠ΄ΠΊΠ΅. ΠΡΠ»ΠΈ Π²ΡΠ΄Π΅Π»Π΅Π½Ρ ΠΊΡΠ°ΡΠ½ΡΠΌ Π·Π½Π°ΡΠΈΡ, ΡΡΠΎ Ρ Π½ΠΈΠΌ Π²ΡΠ΅ ΠΏΠ»ΠΎΡ ΠΎ. ΠΡ Π²ΠΈΠ΄ΠΈΠΌ, ΡΡΠΎ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ΅ΡΡΡ Π½Π΅ ΠΏΡΠΎΡΠ»ΠΈ. ΠΠ° ΠΏΡΠ΅Π·Π΅Π½ΡΠ°ΡΠΈΠΈ Π² Π»Π΅Π²ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Π΅ Π²ΡΠΎΡΠΎΠΉ ΡΠ²Π΅ΡΡ Ρ Π²ΠΈΠ΄ΠΈΠΌ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΡΡ Π΄Π΅ΠΏΠ»ΠΎΠΉΠ½ΡΡ ΡΠ°ΡΠΎΠΊ. ΠΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ½ΡΠ΅ Π΄Π΅ΠΏΠ»ΠΎΠΉΠ½ΡΠ΅ ΡΠ°ΡΠΊΠΈ Π·Π΅Π»Π΅Π½ΡΠ΅. ΠΡΠΎ Π·Π½Π°ΡΠΈΡ, ΡΡΠΎ Π²ΡΠ΅ ΡΠ΅ΡΡΡ ΠΏΡΠΎΠΉΠ΄Π΅Π½Ρ, Π½ΠΈΠΊΠ°ΠΊΠΈΡ Π΄Π΅ΡΠ΅ΠΊΡΠΎΠ² Π½Π΅ Π±ΡΠ»ΠΎ, ΠΎΠ½ΠΈ ΡΡΠΏΠ΅ΡΠ½ΠΎ ΡΠΎΠ±ΡΠ°Π»ΠΈΡΡ. ΠΠΏΠΎΠ²Π΅ΡΠ΅Π½ΠΈΠ΅: ΠΠΎΠΏΡΡΡΠΈΠΌ ΠΠ’-ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΡΡ Π·Π°ΠΏΡΡΡΠΈΠ» ΡΠΊΡΠΈΠΏΡ ΠΈ ΠΎΡΠΎΡΠ΅Π». ΠΡΠ»ΠΈ ΠΊΠΎΠΌΠΌΠΈΡ Π²ΡΠ΅ ΡΠ»ΠΎΠΌΠ°Π». ΠΠΌΡ Π² ΠΊΠ°Π½Π°Π» Slack ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡ ΠΎΠΏΠΎΠ²Π΅ΡΠ΅Π½ΠΈΠ΅ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ Π²ΠΎΡ ΡΠ°ΠΊΠΎΠΉ-ΡΠΎ ΠΠ’-ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΡΡ ΡΠ°ΠΊΠΈΠΌ-ΡΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠΌ ΡΠ»ΠΎΠΌΠ°Π» Π½Π°Ρ ΠΏΡΠΎΠ΅ΠΊΡ.
Ok, ΠΌΡ ΡΠ΅ΠΉΡΠ°Ρ Π³ΠΎΠ²ΠΎΡΠΈΠ»ΠΈ ΠΏΡΠΎ ΡΠΎ, ΠΊΠ°ΠΊ ΠΌΡ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΠΌ, ΠΊΠ°ΠΊ ΠΌΡ ΠΊΠΎΠΌΠΌΠΈΡΠΈΠΌ ΠΊΠ°ΠΊΠΈΠ΅-ΡΠΎ ΡΠ΅ΡΡΠΎΠ²ΡΠ΅ ΡΡΠ΅Π΄Ρ, ΠΊΠ°ΠΊ ΠΌΡ Π²ΠΎΠΎΠ±ΡΠ΅ Π²ΡΠΊΠ°ΡΡΠ²Π°Π΅Ρ ΡΡΠΎ Π΄Π°Π»ΡΡΠ΅ Π½Π° Π΄ΡΡΠ³ΠΈΠ΅ ΡΡΠ΅Π΄Ρ. ΠΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ trunk based ΠΏΠΎΠ΄Ρ ΠΎΠ΄. ΠΠΎΡΡΠΎΠΌΡ Π·Π΄Π΅ΡΡ Master Π²Π΅ΡΠΊΠ° β ΡΡΠΎ ΠΎΡΠ½ΠΎΠ²Π½Π°Ρ Π²Π΅ΡΠΊΠ° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ. ΠΡΠΈ ΠΊΠΎΠΌΠΌΠΈΡΠ΅ Π² Master Π²Π΅ΡΠΊΡ CI ΡΠ΅ΡΠ²Π΅Ρ (Teamcity) Π²ΡΠΊΠ°ΡΡΠ²Π°Π΅Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π½Π° integration ΡΠ΅ΡΠ²Π΅Ρ. ΠΡΠ»ΠΈ ΡΠ°ΡΠΊΠ° Π² CI ΡΠ΅ΡΠ²Π΅ΡΠ΅ Π·Π΅Π»Π΅Π½Π°Ρ, ΡΠΎ ΡΠΎΠ³Π΄Π° ΠΌΡ ΠΏΠΈΡΠ΅ΠΌ ΡΠ΅ΡΡΠΈΡΠΎΠ²ΡΠΈΠΊΠ°ΠΌ ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΏΡΠΎΠ΄ΡΠΊΡ Π½Π° integration ΡΠ΅ΡΠ²Π΅ΡΠ΅. Π€ΠΎΡΠΌΠΈΡΡΠ΅ΠΌ release candidate. ΠΠ° ΡΠ΅ΡΡΠΎΠ²ΠΎΠΌ ΡΠ΅ΡΠ²Π΅ΡΠ΅ ΡΡΠ° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ ΠΏΠΎΡΠ²Π»ΡΠ΅ΡΡΡ. ΠΠ΅ ΡΠ΅ΡΡΠΈΡΠΎΠ²ΡΠΈΠΊΠΈ ΠΌΠΎΠ³ΡΡ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ Π²ΠΌΠ΅ΡΡΠ΅ Ρ ΡΠ°ΠΌΠΈΠΌΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌΠΈ. ΠΡΠ»ΠΈ Π²ΡΠ΅ ΠΎΠΊ, Π΅ΡΠ»ΠΈ end-to-end ΡΠ΅ΡΡΡ ΠΏΡΠΎΠΉΠ΄Π΅Π½Ρ, ΠΌΡ ΡΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠ°ΠΌΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π²ΡΠΊΠ°ΡΡΠ²Π°ΡΡ Π½Π° staging ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅. ΠΠ°ΡΠ΅ΠΌ ΠΌΠΎΠΆΠ΅ΠΌ Π²ΡΠΊΠ°ΡΡΠ²Π°ΡΡ Π½Π° production. ΠΠ° ΡΡΠ΅Ρ ΡΠ°ΠΊΠΈΡ Π²ΠΎΡ ΡΠ°Π·Π½ΠΎΡΡΠΎΠ²Π½Π΅Π²ΡΡ Π±Π°ΡΡΠ΅ΡΠΎΠ² ΠΌΡ Π΄ΠΎΡΡΠΈΠ³Π°Π΅ΠΌ ΡΠΎΠ³ΠΎ, ΡΡΠΎ staging ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅ Ρ Π½Π°Ρ Π²ΡΠ΅Π³Π΄Π° Π·Π΅Π»Π΅Π½ΠΎΠ΅.
Π‘ΡΠ°Π²Π½ΠΈΠΌ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠΎΠΉ ΠΈΠ· ΠΊΠΎΠ΄Π° ΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠ° ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΡ ΡΡΠΊΠ°ΠΌΠΈ. ΠΠ°ΠΊΠ°Ρ ΡΠΊΠΎΠ½ΠΎΠΌΠΈΠΊΠ°? ΠΠ°Π½Π½ΡΠΉ Π³ΡΠ°ΡΠΈΠΊ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΠΊΠ°ΠΊ ΠΌΡ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π»ΠΈ PostgreSQL. Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠΎΠΉ ΠΈΠ· ΠΊΠΎΠ΄Π° ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΎΡΡ 5 ΡΠ°Π· Π΄ΠΎΡΠΎΠΆΠ΅ Π½Π° ΡΠ°Π½Π½Π΅ΠΌ ΡΡΠ°ΠΏΠ΅. ΠΡΠ΅ ΡΠΊΡΠΈΠΏΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π½Π°ΠΏΠΈΡΠ°ΡΡ, ΠΎΡΠ°Π»Π°Π΄ΠΈΡΡ ΡΡΠΊΠ°ΠΌΠΈ. ΠΡΠΎΠΉ Π·Π°ΠΉΠΌΠ΅Ρ 1-2 ΡΠ°ΡΠ°. Π‘ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½Π΅ΠΌ ΠΏΠΎΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠΏΡΡ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΡΡΠΈΡ ΡΠΊΡΠΈΠΏΡΠΎΠ². Π‘ΡΠ°Π²Π½ΠΈΠΌ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΡ, Π½Π°ΡΡΡΠΎΠΉΠΊΡ PostgreSQL ΡΠ°Ρ ΡΡΠΊΠ°ΠΌΠΈ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠΊΡΠΈΠΏΡ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΡ. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΠΊΡΠΈΠΏΡΡ ΡΠ°Π·Π²Π΅ΡΡΠ²Π°Π½ΠΈΡ ΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ PostgreSQL ΡΠΆΠ΅ Π½Π°ΠΏΠΈΡΠ°Π½Ρ, ΡΠΎ Π΄Π΅ΠΏΠ»ΠΎΠΈΡΡΡ Π½Π° staging, production 4 ΠΌΠΈΠ½ΡΡΡ. Π§Π΅ΠΌ Π±ΠΎΠ»ΡΡΠ΅ ΡΡΠ΅Π΄, ΡΠ΅ΠΌ Π±ΠΎΠ»ΡΡΠ΅ ΠΌΠ°ΡΠΈΠ½, ΡΠΎ Π²Ρ Π½Π°ΡΠΈΠ½Π°Π΅ΡΠ΅ Π²ΡΠΈΠ³ΡΡΠ²Π°ΡΡ ΠΏΠΎ ΡΡΡΠ΄ΠΎΠ·Π°ΡΡΠ°ΡΠ°ΠΌ Π² Π½Π°ΡΡΡΠΎΠΉΠΊΠ΅ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ΅. Π Π΅ΡΠ»ΠΈ Ρ Π²Π°Ρ ΠΎΠ΄ΠΈΠ½ ΠΏΡΠΎΠ΅ΠΊΡ ΠΈ ΠΎΠ΄Π½Π° Π±Π°Π·Π° Π΄Π°Π½Π½ΡΡ , ΡΠΎ Π²Π°ΠΌ Π΄Π΅ΡΠ΅Π²Π»Π΅ ΡΡΠΎ Π΄Π΅Π»Π°ΡΡ ΡΡΠΊΠ°ΠΌΠΈ. Π’ΠΎ Π΅ΡΡΡ ΡΡΠΎ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΠΊΠΎΠ³Π΄Π° Ρ Π²Π°Ρ ΠΌΠ°ΡΡΡΠ°Π±Π½ΡΠ΅ ΠΊΠ°ΠΊΠΈΠ΅-ΡΠΎ ΠΏΡΠΎΠ΅ΠΊΡΡ.
ΠΡ Π²Π½Π΅Π΄ΡΠΈΠ»ΠΈ git submodule ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅ΠΌ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π· ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Ansible ΡΠΎΠ»Ρ. ΠΠ°ΠΌ Π²ΡΠΎΡΠΎΠΉ ΡΠ°Π· Π½Π΅ ΠΏΠΈΡΠ°ΡΡ Π½Π΅ Π½ΡΠΆΠ½ΠΎ, ΠΎΠ½Π° ΡΠΆΠ΅ Π΅ΡΡΡ. ΠΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ git submodule Ρ Ansible ΡΠΎΠ»ΡΡ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ Π² ΠΏΡΠΎΠ΅ΠΊΡ. ΠΠΈΡΠ΅ΠΌ Π² inventories ΡΠ΅ΡΠ²Π΅ΡΠ°, ΠΊΡΠ΄Π° ΡΡΡ ΡΠΎΠ»Ρ Π΄Π΅ΠΏΠ»ΠΎΠΈΡΡ. ΠΡΠΎ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ 30 ΠΌΠΈΠ½ΡΡ. Π ΡΠ»ΡΡΠ°Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ git submodule ΡΡΡΠ΄ΠΎΠ·Π°ΡΡΠ°ΡΡ Π½Π° Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΠΊΡΠΈΠΏΡΠΎΠ² ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΡ ΡΠΈΠ»ΡΠ½ΠΎ ΠΎΠ±ΠΎΠ³Π½Π°Π» ΡΡΡΠ½ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ.
ΠΡΠΎ ΠΈΠ΄Π΅Π½ΡΠΈΡΠ½ΠΎΡΡΡ ΡΡΠ΅Π΄: Π·Π΄Π΅ΡΡ Ρ Π½Π΅ Π³ΠΎΡΠΎΠ² ΡΠΊΠ°Π·Π°ΡΡ, ΡΠΊΠΎΠ»ΡΠΊΠΎ Ρ Π½Π°Ρ Π±ΡΠ»ΠΎ ΠΎΡΠΈΠ±ΠΎΠΊ Π΄ΠΎ ΡΡΠΎΠ³ΠΎ ΠΈ ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΠ°Π»ΠΎ ΠΏΠΎΡΠΎΠΌ. ΠΠΎ Ρ ΠΎΡΡ ΡΠΊΠ°Π·Π°ΡΡ, ΡΡΠΎ ΠΏΡΠΈ ΡΠΎΠ±Π»ΡΠ΄Π΅Π½ΠΈΠΈ Π²ΡΠ΅Ρ ΠΏΡΠ°Π²ΠΈΠ», ΠΏΡΠΎ ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΡ ΡΠ΅Π³ΠΎΠ΄Π½Ρ Π³ΠΎΠ²ΠΎΡΠΈΠ»ΠΈ, Ρ Π½Π°Ρ staging Π½Π°ΡΡΡΠΎΠ΅Π½ ΡΠΎΡΠ½ΠΎ ΡΠ°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ ΡΠ΅ΡΡ. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ, Π΅ΡΠ»ΠΈ ΡΠ΅ΡΡ ΡΠ°Π·Π²Π°Π»ΠΈΠ²Π°Π΅ΡΡΡ, ΠΌΡ ΡΠ½ΠΈΡΡΠΎΠΆΠ°Π΅ΠΌ ΠΌΠ°ΡΠΈΠ½Ρ, Π·Π°Π½ΠΎΠ²ΠΎ ΠΏΡΡΠ°Π΅ΠΌΡΡ Π½Π°ΡΡΡΠΎΠΈΡΡ, ΠΈ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½Π° ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ Π·Π΅Π»Π΅Π½Π°Ρ, Π½Π°ΠΊΠ°ΡΡΠ²Π°Π΅ΡΡΡ Π²ΡΠ΅ Π΄Π΅Π»ΠΎ Π½Π° staging. Π‘ΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΠΊΠ°ΠΌΠΈ ΠΎΡΠΈΠ±ΠΎΠΊ Π΄Π΅Π»Π°Π΅Ρ Π²Π°ΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π° β Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ°ΠΌΠΈ ΠΏΠΎΠ΄ΡΠΌΠ°ΡΡ, ΠΏΠΎΡΡΠΈΡΠ°ΡΡ, Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π½Π°Π²Π΅ΡΠ½ΡΠΊΠ° ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ ΡΠ²ΠΎΠΉ ΠΏΠΎΡΠΎΠ³.
ΠΠ° Π³ΡΠ°ΡΠΈΠΊΠ΅ Π²ΠΈΠ΄Π½Ρ ΠΈΡΠΎΠ³ΠΈ Π·Π° 6 ΠΌΠ΅ΡΡΡΠ΅Π². Π’ΡΡΠ΄ΠΎΠ·Π°ΡΡΠ°ΡΡ β ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΠΎ 10 Π±Π°Π»ΡΠ½ΠΎΠΉ ΡΠΊΠ°Π»Π΅. ΠΠ΅ΡΠ²ΡΠ΅ Π΄Π²Π° ΠΌΠ΅ΡΡΡΠ° ΠΌΡ ΠΏΡΠΎΡΡΠΎ ΠΏΠΈΡΠ°Π»ΠΈ ΡΡΠΈ ΡΠΎΠ»ΠΈ ΠΎΡΠ΅Π½Ρ Π±ΠΎΠ»ΡΠ½ΠΎ ΠΈ Π΄ΠΎΠ»Π³ΠΎ. ΠΠΎΡΠΎΠΌΡ ΡΡΠΎ ΡΡΠΎ Π±ΡΠ»Π° Π½ΠΎΠ²Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ°. ΠΠΎΠ³Π΄Π° ΠΌΡ ΠΈΡ Π½Π°ΠΏΠΈΡΠ°Π»ΠΈ, Π³ΡΠ°ΡΠΈΠΊ ΠΏΠΎΡΠ΅Π» Π²Π½ΠΈΠ·. ΠΠ΄Π΅-ΡΠΎ Π² ΡΠ΅ΡΠ΅Π΄ΠΈΠ½Π΅ Π²Π½Π΅Π΄ΡΠΈΠ»ΠΈ git submodule, ΠΊΠΎΠ³Π΄Π° ΠΌΡ ΡΠΆΠ΅ Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΠ΅ ΡΠΎΠ»ΠΈ ΡΡΠ°Π»ΠΈ ΠΏΠ΅ΡΠ΅ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ°Π·Π½ΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ². ΠΡΠΎ ΠΏΡΠΈΠ²Π΅Π»ΠΎ ΠΊ ΡΠ΅Π·ΠΊΠΎΠΌΡ ΡΠΏΠ°Π΄Ρ ΡΡΡΠ΄ΠΎΠ·Π°ΡΡΠ°Ρ. ΠΡΠ»ΠΈ ΡΡΠ°Π²Π½ΠΈΠ²Π°ΡΡ Ρ ΡΡΡΠ½ΠΎΠΉ Π½Π°ΡΡΡΠΎΠΉΠΊΠΎΠΉ ΠΏΡΠΎΠ΅ΠΊΡΠ°, ΠΏΠΎ ΠΊΠΎΡΠΎΡΠΎΠΌΡ Π΄Π°Π½Π½Π°Ρ ΠΎΡΠ΅Π½ΠΊΠ° Π΄Π΅Π»Π°Π»Π°ΡΡ, ΡΠΎ ΡΡΠΊΠ°ΠΌΠΈ ΠΌΡ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π»ΠΈ ΡΡΠΈ Π΄Π½Ρ, Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π° ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΡ ΠΊΠ°ΠΊ ΠΊΠΎΠ΄ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π» ΠΎΠΊΠΎΠ»ΠΎ ΠΌΠ΅ΡΡΡΠ°. Π ΠΏΠ΅ΡΡΠΏΠ΅ΠΊΡΠΈΠ²Π΅, ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π° ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ° ΠΊΠ°ΠΊ ΠΊΠΎΠ΄ Π±ΠΎΠ»Π΅Π΅ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π΅Π½, ΡΠ΅ΠΌ Π½Π°ΡΡΡΠΎΠΉΠΊΠ° ΡΠ΅ΡΠ²Π΅ΡΠΎΠ² ΡΡΠΊΠ°ΠΌΠΈ.
ΠΡΠ²ΠΎΠ΄Ρ.
ΠΠΎ-ΠΏΠ΅ΡΠ²ΡΡ , ΠΌΡ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΈ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ, ΡΠΎ Π΅ΡΡΡ ΠΊΠΎΠ³Π΄Π° ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ ΠΈ ΠΌΠ΅Π½Ρ ΡΠΏΡΠ°ΡΠΈΠ²Π°Π΅Ρ: Π½Π° ΠΊΠ°ΠΊΠΎΠΌ ΠΏΠΎΡΡΡ Ρ Π½Π°Ρ ΡΠ»ΡΡΠ°Π΅Ρ Π±Π°Π·Π° Π΄Π°Π½Π½ΡΡ , Ρ ΠΎΡΠΊΡΡΠ²Π°Ρ Ansible ΡΠΊΡΠΈΠΏΡ Π² git ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ, Π³ΠΎΠ²ΠΎΡΡ: βΠΠΎΡ ΡΠΌΠΎΡΡΠΈ, Π²ΠΎΡ Π½Π° ΡΠ°ΠΊΠΎΠΌ-ΡΠΎ ΠΏΠΎΡΡΡβ. ΠΠ°ΠΊΠΈΠ΅ Ρ Π½Π°Ρ Π·Π΄Π΅ΡΡ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ? ΠΡΠ΅ ΡΡΠΎ Π²ΠΈΠ΄Π½ΠΎ Π² git ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ. ΠΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π°ΡΠ΄ΠΈΡΠΎΠ²Π°ΡΡ, ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅ΡΠ°ΠΌ ΠΈ ΡΠ°ΠΊ Π΄Π°Π»Π΅Π΅. ΠΡΠΎ 100% Π΄ΠΎΡΡΠΎΠ²Π΅ΡΠ½Π°Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ. ΠΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΡΡΡΠ°ΡΠ΅Π²Π°Π΅Ρ. Π Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ ΡΡΡΠ°ΡΠ΅Π²Π°Π΅Ρ.
ΠΠ°ΠΆΠ½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ, ΠΏΡΠΎ ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΡ Π½Π΅ Π³ΠΎΠ²ΠΎΡΠΈΠ»ΠΈ. ΠΡΠΎ Π½Π΅Π³ΠΎ ΠΊΠΎΡΠ²Π΅Π½Π½ΠΎ ΡΠΊΠ°ΠΆΡ. ΠΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠΌ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎ ΡΠΎΠΆΠ΅ Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΠ΄Π½ΠΈΠΌΠ°ΡΡ RabbitMQ, ELK, ΡΡΠΎΠ±Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΠΈΠ΄Π΅ΠΈ. ΠΡΠ»ΠΈ ΠΎΠ½ΠΈ Π±ΡΠ΄ΡΡ Π΄Π΅Π»Π°ΡΡ ΡΡΠΊΠ°ΠΌΠΈ, ΡΠΎ ΠΏΠΎΠ΄Π½ΡΡΠΈΠ΅ ELK ΠΌΠΎΠΆΠ΅Ρ Π·Π°Π½ΡΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΡΠ°ΡΠ°. ΠΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π° ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ° ΠΊΠ°ΠΊ ΠΊΠΎΠ΄ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΏΠΎΠ΄Π½ΠΈΠΌΠ°Π΅Ρ Π²ΠΈΡΡΡΠ°Π»ΠΊΡ, Π½Π°ΠΆΠΈΠΌΠ°Π΅Ρ ΠΊΠ½ΠΎΠΏΠΊΡ, ΠΈ Ρ Π½Π΅Π³ΠΎ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ ELK. ΠΡΠ»ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΡΠ»ΠΎΠΌΠ°Π» ELK, ΡΠΎ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ ΡΠ΄Π°Π»ΠΈΠ»Ρ, Π·Π°ΠΏΡΡΡΠΈΡΡ ΡΠ½ΠΎΠ²Π° ΡΡΡΠ°Π½ΠΎΠ²ΠΊΡ ELK Π½Π° Π²ΠΈΡΡΡΠ°Π»ΠΊΡ.
ΠΠ°ΠΊ ΠΌΡ ΡΠΆΠ΅ Π³ΠΎΠ²ΠΎΡΠΈΠ»ΠΈ, ΡΡΠΎ Π²ΡΠ΅ Π΄Π΅ΡΠ΅Π²Π»Π΅ ΡΠΎΠ»ΡΠΊΠΎ, ΠΊΠΎΠ³Π΄Π° Ρ Π²Π°Ρ Π»ΠΈΠ±ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ², Π»ΠΈΠ±ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ ΡΡΠ΅Π΄, Π»ΠΈΠ±ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ ΠΌΠ°ΡΠΈΠ½. ΠΡΠ»ΠΈ Ρ Π²Π°Ρ ΡΠ°ΠΊΠΎΠ³ΠΎ Π½Π΅Ρ, ΡΠΎ, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ, ΡΡΠΎ Π½Π΅ Π΄Π΅ΡΠ΅Π²Π»Π΅, ΡΡΠΎ Π΄ΠΎΡΠΎΠΆΠ΅. Π Π½Π°ΡΠ΅ΠΉ ΠΏΠ΅ΡΡΠΏΠ΅ΠΊΡΠΈΠ²Π΅ Π² Π½Π°ΡΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°Ρ ΡΡΠΎ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΎΡΡ ΡΠ°ΠΊ, ΡΡΠΎ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ Π΄Π΅ΡΠ΅Π²Π»Π΅ ΡΠΎ Π²ΡΠ΅ΠΌΠ΅Π½Π΅ΠΌ. ΠΠΎΡΡΠΎΠΌΡ Π·Π΄Π΅ΡΡ ΠΊΠ°ΠΊ ΠΏΠ»ΡΡΡ ΡΠ°ΠΊ ΠΈ ΠΌΠΈΠ½ΡΡΡ.
ΠΡΡΡΡΠΎΠ΅ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΡΠ»Π΅ Π°Π²Π°ΡΠΈΠΈ. ΠΡΠ»ΠΈ Π²Ρ ΡΠΏΠ°Π»ΠΈ, Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΈΡΠΊΠ°ΡΡ ΡΠ΅Π»ΠΎΠ²Π΅ΠΊΠ°, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ΅Ρ ΡΡΡ ΠΌΠ°ΡΠΈΠ½Ρ Π½Π°ΡΡΡΠΎΠΈΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π·Π½Π°Π΅Ρ, ΠΊΠ°ΠΊ Π΅Π΅ Π½Π°ΡΡΡΠΎΠΈΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠΌΠ½ΠΈΡ, ΠΊΠ°ΠΊ Π΅Π΅ Π½Π°ΡΡΡΠΎΠΈΡΡ. Π Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π²ΡΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΈ ΡΠΊΡΠΈΠΏΡΡ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΡ Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ Π² git. ΠΠ°ΠΆΠ΅ Π΅ΡΠ»ΠΈ ΡΠ΅Π»ΠΎΠ²Π΅ΠΊ ΡΠ²ΠΎΠ»ΠΈΠ»ΡΡ, ΠΏΠ΅ΡΠ΅ΡΠ΅Π» Π² Π΄ΡΡΠ³ΠΎΠΉ ΠΏΡΠΎΠ΅ΠΊΡ β Π²ΡΠ΅ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² git, Π²ΡΠ΅ Π² ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡΡ , Π²ΡΠ΅ Π²ΠΈΠ΄Π½ΠΎ: ΠΏΠΎΡΠ΅ΠΌΡ ΠΎΠ½ ΠΎΡΠΊΡΡΠ²Π°Π» ΡΠ°ΠΊΠΎΠΉ ΠΏΠΎΡΡ, ΠΏΠΎΡΠ΅ΠΌΡ ΡΡΠ°Π²ΠΈΠ» ΡΠ°ΠΊΠΈΠ΅-ΡΠΎ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΈ ΡΠ°ΠΊ Π΄Π°Π»Π΅Π΅. ΠΡ Π²ΡΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π»Π΅Π³ΠΊΠΎ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ.
ΠΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΎΡΠΈΠ±ΠΎΠΊ ΡΠ½ΠΈΠ·ΠΈΠ»ΠΎΡΡ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Ρ Π½Π°Ρ ΠΏΠΎΡΠ²ΠΈΠ»ΠΈΡΡ ΡΠ°Π·Π½ΡΠ΅ Π±Π°ΡΡΠ΅ΡΡ, Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠ΅ ΡΡΠ΅Π΄Ρ Π΄Π»Ρ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΡ, Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈ ΠΏΠ»ΡΡ code review. ΠΡΠΎ ΡΠΎΠΆΠ΅ Π½Π΅ΠΌΠ°Π»ΠΎΠ²Π°ΠΆΠ½ΠΎ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΏΡΠΎΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ ΡΠΎ, ΡΡΠΎ ΠΎΠ½ΠΈ Π΄Π΅Π»Π°ΡΡ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΎΠ½ΠΈ Π΅ΡΠ΅ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡΡ ΠΎΠ±ΡΡΠ°ΡΡΡΡ. ΠΠΎΠ·ΡΠΎΡΠ»Π° ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΡ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΡΡΠΎ, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ, Π½ΠΎΠ²Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ°, ΡΡΠΎ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅ΡΡ, Π»ΡΠ΄ΡΠΌ Π½ΡΠΆΠ½ΠΎ ΠΎΠ±ΡΡΠ°ΡΡΡΡ. ΠΡΠΎ Π½Π΅ ΡΠΎ, ΡΡΠΎ ΠΊΠ°ΠΊ ΠΎΠ±ΡΡΠ½ΠΎ ΠΏΡΠΈΠ²ΡΠΊΠ»ΠΈ: ΠΏΡΠΎΡΠΈΡΠ°Π»ΠΈ ΡΡΠ°ΡΡΡ ΠΈ ΠΏΠΎ ΡΡΠ°ΡΡΠ΅ ΡΠ΄Π΅Π»Π°Π»ΠΈ. ΠΠ΄Π΅ΡΡ Π½Π΅ΠΌΠ½ΠΎΠΆΠΊΠΎ Π΄ΡΡΠ³ΠΎΠ΅. ΠΠΎ ΡΠ΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ ΡΠΎ Π²ΡΠ΅ΠΌΠ΅Π½Π΅ΠΌ ΡΡΠΎ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π»Π΅Π³ΠΊΠΎ ΠΎΡΠ²Π°ΠΈΠ²Π°Π΅ΡΡΡ. ΠΡΠ»ΠΈ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ Π½Π° ΠΎΡΠ²ΠΎΠ΅Π½ΠΈΠ΅, ΡΠΎ ΡΡΠΎ Π³Π΄Π΅-ΡΠΎ ΡΡΠΈ-ΡΠ΅ΡΡΡΠ΅ ΠΌΠ΅ΡΡΡΠ°.
ΠΠΎΠΏΡΠΎΡ Π·Π°Π΄Π°Π΅ΡΡΡ ΡΠ΅ΡΠ΅Π· ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π½ΠΎ Π²ΠΎΠΏΡΠΎΡ Π½Π΅ ΡΠ»ΡΡΠ½ΠΎ.
ΠΡΠ²Π΅Ρ: Π ΠΎΠ»ΠΈ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ Π²Π΅ΡΡΠΈΡ, ΡΠΎ Π΅ΡΡΡ ΡΠΎΠ»Ρ Π²ΡΠ΄Π΅Π»ΡΠ΅ΠΌ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ git submodule, ΡΠΎΠ»ΡΠΊΠΎ ΠΊΠΎΠ³Π΄Π° ΠΎΠ½Π° ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½Π° Π΄Π»Ρ Π°Π±ΡΠΎΠ»ΡΡΠ½ΠΎ Π²ΡΠ΅Ρ ΡΠΈΡΡΠ΅ΠΌ. ΠΡΠ»ΠΈ ΠΏΠΎ Π½Π΅ΠΉ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»ΠΈ ΠΊΠ°ΠΊΠΈΠ΅-ΡΠΎ ΠΊΠΎΠΌΠΌΠΈΡΡ, ΡΠΎ ΠΌΡ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΠΌ Π½Π° latest ΠΊΠΎΠΌΠΈΡ. Π Π²ΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡ ΠΈΠ· inventories. Π’ΠΎ Π΅ΡΡΡ ΡΠΎΠ»Ρ β ΡΡΠΎ ΠΏΡΠΎΡΡΠΎ ΡΠΎ, ΡΡΠΎ Π±ΡΠ΄Π΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ. ΠΠ°Π·Π²Π°Π½ΠΈΠ΅ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ , Π»ΠΎΠ³ΠΈΠ½, ΠΏΠ°ΡΠΎΠ»Ρ ΠΈ Ρ.Π΄. ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡ ΡΠ½Π°ΡΡΠΆΠΈ. Π ΠΎΠ»Ρ β ΡΡΠΎ ΠΏΡΠΎΡΡΠΎ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ Π°Π»Π³ΠΎΡΠΈΡΠΌ. ΠΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡ ΠΈΠ· ΡΠ°ΠΌΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ°.
ΠΠΎΠΏΡΠΎΡ: ΠΡΠ»ΠΈ Ρ Π²Π°Ρ ΠΊΠ°ΠΊΠΈΠ΅-Π½ΠΈΠ±ΡΠ΄Ρ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠΎΠ»ΡΠΌΠΈ Ansible ΡΡΠ°Π½Π·ΠΈΡΠΈΠ²Π½ΡΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΈ ΠΊΠ°ΠΊ Π²Ρ Π²ΡΡΡΠ³ΠΈΠ²Π°Π΅ΡΠ΅ ΠΏΡΠΈ Π΄Π΅ΠΏΠ»ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ (ΡΠΎΠ»Ρ A Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ B, B ΠΎΡ C ΠΈ Π²Ρ ΠΊΠΎΠ³Π΄Π° Π²ΡΠΊΠ°ΡΡΠ²Π°Π΅ΡΠ΅ ΡΠΎΠ»Ρ A, ΡΡΠΎΠ±Ρ ΠΎΠ½Π° Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡ Π²ΡΠ΅ ΡΠ°ΠΌΠ° ΡΡΠ½ΡΠ»Π°)? ΠΠΎΡΡΠ΅Π΄ΡΡΠ²ΠΎΠΌ ΠΊΠ°ΠΊΠΈΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ², Π΅ΡΠ»ΠΈ Ρ Π²Π°Ρ ΡΠ°ΠΊΠΎΠΉ Π΅ΡΡΡ?
ΠΡΠ²Π΅Ρ: Π Π΄Π°Π½Π½ΠΎΠΉ ΠΏΠ°ΡΠ°Π΄ΠΈΠ³ΠΌΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ ΡΠ°ΠΊΠΈΡ Π½Π΅Ρ. Π£ Π½Π°Ρ Π±ΡΠ²Π°ΡΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ. Π’ΠΎ Π΅ΡΡΡ, ΠΌΡ ΡΡΠ°Π²ΠΈΠΌ ΠΊΠ°ΠΊΡΡ-ΡΠΎ ΡΠΈΡΡΠ΅ΠΌΡ ΠΈ Π·Π½Π°Π΅ΠΌ IP Π°Π΄ΡΠ΅ΡΠ° ΡΠ΅ΡΠ²Π΅ΡΠΎΠ², ΠΈ Π² ΡΠΎ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅ Π΅ΡΡΡ Π±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²ΡΠΈΠΊ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ΅ΠΏΠ΅ΡΡ ΡΡΠ°Π», Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠ΅Π±Ρ ΠΊΠ°ΠΊ Π±Ρ Π²ΠΎΠ³Π½Π°ΡΡ, ΡΡΠΎΠ±Ρ Π±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²Π°ΡΡ Π½Π° ΡΡΠΈ Π½Π°ΡΡΡΠΎΠ΅Π½Π½ΡΡ ΠΌΠ°ΡΠΈΠ½Ρ. ΠΡΠΎ Π·Π° ΡΡΠ΅Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΠΎΠ² ΠΊΠ°ΠΊ Π±Ρ ΡΠ°Π·ΡΡΠ»ΠΈΠ²Π°Π΅ΡΡΡ. ΠΠΎ, Π΅ΡΠ»ΠΈ Π²Ρ ΠΈΠΌΠ΅Π΅ΡΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡ ΠΎΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ, ΡΠΎ Π·Π΄Π΅ΡΡ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅Ρ, Ρ Π½Π°Ρ ΠΎΠ΄ΠΈΠ½ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΡΠΉ, Π½ΠΈ ΠΎΡ ΡΠ΅Π³ΠΎ Π½Π΅ Π·Π°Π²ΠΈΡΠΈΡ, ΠΎΠ½ ΡΠ°ΠΌΠΎΠ΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΡΠΉ. Π ΠΌΡ Π½Π΅ Π²ΡΠ½ΠΎΡΠΈΠΌ Π² ΠΎΠ±ΡΠΈΠ΅ ΡΠΎΠ»ΠΈ ΡΠΎ, ΡΡΠΎ ΠΈΠΌΠ΅Π΅Ρ Ρ ΠΎΡΡ ΠΊΠ°ΠΊΡΡ-ΡΠΎ Π½Π΅ ΠΎΠ±ΡΡΡ ΡΡΡΡΠΊΡΡΡΡ, ΡΠΎ Π΅ΡΡΡ, Π΄ΠΎΠΏΡΡΡΠΈΠΌ, RabbitMQ ΠΌΠΎΠ³ΡΡ ΠΈ Π² Π°ΡΡΠΈΠΊΠ΅ RabbitMQ, ΠΎΠ½ Π½ΠΈ ΠΎΡ ΡΠ΅Π³ΠΎ Π½Π΅ Π·Π°Π²ΠΈΡΠΈΡ. ΠΠ°ΠΊΡΡ-ΡΠΎ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΡ ΠΌΡ Π² Π΄ΠΎΠΊΠ΅ΡΠ΅ ΠΊΠ°ΠΊ Ρ ΡΠ°Π½ΠΈΠΌ, ΡΠ΅ ΠΆΠ΅ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΈ.