ΠΠ° RIT 2019 Π½Π°ΡΠΈΡΡ ΠΊΠΎΠ»Π΅Π³Π° ΠΠ»Π΅ΠΊΡΠ°Π½Π΄ΡΡ ΠΠΎΡΠΎΡΠΊΠΎΠ² Π½Π°ΠΏΡΠ°Π²ΠΈ
ΠΡΠ»Π΅Π²ΠΎ Π½ΠΈΠ²ΠΎ
βΠΡΠΌΠ° ΡΠ°ΠΊΠΎΠ²Π° Π½Π΅ΡΠΎ ΠΊΠ°ΡΠΎ Π½ΡΠ»Π΅Π²ΠΎ Π½ΠΈΠ²ΠΎ, Π°Π· Π½Π΅ Π·Π½Π°ΠΌ ΡΠ°ΠΊΠΎΠ²Π° Π½Π΅ΡΠΎβ
ΠΠ°ΠΉΡΡΠΎΡ Π¨ΠΈΡΡ ΠΎΡ ΡΠΈΠ»ΠΌΠ° "ΠΡΠ½Π³ Π€Ρ ΠΠ°Π½Π΄Π°"
ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΡΡΠ° Π² CIAN Π·Π°ΠΏΠΎΡΠ²Π° 14 Π³ΠΎΠ΄ΠΈΠ½ΠΈ ΡΠ»Π΅Π΄ ΠΎΡΠ½ΠΎΠ²Π°Π²Π°Π½Π΅ΡΠΎ Π½Π° ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡΡΠ°. ΠΠΎ ΡΠΎΠ²Π° Π²ΡΠ΅ΠΌΠ΅ Π² Π΅ΠΊΠΈΠΏΠ° Π·Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΠΈΠΌΠ°ΡΠ΅ 35 Π΄ΡΡΠΈ. Π’ΡΡΠ΄Π½ΠΎ Π·Π° Π²ΡΡΠ²Π°Π½Π΅, Π½Π°Π»ΠΈ? Π Π°Π·Π±ΠΈΡΠ° ΡΠ΅, Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΡΡΠ° ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°ΡΠ΅ ΠΏΠΎΠ΄ Π½ΡΠΊΠ°ΠΊΠ²Π° ΡΠΎΡΠΌΠ°, Π½ΠΎ ΠΏΡΠ΅Π· 2015 Π³. Π·Π°ΠΏΠΎΡΠ½Π° Π΄Π° ΡΠ΅ ΠΎΡΠΎΡΠΌΡ ΠΎΡΠ΄Π΅Π»Π½Π° ΠΏΠΎΡΠΎΠΊΠ° Π·Π° Π½Π΅ΠΏΡΠ΅ΠΊΡΡΠ½Π°ΡΠ° ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ ΠΈ Π΄ΠΎΡΡΠ°Π²ΠΊΠ° Π½Π° ΠΊΠΎΠ΄.
ΠΠΎ ΡΠΎΠ²Π° Π²ΡΠ΅ΠΌΠ΅ ΠΈΠΌΠ°Ρ ΠΌΠ΅ ΠΎΠ³ΡΠΎΠΌΠ΅Π½ ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ ΠΎΡ Python, C# ΠΈ PHP, ΡΠ°Π·ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ Π½Π° Linux/Windows ΡΡΡΠ²ΡΡΠΈ. ΠΠ° Π΄Π° Π²Π½Π΅Π΄ΡΠΈΠΌ ΡΠΎΠ²Π° ΡΡΠ΄ΠΎΠ²ΠΈΡΠ΅, ΠΈΠΌΠ°Ρ ΠΌΠ΅ Π½Π°Π±ΠΎΡ ΠΎΡ ΡΠΊΡΠΈΠΏΡΠΎΠ²Π΅, ΠΊΠΎΠΈΡΠΎ ΡΡΠ°ΡΡΠΈΡΠ°Ρ ΠΌΠ΅ ΡΡΡΠ½ΠΎ. ΠΠΌΠ°ΡΠ΅ ΠΈ ΡΠ³Π»ΠΎΠ±ΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΠΌΠΎΠ½ΠΎΠ»ΠΈΡΠ°, ΠΊΠΎΠ΅ΡΠΎ Π΄ΠΎΠ½Π΅ΡΠ΅ Π±ΠΎΠ»ΠΊΠ° ΠΈ ΡΡΡΠ°Π΄Π°Π½ΠΈΠ΅ ΠΏΠΎΡΠ°Π΄ΠΈ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠΈ ΠΏΡΠΈ ΡΠ»ΠΈΠ²Π°Π½Π΅ Π½Π° ΠΊΠ»ΠΎΠ½ΠΎΠ²Π΅, ΠΊΠΎΡΠΈΠ³ΠΈΡΠ°Π½Π΅ Π½Π° Π΄Π΅ΡΠ΅ΠΊΡΠΈ ΠΈ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ βΡ ΡΠ°Π·Π»ΠΈΡΠ΅Π½ Π½Π°Π±ΠΎΡ ΠΎΡ Π·Π°Π΄Π°ΡΠΈ Π² ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ΡΠΎβ. ΠΠΏΡΠΎΡΡΠ΅Π½ΠΈΡΡ ΠΏΡΠΎΡΠ΅Ρ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π°ΡΠ΅ ΡΠ°ΠΊΠ°:
ΠΠ΅ Π±ΡΡ
ΠΌΠ΅ Π΄ΠΎΠ²ΠΎΠ»Π½ΠΈ ΠΎΡ ΡΠΎΠ²Π° ΠΈ ΠΈΡΠΊΠ°Ρ
ΠΌΠ΅ Π΄Π° ΠΈΠ·Π³ΡΠ°Π΄ΠΈΠΌ ΠΏΠΎΠ²ΡΠ°ΡΡΡ ΡΠ΅, Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠ°Π½ ΠΈ ΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌ ΠΏΡΠΎΡΠ΅Ρ Π½Π° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ ΠΈ Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅. ΠΠ° ΡΠΎΠ²Π° Π½ΠΈ ΡΡΡΠ±Π²Π°ΡΠ΅ CI/CD ΡΠΈΡΡΠ΅ΠΌΠ° ΠΈ ΠΈΠ·Π±ΡΠ°Ρ
ΠΌΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ Π±Π΅Π·ΠΏΠ»Π°ΡΠ½Π°ΡΠ° Π²Π΅ΡΡΠΈΡ Π½Π° Teamcity ΠΈ Π±Π΅Π·ΠΏΠ»Π°ΡΠ½Π°ΡΠ° Π²Π΅ΡΡΠΈΡ Π½Π° Jenkins, ΡΡΠΉ ΠΊΠ°ΡΠΎ ΡΠ°Π±ΠΎΡΠΈΡ
ΠΌΠ΅ Ρ ΡΡΡ
ΠΈ Π΄Π²Π΅ΡΠ΅ Π½ΠΈ ΠΏΠΎΠ΄Ρ
ΠΎΠΆΠ΄Π°Ρ
Π° ΠΏΠΎ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ Π½Π° Π½Π°Π±ΠΎΡΠ° ΠΎΡ ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΠ·Π±ΡΠ°Ρ
ΠΌΠ΅ Teamcity ΠΊΠ°ΡΠΎ ΠΏΠΎ-Π½ΠΎΠ² ΠΏΡΠΎΠ΄ΡΠΊΡ. ΠΠΎ ΡΠΎΠ²Π° Π²ΡΠ΅ΠΌΠ΅ Π²ΡΠ΅ ΠΎΡΠ΅ Π½Π΅ Π±ΡΡ
ΠΌΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π»ΠΈ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΠ·Π½Π° Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΠ° ΠΈ Π½Π΅ ΠΎΡΠ°ΠΊΠ²Π°Ρ
ΠΌΠ΅ Π³ΠΎΠ»ΡΠΌ Π±ΡΠΎΠΉ Π·Π°Π΄Π°ΡΠΈ ΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠΈ.
Π‘ΡΠΈΠ³Π°ΠΌΠ΅ Π΄ΠΎ ΠΈΠ΄Π΅ΡΡΠ° Π·Π° ΡΠΎΠ±ΡΡΠ²Π΅Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°
ΠΠ½Π΅Π΄ΡΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° Teamcity ΠΏΡΠ΅ΠΌΠ°Ρ Π½Π° ΡΠ°ΠΌΠΎ ΡΠ°ΡΡ ΠΎΡ ΡΡΡΠ½Π°ΡΠ° ΡΠ°Π±ΠΎΡΠ°: ΡΠΎΠ²Π°, ΠΊΠΎΠ΅ΡΠΎ ΠΎΡΡΠ°Π²Π°, Π΅ ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ΡΠΎ Π½Π° Π·Π°ΡΠ²ΠΊΠΈ Π·Π° ΠΈΠ·ΡΠ΅Π³Π»ΡΠ½Π΅, ΠΏΠΎΠΏΡΠ»ΡΡΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ ΠΏΠΎ ΡΡΠ°ΡΡΡ Π² Jira ΠΈ ΠΈΠ·Π±ΠΎΡ Π½Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ Π·Π° ΠΏΡΡΠΊΠ°Π½Π΅. Π‘ΠΈΡΡΠ΅ΠΌΠ°ΡΠ° Teamcity Π²Π΅ΡΠ΅ Π½Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΡΠ΅ ΡΠΏΡΠ°Π²ΠΈ Ρ ΡΠΎΠ²Π°. ΠΠ΅ΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° ΡΠ΅ ΠΈΠ·Π±Π΅ΡΠ΅ ΠΏΡΡΡ Π½Π° ΠΏΠΎ-Π½Π°ΡΠ°ΡΡΡΠ½Π°ΡΠ° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΡ. Π Π°Π·Π³Π»Π΅Π΄Π°Ρ ΠΌΠ΅ ΠΎΠΏΡΠΈΠΈ Π·Π° ΡΠ°Π±ΠΎΡΠ° ΡΡΡ ΡΠΊΡΠΈΠΏΡΠΎΠ²Π΅ Π² Teamcity ΠΈΠ»ΠΈ ΠΏΡΠ΅ΠΌΠΈΠ½Π°Π²Π°Π½Π΅ ΠΊΡΠΌ ΡΠΈΡΡΠ΅ΠΌΠΈ Π·Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΡ Π½Π° ΡΡΠ΅ΡΠΈ ΡΡΡΠ°Π½ΠΈ. ΠΠΎ Π² ΠΊΡΠ°ΠΉΠ½Π° ΡΠΌΠ΅ΡΠΊΠ° ΡΠ΅ΡΠΈΡ ΠΌΠ΅, ΡΠ΅ ΠΈΠΌΠ°ΠΌΠ΅ Π½ΡΠΆΠ΄Π° ΠΎΡ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»Π½Π° Π³ΡΠ²ΠΊΠ°Π²ΠΎΡΡ, ΠΊΠΎΡΡΠΎ ΡΠ°ΠΌΠΎ Π½Π°ΡΠ΅ΡΠΎ ΡΠΎΠ±ΡΡΠ²Π΅Π½ΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΎΡΠΈΠ³ΡΡΠΈ. Π’Π°ΠΊΠ° ΡΠ΅ ΠΏΠΎΡΠ²ΡΠ²Π° ΠΏΡΡΠ²Π°ΡΠ° Π²Π΅ΡΡΠΈΡ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° Π·Π° Π²ΡΡΡΠ΅ΡΠ½Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΡ, Π½Π°ΡΠ΅ΡΠ΅Π½Π° Integro.
Teamcity ΡΠ΅ Π·Π°Π½ΠΈΠΌΠ°Π²Π° Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΡ Π½Π° Π½ΠΈΠ²ΠΎ ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΡΠΎΡΠ΅ΡΠΈΡΠ΅ Π½Π° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ ΠΈ Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅, Π΄ΠΎΠΊΠ°ΡΠΎ Integro ΡΠ΅ ΡΠΎΠΊΡΡΠΈΡΠ° Π²ΡΡΡ Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΡΡΠ° Π½Π° Π½Π°ΠΉ-Π²ΠΈΡΠΎΠΊΠΎ Π½ΠΈΠ²ΠΎ Π½Π° ΠΏΡΠΎΡΠ΅ΡΠΈΡΠ΅ Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°. ΠΠ΅ΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° ΡΠ΅ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡΠ° ΡΠ°Π±ΠΎΡΠ° Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ Π² Jira Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° ΡΠ²ΡΡΠ·Π°Π½ΠΈΡ ΠΈΠ·Ρ ΠΎΠ΄Π΅Π½ ΠΊΠΎΠ΄ Π² Bitbucket. ΠΠ° ΡΠΎΠ·ΠΈ Π΅ΡΠ°ΠΏ Integro Π·Π°ΠΏΠΎΡΠ²Π° Π΄Π° ΠΈΠΌΠ° ΡΠΎΠ±ΡΡΠ²Π΅Π½ΠΈ ΡΠ°Π±ΠΎΡΠ½ΠΈ ΠΏΡΠΎΡΠ΅ΡΠΈ Π·Π° ΡΠ°Π±ΠΎΡΠ° Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΡΠΈΠΏΠΎΠ²Π΅ Π·Π°Π΄Π°ΡΠΈ.
ΠΠΎΡΠ°Π΄ΠΈ ΡΠ²Π΅Π»ΠΈΡΠ°Π²Π°Π½Π΅ΡΠΎ Π½Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΡΡΠ° Π² Π±ΠΈΠ·Π½Π΅Ρ ΠΏΡΠΎΡΠ΅ΡΠΈΡΠ΅, Π±ΡΠΎΡΡ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠ΅ ΠΈ ΡΡΠ°ΡΡΠΈΡΠ°Π½ΠΈΡΡΠ° Π² Teamcity ΡΠ΅ ΡΠ²Π΅Π»ΠΈΡΠΈ. Π’Π°ΠΊΠ° ΡΠ΅ ΠΏΠΎΡΠ²ΠΈ Π½ΠΎΠ² ΠΏΡΠΎΠ±Π»Π΅ΠΌ: Π΅Π΄ΠΈΠ½ Π±Π΅Π·ΠΏΠ»Π°ΡΠ΅Π½ Π΅ΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ Π½Π° Teamcity Π½Π΅ Π±Π΅ΡΠ΅ Π΄ΠΎΡΡΠ°ΡΡΡΠ΅Π½ (3 Π°Π³Π΅Π½ΡΠ° ΠΈ 100 ΠΏΡΠΎΠ΅ΠΊΡΠ°), Π΄ΠΎΠ±Π°Π²ΠΈΡ ΠΌΠ΅ ΠΎΡΠ΅ Π΅Π΄ΠΈΠ½ Π΅ΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ (ΠΎΡΠ΅ 3 Π°Π³Π΅Π½ΡΠ° ΠΈ 100 ΠΏΡΠΎΠ΅ΠΊΡΠ°), ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° ΠΎΡΠ΅ Π΅Π΄ΠΈΠ½. Π ΡΠ΅Π·ΡΠ»ΡΠ°Ρ Π½Π° ΡΠΎΠ²Π° ΠΏΠΎΠ»ΡΡΠΈΡ ΠΌΠ΅ ΡΠΈΡΡΠ΅ΠΌΠ° ΠΎΡ Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΊΠ»ΡΡΡΠ΅ΡΠ°, ΠΊΠΎΡΡΠΎ Π±Π΅ΡΠ΅ ΡΡΡΠ΄Π½Π° Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅:
ΠΠΎΠ³Π°ΡΠΎ Π²ΡΠ·Π½ΠΈΠΊΠ½Π° Π²ΡΠΏΡΠΎΡΡΡ Π·Π° 4-ΡΠ° ΠΈΠ½ΡΡΠ°Π½ΡΠΈΡ, ΠΎΡΡΠ·Π½Π°Ρ
ΠΌΠ΅, ΡΠ΅ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΏΡΠΎΠ΄ΡΠ»ΠΆΠΈΠΌ Π΄Π° ΠΆΠΈΠ²Π΅Π΅ΠΌ ΡΠ°ΠΊΠ°, Π·Π°ΡΠΎΡΠΎ ΠΎΠ±ΡΠΈΡΠ΅ ΡΠ°Π·Ρ
ΠΎΠ΄ΠΈ Π·Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° 4 ΠΈΠ½ΡΡΠ°Π½ΡΠΈΠΈ Π²Π΅ΡΠ΅ Π½Π΅ Π±ΡΡ
Π° Π² Π½ΠΈΠΊΠ°ΠΊΠ²ΠΈ Π³ΡΠ°Π½ΠΈΡΠΈ. ΠΡΠ·Π½ΠΈΠΊΠ½Π° Π²ΡΠΏΡΠΎΡΡΡ Π·Π° Π·Π°ΠΊΡΠΏΡΠ²Π°Π½Π΅ Π½Π° ΠΏΠ»Π°ΡΠ΅Π½ Teamcity ΠΈΠ»ΠΈ ΠΈΠ·Π±ΠΎΡ Π½Π° Π±Π΅Π·ΠΏΠ»Π°ΡΠ΅Π½ Jenkins. ΠΠ°ΠΏΡΠ°Π²ΠΈΡ
ΠΌΠ΅ ΠΈΠ·ΡΠΈΡΠ»Π΅Π½ΠΈΡ Π½Π° ΠΈΠ½ΡΡΠ°Π½ΡΠΈΠΈ ΠΈ ΠΏΠ»Π°Π½ΠΎΠ²Π΅ Π·Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΡ ΠΈ ΡΠ΅ΡΠΈΡ
ΠΌΠ΅, ΡΠ΅ ΡΠ΅ ΠΆΠΈΠ²Π΅Π΅ΠΌ Π½Π° Jenkins. Π‘Π»Π΅Π΄ Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΡΠ΅Π΄ΠΌΠΈΡΠΈ ΠΏΡΠ΅ΠΌΠΈΠ½Π°Ρ
ΠΌΠ΅ ΠΊΡΠΌ Jenkins ΠΈ ΠΏΡΠ΅ΠΌΠ°Ρ
Π½Π°Ρ
ΠΌΠ΅ ΡΠ°ΡΡ ΠΎΡ Π³Π»Π°Π²ΠΎΠ±ΠΎΠ»ΠΈΠ΅ΡΠΎ, ΡΠ²ΡΡΠ·Π°Π½ΠΎ Ρ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Π½Π΅ΡΠΎ Π½Π° ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π΅ΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠΈ Π½Π° Teamcity. ΠΠ°ΡΠΎΠ²Π° ΡΡΠΏΡΡ
ΠΌΠ΅ Π΄Π° ΡΠ΅ ΡΡΡΡΠ΅Π΄ΠΎΡΠΎΡΠΈΠΌ Π²ΡΡΡ
Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° Integro ΠΈ ΠΏΠ΅ΡΡΠΎΠ½Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° Jenkins Π·Π° ΡΠ΅Π±Π΅ ΡΠΈ.
Π‘ ΡΠ°Π·ΡΠ°ΡΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΠΎΡΠ½ΠΎΠ²Π½Π°ΡΠ° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΡ (ΠΏΠΎΠ΄ ΡΠΎΡΠΌΠ°ΡΠ° Π½Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° Π·Π°ΡΠ²ΠΊΠΈ Π·Π° ΠΈΠ·ΡΠ΅Π³Π»ΡΠ½Π΅, ΡΡΠ±ΠΈΡΠ°Π½Π΅ ΠΈ ΠΏΡΠ±Π»ΠΈΠΊΡΠ²Π°Π½Π΅ Π½Π° ΠΏΠΎΠΊΡΠΈΡΠΈΠ΅ Π½Π° ΠΊΠΎΠ΄Π° ΠΈ Π΄ΡΡΠ³ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ), ΠΈΠΌΠ° ΡΠΈΠ»Π½ΠΎ ΠΆΠ΅Π»Π°Π½ΠΈΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΎΡΡΠ°Π²ΡΡ ΡΡΡΠ½ΠΈΡΠ΅ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°Π²Π°Π½ΠΈΡ ΠΊΠΎΠ»ΠΊΠΎΡΠΎ Π΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΈ Π΄Π° ΡΠ΅ Π²ΡΠ·Π»ΠΎΠΆΠΈ ΡΠ°Π·ΠΈ ΡΠ°Π±ΠΎΡΠ° Π½Π° ΡΠΎΠ±ΠΎΡΠΈΡΠ΅. Π Π΄ΠΎΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅, ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡΡΠ° Π·Π°ΠΏΠΎΡΠ½Π° Π΄Π° ΠΏΡΠ΅ΠΌΠΈΠ½Π°Π²Π° ΠΊΡΠΌ ΠΌΠΈΠΊΡΠΎΡΡΠ»ΡΠ³ΠΈ Π² ΡΠ°ΠΌΠΊΠΈΡΠ΅ Π½Π° ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡΡΠ°, ΠΊΠΎΠ΅ΡΠΎ ΠΈΠ·ΠΈΡΠΊΠ²Π°ΡΠ΅ ΡΠ΅ΡΡΠΈ Π²Π΅ΡΡΠΈΠΈ ΠΈ ΠΎΡΠ΄Π΅Π»Π½ΠΎ Π΅Π΄Π½Π° ΠΎΡ Π΄ΡΡΠ³Π°. Π’Π°ΠΊΠ° ΠΏΠΎΡΡΠ΅ΠΏΠ΅Π½Π½ΠΎ ΡΡΠΈΠ³Π½Π°Ρ ΠΌΠ΅ Π΄ΠΎ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΈ ΠΏΡΡΠΊΠ°Π½ΠΈΡ Π½Π° Π½Π°ΡΠΈΡΠ΅ ΠΌΠΈΠΊΡΠΎΡΡΠ»ΡΠ³ΠΈ (Π² ΠΌΠΎΠΌΠ΅Π½ΡΠ° ΠΏΡΡΠΊΠ°ΠΌΠ΅ ΠΌΠΎΠ½ΠΎΠ»ΠΈΡΠ° ΡΡΡΠ½ΠΎ ΠΏΠΎΡΠ°Π΄ΠΈ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΡΠ° Π½Π° ΠΏΡΠΎΡΠ΅ΡΠ°). ΠΠΎ, ΠΊΠ°ΠΊΡΠΎ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ ΡΠ΅ ΡΠ»ΡΡΠ²Π°, Π²ΡΠ·Π½ΠΈΠΊΠ½Π° Π½ΠΎΠ²Π° ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ.
ΠΠΈΠ΅ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠ°ΠΌΠ΅ ΡΠ΅ΡΡΠ²Π°Π½Π΅ΡΠΎ
ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΠ΅Π½ΠΈΠ΅ Π½Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΡΡΠ° Π½Π° Π²Π΅ΡΡΠΈΠΈΡΠ΅, ΠΏΡΠΎΡΠ΅ΡΠΈΡΠ΅ Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΡΠ΅ ΡΡΠΊΠΎΡΠΈΡ
Π°, ΠΎΡΡΠ°ΡΡΠΈ ΠΏΠΎΡΠ°Π΄ΠΈ ΠΏΡΠΎΠΏΡΡΠΊΠ°Π½Π΅ΡΠΎ Π½Π° Π½ΡΠΊΠΎΠΈ Π΅ΡΠ°ΠΏΠΈ Π½Π° ΡΠ΅ΡΡΠ²Π°Π½Π΅. Π ΡΠΎΠ²Π° Π΄ΠΎΠ²Π΅Π΄Π΅ Π΄ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½Π½Π° Π·Π°Π³ΡΠ±Π° Π½Π° ΠΊΠ°ΡΠ΅ΡΡΠ²ΠΎ. ΠΠ²ΡΡΠΈ ΡΡΠΈΠ²ΠΈΠ°Π»Π½ΠΎ, Π½ΠΎ Π·Π°Π΅Π΄Π½ΠΎ Ρ ΡΡΠΊΠΎΡΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΠΈΠ·Π΄Π°Π½ΠΈΡΡΠ° Π±Π΅ΡΠ΅ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° ΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΡΡΠ° Π·Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ²Π°Π½Π΅ Π½Π° ΠΏΡΠΎΠ΄ΡΠΊΡΠ°. Π’ΡΡΠ±Π²Π°ΡΠ΅ Π΄Π° ΡΠ΅ ΠΌΠΈΡΠ»ΠΈ Π·Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° ΡΠ΅ΡΡΠ²Π°Π½Π΅ΡΠΎ, Π½Π°ΡΠ°ΠΆΠ΄Π°Π½Π΅ Π½Π° Π»ΠΈΡΠ½Π° ΠΎΡΠ³ΠΎΠ²ΠΎΡΠ½ΠΎΡΡ (ΡΡΠΊ Π³ΠΎΠ²ΠΎΡΠΈΠΌ Π·Π° βΠΏΡΠΈΠ΅ΠΌΠ°Π½Π΅ Π½Π° ΠΈΠ΄Π΅ΡΡΠ° Π² Π³Π»Π°Π²Π°ΡΠ°β, Π° Π½Π΅ Π·Π° ΠΏΠ°ΡΠΈΡΠ½ΠΈ Π³Π»ΠΎΠ±ΠΈ) Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° Π·Π° ΠΏΡΡΠ½Π°ΡΠΈΡ ΠΊΠΎΠ΄ ΠΈ Π³ΡΠ΅ΡΠΊΠΈ Π² Π½Π΅Π³ΠΎ, ΠΊΠ°ΠΊΡΠΎ ΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΡΠΎ Π΄Π° ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°Π²Π°Π½Π΅/Π½Π΅ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°Π²Π°Π½Π΅ Π½Π° Π·Π°Π΄Π°ΡΠ° ΡΡΠ΅Π· Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅.
ΠΡΠ΅ΠΌΠ°Ρ Π²Π°ΠΉΠΊΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈΡΠ΅ Ρ ΠΊΠ°ΡΠ΅ΡΡΠ²ΠΎΡΠΎ, ΡΡΠΈΠ³Π½Π°Ρ ΠΌΠ΅ Π΄ΠΎ Π΄Π²Π΅ Π²Π°ΠΆΠ½ΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΡ: Π·Π°ΠΏΠΎΡΠ½Π°Ρ ΠΌΠ΅ Π΄Π° ΠΏΡΠΎΠ²Π΅ΠΆΠ΄Π°ΠΌΠ΅ ΠΊΠ°Π½Π°ΡΡΠΊΠΈ ΡΠ΅ΡΡΠΎΠ²Π΅ ΠΈ Π²ΡΠ²Π΅Π΄ΠΎΡ ΠΌΠ΅ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ Π½Π°Π±Π»ΡΠ΄Π΅Π½ΠΈΠ΅ Π½Π° ΡΠΎΠ½Π° Π½Π° Π³ΡΠ΅ΡΠΊΠ°ΡΠ° Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅Π½ ΠΎΡΠ³ΠΎΠ²ΠΎΡ Π½Π° ΠΈΠ·Π»ΠΈΡΡΠΊΠ° ΠΌΡ. ΠΡΡΠ²ΠΎΡΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π½Π°ΠΏΡΠ°Π²ΠΈ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΌΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΠΈ Π³ΡΠ΅ΡΠΊΠΈ, ΠΏΡΠ΅Π΄ΠΈ ΠΊΠΎΠ΄ΡΡ Π΄Π° Π±ΡΠ΄Π΅ Π½Π°ΠΏΡΠ»Π½ΠΎ ΠΏΡΡΠ½Π°Ρ Π² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²ΠΎ, Π²ΡΠΎΡΠΎΡΠΎ Π½Π°ΠΌΠ°Π»ΠΈ Π²ΡΠ΅ΠΌΠ΅ΡΠΎ Π·Π° ΡΠ΅Π°ΠΊΡΠΈΡ ΠΏΡΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ Π² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²ΠΎΡΠΎ. ΠΡΠ΅ΡΠΊΠΈ, ΡΠ°Π·Π±ΠΈΡΠ° ΡΠ΅, ΡΠ΅ ΡΠ»ΡΡΠ²Π°Ρ, Π½ΠΎ Π½ΠΈΠ΅ ΠΎΡΠ΄Π΅Π»ΡΠΌΠ΅ ΠΏΠΎ-Π³ΠΎΠ»ΡΠΌΠ°ΡΠ° ΡΠ°ΡΡ ΠΎΡ Π²ΡΠ΅ΠΌΠ΅ΡΠΎ ΠΈ ΡΡΠΈΠ»ΠΈΡΡΠ° ΡΠΈ Π½Π΅ Π·Π° ΠΊΠΎΡΠΈΠ³ΠΈΡΠ°Π½Π΅ΡΠΎ ΠΈΠΌ, Π° Π·Π° ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡΠ°Π½Π΅ΡΠΎ ΠΈΠΌ.
ΠΠΊΠΈΠΏ ΠΏΠΎ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΡ
Π ΠΌΠΎΠΌΠ΅Π½ΡΠ° ΠΈΠΌΠ°ΠΌΠ΅ ΠΏΠ΅ΡΡΠΎΠ½Π°Π» ΠΎΡ 130 ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈ ΠΈ ΠΏΡΠΎΠ΄ΡΠ»ΠΆΠ°Π²Π°ΠΌΠ΅
DevOps ΠΎΡΠ³ΠΎΠ²Π°ΡΡ Π·Π° ΡΡΠ΅Π΄Π°ΡΠ° Dev/Beta Π½Π° ΡΠ°ΠΉΡΠ° CIAN, ΡΡΠ΅Π΄Π°ΡΠ° Integro, ΠΏΠΎΠΌΠ°Π³Π° Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅ Π΄Π° ΡΠ΅ΡΠ°Π²Π°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ²Π° Π½ΠΎΠ²ΠΈ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈ Π·Π° ΠΌΠ°ΡΠ°Π±ΠΈΡΠ°Π½Π΅ Π½Π° ΡΡΠ΅Π΄ΠΈ. ΠΠ°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΡΠΎ Π·Π° ΡΠ°Π·Π²ΠΈΡΠΈΠ΅ Π½Π° Integro ΡΠ΅ Π·Π°Π½ΠΈΠΌΠ°Π²Π° ΠΊΠ°ΠΊΡΠΎ ΡΡΡ ΡΠ°ΠΌΠΈΡ Integro, ΡΠ°ΠΊΠ° ΠΈ ΡΡΡ ΡΠ²ΡΡΠ·Π°Π½ΠΈ ΡΡΠ»ΡΠ³ΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΠΏΠ»ΡΠ³ΠΈΠ½ΠΈ Π·Π° Jenkins, Jira, Confluence, Π° ΡΡΡΠΎ ΡΠ°ΠΊΠ° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ²Π° ΠΏΠΎΠΌΠΎΡΠ½ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈ ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π·Π° Π΅ΠΊΠΈΠΏΠΈ Π·Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°.
ΠΠΊΠΈΠΏΡΡ Π½Π° DI ΡΠ°Π±ΠΎΡΠΈ ΡΡΠ²ΠΌΠ΅ΡΡΠ½ΠΎ Ρ Π΅ΠΊΠΈΠΏΠ° Π½Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°ΡΠ°, ΠΊΠΎΠΉΡΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ²Π° Π²ΡΡΡΠ΅ΡΠ½ΠΎ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°ΡΠ°, Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈΡΠ΅ ΠΈ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡΠ΅ Π·Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°. Π ΡΡΡΠΎΡΠΎ Π²ΡΠ΅ΠΌΠ΅ Π²ΡΠ΅ΠΊΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ Π² ΡΠ°ΠΌΠΊΠΈΡΠ΅ Π½Π° CIAN ΠΌΠΎΠΆΠ΅ Π΄Π° Π΄ΠΎΠΏΡΠΈΠ½Π΅ΡΠ΅ Π·Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΡΡΠ°, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈ ΠΌΠΈΠΊΡΠΎΠ°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΡ, ΠΊΠΎΡΡΠΎ Π΄Π° ΠΎΡΠ³ΠΎΠ²Π°ΡΡ Π½Π° Π½ΡΠΆΠ΄ΠΈΡΠ΅ Π½Π° Π΅ΠΊΠΈΠΏΠ°, ΠΈΠ»ΠΈ Π΄Π° ΡΠΏΠΎΠ΄Π΅Π»ΠΈ ΡΡΡΠ°Ρ ΠΎΡΠ½Π° ΠΈΠ΄Π΅Ρ ΠΊΠ°ΠΊ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΡΡΠ° Π΄Π° ΡΡΠ°Π½Π΅ ΠΎΡΠ΅ ΠΏΠΎ-Π΄ΠΎΠ±ΡΠ°.
Π‘Π»ΠΎΠ΅ΡΡΠ° ΡΠΎΡΡΠ° Π½Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΡΡΠ° Π² CIAN
ΠΡΠΈΡΠΊΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ, ΡΡΠ°ΡΡΠ²Π°ΡΠΈ Π² Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΡΡΠ°, ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈ Π½Π° Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΡΠ»ΠΎΡ:
- ΠΡΠ½ΡΠ½ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ (Jira, Bitbucket ΠΈ Π΄Ρ.). Π‘ ΡΡΡ ΡΠ°Π±ΠΎΡΡΡ Π΅ΠΊΠΈΠΏΠΈ Π·Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°.
- ΠΠ»Π°ΡΡΠΎΡΠΌΠ° Integro. ΠΠ°ΠΉ-ΡΠ΅ΡΡΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅ Π½Π΅ ΡΠ°Π±ΠΎΡΡΡ Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ Ρ Π½Π΅Π³ΠΎ, Π½ΠΎ ΡΠΎΠΉ Π΅ ΡΠΎΠ²Π°, ΠΊΠΎΠ΅ΡΠΎ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° ΡΠ°Π±ΠΎΡΠ°ΡΠ° Π½Π° ΡΡΠ»Π°ΡΠ° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΡ.
- Π£ΡΠ»ΡΠ³ΠΈ Π·Π° Π΄ΠΎΡΡΠ°Π²ΠΊΠ°, ΠΎΡΠΊΠ΅ΡΡΡΠ°ΡΠΈΡ ΠΈ ΠΎΡΠΊΡΠΈΠ²Π°Π½Π΅ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Jeknins, Consul, Nomad). Π‘ ΡΡΡ Π½Π° ΠΏΠΎΠΌΠΎΡ Π²Π½Π΅Π΄ΡΡΠ²Π°ΠΌΠ΅ ΠΊΠΎΠ΄ Π½Π° ΡΡΡΠ²ΡΡΠΈ ΠΈ Π³Π°ΡΠ°Π½ΡΠΈΡΠ°ΠΌΠ΅, ΡΠ΅ ΡΡΠ»ΡΠ³ΠΈΡΠ΅ ΡΠ°Π±ΠΎΡΡΡ Π΅Π΄Π½Π° Ρ Π΄ΡΡΠ³Π°.
- Π€ΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈ ΡΠ»ΠΎΠΉ (ΡΡΡΠ²ΡΡΠΈ, ΠΠ‘, ΡΠ²ΡΡΠ·Π°Π½ ΡΠΎΡΡΡΠ΅Ρ). ΠΠ°ΡΠΈΡΡ ΠΊΠΎΠ΄ ΡΠ°Π±ΠΎΡΠΈ Π½Π° ΡΠΎΠ²Π° Π½ΠΈΠ²ΠΎ. Π’ΠΎΠ²Π° ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΠΈΠ»ΠΈ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈ ΡΡΡΠ²ΡΡ, ΠΈΠ»ΠΈ Π²ΠΈΡΡΡΠ°Π»Π΅Π½ (LXC, KVM, Docker).
ΠΡΠ· ΠΎΡΠ½ΠΎΠ²Π° Π½Π° ΡΠ°Π·ΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡ, Π½ΠΈΠ΅ ΡΠ°Π·Π΄Π΅Π»ΡΠΌΠ΅ ΠΎΠ±Π»Π°ΡΡΠΈΡΠ΅ Π½Π° ΠΎΡΠ³ΠΎΠ²ΠΎΡΠ½ΠΎΡΡ Π² ΡΠ°ΠΌΠΊΠΈΡΠ΅ Π½Π° DI Π΅ΠΊΠΈΠΏΠ°. ΠΡΡΠ²ΠΈΡΠ΅ Π΄Π²Π΅ Π½ΠΈΠ²Π° ΡΠ° Π² Π·ΠΎΠ½Π°ΡΠ° Π½Π° ΠΎΡΠ³ΠΎΠ²ΠΎΡΠ½ΠΎΡΡ Π½Π° Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΡΠΎ Π·Π° ΡΠ°Π·Π²ΠΈΡΠΈΠ΅ Π½Π° Integro, Π° ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡΠ΅ Π΄Π²Π΅ Π½ΠΈΠ²Π° Π²Π΅ΡΠ΅ ΡΠ° Π² Π·ΠΎΠ½Π°ΡΠ° Π½Π° ΠΎΡΠ³ΠΎΠ²ΠΎΡΠ½ΠΎΡΡ Π½Π° DevOps. Π’ΠΎΠ²Π° ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΡΠ΅ ΡΡΡΡΠ΅Π΄ΠΎΡΠΎΡΠΈΠΌ Π²ΡΡΡ Ρ Π·Π°Π΄Π°ΡΠΈΡΠ΅ ΠΈ Π½Π΅ ΠΏΡΠ΅ΡΠΈ Π½Π° Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ΡΠΎ, ΡΡΠΉ ΠΊΠ°ΡΠΎ ΡΠΌΠ΅ Π±Π»ΠΈΠ·ΠΎ Π΅Π΄ΠΈΠ½ Π΄ΠΎ Π΄ΡΡΠ³ ΠΈ Π½Π΅ΠΏΡΠ΅ΠΊΡΡΠ½Π°ΡΠΎ ΠΎΠ±ΠΌΠ΅Π½ΡΠΌΠ΅ Π·Π½Π°Π½ΠΈΡ ΠΈ ΠΎΠΏΠΈΡ.
ΠΠ½ΡΠ΅Π³ΡΠΎ
ΠΠ΅ΠΊΠ° ΡΠ΅ ΡΡΡΡΠ΅Π΄ΠΎΡΠΎΡΠΈΠΌ Π²ΡΡΡ Ρ Integro ΠΈ Π΄Π° Π·Π°ΠΏΠΎΡΠ½Π΅ΠΌ Ρ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡΠ½ΠΈΡ ΡΡΠ΅ΠΊ:
- CentOS 7
- ΠΠΎΠΊΠ΅Ρ + ΠΠΎΠΌΠ°Π΄ + ΠΠΎΠ½ΡΡΠ» + Π’ΡΠ΅Π·ΠΎΡ
- Java 11 (ΡΡΠ°ΡΠΈΡΡ ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ Integro ΡΠ΅ ΠΎΡΡΠ°Π½Π΅ Π½Π° Java 8)
- Spring Boot 2.X + Spring Cloud Config
- PostgreSql 11
- RabbitMQ
- Apache Ignite
- Camunda (Π²Π³ΡΠ°Π΄Π΅Π½)
- Grafana + Graphite + Prometheus + Jaeger + ELK
- Π£Π΅Π± ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ: React (CSR) + MobX
- SSO: Keycloak
ΠΠΈΠ΅ ΡΠ΅ ΠΏΡΠΈΠ΄ΡΡΠΆΠ°ΠΌΠ΅ ΠΊΡΠΌ ΠΏΡΠΈΠ½ΡΠΈΠΏΠ° Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΠ·ΠΈ, Π²ΡΠΏΡΠ΅ΠΊΠΈ ΡΠ΅ ΠΈΠΌΠ°ΠΌΠ΅ Π½Π°ΡΠ»Π΅Π΄ΡΡΠ²ΠΎ ΠΏΠΎΠ΄ ΡΠΎΡΠΌΠ°ΡΠ° Π½Π° ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ ΠΎΡ ΡΠ°Π½Π½Π° Π²Π΅ΡΡΠΈΡ Π½Π° Integro. ΠΡΡΠΊΠ° ΠΌΠΈΠΊΡΠΎΡΡΠ»ΡΠ³Π° ΡΠ°Π±ΠΎΡΠΈ Π² ΡΠ²ΠΎΠΉ ΡΠΎΠ±ΡΡΠ²Π΅Π½ Docker ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ ΠΈ ΡΡΠ»ΡΠ³ΠΈΡΠ΅ ΠΊΠΎΠΌΡΠ½ΠΈΠΊΠΈΡΠ°Ρ ΠΏΠΎΠΌΠ΅ΠΆΠ΄Ρ ΡΠΈ ΡΡΠ΅Π· HTTP Π·Π°ΡΠ²ΠΊΠΈ ΠΈ RabbitMQ ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΡ. ΠΠΈΠΊΡΠΎΡΡΠ»ΡΠ³ΠΈΡΠ΅ ΡΠ΅ Π½Π°ΠΌΠΈΡΠ°Ρ Π²Π·Π°ΠΈΠΌΠ½ΠΎ ΡΡΠ΅Π· Consul ΠΈ ΠΏΡΠ°Π²ΡΡ Π·Π°ΡΠ²ΠΊΠ° ΠΊΡΠΌ Π½Π΅Π³ΠΎ, ΠΊΠ°ΡΠΎ ΠΏΡΠ΅Π΄Π°Π²Π°Ρ ΠΎΡΠΎΡΠΈΠ·Π°ΡΠΈΡ ΠΏΡΠ΅Π· SSO (Keycloak, OAuth 2/OpenID Connect).
ΠΠ°ΡΠΎ ΠΏΡΠΈΠΌΠ΅Ρ ΠΎΡ ΡΠ΅Π°Π»Π½ΠΈΡ ΠΆΠΈΠ²ΠΎΡ, ΠΏΠΎΠΌΠΈΡΠ»Π΅ΡΠ΅ Π·Π° Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Ρ ΠΠΆΠ΅Π½ΠΊΠΈΠ½Ρ, ΠΊΠΎΠ΅ΡΠΎ ΡΠ΅ ΡΡΡΡΠΎΠΈ ΠΎΡ ΡΠ»Π΅Π΄Π½ΠΈΡΠ΅ ΡΡΡΠΏΠΊΠΈ:
- ΠΠΈΠΊΡΠΎΡΡΠ»ΡΠ³Π°ΡΠ° Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΡΠ°Π±ΠΎΡΠ½ΠΈ ΠΏΠΎΡΠΎΡΠΈ (Π½Π°ΡΠΈΡΠ°Π½Π° ΠΏΠΎ-Π΄ΠΎΠ»Ρ ΠΌΠΈΠΊΡΠΎΡΡΠ»ΡΠ³Π° Flow) ΠΈΡΠΊΠ° Π΄Π° ΠΈΠ·ΠΏΡΠ»Π½ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΈΡ Π² Jenkins. ΠΠ° Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈ ΡΠΎΠ²Π°, ΡΠΎΠΉ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Consul, Π·Π° Π΄Π° Π½Π°ΠΌΠ΅ΡΠΈ IP:PORT Π½Π° ΠΌΠΈΠΊΡΠΎΡΡΠ»ΡΠ³Π°ΡΠ° Π·Π° ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ Ρ Jenkins (Π½Π°ΡΠΈΡΠ°Π½Π° ΠΏΠΎ-Π½Π°ΡΠ°ΡΡΠΊ ΠΌΠΈΠΊΡΠΎΡΡΠ»ΡΠ³Π° Jenkins) ΠΈ ΠΈΠ·ΠΏΡΠ°ΡΠ° Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½Π° Π·Π°ΡΠ²ΠΊΠ° Π΄ΠΎ Π½Π΅Ρ, Π·Π° Π΄Π° Π·Π°ΠΏΠΎΡΠ½Π΅ ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ΡΠΎ Π² Jenkins.
- Π‘Π»Π΅Π΄ ΠΏΠΎΠ»ΡΡΠ°Π²Π°Π½Π΅ Π½Π° Π·Π°ΡΠ²ΠΊΠ°, ΠΌΠΈΠΊΡΠΎΡΡΠ»ΡΠ³Π°ΡΠ° Jenkins Π³Π΅Π½Π΅ΡΠΈΡΠ° ΠΈ ΠΎΡΠ³ΠΎΠ²Π°ΡΡ Ρ Job ID, ΠΊΠΎΠΉΡΠΎ ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΠ°Π½Π΅ Π½Π° ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠ° ΠΎΡ ΡΠ°Π±ΠΎΡΠ°ΡΠ°. Π ΡΡΡΠΎΡΠΎ Π²ΡΠ΅ΠΌΠ΅ ΡΠΎΠΉ Π·Π°Π΄Π΅ΠΉΡΡΠ²Π° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ΡΠΎ Π² Jenkins ΡΡΠ΅Π· ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅ Π½Π° REST API.
- ΠΠΆΠ΅Π½ΠΊΠΈΠ½Ρ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ΡΠΎ ΠΈ ΡΠ»Π΅Π΄ Π·Π°Π²ΡΡΡΠ²Π°Π½Π΅ ΠΈΠ·ΠΏΡΠ°ΡΠ° ΡΠ΅Π±ΠΊΡΠΊΠΈΡΠΊΠ° Ρ ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠΈΡΠ΅ ΠΎΡ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ΡΠΎ Π΄ΠΎ ΠΌΠΈΠΊΡΠΎΡΡΠ»ΡΠ³Π°ΡΠ° Π½Π° ΠΠΆΠ΅Π½ΠΊΠΈΠ½Ρ.
- ΠΠΈΠΊΡΠΎΡΡΠ»ΡΠ³Π°ΡΠ° Jenkins, ΡΠ»Π΅Π΄ ΠΊΠ°ΡΠΎ ΠΏΠΎΠ»ΡΡΠΈ webhook, Π³Π΅Π½Π΅ΡΠΈΡΠ° ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π·Π° Π·Π°Π²ΡΡΡΠ²Π°Π½Π΅ Π½Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ°ΡΠ° Π½Π° Π·Π°ΡΠ²ΠΊΠ°ΡΠ° ΠΈ ΠΏΡΠΈΠΊΠ°ΡΠ²Π° ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠΈΡΠ΅ ΠΎΡ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ΡΠΎ ΠΊΡΠΌ Π½Π΅Π³ΠΎ. ΠΠ΅Π½Π΅ΡΠΈΡΠ°Π½ΠΎΡΠΎ ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΡΠ΅ ΠΈΠ·ΠΏΡΠ°ΡΠ° Π² ΠΎΠΏΠ°ΡΠΊΠ°ΡΠ° RabbitMQ.
- Π§ΡΠ΅Π· RabbitMQ ΠΏΡΠ±Π»ΠΈΠΊΡΠ²Π°Π½ΠΎΡΠΎ ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π΄ΠΎΡΡΠΈΠ³Π° Π΄ΠΎ ΠΌΠΈΠΊΡΠΎΡΡΠ»ΡΠ³Π°ΡΠ° Flow, ΠΊΠΎΡΡΠΎ Π½Π°ΡΡΠ°Π²Π° Π·Π° ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠ° ΠΎΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ°ΡΠ° Π½Π° Π½Π΅ΠΉΠ½Π°ΡΠ° Π·Π°Π΄Π°ΡΠ° ΡΡΠ΅Π· ΡΡΠΏΠΎΡΡΠ°Π²ΡΠ½Π΅ Π½Π° Job ID ΠΎΡ Π·Π°ΡΠ²ΠΊΠ°ΡΠ° ΠΈ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΎΡΠΎ ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΠ΅.
Π‘Π΅Π³Π° ΠΈΠΌΠ°ΠΌΠ΅ ΠΎΠΊΠΎΠ»ΠΎ 30 ΠΌΠΈΠΊΡΠΎΡΡΠ»ΡΠ³ΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈ Π½Π° Π½ΡΠΊΠΎΠ»ΠΊΠΎ Π³ΡΡΠΏΠΈ:
- Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΡΠ°.
- ΠΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΈ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Ρ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈΡΠ΅ (ΠΌΠ΅ΡΠΈΠ½Π΄ΠΆΡΡΠΈ, ΠΏΠΎΡΠ°).
- Π Π°Π±ΠΎΡΠ° Ρ ΠΈΠ·Ρ ΠΎΠ΄Π½ΠΈΡ ΠΊΠΎΠ΄.
- ΠΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ Ρ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ Π·Π° Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅ (jenkins, nomad, consul ΠΈ Π΄Ρ.).
- ΠΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³ (ΠΈΠ·Π΄Π°Π½ΠΈΡ, Π³ΡΠ΅ΡΠΊΠΈ ΠΈ Π΄Ρ.).
- Π£Π΅Π± ΠΏΠΎΠΌΠΎΡΠ½ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈ (UI Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΡΠ΅ΡΡΠΎΠ²ΠΈ ΡΡΠ΅Π΄ΠΈ, ΡΡΠ±ΠΈΡΠ°Π½Π΅ Π½Π° ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠ° ΠΈ Π΄Ρ.).
- ΠΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ Ρ ΠΏΡΠΎΡΠ»Π΅Π΄ΡΠ²Π°ΡΠΈ Π·Π°Π΄Π°ΡΠΈ ΠΈ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ.
- Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΡΠ°Π±ΠΎΡΠ½ΠΈΡ ΠΏΡΠΎΡΠ΅Ρ Π·Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π·Π°Π΄Π°ΡΠΈ.
ΠΠ°Π΄Π°ΡΠΈ Π½Π° ΡΠ°Π±ΠΎΡΠ½ΠΈΡ ΠΏΡΠΎΡΠ΅Ρ
Integro Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠ° Π΄Π΅ΠΉΠ½ΠΎΡΡΠΈ, ΡΠ²ΡΡΠ·Π°Π½ΠΈ Ρ ΠΆΠΈΠ·Π½Π΅Π½ΠΈΡ ΡΠΈΠΊΡΠ» Π½Π° Π·Π°Π΄Π°ΡΠ°ΡΠ°. ΠΠΏΡΠΎΡΡΠ΅Π½ΠΎ ΠΊΠ°Π·Π°Π½ΠΎ, ΠΆΠΈΠ·Π½Π΅Π½ΠΈΡΡ ΡΠΈΠΊΡΠ» Π½Π° Π·Π°Π΄Π°ΡΠ° ΡΠ΅ ΡΠ΅ ΡΠ°Π·Π±ΠΈΡΠ° ΠΊΠ°ΡΠΎ ΡΠ°Π±ΠΎΡΠ½ΠΈΡ ΠΏΠΎΡΠΎΠΊ Π½Π° Π·Π°Π΄Π°ΡΠ° Π² Jira. ΠΠ°ΡΠΈΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΠΈ Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΠΈΠΌΠ°Ρ Π½ΡΠΊΠΎΠ»ΠΊΠΎ Π²Π°ΡΠΈΠ°ΡΠΈΠΈ Π½Π° ΡΠ°Π±ΠΎΡΠ½ΠΈΡ ΠΏΡΠΎΡΠ΅Ρ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ ΠΎΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°, Π²ΠΈΠ΄Π° Π½Π° Π·Π°Π΄Π°ΡΠ°ΡΠ° ΠΈ ΠΎΠΏΡΠΈΠΈΡΠ΅, ΠΈΠ·Π±ΡΠ°Π½ΠΈ Π² ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½Π° Π·Π°Π΄Π°ΡΠ°.
ΠΠ΅ΠΊΠ° Π΄Π° ΡΠ°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ ΡΠ°Π±ΠΎΡΠ½ΠΈΡ ΠΏΡΠΎΡΠ΅Ρ, ΠΊΠΎΠΉΡΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ Π½Π°ΠΉ-ΡΠ΅ΡΡΠΎ:
ΠΠ° Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠ°ΡΠ° Π·ΡΠ±Π½ΠΎΡΠΎ ΠΊΠΎΠ»Π΅Π»ΠΎ ΠΏΠΎΠΊΠ°Π·Π²Π°, ΡΠ΅ ΠΏΡΠ΅Ρ
ΠΎΠ΄ΡΡ ΡΠ΅ ΠΈΠ·Π²ΠΈΠΊΠ²Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ ΠΎΡ Integro, Π΄ΠΎΠΊΠ°ΡΠΎ ΡΠΎΠ²Π΅ΡΠΊΠ°ΡΠ° ΡΠΈΠ³ΡΡΠ° ΠΏΠΎΠΊΠ°Π·Π²Π°, ΡΠ΅ ΠΏΡΠ΅Ρ
ΠΎΠ΄ΡΡ ΡΠ΅ ΠΈΠ·Π²ΠΈΠΊΠ²Π° ΡΡΡΠ½ΠΎ ΠΎΡ ΡΠΎΠ²Π΅ΠΊ. ΠΠ΅ΠΊΠ° ΡΠ°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΏΡΡΡ, ΠΏΠΎ ΠΊΠΎΠΈΡΠΎ Π΅Π΄Π½Π° Π·Π°Π΄Π°ΡΠ° ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΏΠΎΠ΅ΠΌΠ΅ Π² ΡΠΎΠ·ΠΈ ΡΠ°Π±ΠΎΡΠ΅Π½ ΠΏΡΠΎΡΠ΅Ρ.
ΠΠ°ΠΏΡΠ»Π½ΠΎ ΡΡΡΠ½ΠΎ ΡΠ΅ΡΡΠ²Π°Π½Π΅ Π½Π° DEV+BETA Π±Π΅Π· canary ΡΠ΅ΡΡΠΎΠ²Π΅ (ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ ΡΠ°ΠΊΠ° ΠΏΡΡΠΊΠ°ΠΌΠ΅ ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ):
ΠΡΠ·ΠΌΠΎΠΆΠ½ΠΎ Π΅ Π΄Π° ΠΈΠΌΠ° ΠΈ Π΄ΡΡΠ³ΠΈ ΠΏΡΠ΅Ρ
ΠΎΠ΄Π½ΠΈ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΠΈ. ΠΠΎΠ½ΡΠΊΠΎΠ³Π° ΠΏΡΡΡΡ, ΠΏΠΎ ΠΊΠΎΠΉΡΠΎ ΡΠ΅ ΠΏΠΎΠ΅ΠΌΠ΅ Π΄Π°Π΄Π΅Π½ ΠΏΡΠΎΠ±Π»Π΅ΠΌ, ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΠΈΠ·Π±ΡΠ°Π½ ΡΡΠ΅Π· ΠΎΠΏΡΠΈΠΈ Π² Jira.
ΠΠ²ΠΈΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Π·Π°Π΄Π°ΡΠ°ΡΠ°
ΠΠ΅ΠΊΠ° Π΄Π° ΡΠ°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ ΠΎΡΠ½ΠΎΠ²Π½ΠΈΡΠ΅ ΡΡΡΠΏΠΊΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°Ρ, ΠΊΠΎΠ³Π°ΡΠΎ Π΄Π°Π΄Π΅Π½Π° Π·Π°Π΄Π°ΡΠ° ΠΏΡΠ΅ΠΌΠΈΠ½Π°Π²Π° ΠΏΡΠ΅Π· ΡΠ°Π±ΠΎΡΠ½ΠΈΡ ΠΏΡΠΎΡΠ΅Ρ βDEV Testing + Canary Testsβ:
1. Π Π°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΡΡ ΠΈΠ»ΠΈ PM ΡΡΠ·Π΄Π°Π²Π° Π·Π°Π΄Π°ΡΠ°ΡΠ°.
2. Π Π°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΡΡ ΠΏΡΠΈΠ΅ΠΌΠ° Π·Π°Π΄Π°ΡΠ°ΡΠ° Π·Π° ΡΠ°Π±ΠΎΡΠ°. Π‘Π»Π΅Π΄ Π·Π°Π²ΡΡΡΠ²Π°Π½Π΅ ΡΠΎΠΉ ΠΏΡΠ΅ΠΌΠΈΠ½Π°Π²Π° Π² ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ ΠΠ ΠΠ ΠΠΠΠΠ.
3. Jira ΠΈΠ·ΠΏΡΠ°ΡΠ° Webhook ΠΊΡΠΌ ΠΌΠΈΠΊΡΠΎΡΡΠ»ΡΠ³Π°ΡΠ° Jira (ΠΎΡΠ³ΠΎΠ²ΠΎΡΠ½Π° Π·Π° ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡΡΠ° Ρ Jira).
4. ΠΠΈΠΊΡΠΎΡΡΠ»ΡΠ³Π°ΡΠ° Jira ΠΈΠ·ΠΏΡΠ°ΡΠ° Π·Π°ΡΠ²ΠΊΠ° Π΄ΠΎ ΡΡΠ»ΡΠ³Π°ΡΠ° Flow (ΠΎΡΠ³ΠΎΠ²ΠΎΡΠ½Π° Π·Π° Π²ΡΡΡΠ΅ΡΠ½ΠΈΡΠ΅ ΡΠ°Π±ΠΎΡΠ½ΠΈ ΠΏΠΎΡΠΎΡΠΈ, Π² ΠΊΠΎΠΈΡΠΎ ΡΠ΅ ΠΈΠ·Π²ΡΡΡΠ²Π° ΡΠ°Π±ΠΎΡΠ°) Π·Π° ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΡΠ°Π±ΠΎΡΠ½ΠΈΡ ΠΏΠΎΡΠΎΠΊ.
5. ΠΡΡΡΠ΅ Π² ΡΡΠ»ΡΠ³Π°ΡΠ° Flow:
- Π Π΅ΡΠ΅Π½Π·Π΅Π½ΡΠΈ ΡΠ° Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈ Π·Π° Π·Π°Π΄Π°ΡΠ°ΡΠ° (ΠΌΠΈΠΊΡΠΎΡΡΠ»ΡΠ³Π° Π·Π° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ, ΠΊΠΎΡΡΠΎ Π·Π½Π°Π΅ Π²ΡΠΈΡΠΊΠΎ Π·Π° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈΡΠ΅ + ΠΌΠΈΠΊΡΠΎΡΡΠ»ΡΠ³Π° Jira).
- Π§ΡΠ΅Π· ΠΌΠΈΠΊΡΠΎΡΡΠ»ΡΠ³Π°ΡΠ° Source (Π·Π½Π°Π΅ Π·Π° Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ° ΠΈ ΠΊΠ»ΠΎΠ½ΠΎΠ²Π΅, Π½ΠΎ Π½Π΅ ΡΠ°Π±ΠΎΡΠΈ ΡΡΡ ΡΠ°ΠΌΠΈΡ ΠΊΠΎΠ΄) ΡΠ΅ ΠΈΠ·Π²ΡΡΡΠ²Π° ΡΡΡΡΠ΅Π½Π΅ Π½Π° Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ°, ΠΊΠΎΠΈΡΠΎ ΡΡΠ΄ΡΡΠΆΠ°Ρ ΠΊΠ»ΠΎΠ½ Π½Π° Π½Π°ΡΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ (Π·Π° Π΄Π° ΡΠ΅ ΠΎΠΏΡΠΎΡΡΠΈ ΡΡΡΡΠ΅Π½Π΅ΡΠΎ, ΠΈΠΌΠ΅ΡΠΎ Π½Π° ΠΊΠ»ΠΎΠ½Π° ΡΡΠ²ΠΏΠ°Π΄Π° Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΡΠΈΡΠ»ΠΎ Π² Jira). ΠΠ°ΠΉ-ΡΠ΅ΡΡΠΎ Π΅Π΄Π½Π° Π·Π°Π΄Π°ΡΠ° ΠΈΠΌΠ° ΡΠ°ΠΌΠΎ Π΅Π΄ΠΈΠ½ ΠΊΠ»ΠΎΠ½ Π² Π΅Π΄Π½ΠΎ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅; ΡΠΎΠ²Π° ΠΎΠΏΡΠΎΡΡΡΠ²Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΎΠΏΠ°ΡΠΊΠ°ΡΠ° Π·Π° Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅ ΠΈ Π½Π°ΠΌΠ°Π»ΡΠ²Π° ΡΠ²ΡΡΠ·Π°Π½ΠΎΡΡΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ°ΡΠ°.
- ΠΠ° Π²ΡΠ΅ΠΊΠΈ Π½Π°ΠΌΠ΅ΡΠ΅Π½ ΠΊΠ»ΠΎΠ½ ΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π° ΡΠ»Π΅Π΄Π½Π°ΡΠ° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π½ΠΎΡΡ ΠΎΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ:
i) ΠΠΊΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° Π³Π»Π°Π²Π½ΠΈΡ ΠΊΠ»ΠΎΠ½ (Git microservice Π·Π° ΡΠ°Π±ΠΎΡΠ° Ρ ΠΊΠΎΠ΄).
ii) ΠΠ»ΠΎΠ½ΡΡ Π΅ Π±Π»ΠΎΠΊΠΈΡΠ°Π½ ΠΎΡ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ ΠΎΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° (ΠΌΠΈΠΊΡΠΎΡΡΠ»ΡΠ³Π° Bitbucket).
iii) Π‘ΡΠ·Π΄Π°Π²Π° ΡΠ΅ Π·Π°ΡΠ²ΠΊΠ° Π·Π° ΠΈΠ·ΡΠ΅Π³Π»ΡΠ½Π΅ Π·Π° ΡΠΎΠ·ΠΈ ΠΊΠ»ΠΎΠ½ (ΠΌΠΈΠΊΡΠΎΡΡΠ»ΡΠ³Π° Bitbucket).
iv) Π‘ΡΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π·Π° Π½ΠΎΠ²Π° Π·Π°ΡΠ²ΠΊΠ° Π·Π° ΠΈΠ·ΡΠ΅Π³Π»ΡΠ½Π΅ ΡΠ΅ ΠΈΠ·ΠΏΡΠ°ΡΠ° Π΄ΠΎ ΡΠ°ΡΠΎΠ²Π΅ Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈ (ΠΌΠΈΠΊΡΠΎΡΡΠ»ΡΠ³Π° Notify Π·Π° ΡΠ°Π±ΠΎΡΠ° Ρ ΠΈΠ·Π²Π΅ΡΡΠΈΡ).
v) ΠΠ°Π΄Π°ΡΠΈΡΠ΅ Π·Π° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅, ΡΠ΅ΡΡΠ²Π°Π½Π΅ ΠΈ Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅ ΡΠ΅ ΡΡΠ°ΡΡΠΈΡΠ°Ρ Π½Π° DEV (ΠΌΠΈΠΊΡΠΎΡΡΠ»ΡΠ³Π° Π½Π° Jenkins Π·Π° ΡΠ°Π±ΠΎΡΠ° Ρ Jenkins).
vi) ΠΠΊΠΎ Π²ΡΠΈΡΠΊΠΈ ΠΏΡΠ΅Π΄ΠΈΡΠ½ΠΈ ΡΡΡΠΏΠΊΠΈ ΡΠ° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈ ΡΡΠΏΠ΅ΡΠ½ΠΎ, ΡΠΎΠ³Π°Π²Π° Integro ΠΏΠΎΡΡΠ°Π²Ρ ΡΠ²ΠΎΠ΅ΡΠΎ ΠΎΠ΄ΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π² Π·Π°ΡΠ²ΠΊΠ°ΡΠ° Π·Π° ΠΈΠ·ΡΠ΅Π³Π»ΡΠ½Π΅ (ΠΌΠΈΠΊΡΠΎΡΡΠ»ΡΠ³Π° Bitbucket). - Integro ΠΎΡΠ°ΠΊΠ²Π° ΠΎΠ΄ΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π² Π·Π°ΡΠ²ΠΊΠ° Π·Π° ΠΈΠ·ΡΠ΅Π³Π»ΡΠ½Π΅ ΠΎΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈ ΡΠ΅ΡΠ΅Π½Π·Π΅Π½ΡΠΈ.
- ΠΠ΅Π΄Π½Π°Π³Π° ΡΠ»Π΅Π΄ ΠΊΠ°ΡΠΎ Π±ΡΠ΄Π°Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈ Π²ΡΠΈΡΠΊΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΈ ΠΎΠ΄ΠΎΠ±ΡΠ΅Π½ΠΈΡ (Π²ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠ°Π½ΠΈΡΠ΅ ΡΠ΅ΡΡΠΎΠ²Π΅ ΡΠ° ΠΏΡΠ΅ΠΌΠΈΠ½Π°Π»ΠΈ ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»Π½ΠΎ), Integro ΠΏΡΠ΅Ρ Π²ΡΡΠ»Ρ Π·Π°Π΄Π°ΡΠ°ΡΠ° ΠΊΡΠΌ ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ Test on Dev (Jira microservice).
6. Π’Π΅ΡΡΠ΅ΡΠΈΡΠ΅ ΡΠ΅ΡΡΠ²Π°Ρ Π·Π°Π΄Π°ΡΠ°ΡΠ°. ΠΠΊΠΎ Π½ΡΠΌΠ° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ, ΡΠΎΠ³Π°Π²Π° Π·Π°Π΄Π°ΡΠ°ΡΠ° ΡΠ΅ ΠΏΡΠ΅Ρ Π²ΡΡΠ»Ρ Π² ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ ΠΠΎΡΠΎΠ² Π·Π° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅.
7. Integro βΠ²ΠΈΠΆΠ΄Π°β, ΡΠ΅ Π·Π°Π΄Π°ΡΠ°ΡΠ° Π΅ Π³ΠΎΡΠΎΠ²Π° Π·Π° ΠΏΡΡΠΊΠ°Π½Π΅ ΠΈ Π·Π°ΠΏΠΎΡΠ²Π° Π½Π΅ΠΉΠ½ΠΎΡΠΎ Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅ Π² ΡΠ΅ΠΆΠΈΠΌ canary (ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΠ· Jenkins). ΠΠΎΡΠΎΠ²Π½ΠΎΡΡΡΠ° Π·Π° ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°Π²Π°Π½Π΅ ΡΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Ρ ΠΎΡ Π½Π°Π±ΠΎΡ ΠΎΡ ΠΏΡΠ°Π²ΠΈΠ»Π°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π·Π°Π΄Π°ΡΠ°ΡΠ° Π΅ Π² Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΈΡ ΡΡΠ°ΡΡΡ, Π½ΡΠΌΠ° Π·Π°ΠΊΠ»ΡΡΠ²Π°Π½ΠΈΡ Π½Π° Π΄ΡΡΠ³ΠΈ Π·Π°Π΄Π°ΡΠΈ, Π² ΠΌΠΎΠΌΠ΅Π½ΡΠ° Π½ΡΠΌΠ° Π°ΠΊΡΠΈΠ²Π½ΠΈ ΠΊΠ°ΡΠ²Π°Π½ΠΈΡ Π½Π° ΡΠ°Π·ΠΈ ΠΌΠΈΠΊΡΠΎΡΡΠ»ΡΠ³Π° ΠΈ Ρ.Π½.
8. ΠΠ°Π΄Π°ΡΠ°ΡΠ° ΡΠ΅ ΠΏΡΠ΅Ρ Π²ΡΡΠ»Ρ Π² ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ Canary (ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΠ· Jira).
9. ΠΠΆΠ΅Π½ΠΊΠΈΠ½Ρ ΡΡΠ°ΡΡΠΈΡΠ° Π·Π°Π΄Π°ΡΠ° Π·Π° Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅ ΡΡΠ΅Π· Nomad Π² ΡΠ΅ΠΆΠΈΠΌ Canary (ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ 1-3 ΠΈΠ½ΡΡΠ°Π½ΡΠΈΠΈ) ΠΈ ΡΠ²Π΅Π΄ΠΎΠΌΡΠ²Π° ΡΡΠ»ΡΠ³Π°ΡΠ° Π·Π° Π½Π°Π±Π»ΡΠ΄Π΅Π½ΠΈΠ΅ Π½Π° ΠΈΠ·Π΄Π°Π½ΠΈΡΡΠ° (ΠΌΠΈΠΊΡΠΎΡΡΠ»ΡΠ³Π° DeployWatch) Π·Π° Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅ΡΠΎ.
10. ΠΠΈΠΊΡΠΎΡΡΠ»ΡΠ³Π°ΡΠ° DeployWatch ΡΡΠ±ΠΈΡΠ° ΡΠΎΠ½Π° Π½Π° Π³ΡΠ΅ΡΠΊΠ°ΡΠ° ΠΈ ΡΠ΅Π°Π³ΠΈΡΠ° Π½Π° Π½Π΅Π³ΠΎ, Π°ΠΊΠΎ Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ. ΠΠΊΠΎ ΡΠΎΠ½ΡΡ Π½Π° Π³ΡΠ΅ΡΠΊΠ°ΡΠ° Π΅ ΠΏΡΠ΅Π²ΠΈΡΠ΅Π½ (ΡΠΎΠ½ΠΎΠ²Π°ΡΠ° Π½ΠΎΡΠΌΠ° ΡΠ΅ ΠΈΠ·ΡΠΈΡΠ»ΡΠ²Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ), ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅ ΡΠ΅ ΡΠ²Π΅Π΄ΠΎΠΌΡΠ²Π°Ρ ΡΡΠ΅Π· ΠΌΠΈΠΊΡΠΎΡΡΠ»ΡΠ³Π°ΡΠ° Notify. ΠΠΊΠΎ ΡΠ»Π΅Π΄ 5 ΠΌΠΈΠ½ΡΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΡΡ Π½Π΅ Π΅ ΠΎΡΠ³ΠΎΠ²ΠΎΡΠΈΠ» (ΡΡΠ°ΠΊΠ½Π°Π» Π²ΡΡΡ Ρ ΠΡΠ·ΡΡΠ°Π½ΠΎΠ²ΡΠ²Π°Π½Π΅ ΠΈΠ»ΠΈ ΠΡΡΠ°Π²Π°Π½Π΅), ΡΠΎΠ³Π°Π²Π° ΡΠ΅ ΡΡΠ°ΡΡΠΈΡΠ° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ Π²ΡΡΡΠ°Π½Π΅ Π½Π°Π·Π°Π΄ Π½Π° Π΅ΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠΈΡΠ΅ Canary. ΠΠΊΠΎ ΡΠΎΠ½ΡΡ Π½Π΅ Π΅ Π½Π°Π΄Π²ΠΈΡΠ΅Π½, ΡΠΎΠ³Π°Π²Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΡΡ ΡΡΡΠ±Π²Π° ΡΡΡΠ½ΠΎ Π΄Π° ΡΡΠ°ΡΡΠΈΡΠ° Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° Π·Π°Π΄Π°ΡΠ°ΡΠ° Π² Production (ΡΡΠ΅Π· ΡΡΠ°ΠΊΠ²Π°Π½Π΅ Π²ΡΡΡ Ρ Π±ΡΡΠΎΠ½ Π² ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΠΊΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ). ΠΠΊΠΎ Π² ΡΠ°ΠΌΠΊΠΈΡΠ΅ Π½Π° 60 ΠΌΠΈΠ½ΡΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΡΡ Π½Π΅ Π΅ ΡΡΠ°ΡΡΠΈΡΠ°Π» Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅ΡΠΎ Π² ΠΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²ΠΎ, ΡΠΎΠ³Π°Π²Π° Π΅ΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠΈΡΠ΅ Canary ΡΡΡΠΎ ΡΠ΅ Π±ΡΠ΄Π°Ρ Π²ΡΡΠ½Π°ΡΠΈ Π½Π°Π·Π°Π΄ ΠΎΡ ΡΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π·Π° ΡΠΈΠ³ΡΡΠ½ΠΎΡΡ.
11. Π‘Π»Π΅Π΄ ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π½Π° Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅ΡΠΎ Π² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²ΠΎ:
- ΠΠ°Π΄Π°ΡΠ°ΡΠ° ΡΠ΅ ΠΏΡΠ΅Ρ Π²ΡΡΠ»Ρ Π² ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²ΠΎ (ΠΌΠΈΠΊΡΠΎΡΡΠ»ΡΠ³Π° Jira).
- ΠΠΈΠΊΡΠΎΡΡΠ»ΡΠ³Π°ΡΠ° Jenkins Π·Π°ΠΏΠΎΡΠ²Π° ΠΏΡΠΎΡΠ΅ΡΠ° Π½Π° Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅ ΠΈ ΡΠ²Π΅Π΄ΠΎΠΌΡΠ²Π° ΠΌΠΈΠΊΡΠΎΡΡΠ»ΡΠ³Π°ΡΠ° DeployWatch Π·Π° Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅ΡΠΎ.
- ΠΠΈΠΊΡΠΎΡΡΠ»ΡΠ³Π°ΡΠ° DeployWatch ΠΏΡΠΎΠ²Π΅ΡΡΠ²Π° Π΄Π°Π»ΠΈ Π²ΡΠΈΡΠΊΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ Π² Production ΡΠ° Π°ΠΊΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ (ΠΈΠΌΠ° ΡΠ»ΡΡΠ°ΠΈ, ΠΊΠΎΠ³Π°ΡΠΎ Π½Π΅ Π²ΡΠΈΡΠΊΠΈ ΡΠ° Π°ΠΊΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ).
- Π§ΡΠ΅Π· ΠΌΠΈΠΊΡΠΎΡΡΠ»ΡΠ³Π°ΡΠ° Notify ΡΠ΅ ΠΈΠ·ΠΏΡΠ°ΡΠ° ΠΈΠ·Π²Π΅ΡΡΠΈΠ΅ Π·Π° ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠΈΡΠ΅ ΠΎΡ Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅ΡΠΎ ΠΊΡΠΌ Production.
12. Π Π°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅ ΡΠ΅ ΠΈΠΌΠ°Ρ 30 ΠΌΠΈΠ½ΡΡΠΈ, Π·Π° Π΄Π° Π·Π°ΠΏΠΎΡΠ½Π°Ρ Π΄Π° Π²ΡΡΡΠ°Ρ Π·Π°Π΄Π°ΡΠ° ΠΎΡ ΠΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²ΠΎ, Π°ΠΊΠΎ Π±ΡΠ΄Π΅ ΠΎΡΠΊΡΠΈΡΠΎ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»Π½ΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π½Π° ΠΌΠΈΠΊΡΠΎΡΡΠ»ΡΠ³Π°. Π‘Π»Π΅Π΄ ΡΠΎΠ²Π° Π²ΡΠ΅ΠΌΠ΅ Π·Π°Π΄Π°ΡΠ°ΡΠ° ΡΠ΅ Π±ΡΠ΄Π΅ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ ΠΎΠ±Π΅Π΄ΠΈΠ½Π΅Π½Π° Π² Π³Π»Π°Π²Π½Π°ΡΠ° (ΠΌΠΈΠΊΡΠΎΡΡΠ»ΡΠ³Π° Git).
13. Π‘Π»Π΅Π΄ ΡΡΠΏΠ΅ΡΠ½ΠΎ ΡΠ»ΠΈΠ²Π°Π½Π΅ Π² master, ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ΡΠΎ Π½Π° Π·Π°Π΄Π°ΡΠ°ΡΠ° ΡΠ΅ Π±ΡΠ΄Π΅ ΠΏΡΠΎΠΌΠ΅Π½Π΅Π½ΠΎ Π½Π° ΠΠ°ΡΠ²ΠΎΡΠ΅Π½ΠΎ (ΠΌΠΈΠΊΡΠΎΡΡΠ»ΡΠ³Π° Jira).
ΠΠΈΠ°Π³ΡΠ°ΠΌΠ°ΡΠ° Π½Π΅ ΠΏΡΠ΅ΡΠ΅Π½Π΄ΠΈΡΠ° Π·Π° Π½Π°ΠΏΡΠ»Π½ΠΎ ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π° (Π² Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»Π½ΠΎΡΡ ΠΈΠΌΠ° ΠΎΡΠ΅ ΠΏΠΎΠ²Π΅ΡΠ΅ ΡΡΡΠΏΠΊΠΈ), Π½ΠΎ Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΠΎΡΠ΅Π½ΠΈΡΠ΅ ΡΡΠ΅ΠΏΠ΅Π½ΡΠ° Π½Π° ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ Π² ΠΏΡΠΎΡΠ΅ΡΠΈΡΠ΅. ΠΠΈΠ΅ Π½Π΅ ΡΡΠΈΡΠ°ΠΌΠ΅ ΡΠ°Π·ΠΈ ΡΡ Π΅ΠΌΠ° Π·Π° ΠΈΠ΄Π΅Π°Π»Π½Π° ΠΈ ΠΏΠΎΠ΄ΠΎΠ±ΡΡΠ²Π°ΠΌΠ΅ ΠΏΡΠΎΡΠ΅ΡΠΈΡΠ΅ Π½Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°Π²Π°Π½Π΅ ΠΈ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅.
ΠΠ°ΠΊΠ²ΠΎ ΡΠ»Π΅Π΄Π²Π°?
ΠΠΌΠ°ΠΌΠ΅ Π³ΠΎΠ»Π΅ΠΌΠΈ ΠΏΠ»Π°Π½ΠΎΠ²Π΅ Π·Π° ΡΠ°Π·Π²ΠΈΡΠΈΠ΅ Π½Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΡΡΠ°, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΠΏΡΠ΅ΠΌΠ°Ρ Π²Π°Π½Π΅ Π½Π° ΡΡΡΠ½ΠΈΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΠΌΠΎΠ½ΠΎΠ»ΠΈΡΠ½ΠΈ ΠΈΠ·Π΄Π°Π½ΠΈΡ, ΠΏΠΎΠ΄ΠΎΠ±ΡΡΠ²Π°Π½Π΅ Π½Π° Π½Π°Π±Π»ΡΠ΄Π΅Π½ΠΈΠ΅ΡΠΎ ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅ ΠΈ ΠΏΠΎΠ΄ΠΎΠ±ΡΡΠ²Π°Π½Π΅ Π½Π° Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ΡΠΎ Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅.
ΠΠΎ Π½Π΅ΠΊΠ° ΡΠΏΡΠ΅ΠΌ Π΄ΠΎΡΡΠΊ Π·Π°ΡΠ΅Π³Π°. ΠΠΎΠΊΡΠΈΡ
ΠΌΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ΅ΠΌΠΈ Π² ΠΏΡΠ΅Π³Π»Π΅Π΄Π° Π½Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΡΡΠ° ΠΏΠΎΠ²ΡΡΡ
Π½ΠΎΡΡΠ½ΠΎ, Π½ΡΠΊΠΎΠΈ ΠΈΠ·ΠΎΠ±ΡΠΎ Π½Π΅ Π±ΡΡ
Π° Π·Π°ΡΠ΅Π³Π½Π°ΡΠΈ, ΡΠ°ΠΊΠ° ΡΠ΅ ΡΠ΅ ΡΠ΅ ΡΠ°Π΄Π²Π°ΠΌΠ΅ Π΄Π° ΠΎΡΠ³ΠΎΠ²ΠΎΡΠΈΠΌ Π½Π° Π²ΡΠΏΡΠΎΡΠΈ. ΠΡΠ°ΠΊΠ²Π°ΠΌΠ΅ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΊΠ°ΠΊΠ²ΠΎ Π΄Π° ΠΎΠ±Ρ
Π²Π°Π½Π΅ΠΌ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ, ΠΏΠΈΡΠ΅ΡΠ΅ Π² ΠΊΠΎΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠ΅.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: www.habr.com