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

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

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

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

β€žΠΡΠΌΠ° Ρ‚Π°ΠΊΠΎΠ²Π° Π½Π΅Ρ‰ΠΎ ΠΊΠ°Ρ‚ΠΎ Π½ΡƒΠ»Π΅Π²ΠΎ Π½ΠΈΠ²ΠΎ, Π°Π· Π½Π΅ Π·Π½Π°ΠΌ Ρ‚Π°ΠΊΠΎΠ²Π° Π½Π΅Ρ‰ΠΎβ€œ
ΠœΠ°ΠΉΡΡ‚ΠΎΡ€ Π¨ΠΈΡ„Ρƒ ΠΎΡ‚ Ρ„ΠΈΠ»ΠΌΠ° "ΠšΡƒΠ½Π³ Π€Ρƒ Панда"

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

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

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

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

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

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

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

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

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

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

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

НиС Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€Π°ΠΌΠ΅ тСстванСто

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

Π‘Π»Π°Π³ΠΎΠ΄Π°Ρ€Π΅Π½ΠΈΠ΅ Π½Π° автоматизацията Π½Π° вСрсиитС, процСситС Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° сС ускориха, отчасти ΠΏΠΎΡ€Π°Π΄ΠΈ пропусканСто Π½Π° някои Π΅Ρ‚Π°ΠΏΠΈ Π½Π° тСстванС. И Ρ‚ΠΎΠ²Π° Π΄ΠΎΠ²Π΅Π΄Π΅ Π΄ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½Π½Π° Π·Π°Π³ΡƒΠ±Π° Π½Π° качСство. Π—Π²ΡƒΡ‡ΠΈ Ρ‚Ρ€ΠΈΠ²ΠΈΠ°Π»Π½ΠΎ, Π½ΠΎ Π·Π°Π΅Π΄Π½ΠΎ с ускоряванСто Π½Π° изданията бСшС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° сС ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ мСтодологията Π·Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π²Π°Π½Π΅ Π½Π° ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π°. Π’Ρ€ΡΠ±Π²Π°ΡˆΠ΅ Π΄Π° сС мисли Π·Π° Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€Π°Π½Π΅ Π½Π° тСстванСто, насаТданС Π½Π° Π»ΠΈΡ‡Π½Π° отговорност (Ρ‚ΡƒΠΊ Π³ΠΎΠ²ΠΎΡ€ΠΈΠΌ Π·Π° β€žΠΏΡ€ΠΈΠ΅ΠΌΠ°Π½Π΅ Π½Π° идСята Π² Π³Π»Π°Π²Π°Ρ‚Π°β€œ, Π° Π½Π΅ Π·Π° ΠΏΠ°Ρ€ΠΈΡ‡Π½ΠΈ Π³Π»ΠΎΠ±ΠΈ) Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° Π·Π° пуснатия ΠΊΠΎΠ΄ ΠΈ Π³Ρ€Π΅ΡˆΠΊΠΈ Π² Π½Π΅Π³ΠΎ, ΠΊΠ°ΠΊΡ‚ΠΎ ΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ Π΄Π° освобоТдаванС/Π½Π΅ освобоТдаванС Π½Π° Π·Π°Π΄Π°Ρ‡Π° Ρ‡Ρ€Π΅Π· Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ внСдряванС. 

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

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

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

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

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

БлоСста Ρ‚ΠΎΡ€Ρ‚Π° Π½Π° автоматизацията Π² CIAN

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

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

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

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

ΠšΠ°Ρ‚ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΎΡ‚ рСалния ΠΆΠΈΠ²ΠΎΡ‚, помислСтС Π·Π° взаимодСйствиС с ДТСнкинс, ΠΊΠΎΠ΅Ρ‚ΠΎ сС ΡΡŠΡΡ‚ΠΎΠΈ ΠΎΡ‚ слСднитС ΡΡ‚ΡŠΠΏΠΊΠΈ:

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

Π‘Π΅Π³Π° ΠΈΠΌΠ°ΠΌΠ΅ ΠΎΠΊΠΎΠ»ΠΎ 30 микроуслуги, ΠΊΠΎΠΈΡ‚ΠΎ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈ Π½Π° няколко Π³Ρ€ΡƒΠΏΠΈ:

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

Π—Π°Π΄Π°Ρ‡ΠΈ Π½Π° работния процСс

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

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

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

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

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

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

Π’ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎ Π΅ Π΄Π° ΠΈΠΌΠ° ΠΈ Π΄Ρ€ΡƒΠ³ΠΈ ΠΏΡ€Π΅Ρ…ΠΎΠ΄Π½ΠΈ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΈ. Понякога ΠΏΡŠΡ‚ΡΡ‚, ΠΏΠΎ ΠΊΠΎΠΉΡ‚ΠΎ Ρ‰Π΅ ΠΏΠΎΠ΅ΠΌΠ΅ Π΄Π°Π΄Π΅Π½ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС ΠΈΠ·Π±Ρ€Π°Π½ Ρ‡Ρ€Π΅Π· ΠΎΠΏΡ†ΠΈΠΈ Π² 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

ДобавянС Π½Π° Π½ΠΎΠ² ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€