ΠžΡ‚ скриптов Π΄ΠΎ собствСнната ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°: ΠΊΠ°ΠΊ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€Π°Ρ…ΠΌΠ΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°Ρ‚Π° Π² ЦИАН

ΠžΡ‚ скриптов Π΄ΠΎ собствСнната ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°: ΠΊΠ°ΠΊ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€Π°Ρ…ΠΌΠ΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°Ρ‚Π° Π² ЦИАН

На RIT 2019 Π½Π°ΡˆΠΈΡΡ‚ ΠΊΠΎΠ»Π΅Π³Π° ΠΠ»Π΅ΠΊΡΠ°Π½Π΄ΡŠΡ€ ΠšΠΎΡ€ΠΎΡ‚ΠΊΠΎΠ² Π½Π°ΠΏΡ€Π°Π²ΠΈ Π΄ΠΎΠΊΠ»Π°Π΄ Π΄ΠΎΠΊΠ»Π°Π΄ Π·Π° автоматизацията Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°Ρ‚Π° Π² ЦИАН: Π·Π° Π΄Π° опростим ΠΆΠΈΠ²ΠΎΡ‚Π° ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π°, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ собствСната ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° Integro. Вя прослСдява ТизнСния Ρ†ΠΈΠΊΡŠΠ» Π½Π° Π·Π°Π΄Π°Ρ‡ΠΈΡ‚Π΅, ΠΎΡ‚Π½Π΅ΠΌΠ° Ρ€ΡƒΡ‚ΠΈΠ½Π½ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΎΡ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈΡ‚Π΅ ΠΈ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΎ намалява броя Π½Π° Π±ΡŠΠ³ΠΎΠ²Π΅Ρ‚Π΅ Π² продукция. Π’ Ρ‚Π°Π·ΠΈ публикация Ρ‰Π΅ допълним Π΄ΠΎΠΊΠ»Π°Π΄Π° Π½Π° ΠΠ»Π΅ΠΊΡΠ°Π½Π΄ΡŠΡ€ ΠΈ Ρ‰Π΅ Ρ€Π°Π·ΠΊΠ°ΠΆΠ΅ΠΌ ΠΊΠ°ΠΊ ΠΏΡ€Π΅ΠΌΠΈΠ½Π°Ρ…ΠΌΠ΅ ΠΎΡ‚ прости скриптовС Π΄ΠΎ обСдиняванС Π½Π° open source ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΈ Ρ‡Ρ€Π΅Π· собствСна ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° ΠΈ с ΠΊΠ°ΠΊΠ²ΠΎ сС Π·Π°Π½ΠΈΠΌΠ°Π²Π° отдСлният Π΅ΠΊΠΈΠΏ ΠΏΠΎ автоматизация.
Β 

НулСвото Π½ΠΈΠ²ΠΎ

«НулСвото Π½ΠΈΠ²ΠΎ Π½Π΅ ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π°, Π½Π΅ Π·Π½Π°ΠΌ Ρ‚Π°ΠΊΠΎΠ²Π°Β»
ΠœΠ°ΠΉΡΡ‚ΠΎΡ€ Π¨ΠΈΡ„Ρƒ ΠΎΡ‚ ΠΌ/Ρ„ Β«ΠšΡƒΠ½Π³-Ρ„Ρƒ Панда»

Автоматизацията Π² ЦИАН Π·Π°ΠΏΠΎΡ‡Π½Π° 14 Π³ΠΎΠ΄ΠΈΠ½ΠΈ слСд основаванСто Π½Π° компанията. Π’ΠΎΠ³Π°Π²Π° Π² Π΅ΠΊΠΈΠΏΠ° Π·Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° имашС 35 Π΄ΡƒΡˆΠΈ. Π’Ρ€ΡƒΠ΄Π½ΠΎ Π΅ Π΄Π° сС повярва, Π½Π°Π»ΠΈ? Π Π°Π·Π±ΠΈΡ€Π° сС, Π² някаква Ρ„ΠΎΡ€ΠΌΠ° автоматизацията всС ΠΏΠ°ΠΊ ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π°ΡˆΠ΅, Π½ΠΎ ΠΎΡ‚Π΄Π΅Π»Π½ΠΎ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π·Π° Π½Π΅ΠΏΡ€Π΅ΠΊΡŠΡΠ½Π°Ρ‚Π° интСграция ΠΈ доставка Π½Π° ΠΊΠΎΠ΄ Π·Π°ΠΏΠΎΡ‡Π½Π° Π΄Π° сС оформя ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΏΡ€Π΅Π· 2015 Π³ΠΎΠ΄ΠΈΠ½Π°.Β 

Π’ΠΎΠ³Π°Π²Π° ΠΈΠΌΠ°Ρ…ΠΌΠ΅ ΠΎΠ³Ρ€ΠΎΠΌΠ΅Π½ ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚ ΠΎΡ‚ Python, C# ΠΈ PHP, Ρ€Π°Π·ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ Π½Π° Linux/Windows ΡΡŠΡ€Π²ΡŠΡ€ΠΈ. Π—Π° Π΄Π΅ΠΏΠ»ΠΎΠΉΠ²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Ρ‚ΠΎΠ·ΠΈ ΠΌΠΎΠ½ΡΡ‚ΡŠΡ€ ΠΈΠΌΠ°Ρ…ΠΌΠ΅ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ‚ скриптовС, ΠΊΠΎΠΈΡ‚ΠΎ стартирахмС Ρ€ΡŠΡ‡Π½ΠΎ. ИмашС ΠΈ сборка Π½Π° ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚Π°, която носСшС Π±ΠΎΠ»ΠΊΠ° ΠΈ страдания Π·Π°Ρ€Π°Π΄ΠΈ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΈ ΠΏΡ€ΠΈ сливанСто Π½Π° ΠΊΠ»ΠΎΠ½ΠΎΠ²Π΅, ΠΊΠΎΡ€Π΅ΠΊΡ†ΠΈΠΈ Π½Π° Π΄Π΅Ρ„Π΅ΠΊΡ‚ΠΈ ΠΈ ΠΏΡ€Π΅Π·Π±ΠΎΡ€ΠΊΠ° β€žΡ Π΄Ρ€ΡƒΠ³ Π½Π°Π±ΠΎΡ€ Π·Π°Π΄Π°Ρ‡ΠΈ Π² Π±ΠΈΠ»Π΄Π°β€œ. ΠŸΡ€ΠΎΡ†Π΅ΡΡŠΡ‚ Π² опростСна Ρ„ΠΎΡ€ΠΌΠ° изглСТдашС Ρ‚Π°ΠΊΠ°:

ΠžΡ‚ скриптов Π΄ΠΎ собствСнната ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°: ΠΊΠ°ΠΊ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€Π°Ρ…ΠΌΠ΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°Ρ‚Π° Π² ЦИАН

Π’ΠΎΠ²Π° Π½Π΅ Π½ΠΈ ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€ΡΠ²Π°ΡˆΠ΅ ΠΈ искахмС Π΄Π° ΠΈΠ·Π³Ρ€Π°Π΄ΠΈΠΌ повторяСм, Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€Π°Π½ ΠΈ управляван процСс Π½Π° сборка ΠΈ Π΄Π΅ΠΏΠ»ΠΎΠΉ. Π—Π° Ρ†Π΅Π»Ρ‚Π° Π½ΠΈ бСшС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠ° CI/CD систСма ΠΈ ΠΈΠ·Π±ΠΈΡ€Π°Ρ…ΠΌΠ΅ ΠΌΠ΅ΠΆΠ΄Ρƒ Π±Π΅Π·ΠΏΠ»Π°Ρ‚Π½Π°Ρ‚Π° вСрсия Π½Π° Teamcity ΠΈ бСзплатния Jenkins, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ Ρ€Π°Π±ΠΎΡ‚ΠΈΡ…ΠΌΠ΅ с тях ΠΈ Π΄Π²Π°Ρ‚Π° отговаряха Π½Π° Π½Π°ΡˆΠΈΡ‚Π΅ изисквания ΠΏΠΎ Π½Π°Π±ΠΎΡ€ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Π˜Π·Π±Ρ€Π°Ρ…ΠΌΠ΅ Teamcity ΠΊΠ°Ρ‚ΠΎ ΠΏΠΎ-Π½ΠΎΠ² ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚. Π’ΠΎΠ³Π°Π²Π° ΠΎΡ‰Π΅ Π½Π΅ ΠΏΠΎΠ»Π·Π²Π°Ρ…ΠΌΠ΅ микросСрвизна Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° ΠΈ Π½Π΅ Ρ€Π°Π·Ρ‡ΠΈΡ‚Π°Ρ…ΠΌΠ΅ Π½Π° голямо количСство Π·Π°Π΄Π°Ρ‡ΠΈ ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈ.

ΠŸΡ€ΠΈΡΡ‚ΠΈΠ³Π°ΠΌΠ΅ Π΄ΠΎ идСята Π·Π° собствСна систСма

ВнСдряванСто Π½Π° Teamcity ΠΏΡ€Π΅ΠΌΠ°Ρ…Π½Π° само част ΠΎΡ‚ Ρ€ΡŠΡ‡Π½Π°Ρ‚Π° Ρ€Π°Π±ΠΎΡ‚Π°: остави сС ΡΡŠΠ·Π΄Π°Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Pull Request-ΠΎΠ²Π΅, Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° Π·Π°Π΄Π°Ρ‡ΠΈΡ‚Π΅ ΠΏΠΎ статуси Π² Jira ΠΈ ΠΈΠ·Π±ΠΎΡ€ΡŠΡ‚ Π½Π° Π·Π°Π΄Π°Ρ‡ΠΈ Π·Π° Ρ€Π΅Π»ΠΈΠ·Π°. Π‘ Ρ‚ΠΎΠ²Π° систСмата Teamcity Π²Π΅Ρ‡Π΅ Π½Π΅ сС ΡΠΏΡ€Π°Π²ΡΡˆΠ΅. Π’Ρ€ΡΠ±Π²Π°ΡˆΠ΅ Π΄Π° ΠΈΠ·Π±Π΅Ρ€Π΅ΠΌ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ Π·Π° Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½Π° автоматизация. ΠžΠ±ΡΡŠΠΆΠ΄Π°Ρ…ΠΌΠ΅ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΈ Π·Π° Ρ€Π°Π±ΠΎΡ‚Π° със скриптовС Π² Teamcity ΠΈΠ»ΠΈ ΠΏΡ€Π΅ΠΌΠΈΠ½Π°Π²Π°Π½Π΅ Π½Π° външни систСми Π·Π° автоматизация. Π’ ΠΊΡ€Π°ΠΉΠ½Π° смСтка Ρ€Π΅ΡˆΠΈΡ…ΠΌΠ΅, Ρ‡Π΅ Π½ΠΈ Π΅ Π½ΡƒΠΆΠ½Π° максимална Π³ΡŠΠ²ΠΊΠ°Π²ΠΎΡΡ‚, която Π΄Π°Π²Π° само собствСно Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅. Π’Π°ΠΊΠ° сС появи ΠΏΡŠΡ€Π²Π°Ρ‚Π° вСрсия Π½Π° Π²ΡŠΡ‚Ρ€Π΅ΡˆΠ½Π°Ρ‚Π° систСма Π·Π° автоматизация, Π½Π°Ρ€Π΅Ρ‡Π΅Π½Π° Integro.

Teamcity сС Π·Π°Π½ΠΈΠΌΠ°Π²Π° с автоматизация Π½Π° Π½ΠΈΠ²ΠΎ стартиранС Π½Π° процСси ΠΏΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€Π°Π½Π΅ ΠΈ внСдряванС, Π° Integro сС фокусира Π½Π° високоравнСва автоматизация Π½Π° процСситС Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°. НуТно бСшС Π΄Π° сС ΠΎΠ±Π΅Π΄ΠΈΠ½ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° с Π·Π°Π΄Π°Ρ‡ΠΈΡ‚Π΅ Π² Jira с ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°Ρ‚Π° Π½Π° ΡΠ²ΡŠΡ€Π·Π°Π½ΠΈΡ ΠΈΠ·Ρ…ΠΎΠ΄Π΅Π½ ΠΊΠΎΠ΄ Π² Bitbucket. На Ρ‚ΠΎΠ·ΠΈ Π΅Ρ‚Π°ΠΏ Π² Integro Π·Π°ΠΏΠΎΡ‡Π½Π°Ρ…Π° Π΄Π° сС появяват свои Ρ€Π°Π±ΠΎΡ‚Π½ΠΈ ΠΏΠΎΡ‚ΠΎΡ†ΠΈ Π·Π° Ρ€Π°Π±ΠΎΡ‚Π° с Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ Ρ‚ΠΈΠΏΠΎΠ²Π΅ Π·Π°Π΄Π°Ρ‡ΠΈ.Β 

ΠŸΠΎΡ€Π°Π΄ΠΈ ΡƒΠ²Π΅Π»ΠΈΡ‡Π°Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° автоматизацията Π² бизнСс процСситС, нарасна броят Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ‚Π΅ ΠΈ run-ΠΎΠ²Π΅Ρ‚Π΅ Π² Teamcity. Π’Π°ΠΊΠ° сС появи Π½ΠΎΠ² ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ: Π΅Π΄ΠΈΠ½ Π±Π΅Π·ΠΏΠ»Π°Ρ‚Π΅Π½ инстанс Π½Π° Teamcity стана Π½Π΅Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΡ‡Π΅Π½ (3 Π°Π³Π΅Π½Ρ‚Π° ΠΈ 100 ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°), Π΄ΠΎΠ±Π°Π²ΠΈΡ…ΠΌΠ΅ ΠΎΡ‰Π΅ Π΅Π΄ΠΈΠ½ инстанс (ΠΎΡ‰Π΅ 3 Π°Π³Π΅Π½Ρ‚Π° ΠΈ 100 ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°), послС ΠΎΡ‰Π΅. Π’ ΠΊΡ€Π°ΠΉΠ½Π° смСтка ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ…ΠΌΠ΅ систСма ΠΎΡ‚ няколко кластСра, която бСшС Ρ‚Ρ€ΡƒΠ΄Π½Π° Π·Π° ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅:

ΠžΡ‚ скриптов Π΄ΠΎ собствСнната ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°: ΠΊΠ°ΠΊ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€Π°Ρ…ΠΌΠ΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°Ρ‚Π° Π² ЦИАН

ΠšΠΎΠ³Π°Ρ‚ΠΎ Π΄ΠΎΠΉΠ΄Π΅ Π²ΡŠΠΏΡ€ΠΎΡΡŠΡ‚ Π·Π° 4-Ρ‚ΠΈ инстанс, Ρ€Π°Π·Π±Ρ€Π°Ρ…ΠΌΠ΅, Ρ‡Π΅ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΏΡ€ΠΎΠ΄ΡŠΠ»ΠΆΠ°Π²Π°ΠΌΠ΅ Ρ‚Π°ΠΊΠ°, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ ΠΎΠ±Ρ‰ΠΈΡ‚Π΅ Ρ€Π°Π·Ρ…ΠΎΠ΄ΠΈ Π·Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° 4 инстанса Π²Π΅Ρ‡Π΅ ΠΈΠ·Π»ΠΈΠ·Π°Ρ…Π° извън Ρ€Π°ΠΌΠΊΠΈΡ‚Π΅. Π’ΡŠΠ·Π½ΠΈΠΊΠ½Π° Π²ΡŠΠΏΡ€ΠΎΡ Π·Π° Π·Π°ΠΊΡƒΠΏΡƒΠ²Π°Π½Π΅ Π½Π° ΠΏΠ»Π°Ρ‚Π΅Π½ Teamcity ΠΈΠ»ΠΈ ΠΈΠ·Π±ΠΎΡ€ Π² ΠΏΠΎΠ»Π·Π° Π½Π° Π±Π΅Π·ΠΏΠ»Π°Ρ‚Π΅Π½ Jenkins. Π˜Π·Π²ΡŠΡ€ΡˆΠΈΡ…ΠΌΠ΅ смСтки Π·Π° инстанситС ΠΈ ΠΏΠ»Π°Π½ΠΎΠ²Π΅Ρ‚Π΅ Π·Π° автоматизация ΠΈ Ρ€Π΅ΡˆΠΈΡ…ΠΌΠ΅, Ρ‡Π΅ Ρ‰Π΅ ΠΏΡ€Π΅ΠΌΠΈΠ½Π΅ΠΌ Π½Π° Jenkins. Π‘Π»Π΅Π΄ няколко сСдмици ΠΏΡ€Π΅ΠΌΠΈΠ½Π°Ρ…ΠΌΠ΅ Π½Π° Jenkins ΠΈ сС ΠΈΠ·Π±Π°Π²ΠΈΡ…ΠΌΠ΅ ΠΎΡ‚ част ΠΎΡ‚ главоболията, ΡΠ²ΡŠΡ€Π·Π°Π½ΠΈ с ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ°Ρ‚Π° Π½Π° мноТСство инстанси Π½Π° Teamcity. Π’Π°ΠΊΠ° успяхмС Π΄Π° сС ΡΡŠΡΡ€Π΅Π΄ΠΎΡ‚ΠΎΡ‡ΠΈΠΌ Π²ΡŠΡ€Ρ…Ρƒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Integro ΠΈ Π°Π΄Π°ΠΏΡ‚ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ Π½Π° Jenkins към Π½Π°ΡˆΠΈΡ‚Π΅ Π½ΡƒΠΆΠ΄ΠΈ.

Π‘ Ρ€ΡŠΡΡ‚Π° Π½Π° Π±Π°Π·ΠΎΠ²Π°Ρ‚Π° автоматизация (ΠΏΠΎΠ΄ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Π½Π° Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ създаванС Π½Π° Pull Request-ΠΎΠ²Π΅, ΡΡŠΠ±ΠΈΡ€Π°Π½Π΅ ΠΈ ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ²Π°Π½Π΅ Π½Π° Code coverage ΠΈ Π΄Ρ€ΡƒΠ³ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ) възникна постоянна Π½ΡƒΠΆΠ΄Π° Π΄Π° сС ΠΎΡ‚ΠΊΠ°ΠΆΠ΅ΠΌ ΠΎΡ‚ Ρ€ΡŠΡ‡Π½ΠΈΡ‚Π΅ Ρ€Π΅Π»ΠΈΠ·ΠΈ ΠΈ Π΄Π° оставим Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° Π½Π° Ρ€ΠΎΠ±ΠΎΡ‚ΠΈΡ‚Π΅. ОсвСн Ρ‚ΠΎΠ²Π° Π² компанията Π·Π°ΠΏΠΎΡ‡Π½Π° прСмСстванС към микросСрвизи, ΠΊΠΎΠΈΡ‚ΠΎ изискваха чСсти Ρ€Π΅Π»ΠΈΠ·ΠΈ, ΠΎΡ‚Π΄Π΅Π»Π½ΠΎ Π΅Π΄ΠΈΠ½ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³. Π’Π°ΠΊΠ° постСпСнно стигнахмС Π΄ΠΎ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€Π°Π½ΠΈ Ρ€Π΅Π»ΠΈΠ·ΠΈ Π½Π° Π½Π°ΡˆΠΈΡ‚Π΅ микросСрвизи (ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚ΡŠΡ‚ всС ΠΎΡ‰Π΅ сС ΠΈΠ·Π΄Π°Π²Π° Ρ€ΡŠΡ‡Π½ΠΎ Π·Π°Ρ€Π°Π΄ΠΈ слоТността Π½Π° процСса). Но, ΠΊΠ°ΠΊΡ‚ΠΎ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ сС случва, възникна Π½ΠΎΠ²Π° слоТност.Β 

АвтоматизиранС Π½Π° тСстванСто

ΠžΡ‚ скриптов Π΄ΠΎ собствСнната ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°: ΠΊΠ°ΠΊ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€Π°Ρ…ΠΌΠ΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°Ρ‚Π° Π² ЦИАН

Π—Π°Ρ€Π°Π΄ΠΈ автоматизацията Π½Π° Ρ€Π΅Π»ΠΈΠ·ΠΈΡ‚Π΅ процСситС Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° сС ускориха, частично Π·Π° смСтка Π½Π° пропусканС Π½Π° някои Π΅Ρ‚Π°ΠΏΠΈ ΠΎΡ‚ тСстванСто. А Ρ‚ΠΎΠ²Π° Π΄ΠΎΠ²Π΅Π΄Π΅ Π΄ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ влошаванС Π½Π° качСството. Π—Π²ΡƒΡ‡ΠΈ Π±Π°Π½Π°Π»Π½ΠΎ, Π½ΠΎ Π·Π°Π΅Π΄Π½ΠΎ с ускорСнитС Ρ€Π΅Π»ΠΈΠ·ΠΈ Ρ‚Ρ€ΡΠ±Π²Π°ΡˆΠ΅ Π΄Π° ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈΠΌ ΠΈ мСтодологията Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π°. НуТно бСшС Π΄Π° помислим Π·Π° автоматизация Π½Π° тСстванСто, ΠΏΡ€ΠΈΠ»Π°Π³Π°Π½Π΅ Π½Π° Π»ΠΈΡ‡Π½Π° отговорност (Ρ‚ΡƒΠΊ става Π²ΡŠΠΏΡ€ΠΎΡ Π·Π° "ΠΏΡ€ΠΈΠ΅ΠΌΠ°Π½Π΅ Π½Π° идСята Π² Π³Π»Π°Π²Π°Ρ‚Π°", Π° Π½Π΅ финансови санкции) Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° Π·Π° издавания ΠΊΠΎΠ΄ ΠΈ Π±ΡŠΠ³ΠΎΠ²Π΅Ρ‚Π΅ Π² Π½Π΅Π³ΠΎ, ΠΊΠ°ΠΊΡ‚ΠΎ ΠΈ Π·Π° Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ относно пусканСто/Π½Π΅ пусканСто Π½Π° Π·Π°Π΄Π°Ρ‡Π°Ρ‚Π° Ρ‡Ρ€Π΅Π· Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π΅Π½ Π΄Π΅ΠΏΠ»ΠΎΠΉ.Β 

Π—Π° Π΄Π° сС справим с ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈΡ‚Π΅ с качСството, стигнахмС Π΄ΠΎ Π΄Π²Π΅ Π²Π°ΠΆΠ½ΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ: Π·Π°ΠΏΠΎΡ‡Π½Π°Ρ…ΠΌΠ΅ Π΄Π° ΠΏΡ€ΠΎΠ²Π΅ΠΆΠ΄Π°ΠΌΠ΅ канарСйско тСстванС ΠΈ Π²Π½Π΅Π΄Ρ€ΠΈΡ…ΠΌΠ΅ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ Π½Π° Ρ„ΠΎΠ½ΠΎΠ²ΠΈΡ‚Π΅ Π³Ρ€Π΅ΡˆΠΊΠΈ с Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ Ρ€Π΅Π°Π³ΠΈΡ€Π°Π½Π΅ ΠΏΡ€ΠΈ ΠΏΡ€Π΅Π²ΠΈΡˆΠ°Π²Π°Π½Π΅ Π½Π° Π½ΠΎΡ€ΠΌΠ°Ρ‚Π°. ΠŸΡŠΡ€Π²ΠΎΡ‚ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈ Π΄Π° сС ΠΎΡ‚ΠΊΡ€ΠΈΠ²Π°Ρ‚ ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΈ Π³Ρ€Π΅ΡˆΠΊΠΈ ΠΏΡ€Π΅Π΄ΠΈ ΠΏΡŠΠ»Π½ΠΎΠΏΡ€Π°Π²Π½ΠΎΡ‚ΠΎ ΠΏΠΎΠΏΠ°Π΄Π°Π½Π΅ Π½Π° ΠΊΠΎΠ΄Π° Π² production, Π° Π²Ρ‚ΠΎΡ€ΠΎΡ‚ΠΎ Π½Π°ΠΌΠ°Π»ΠΈ Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ Π·Π° рСакция Π½Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ Π² production. Π“Ρ€Π΅ΡˆΠΊΠΈ, Ρ€Π°Π·Π±ΠΈΡ€Π° сС, сС случват, Π½ΠΎ Π½ΠΈΠ΅ Π²Π»Π°Π³Π°ΠΌΠ΅ ΠΏΠΎ-голямата част ΠΎΡ‚ Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ ΠΈ усилията си Π½Π΅ Π² корСкцията, Π° Π² минимизацията.Β 

Π•ΠΊΠΈΠΏ ΠΏΠΎ автоматизация

Π’ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° ΠΈΠΌΠ°ΠΌΠ΅ Π΅ΠΊΠΈΠΏ ΠΎΡ‚ 130 Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈ ΠΈ ΠΏΡ€ΠΎΠ΄ΡŠΠ»ΠΆΠ°Π²Π°ΠΌΠ΅ Π΄Π° растСм. Π•ΠΊΠΈΠΏΡŠΡ‚ ΠΏΠΎ Π½Π΅ΠΏΡ€Π΅ΠΊΡŠΡΠ½Π°Ρ‚Π° интСграция ΠΈ доставка Π½Π° ΠΊΠΎΠ΄ (Π½Π°Ρ‚Π°Ρ‚ΡŠΠΊ β€” Π΅ΠΊΠΈΠΏ Deploy and Integration ΠΈΠ»ΠΈ DI) сС ΡΡŠΡΡ‚ΠΎΠΈ ΠΎΡ‚ 7 Π΄ΡƒΡˆΠΈ ΠΈ Ρ€Π°Π±ΠΎΡ‚ΠΈ Π² 2 направлСния: Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Π·Π° автоматизация Integro ΠΈ DevOps.Β 

DevOps отговаря Π·Π° Dev/Beta срСдитС Π½Π° сайта CIAN, срСдата Integro, ΠΏΠΎΠΌΠ°Π³Π° Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈΡ‚Π΅ Π² Ρ€Π°Π·Ρ€Π΅ΡˆΠ°Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π²Π° Π½ΠΎΠ²ΠΈ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈ Π·Π° ΠΌΠ°Ρ‰Π°Π±ΠΈΡ€Π°Π½Π΅ Π½Π° срСдитС. НаправлСниСто Π·Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° Integro сС Π·Π°Π½ΠΈΠΌΠ°Π²Π° ΠΊΠ°ΠΊΡ‚ΠΎ със самата Integro, Ρ‚Π°ΠΊΠ° ΠΈ с ΡΠ²ΡŠΡ€Π·Π°Π½ΠΈ услуги, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, плъгини Π·Π° Jenkins, Jira, Confluence, ΠΊΠ°ΠΊΡ‚ΠΎ ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π²Π° ΠΏΠΎΠΌΠΎΡ‰Π½ΠΈ инструмСнти ΠΈ прилоТСния Π·Π° Π΅ΠΊΠΈΠΏΠΈΡ‚Π΅ Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈΡ‚Π΅.Β 

Π•ΠΊΠΈΠΏΡŠΡ‚ DI Ρ€Π°Π±ΠΎΡ‚ΠΈ ΡΡŠΠ²ΠΌΠ΅ΡΡ‚Π½ΠΎ с Π΅ΠΊΠΈΠΏΠ° Π½Π° ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°, ΠΊΠΎΠΉΡ‚ΠΎ сС Π·Π°Π½ΠΈΠΌΠ°Π²Π° с Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°, Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΈ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈ Π·Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π²ΡŠΡ‚Ρ€Π΅ Π² компанията. Π’ допълнСниС, всСки Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Π² ЦИАН ΠΌΠΎΠΆΠ΅ Π΄Π° допринСсС Π·Π° автоматизация, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π΄Π° създадС микроавтоматизация спорСд Π½ΡƒΠΆΠ΄ΠΈΡ‚Π΅ Π½Π° Π΅ΠΊΠΈΠΏΠ° ΠΈΠ»ΠΈ Π΄Π° сподСли страхотна идСя ΠΊΠ°ΠΊ Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈ автоматизацията ΠΏΠΎ-Π΄ΠΎΠ±Ρ€Π°.

НаслоСн ΠΏΠ°ΠΉ ΠΎΡ‚ автоматизация Π² ЦИАН

ΠžΡ‚ скриптов Π΄ΠΎ собствСнната ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°: ΠΊΠ°ΠΊ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€Π°Ρ…ΠΌΠ΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°Ρ‚Π° Π² ЦИАН

Всички систСми, участващи Π² автоматизацията, ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈ Π½Π° няколко слоя:

  1. Π’ΡŠΠ½ΡˆΠ½ΠΈ систСми (Jira, Bitbucket ΠΈ Π΄Ρ€.). Π‘ тях работят Π΅ΠΊΠΈΠΏΠΈΡ‚Π΅ Π·Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°.
  2. ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Integro. Най-чСсто Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈΡ‚Π΅ Π½Π΅ работят с нСя Π΄ΠΈΡ€Π΅ΠΊΡ‚Π½ΠΎ, Π½ΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ тя ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° Π½Π° цялата автоматизация.
  3. Услуги Π·Π° доставка, оркСстрация ΠΈ ΠΎΡ‚ΠΊΡ€ΠΈΠ²Π°Π½Π΅ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Jenkins, Consul, Nomad). Π‘ тяхна ΠΏΠΎΠΌΠΎΡ‰ Π½ΠΈΠ΅ Ρ€Π°Π·Π³Ρ€ΡŠΡ‰Π°ΠΌΠ΅ ΠΊΠΎΠ΄ Π½Π° ΡΡŠΡ€Π²ΡŠΡ€ΠΈΡ‚Π΅ ΠΈ осигурявамС Π²Π·Π°ΠΈΠΌΠ½Π°Ρ‚Π° Ρ€Π°Π±ΠΎΡ‚Π° Π½Π° услугитС.
  4. ЀизичСският слой (ΡΡŠΡ€Π²ΡŠΡ€ΠΈ, ОБ, ΡΠ²ΡŠΡ€Π·Π°Π½ΠΎ ПО). На Ρ‚ΠΎΠ·ΠΈ слой Ρ€Π°Π±ΠΎΡ‚ΠΈ Π½Π°ΡˆΠΈΡΡ‚ ΠΊΠΎΠ΄. Π’ΠΎΠ²Π° ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС ΠΊΠ°ΠΊΡ‚ΠΎ физичСски ΡΡŠΡ€Π²ΡŠΡ€, Ρ‚Π°ΠΊΠ° ΠΈ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»Π΅Π½ (LXC, KVM, Docker).

Бъгласно Ρ‚Π°Π·ΠΈ концСпция Π½ΠΈΠ΅ раздСлямС Π·ΠΎΠ½ΠΈΡ‚Π΅ Π½Π° отговорност Π² Π΅ΠΊΠΈΠΏΠ° DI. ΠŸΡŠΡ€Π²ΠΈΡ‚Π΅ Π΄Π²Π° слоя са Π² Π·ΠΎΠ½Π°Ρ‚Π° Π½Π° отговорност Π½Π° Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π·Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Integro, Π° послСднитС Π΄Π²Π° слоя Π²Π΅Ρ‡Π΅ са Π² Π·ΠΎΠ½Π°Ρ‚Π° Π½Π° отговорност Π½Π° DevOps. Π’Π°ΠΊΠΎΠ²Π° Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ позволява Π΄Π° сС фокусирамС Π²ΡŠΡ€Ρ…Ρƒ Π·Π°Π΄Π°Ρ‡ΠΈΡ‚Π΅ ΠΈ Π½Π΅ ΠΏΡ€Π΅Ρ‡ΠΈ Π½Π° взаимодСйствиСто, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ Π½ΠΈΠ΅ смС Π±Π»ΠΈΠ·ΠΎ Π΅Π΄ΠΈΠ½ Π΄ΠΎ Π΄Ρ€ΡƒΠ³ ΠΈ постоянно обмСнямС знания ΠΈ ΠΎΠΏΠΈΡ‚.

Integro

НСка сС фокусирамС Π²ΡŠΡ€Ρ…Ρƒ Integro ΠΈ Π΄Π° Π·Π°ΠΏΠΎΡ‡Π½Π΅ΠΌ с тСхнологичния стСк:

  • CentOs 7
  • Docker + Nomad + Consul + Vault
  • Java 11 (старият ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚ Integro Ρ‰Π΅ останС Π½Π° Java 8)
  • Spring Boot 2.X + Spring Cloud Config
  • PostgreSql 11
  • RabbitMQΒ 
  • Apache Ignite
  • Camunda (Π²Π³Ρ€Π°Π΄Π΅Π½)
  • Grafana + Graphite + Prometheus + Jaeger + ELK
  • Web UI: React (CSR) + MobX
  • SSO: Keycloak

НиС слСдвамС ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ° Π½Π° микросСрвисна Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°, Π²ΡŠΠΏΡ€Π΅ΠΊΠΈ Ρ‡Π΅ ΠΈΠΌΠ°ΠΌΠ΅ ΠΈ наслСдствСн ΠΊΠΎΠ΄ ΠΏΠΎΠ΄ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Π½Π° ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚Π½Π° вСрсия Π½Π° Integro. ВсСки микросСрвис Ρ€Π°Π±ΠΎΡ‚ΠΈ Π² свой docker ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€, Π° услугитС ΠΊΠΎΠΌΡƒΠ½ΠΈΠΊΠΈΡ€Π°Ρ‚ ΠΏΠΎΠΌΠ΅ΠΆΠ΄Ρƒ си Ρ‡Ρ€Π΅Π· HTTP заявки ΠΈ RabbitMQ ΡΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΡ. ΠœΠΈΠΊΡ€ΠΎΡΠ΅Ρ€Π²ΠΈΡΠΈΡ‚Π΅ сС ΠΎΡ‚ΠΊΡ€ΠΈΠ²Π°Ρ‚ Π²Π·Π°ΠΈΠΌΠ½ΠΎ Ρ‡Ρ€Π΅Π· Consul ΠΈ правят заявки към Π½Π΅Π³ΠΎ, ΠΏΡ€Π΅ΠΌΠΈΠ½Π°Π²Π°ΠΉΠΊΠΈ авторизация Ρ‡Ρ€Π΅Π· SSO (Keycloak, OAuth 2/OpenID Connect).

ΠžΡ‚ скриптов Π΄ΠΎ собствСнната ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°: ΠΊΠ°ΠΊ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€Π°Ρ…ΠΌΠ΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°Ρ‚Π° Π² ЦИАН

ΠšΠ°Ρ‚ΠΎ Ρ€Π΅Π°Π»Π΅Π½ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ‰Π΅ Ρ€Π°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ взаимодСйствиСто с Jenkins, ΠΊΠΎΠ΅Ρ‚ΠΎ сС ΡΡŠΡΡ‚ΠΎΠΈ ΠΎΡ‚ слСднитС ΡΡ‚ΡŠΠΏΠΊΠΈ:

  1. ΠœΠΈΠΊΡ€ΠΎΡΠ΅Ρ€Π²ΠΈΡΡŠΡ‚ Π·Π° ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° работния ΠΏΠΎΡ‚ΠΎΠΊ (ΠΏΠΎ-Π½Π°Ρ‚Π°Ρ‚ΡŠΠΊ Π½Π°Ρ€ΠΈΡ‡Π°Π½ Flow-микросСрвис) иска Π΄Π° стартира компилация Π² Jenkins. Π—Π° Ρ†Π΅Π»Ρ‚Π° Ρ‚ΠΎΠΉ Ρ‡Ρ€Π΅Π· Consul ΠΎΡ‚ΠΊΡ€ΠΈΠ²Π° IP:PORT Π½Π° микросСрвиса Π·Π° интСграция с Jenkins (ΠΏΠΎ-Π½Π°Ρ‚Π°Ρ‚ΡŠΠΊ Π½Π°Ρ€ΠΈΡ‡Π°Π½ Jenkins-микросСрвис) ΠΈ ΠΈΠ·ΠΏΡ€Π°Ρ‰Π° асинхронна заявка Π·Π° стартиранС Π½Π° компилацията Π² Jenkins.
  2. Jenkins-ΠΌΠΈΠΊΡ€ΠΎΡΠ΅Ρ€Π²ΠΈΡΡŠΡ‚, слСд ΠΊΠ°Ρ‚ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈ заявката, Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π° ΠΈ Π²Ρ€ΡŠΡ‰Π° Job ID, ΠΏΠΎ ΠΊΠΎΠΉΡ‚ΠΎ слСд Ρ‚ΠΎΠ²Π° ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€Π° Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΡŠΡ‚ ΠΎΡ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π°. Π’ ΡΡŠΡ‰ΠΎΡ‚ΠΎ Π²Ρ€Π΅ΠΌΠ΅ Ρ‚ΠΎΠΉ стартира компилацията Π² Jenkins Ρ‡Ρ€Π΅Π· ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅ Π½Π° REST API.
  3. Jenkins изпълнява компилацията ΠΈ слСд Π½Π΅ΠΉΠ½ΠΎΡ‚ΠΎ ΠΏΡ€ΠΈΠΊΠ»ΡŽΡ‡Π²Π°Π½Π΅ ΠΈΠ·ΠΏΡ€Π°Ρ‰Π° webhook с Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΈΡ‚Π΅ ΠΎΡ‚ ΠΈΠ·ΠΏΡŠΠ»Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° Jenkins-микросСрвис.
  4. Jenkins-ΠΌΠΈΠΊΡ€ΠΎΡΠ΅Ρ€Π²ΠΈΡΡŠΡ‚, ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°ΠΉΠΊΠΈ webhook, Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π° ΡΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅ Π·Π° ΠΏΡ€ΠΈΠΊΠ»ΡŽΡ‡Π²Π°Π½Π΅ Π½Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°Ρ‚Π° Π½Π° заявката ΠΈ прикрСпя към Π½Π΅Π³ΠΎ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΈΡ‚Π΅ ΠΎΡ‚ ΠΈΠ·ΠΏΡŠΠ»Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ. Π‘Ρ„ΠΎΡ€ΠΌΠΈΡ€Π°Π½ΠΎΡ‚ΠΎ ΡΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅ сС ΠΈΠ·ΠΏΡ€Π°Ρ‰Π° Π² ΠΎΠΏΠ°ΡˆΠΊΠ°Ρ‚Π° RabbitMQ.
  5. Π§Ρ€Π΅Π· RabbitMQ ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ²Π°Π½ΠΎΡ‚ΠΎ ΡΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅ ΠΏΠΎΠΏΠ°Π΄Π° ΠΏΡ€ΠΈ Flow-микросСрвиза, ΠΊΠΎΠΉΡ‚ΠΎ Π½Π°ΡƒΡ‡Π°Π²Π° Π·Π° Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚Π° ΠΎΡ‚ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°Ρ‚Π° Π½Π° своята Π·Π°Π΄Π°Ρ‡Π°, ΡΡŠΠΏΠΎΡΡ‚Π°Π²ΡΠΉΠΊΠΈ Job ID ΠΎΡ‚ заявката ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΎΡ‚ΠΎ ΡΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅.

Π’ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° ΠΈΠΌΠ°ΠΌΠ΅ ΠΎΠΊΠΎΠ»ΠΎ 30 микросСрвиза, ΠΊΠΎΠΈΡ‚ΠΎ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° сС раздСлят Π½Π° няколко Π³Ρ€ΡƒΠΏΠΈ:

  1. Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ.
  2. Π˜Π½Ρ„ΠΎΡ€ΠΌΠΈΡ€Π°Π½Π΅ ΠΈ взаимодСйствиС с ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈ (ΠΌΠ΅ΡΠ΅Π½Π΄ΠΆΡŠΡ€ΠΈ, ΠΈΠΌΠ΅ΠΉΠ»ΠΈ).
  3. Π Π°Π±ΠΎΡ‚Π° с изходния ΠΊΠΎΠ΄.
  4. Π˜Π½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ с инструмСнти Π·Π° Π΄Π΅ΠΏΠ»ΠΎΠΉ (jenkins, nomad, consul ΠΈ Ρ‚.Π½.).
  5. ΠœΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ (Π½Π° издания, Π³Ρ€Π΅ΡˆΠΊΠΈ ΠΈ Ρ‚.Π½.).
  6. Π£Π΅Π± ΡƒΡ‚ΠΈΠ»ΠΈΡ‚ΠΈ (UI Π·Π° ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° тСстови срСди, ΡΡŠΠ±ΠΈΡ€Π°Π½Π΅ Π½Π° статистики ΠΈ Ρ‚.Π½.).
  7. Π˜Π½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ с Ρ‚Ρ€Π°ΠΊΠ΅Ρ€ΠΈ Π½Π° Π·Π°Π΄Π°Ρ‡ΠΈ ΠΈ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ систСми.
  8. Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° работния ΠΏΠΎΡ‚ΠΎΠΊ Π·Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ Π·Π°Π΄Π°Ρ‡ΠΈ.

Π Π°Π±ΠΎΡ‚Π΅Π½ ΠΏΠΎΡ‚ΠΎΠΊ Π½Π° Π·Π°Π΄Π°Ρ‡Π°

Integro Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€Π° дСйствията, ΡΠ²ΡŠΡ€Π·Π°Π½ΠΈ с ТизнСния Ρ†ΠΈΠΊΡŠΠ» Π½Π° Π·Π°Π΄Π°Ρ‡Π°Ρ‚Π°. ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΎ ΠΏΠΎΠ΄ ΠΆΠΈΠ·Π½Π΅Π½ Ρ†ΠΈΠΊΡŠΠ» Π½Π° Π·Π°Π΄Π°Ρ‡Π°Ρ‚Π° Ρ‰Π΅ Ρ€Π°Π·Π±ΠΈΡ€Π°ΠΌΠ΅ работния ΠΏΠΎΡ‚ΠΎΠΊ Π½Π° Π·Π°Π΄Π°Ρ‡Π°Ρ‚Π° Π² Jira. Π’ Π½Π°ΡˆΠΈΡ‚Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈΠΌΠ° няколко Π²Π°Ρ€ΠΈΠ°Ρ†ΠΈΠΈ Π½Π° работния ΠΏΠΎΡ‚ΠΎΠΊ Π² зависимост ΠΎΡ‚ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, Ρ‚ΠΈΠΏΠ° Π·Π°Π΄Π°Ρ‡Π° ΠΈ ΠΎΠΏΡ†ΠΈΠΈΡ‚Π΅, ΠΈΠ·Π±Ρ€Π°Π½ΠΈ Π·Π° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Π°Ρ‚Π° Π·Π°Π΄Π°Ρ‡Π°.Β 

НСка Ρ€Π°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ работния ΠΏΠΎΡ‚ΠΎΠΊ, ΠΊΠΎΠΉΡ‚ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ Π½Π°ΠΉ-чСсто:

ΠžΡ‚ скриптов Π΄ΠΎ собствСнната ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°: ΠΊΠ°ΠΊ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€Π°Ρ…ΠΌΠ΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°Ρ‚Π° Π² ЦИАН

На схСмата Π·ΡŠΠ±Π½ΠΎΡ‚ΠΎ ΠΊΠΎΠ»Π΅Π»ΠΎ ΠΏΠΎΠΊΠ°Π·Π²Π°, Ρ‡Π΅ ΠΏΡ€Π΅ΠΌΠΈΠ½Π°Π²Π°Π½Π΅Ρ‚ΠΎ сС ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π° Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ ΠΎΡ‚ Integro, Π΄ΠΎΠΊΠ°Ρ‚ΠΎ Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ‚Π° Π½Π° Ρ‡ΠΎΠ²Π΅ΠΊΠ° ΠΎΠ·Π½Π°Ρ‡Π°Π²Π°, Ρ‡Π΅ ΠΏΡ€Π΅ΠΌΠΈΠ½Π°Π²Π°Π½Π΅Ρ‚ΠΎ сС ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π° Ρ€ΡŠΡ‡Π½ΠΎ ΠΎΡ‚ Ρ‡ΠΎΠ²Π΅ΠΊ. НСка Ρ€Π°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ няколко ΠΏΡŠΡ‚ΠΈ, ΠΏΠΎ ΠΊΠΎΠΈΡ‚ΠΎ Π·Π°Π΄Π°Ρ‡Π°Ρ‚Π° ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΏΡ€Π΅ΠΌΠΈΠ½Π΅ Π² Ρ‚ΠΎΠ·ΠΈ workflow.

Напълно Ρ€ΡŠΡ‡Π½ΠΎ тСстванС Π½Π° DEV+BETA Π±Π΅Π· ΠΊΠ°Π½Π°Ρ€Π΅ΠΉΠ½ΠΈ тСстовС (ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ Ρ‚Π°ΠΊΠ° пускамС ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚Π°):

ΠžΡ‚ скриптов Π΄ΠΎ собствСнната ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°: ΠΊΠ°ΠΊ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€Π°Ρ…ΠΌΠ΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°Ρ‚Π° Π² ЦИАН

ΠœΠΎΠ³Π°Ρ‚ Π΄Π° ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π°Ρ‚ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΈ Π½Π° ΠΏΡ€Π΅ΠΌΠΈΠ½Π°Π²Π°Π½Π΅. Понякога ΠΏΡŠΡ‚ΡΡ‚, ΠΏΠΎ ΠΊΠΎΠΉΡ‚ΠΎ Π·Π°Π΄Π°Ρ‡Π°Ρ‚Π° Ρ‰Π΅ ΠΌΠΈΠ½Π΅, ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС ΠΈΠ·Π±Ρ€Π°Π½ Ρ‡Ρ€Π΅Π· ΠΎΠΏΡ†ΠΈΠΈΡ‚Π΅ Π² Jira.

Π”Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Π·Π°Π΄Π°Ρ‡Π°Ρ‚Π°

НСка Ρ€Π°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ основнитС ΡΡ‚ΡŠΠΏΠΊΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ сС ΠΈΠ·ΠΏΡŠΠ»Π½ΡΠ²Π°Ρ‚ ΠΏΡ€ΠΈ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° Π·Π°Π΄Π°Ρ‡Π°Ρ‚Π° ΠΏΠΎ workflow β€žΠ’Π΅ΡΡ‚Π²Π°Π½Π΅ Π½Π° DEV + ΠΊΠ°Π½Π°Ρ€Π΅ΠΉΠ½ΠΈ Ρ‚Π΅ΡΡ‚ΠΎΠ²Π΅β€œ:

1. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΈΠ»ΠΈ PM създава Π·Π°Π΄Π°Ρ‡Π°.

2. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡŠΡ‚ ΠΏΠΎΠ΅ΠΌΠ° Π·Π°Π΄Π°Ρ‡Π°Ρ‚Π° Π² Ρ€Π°Π±ΠΎΡ‚Π°. Π‘Π»Π΅Π΄ Π·Π°Π²ΡŠΡ€ΡˆΠ²Π°Π½Π΅ я ΠΏΡ€Π΅Ρ…Π²ΡŠΡ€Π»Ρ Π² статус IN REVIEW.

3. Jira ΠΈΠ·ΠΏΡ€Π°Ρ‰Π° Webhook към Jira микросСрвиса (отговаря Π·Π° интСграцията с Jira).

4. Jira ΠΌΠΈΠΊΡ€ΠΎΡΠ΅Ρ€Π²ΠΈΡΡŠΡ‚ ΠΈΠ·ΠΏΡ€Π°Ρ‰Π° исканС към Flow-сСрвиса (отговаря Π·Π° Π²ΡŠΡ‚Ρ€Π΅ΡˆΠ½ΠΈΡ‚Π΅ workflows, Π² ΠΊΠΎΠΈΡ‚ΠΎ сС ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π° Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π°) Π·Π° стартиранС Π½Π° workflow.

5. Π’ΡŠΡ‚Ρ€Π΅ във Flow-сСрвиса:

  • Назначават сС Ρ€Π΅Ρ†Π΅Π½Π·Π΅Π½Ρ‚ΠΈ Π·Π° Π·Π°Π΄Π°Ρ‡Π°Ρ‚Π° (Users микросСрвиз, ΠΊΠΎΠΉΡ‚ΠΎ Π·Π½Π°Π΅ всичко Π·Π° ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈΡ‚Π΅ + Jira микросСрвиз).
  • Π§Ρ€Π΅Π· Source микросСрвиз (Π·Π½Π°Π΅ Π·Π° Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈΡ‚Π΅ ΠΈ ΠΊΠ»ΠΎΠ½ΠΎΠ²Π΅Ρ‚Π΅, Π½ΠΎ Π½Π΅ Ρ€Π°Π±ΠΎΡ‚ΠΈ с самия ΠΊΠΎΠ΄) сС ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π° Ρ‚ΡŠΡ€ΡΠ΅Π½Π΅ Π½Π° Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ, Π² ΠΊΠΎΠΈΡ‚ΠΎ ΠΈΠΌΠ° ΠΊΠ»ΠΎΠ½ Π½Π° Π½Π°ΡˆΠ°Ρ‚Π° Π·Π°Π΄Π°Ρ‡Π° (Π·Π° улСснСниС Π½Π° Ρ‚ΡŠΡ€ΡΠ΅Π½Π΅Ρ‚ΠΎ ΠΈΠΌΠ΅Ρ‚ΠΎ Π½Π° ΠΊΠ»ΠΎΠ½Π° съвпада с Π½ΠΎΠΌΠ΅Ρ€Π° Π½Π° Π·Π°Π΄Π°Ρ‡Π°Ρ‚Π° Π² Jira). Най-чСсто Π·Π°Π΄Π°Ρ‡Π°Ρ‚Π° ΠΈΠΌΠ° само Π΅Π΄ΠΈΠ½ ΠΊΠ»ΠΎΠ½ Π² Π΅Π΄Π½ΠΎ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΎ, ΠΊΠΎΠ΅Ρ‚ΠΎ улСснява ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° ΠΎΠΏΠ°ΡˆΠΊΠ°Ρ‚Π° Π·Π° Π΄Π΅ΠΏΠ»ΠΎΠΉ ΠΈ намалява ΡΠ²ΡŠΡ€Π·Π°Π½ΠΎΡΡ‚Ρ‚Π° ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈΡ‚Π΅.
  • Π—Π° всСки Π½Π°ΠΌΠ΅Ρ€Π΅Π½ ΠΊΠ»ΠΎΠ½ сС ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π° слСдната послСдоватСлност ΠΎΡ‚ дСйствия:

    i) ПодливанС Π½Π° master ΠΊΠ»ΠΎΠ½Π° (Git микросСрвис Π·Π° Ρ€Π°Π±ΠΎΡ‚Π° с ΠΊΠΎΠ΄Π°).
    ii) ΠšΠ»ΠΎΠ½ΡŠΡ‚ сС Π±Π»ΠΎΠΊΠΈΡ€Π° ΠΎΡ‚ ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ ΠΎΡ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° (Bitbucket микросСрвиз).
    iii) Бъздава сС Pull Request Π·Π° Ρ‚ΠΎΠ·ΠΈ ΠΊΠ»ΠΎΠ½ (Bitbucket микросСрвиз).
    iv) Π˜Π·ΠΏΡ€Π°Ρ‰Π° сС ΡΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅ Π·Π° Π½ΠΎΠ² Pull Request Π² Ρ‡Π°Ρ‚ΠΎΠ²Π΅ Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈΡ‚Π΅ (Notify микросСрвиз Π·Π° Ρ€Π°Π±ΠΎΡ‚Π° с увСдомлСния).
    v) Π—Π°ΠΏΠΎΡ‡Π²Π°Ρ‚ compilera, тСстванС ΠΈ Π΄Π΅ΠΏΠ»ΠΎΠΉ Π½Π° Π·Π°Π΄Π°Ρ‡Π°Ρ‚Π° Π½Π° DEV (Jenkins микросСрвиз Π·Π° Ρ€Π°Π±ΠΎΡ‚Π° с Jenkins).
    vi) Ако всички ΠΏΡ€Π΅Π΄ΠΈΡˆΠ½ΠΈ Ρ‚ΠΎΡ‡ΠΊΠΈ Π·Π°Π²ΡŠΡ€ΡˆΠ°Ρ‚ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ, Integro поставя своСто ΠΎΠ΄ΠΎΠ±Ρ€Π΅Π½ΠΈΠ΅ Π² Pull Request (Bitbucket микросСрвиз).

  • Integro ΠΎΡ‡Π°ΠΊΠ²Π° ΠΎΠ΄ΠΎΠ±Ρ€Π΅Π½ΠΈΠ΅ Π² Pull Request ΠΎΡ‚ Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΡ‚Π΅ Ρ€Π΅Ρ†Π΅Π½Π·Π΅Π½Ρ‚ΠΈ.
  • Π’Π΅Π΄Π½Π°Π³Π° Ρ‰ΠΎΠΌ ΠΏΠΎΠ»ΡƒΡ‡ΠΈ всички Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΈ одобрСния (Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»Π½ΠΎ ΠΏΡ€Π΅ΠΌΠΈΠ½Π°Π»ΠΈ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€Π°Π½ΠΈ тСстовС), Integro ΠΏΡ€Π΅Ρ…Π²ΡŠΡ€Π»Ρ Π·Π°Π΄Π°Ρ‡Π°Ρ‚Π° Π² статус Test on Dev (Jira микросСрвиз).

6. ВСстировчицитС ΠΏΡ€ΠΎΠ²Π΅ΠΆΠ΄Π°Ρ‚ тСст Π½Π° Π·Π°Π΄Π°Ρ‡Π°Ρ‚Π°. Ако нямат ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ, ΠΏΡ€Π΅ΠΌΠΈΠ½Π°Π²Π°Ρ‚ Π·Π°Π΄Π°Ρ‡Π°Ρ‚Π° Π² статус "Π“ΠΎΡ‚ΠΎΠ² Π·Π° ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅".

7. Integro β€žΠ²ΠΈΠΆΠ΄Π°β€œ, Ρ‡Π΅ Π·Π°Π΄Π°Ρ‡Π°Ρ‚Π° Π΅ Π³ΠΎΡ‚ΠΎΠ²Π° Π·Π° ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ²Π°Π½Π΅ ΠΈ стартира Π½Π΅ΠΉΠ½ΠΎΡ‚ΠΎ Ρ€Π°Π·ΠΏΠΎΠ»Π°Π³Π°Π½Π΅ Π² ΠΊΠ°Π½Π°Ρ€Π΅Ρ‡Π΅Π½ Ρ€Π΅ΠΆΠΈΠΌ (Jenkins микросСрвиз). Готовността Π·Π° ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ²Π°Π½Π΅ сС опрСдСля ΠΎΡ‚ Π½Π°Π±ΠΎΡ€ ΠΏΡ€Π°Π²ΠΈΠ»Π°. НапримСр, Π·Π°Π΄Π°Ρ‡Π°Ρ‚Π° Π΄Π° Π΅ Π² нСобходимия статус, Π΄Π° няма Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ Π½Π° Π΄Ρ€ΡƒΠ³ΠΈ Π·Π°Π΄Π°Ρ‡ΠΈ, Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° Π΄Π° няма Π°ΠΊΡ‚ΠΈΠ²Π½ΠΈ разполоТСния Π½Π° Ρ‚ΠΎΠ·ΠΈ микросСрвиз ΠΈ Ρ‚.Π½.

8. Π—Π°Π΄Π°Ρ‡Π°Ρ‚Π° ΠΏΡ€Π΅ΠΌΠΈΠ½Π°Π²Π° Π² статус "ΠšΠ°Π½Π°Ρ€Π°" (Jira микросСрвиз).

9. Jenkins стартира Ρ‡Ρ€Π΅Π· Nomad Ρ€Π°Π·ΠΏΠΎΠ»Π°Π³Π°Π½Π΅Ρ‚ΠΎ Π½Π° Π·Π°Π΄Π°Ρ‡Π°Ρ‚Π° Π² ΠΊΠ°Π½Π°Ρ€Π΅Ρ‡Π΅Π½ Ρ€Π΅ΠΆΠΈΠΌ (ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ 1-3 инстанции) ΠΈ увСдомява Π·Π° Ρ€Π°Π·ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ сСрвиза Π·Π° ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ Π½Π° вСрсии (DeployWatch микросСрвиз).

10. DeployWatch ΠΌΠΈΠΊΡ€ΠΎΡΠ΅Ρ€Π²ΠΈΠ·ΡŠΡ‚ ΡΡŠΠ±ΠΈΡ€Π° Ρ„ΠΎΠ½ Π½Π° Π³Ρ€Π΅ΡˆΠΊΠΈΡ‚Π΅ ΠΈ Ρ€Π΅Π°Π³ΠΈΡ€Π°, Π°ΠΊΠΎ Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ. ΠŸΡ€ΠΈ ΠΏΡ€Π΅Π²ΠΈΡˆΠ°Π²Π°Π½Π΅ Π½Π° Ρ„ΠΎΠ½Π° Π½Π° Π³Ρ€Π΅ΡˆΠΊΠΈΡ‚Π΅ (Π½ΠΎΡ€ΠΌΠ°Ρ‚Π° Π½Π° Ρ„ΠΎΠ½Π° сС изчислява Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ) сС ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π° ΡƒΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈΡ‚Π΅ Ρ‡Ρ€Π΅Π· Notify микросСрвиз. Ако Π² Ρ€Π°ΠΌΠΊΠΈΡ‚Π΅ Π½Π° 5 ΠΌΠΈΠ½ΡƒΡ‚ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡŠΡ‚ Π½Π΅ Ρ€Π΅Π°Π³ΠΈΡ€Π° (натиснС "Π’ΡŠΡ€Π½ΠΈ" ΠΈΠ»ΠΈ "ΠžΡΡ‚Π°Π½ΠΈ"), стартира Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π΅Π½ ΠΎΡ‚ΠΊΠ°Ρ‚ Π½Π° ΠΊΠ°Π½Π°Ρ€Π΅Ρ‡Π½ΠΈΡ‚Π΅ инстанции. Ако Ρ„ΠΎΠ½ΡŠΡ‚ Π½Π΅ Π΅ ΠΏΡ€Π΅Π²ΠΈΡˆΠ΅Π½, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡŠΡ‚ трябва Ρ€ΡŠΡ‡Π½ΠΎ Π΄Π° стартира Ρ€Π°Π·ΠΏΠΎΠ»Π°Π³Π°Π½Π΅Ρ‚ΠΎ Π½Π° Π·Π°Π΄Π°Ρ‡Π°Ρ‚Π° Π² Production (Ρ‡Ρ€Π΅Π· натисканС Π½Π° Π±ΡƒΡ‚ΠΎΠ½ Π² интСрфСйса). Ако Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ Π½Π° 60 ΠΌΠΈΠ½ΡƒΡ‚ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡŠΡ‚ Π½Π΅ стартира Ρ€Π°Π·ΠΏΠΎΠ»Π°Π³Π°Π½Π΅Ρ‚ΠΎ Π² Production, ΠΊΠ°Π½Π°Ρ€Π΅Ρ‡Π½ΠΈΡ‚Π΅ инстанции ΡΡŠΡ‰ΠΎ Π·Π° Ρ†Π΅Π»ΠΈΡ‚Π΅ Π½Π° сигурността Ρ‰Π΅ Π±ΡŠΠ΄Π°Ρ‚ Π²ΡŠΡ€Π½Π°Ρ‚ΠΈ.

11. Π‘Π»Π΅Π΄ стартиранС Π½Π° Ρ€Π°Π·ΠΏΠΎΠ»Π°Π³Π°Π½Π΅Ρ‚ΠΎ Π² Production:

  • Π—Π°Π΄Π°Ρ‡Π°Ρ‚Π° ΠΏΡ€Π΅ΠΌΠΈΠ½Π°Π²Π° Π² статус "ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡ‚Π²ΠΎ" (Jira микросСрвиз).
  • Jenkins ΠΌΠΈΠΊΡ€ΠΎΡΠ΅Ρ€Π²ΠΈΠ·ΡŠΡ‚ стартира процСса Π½Π° Ρ€Π°Π·ΠΏΠΎΠ»Π°Π³Π°Π½Π΅ ΠΈ увСдомява Π·Π° Ρ€Π°Π·ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ DeployWatch микросСрвиз.
  • DeployWatch ΠΌΠΈΠΊΡ€ΠΎΡΠ΅Ρ€Π²ΠΈΠ·ΡŠΡ‚ провСрява, Ρ‡Π΅ всички ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈ Π² Production са ΠΎΠ±Π½ΠΎΠ²Π΅Π½ΠΈ (ΠΈΠΌΠ°Π»ΠΎ Π΅ случаи, ΠΊΠΎΠ³Π°Ρ‚ΠΎ Π½Π΅ всичко Π΅ Π±ΠΈΠ»ΠΎ ΠΎΠ±Π½ΠΎΠ²Π΅Π½ΠΎ).
  • Π§Ρ€Π΅Π· Notify микросСрвиз сС ΠΈΠ·ΠΏΡ€Π°Ρ‰Π° ΡƒΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ Π·Π° Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΈΡ‚Π΅ ΠΎΡ‚ Ρ€Π°Π·ΠΏΠΎΠ»Π°Π³Π°Π½Π΅Ρ‚ΠΎ Π² Production.

12. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈΡ‚Π΅ Ρ‰Π΅ ΠΈΠΌΠ°Ρ‚ 30 ΠΌΠΈΠ½ΡƒΡ‚ΠΈ Π·Π° стартиранС Π½Π° ΠΎΡ‚ΠΊΠ°Ρ‚ Π½Π° Π·Π°Π΄Π°Ρ‡Π°Ρ‚Π° ΠΎΡ‚ Production Π² случай Π½Π° ΠΎΡ‚ΠΊΡ€ΠΈΡ‚ΠΈΠ΅ Π½Π° Π½Π΅ΠΊΠΎΡ€Π΅ΠΊΡ‚Π½ΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π½Π° микросСрвиза. Π‘Π»Π΅Π΄ ΠΈΠ·Ρ‚ΠΈΡ‡Π°Π½Π΅Ρ‚ΠΎ Π½Π° Ρ‚ΠΎΠ²Π° Π²Ρ€Π΅ΠΌΠ΅ Π·Π°Π΄Π°Ρ‡Π°Ρ‚Π° Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ Ρ‰Π΅ бъдС ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€Π°Π½Π° Π² master (Git микросСрвиз).

13. Π‘Π»Π΅Π΄ ΡƒΡΠΏΠ΅ΡˆΠ΅Π½ merge Π² master ΡΡ‚Π°Ρ‚ΡƒΡΡŠΡ‚ Π½Π° Π·Π°Π΄Π°Ρ‡Π°Ρ‚Π° Ρ‰Π΅ бъдС ΠΏΡ€ΠΎΠΌΠ΅Π½Π΅Π½ Π½Π° "Π—Π°Ρ‚Π²ΠΎΡ€Π΅Π½Π°" (Jira микросСрвиз).

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

Какво слСдва

ИмамС Π°ΠΌΠ±ΠΈΡ†ΠΈΠΎΠ·Π½ΠΈ ΠΏΠ»Π°Π½ΠΎΠ²Π΅ Π·Π° Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅ Π½Π° автоматизацията, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΎΡ‚ΠΊΠ°Π· ΠΎΡ‚ Ρ€ΡŠΡ‡Π½ΠΈΡ‚Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΈ Ρ€Π΅Π»ΠΈΠ·ΠΈΡ‚Π΅ Π½Π° ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚Π°, подобряванС Π½Π° ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π½Π° автоматичния Π΄Π΅ΠΏΠ»ΠΎΠΉ, подобряванС Π½Π° взаимодСйствиСто с Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈΡ‚Π΅.

Но Π½Π° Ρ‚ΠΎΠ²Π° място Ρ‰Π΅ спрСм засСга. Много Ρ‚Π΅ΠΌΠΈ Π² ΠΏΡ€Π΅Π³Π»Π΅Π΄Π° Π½Π° автоматизацията ΠΏΠΎΠΊΡ€ΠΈΡ…ΠΌΠ΅ ΠΏΠΎΠ²ΡŠΡ€Ρ…Π½ΠΎΡΡ‚Π½ΠΎ, Π° някои ΠΈΠ·ΠΎΠ±Ρ‰ΠΎ Π½Π΅ адрСсирахмС, Π·Π°Ρ‚ΠΎΠ²Π° с радост Ρ‰Π΅ ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€ΠΈΠΌ Π½Π° Π²ΡŠΠΏΡ€ΠΎΡΠΈΡ‚Π΅. ΠžΡ‡Π°ΠΊΠ²Π°ΠΌΠ΅ прСдлоТСния ΠΊΠ°ΠΊΠ²ΠΎ Π΄Π° освСтим ΠΏΠΎ-ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ, ΠΏΠΈΡˆΠ΅Ρ‚Π΅ Π² ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΡ‚Π΅.

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

ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС със Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS ΠΈ VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ πŸ”₯ ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС със Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS ΠΈ VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ | ProHoster