DevOps инструмСнты Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для DevOps. ΠŸΡ€ΠΎΡ†Π΅ΡΡ построСния инфраструктуры Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ тСстирования с нуля

Π§Π°ΡΡ‚ΡŒ 1: Web / Android

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: данная ΡΡ‚Π°Ρ‚ΡŒΡ являСтся ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΎΠΌ Π½Π° русский язык ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠΈΒ Β«DevOps tools are not only for DevOps. Building test automation infrastructure from scratchΒ». Однако всС ΠΈΠ»Π»ΡŽΡΡ‚Ρ€Π°Ρ†ΠΈΠΈ, ссылки, Ρ†ΠΈΡ‚Π°Ρ‚Ρ‹ ΠΈ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Ρ‹ сохранСны Π½Π° языкС ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ искаТСния смысла ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π΅ Π½Π° русский язык. Π–Π΅Π»Π°ΡŽ Π²Π°ΠΌ приятного изучСния!

DevOps инструмСнты Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для DevOps. ΠŸΡ€ΠΎΡ†Π΅ΡΡ построСния инфраструктуры Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ тСстирования с нуля

Π’ настоящСС врСмя ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ DevOps являСтся ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ вострСбованных Π² IT-индустрии. Если Π²Ρ‹ ΠΎΡ‚ΠΊΡ€ΠΎΠ΅Ρ‚Π΅ популярныС сайты ΠΏΠΎ поиску Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΈ Π·Π°Π΄Π°Π΄ΠΈΡ‚Π΅ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ ΠΏΠΎ Π·Π°Ρ€ΠΏΠ»Π°Ρ‚Π°ΠΌ, Ρ‚ΠΎ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ вакансии, связанныС с DevOps, находятся Π² Π½Π°Ρ‡Π°Π»Π΅ списка. Однако Π²Π°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ это Π² основном относится ΠΊ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ β€˜Senior’, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΊΠ°Π½Π΄ΠΈΠ΄Π°Ρ‚ ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ высоким ΡƒΡ€ΠΎΠ²Π½Π΅ΠΌ Π½Π°Π²Ρ‹ΠΊΠΎΠ², Π·Π½Π°Π½ΠΈΠ΅ΠΌ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ ΠΈ инструмСнтов. К этому Ρ‚Π°ΠΊΠΆΠ΅ прилагаСтся высокая ΡΡ‚Π΅ΠΏΠ΅Π½ΡŒ отвСтствСнности, связанная с бСспСрСбойной Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ production. Однако ΠΌΡ‹ стали Π·Π°Π±Ρ‹Π²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ DevOps. Π˜Π·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ это Π½Π΅ Π±Ρ‹Π» ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊ ΠΈΠ»ΠΈ Π΄Π΅ΠΏΠ°Ρ€Ρ‚Π°ΠΌΠ΅Π½Ρ‚. Если ΠΏΠΎΠΈΡΠΊΠ°Ρ‚ΡŒ опрСдСлСния этого Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°, Ρ‚ΠΎ ΠΌΡ‹ Π½Π°ΠΉΠ΄Π΅ΠΌ ΠΌΠ½ΠΎΠ³ΠΎ красивых ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Ρ… ΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ…, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ мСтодология, ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ, ΠΊΡƒΠ»ΡŒΡ‚ΡƒΡ€Π½Π°Ρ философия, Π³Ρ€ΡƒΠΏΠΏΠ° ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ‚ΠΎΠ² ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅.

Моя спСциализация – ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€ ΠΏΠΎ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ тСстирования (QA automation engineer), Π½ΠΎ я ΡΡ‡ΠΈΡ‚Π°ΡŽ, Ρ‡Ρ‚ΠΎ ΠΎΠ½Π° Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ связана Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с написаниСм Π°Π²Ρ‚ΠΎ-тСстов ΠΈΠ»ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ тСстового framework. Π’ 2020 Π³ΠΎΠ΄Ρƒ знания инфраструктуры Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ‚Π°ΠΊΠΆΠ΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹. Π­Ρ‚ΠΎ позволяСт ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ процСсс Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ, начиная ΠΎΡ‚ запуска тСстов ΠΈ заканчивая прСдоставлСниСм Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² всСм заинтСрСсованным Π»ΠΈΡ†Π°ΠΌ Π² соотвСтствии с поставлСнными цСлями. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Ρ‡Π΅Π³ΠΎ, Π½Π°Π²Ρ‹ΠΊΠΈ DevOps ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΎΠΌ для выполнСния Π΄Π°Π½Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹. И всС это Ρ…ΠΎΡ€ΠΎΡˆΠΎ, Π½ΠΎ, ΠΊ соТалСнию, Π΅ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° (spoiler: данная ΡΡ‚Π°Ρ‚ΡŒΡ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠΈ ΡƒΠΏΡ€ΠΎΡΡ‚ΠΈΡ‚ΡŒ это ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ). Она Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ DevOps – это слоТно. И это ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, вСдь ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Π½Π΅ станут ΠΏΠ»Π°Ρ‚ΠΈΡ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ Π·Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π»Π΅Π³ΠΊΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒβ€¦ Π’ ΠΌΠΈΡ€Π΅ DevOps большоС количСство инструмСнтов, Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠ², ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ Π½ΡƒΠΆΠ½ΠΎ ΠΎΠ²Π»Π°Π΄Π΅Ρ‚ΡŒ. ОсобСнно это тяТСло даСтся Π² Π½Π°Ρ‡Π°Π»Π΅ ΠΊΠ°Ρ€ΡŒΠ΅Ρ€Ρ‹ ΠΈ зависит ΠΎΡ‚ Π½Π°ΠΊΠΎΠΏΠ»Π΅Π½Π½ΠΎΠ³ΠΎ тСхничСского ΠΎΠΏΡ‹Ρ‚Π°.

DevOps инструмСнты Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для DevOps. ΠŸΡ€ΠΎΡ†Π΅ΡΡ построСния инфраструктуры Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ тСстирования с нуля
Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: http://maximelanciauxbi.blogspot.com/2017/04/devops-tools.html

Π’ΡƒΡ‚ ΠΌΡ‹, ΠΏΠΎΠΆΠ°Π»ΡƒΠΉ, Π·Π°Π²Π΅Ρ€ΡˆΠΈΠΌ с Π²Π²ΠΎΠ΄Π½ΠΎΠΉ Ρ‡Π°ΡΡ‚ΡŒΡŽ ΠΈ сфокусируСмся Π½Π° Ρ†Π΅Π»ΠΈ Π΄Π°Π½Π½ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠΈ.Β 

О Ρ‡Π΅ΠΌ эта ΡΡ‚Π°Ρ‚ΡŒΡ

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ я ΡΠΎΠ±ΠΈΡ€Π°ΡŽΡΡŒ ΠΏΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ ΠΌΠΎΠΈΠΌ ΠΎΠΏΡ‹Ρ‚ΠΎΠΌ построСния инфраструктуры Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ тСстирования. Π’ ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ источников ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… инструмСнтах ΠΈ ΠΊΠ°ΠΊ ΠΈΡ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ, Π½ΠΎ я Π±Ρ‹ Ρ…ΠΎΡ‚Π΅Π» Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΈΡ… ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π² контСкстС Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ. Π― полагаю, Ρ‡Ρ‚ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠΌ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Π°ΠΌ ΠΏΠΎ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ Π·Π½Π°ΠΊΠΎΠΌΠ° ситуация, ΠΊΠΎΠ³Π΄Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹Π΅ тСсты, ΠΊΡ€ΠΎΠΌΠ΅ вас самих, Π½ΠΈΠΊΡ‚ΠΎ Π½Π΅ запускаСт ΠΈ Π½Π΅ заботится ΠΎΠ± ΠΈΡ… ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ΅. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Ρ‡Π΅Π³ΠΎ тСсты становятся ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΠΌΠΈ ΠΈ приходится Ρ‚Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ врСмя Π½Π° ΠΈΡ… Π°ΠΊΡ‚ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ. ΠžΠΏΡΡ‚ΡŒ ΠΆΠ΅ Π² Π½Π°Ρ‡Π°Π»Π΅ ΠΊΠ°Ρ€ΡŒΠ΅Ρ€Ρ‹ это ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ довольно слоТной Π·Π°Π΄Π°Ρ‡Π΅ΠΉ: Π³Ρ€Π°ΠΌΠΎΡ‚Π½ΠΎ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ инструмСнты Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΠΎΠΌΠΎΡ‡ΡŒ ΡƒΡΡ‚Ρ€Π°Π½ΠΈΡ‚ΡŒ Π΄Π°Π½Π½ΡƒΡŽ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ, ΠΊΠ°ΠΊ ΠΈΡ… Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ, Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ. НСкоторыС тСстировщики ΠΎΠ±Ρ€Π°Ρ‰Π°ΡŽΡ‚ΡΡ Π·Π° ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊ DevOps (людям) ΠΈ, Π±ΡƒΠ΄Π΅ΠΌ чСстными, Ρ‚Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ .Β  Π’ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… случаях это ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ СдинствСнным Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠΌ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Ρƒ нас отсутствуСт Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ всСх зависимостСй. Но, ΠΊΠ°ΠΊ ΠΌΡ‹ Π·Π½Π°Π΅ΠΌ, DevOps – ΠΎΡ‡Π΅Π½ΡŒ занятыС рСбята, вСдь ΠΎΠ½ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π΄ΡƒΠΌΠ°Ρ‚ΡŒ ΠΎΠ± инфраструктурС всСй ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ, deployment, ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π΅, микросСрвисах ΠΈ ΠΎ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡Π°Ρ… Π² зависимости ΠΎΡ‚ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ/ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹. Как это ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π±Ρ‹Π²Π°Π΅Ρ‚, автоматизация Π½Π΅ являСтся ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ΠΎΠΌ. Π’ Ρ‚Π°ΠΊΠΎΠΌ случаС ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΠΎΠΏΡ‹Ρ‚Π°Ρ‚ΡŒΡΡ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ всС Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠ΅ с нашСй стороны ΠΎΡ‚ Π½Π°Ρ‡Π°Π»Π° ΠΈ Π΄ΠΎ ΠΊΠΎΠ½Ρ†Π°. Π­Ρ‚ΠΎ ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚ зависимости, ускорит Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ процСсс, ΡƒΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΡΡ‚Π²ΡƒΠ΅Ρ‚ наши Π½Π°Π²Ρ‹ΠΊΠΈ ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ ΡˆΠΈΡ€ΠΎΠΊΡƒΡŽ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½Ρƒ происходящСго.

Π’ ΡΡ‚Π°Ρ‚ΡŒΠ΅ прСдставлСны Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ вострСбованныС ΠΈ популярныС инструмСнты ΠΈ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ, ΠΊΠ°ΠΊ ΠΈΡ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для пошагового построСния инфраструктуры Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ. КаТдая Π³Ρ€ΡƒΠΏΠΏΠ° прСдставлСна инструмСнтами, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Ρ‹Π»ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½Ρ‹ Π½Π° Π»ΠΈΡ‡Π½ΠΎΠΌ ΠΎΠΏΡ‹Ρ‚Π΅. Но это Π½Π΅ Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎ ΠΆΠ΅ самоС. Π‘Π°ΠΌΠΈ инструмСнты Π½Π΅ Π²Π°ΠΆΠ½Ρ‹, ΠΎΠ½ΠΈ ΠΏΠΎΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΈ ΡƒΡΡ‚Π°Ρ€Π΅Π²Π°ΡŽΡ‚. Наша инТСнСрная Π·Π°Π΄Π°Ρ‡Π° – ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π±Π°Π·ΠΎΠ²Ρ‹Ρ… ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΎΠ²: Π·Π°Ρ‡Π΅ΠΌ Π½Π°ΠΌ Π½ΡƒΠΆΠ½Π° эта Π³Ρ€ΡƒΠΏΠΏΠ° инструмСнтов ΠΈ ΠΊΠ°ΠΊΠΈΠ΅ Ρ€Π°Π±ΠΎΡ‡ΠΈΠ΅ Π·Π°Π΄Π°Ρ‡ΠΈ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ с ΠΈΡ… ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π² ΠΊΠΎΠ½Ρ†Π΅ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ сСкции я ΠΎΡΡ‚Π°Π²Π»ΡΡŽ ссылки Π½Π° Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹Π΅ инструмСнты, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π² вашСй ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ.

Π§Π΅Π³ΠΎ Π² этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ Π½Π΅Ρ‚

Π•Ρ‰Π΅ Ρ€Π°Π· ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡŽ, Ρ‡Ρ‚ΠΎ ΡΡ‚Π°Ρ‚ΡŒΡ Π½Π΅ ΠΎ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Ρ… инструмСнтах, поэтому Ρ‚ΡƒΡ‚ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ вставок ΠΊΠΎΠ΄Π° ΠΈΠ· Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ ΠΈ описания ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Ρ… ΠΊΠΎΠΌΠ°Π½Π΄. Но Π² ΠΊΠΎΠ½Ρ†Π΅ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ сСкции я ΠΎΡΡ‚Π°Π²Π»ΡΡŽ ссылки для Π΄Π΅Ρ‚Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ изучСния.

Π­Ρ‚ΠΎ сдСлано ΠΏΠΎ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π΅ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ:Β 

  • этот ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π» ΠΎΡ‡Π΅Π½ΡŒ Π»Π΅Π³ΠΊΠΎ Π½Π°ΠΉΡ‚ΠΈ Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… источниках (докумСнтация, ΠΊΠ½ΠΈΠ³ΠΈ, Π²ΠΈΠ΄Π΅ΠΎ курсы);
  • Ссли ΠΌΡ‹ Π½Π°Ρ‡Π½Π΅ΠΌ ΡƒΠ³Π»ΡƒΠ±Π»ΡΡ‚ΡŒΡΡ, Ρ‚ΠΎ придСтся Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ 10, 20, 30 частСй Π΄Π°Π½Π½ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠΈ (Ρ‚ΠΎΠ³Π΄Π° ΠΊΠ°ΠΊ Π² ΠΏΠ»Π°Π½Π°Ρ… 2-3);
  • я просто Π½Π΅ Ρ…ΠΎΡ‡Ρƒ Ρ‚Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ вашС врСмя, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ инструмСнты для достиТСния Ρ‚Π΅Ρ… ΠΆΠ΅ Ρ†Π΅Π»Π΅ΠΉ.

ΠŸΡ€Π°ΠΊΡ‚ΠΈΠΊΠ°

МнС Π±Ρ‹ ΠΎΡ‡Π΅Π½ΡŒ Ρ…ΠΎΡ‚Π΅Π»ΠΎΡΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ этот ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π» Π±Ρ‹Π» ΠΏΠΎΠ»Π΅Π·Π΅Π½ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ читатСля, Π° Π½Π΅ просто Π±Ρ‹Π» ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π½ ΠΈ Π·Π°Π±Ρ‹Ρ‚. Π’ любом ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠΈ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ° являСтся ΠΎΡ‡Π΅Π½ΡŒ Π²Π°ΠΆΠ½ΠΎΠΉ ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π΅ΠΉ. Для этого я ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΈΠ» GitHub-Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ с ΠΏΠΎΡˆΠ°Π³ΠΎΠ²Ρ‹ΠΌ руководством ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ всС с нуля. Π’Π°ΠΊΠΆΠ΅ вас ΠΆΠ΄Π΅Ρ‚ домашняя Ρ€Π°Π±ΠΎΡ‚Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΡƒΠ²Π΅Ρ€Π΅Π½Π½Ρ‹ΠΌ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π±Π΅Π·Π΄ΡƒΠΌΠ½ΠΎ Π½Π΅ скопировали строчки выполняСмых ΠΊΠΎΠΌΠ°Π½Π΄

План

Step
Technology
Tools

1
Local runningΒ (prepare web / android demo tests and run it locally)Β 
Node.js, Selenium, Appium

2
Version control systemsΒ 
Git

3
Containerisation
Docker, Selenium grid, Selenoid (Web, Android)

4
CI / CD
Gitlab CI

5
Cloud platforms
Google Cloud Platform

6
Orchestration
Kubernetes

7
Infrastructure as a codeΒ  (IaC)
Terraform, Ansible

Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΉ сСкции

Для поддСрТания повСствования Π² наглядном Π²ΠΈΠ΄Π΅, каТдая сСкция описана ΠΏΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌΡƒ ΠΏΠ»Π°Π½Ρƒ:

  • ΠΊΡ€Π°Ρ‚ΠΊΠΎΠ΅ описаниС Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ,
  • Ρ†Π΅Π½Π½ΠΎΡΡ‚ΡŒ для инфраструктуры Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ,
  • ΠΈΠ»Π»ΡŽΡΡ‚Ρ€Π°Ρ†ΠΈΡ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ состояния инфраструктуры,
  • ссылки для изучСния,
  • Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹Π΅ инструмСнты.

1. Π›ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ запуск тСстов

ΠšΡ€Π°Ρ‚ΠΊΠΎΠ΅ описаниС Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ

Π­Ρ‚ΠΎ всСго лишь ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ шаг для запуска дСмонстрационных тСстов локально ΠΈ для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ проходят. Π’ практичСской части ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Node.js Π½ΠΎ язык программирования ΠΈ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° Ρ‚Π°ΠΊΠΆΠ΅ Π½Π΅ Π²Π°ΠΆΠ½Ρ‹ ΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π΅, Ρ‡Ρ‚ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π² вашСй ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ.Β 

Однако Π² качСствС инструмСнтов Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ я Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Selenium WebDriver для web-ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ ΠΈ Appium для Android-ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ соотвСтствСнно, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… ΡˆΠ°Π³Π°Ρ… ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Docker-ΠΎΠ±Ρ€Π°Π·Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π·Π°Ρ‚ΠΎΡ‡Π΅Π½Ρ‹ Π½Π° Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎ с этими инструмСнтами. Π‘ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ³ΠΎ, ΡΡΡ‹Π»Π°ΡΡΡŒ Π½Π° трСбования Π² вакансиях, эти инструмСнты Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ вострСбованы Π½Π° Ρ€Ρ‹Π½ΠΊΠ΅.

Как Π²Ρ‹ ΠΌΠΎΠ³Π»ΠΈ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, ΠΌΡ‹ рассматриваСм Ρ‚ΠΎΠ»ΡŒΠΊΠΎ web ΠΈ Android-тСсты. К соТалСнию, IOS – ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ другая история (спасибо Apple). Π― ΠΏΠ»Π°Π½ΠΈΡ€ΡƒΡŽ ΠΏΡ€ΠΎΠ΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΈ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ, связанныС с IOS, Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… частях.

Π¦Π΅Π½Π½ΠΎΡΡ‚ΡŒ для инфраструктуры Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ

Π‘ Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния инфраструктуры Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ запуск Π½Π΅ нСсСт Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ цСнности. Π’Ρ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ провСряСтС, Ρ‡Ρ‚ΠΎ тСсты Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Π½Π° локальной машинС Π² Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°Ρ… ΠΈ симуляторах. Но Π² любом случаС это нСобходимая отправная Ρ‚ΠΎΡ‡ΠΊΠ°.

Π˜Π»Π»ΡŽΡΡ‚Ρ€Π°Ρ†ΠΈΡ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ состояния инфраструктуры

DevOps инструмСнты Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для DevOps. ΠŸΡ€ΠΎΡ†Π΅ΡΡ построСния инфраструктуры Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ тСстирования с нуля

Бсылки для изучСния

АналогичныС инструмСнты

  • любой язык программирования,Β  ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Π°ΠΌ нравится, Π² связкС с Selenium/Appium β€” тСстами;
  • Π»ΡŽΠ±Ρ‹Π΅ тСсты;
  • любой тСст-Ρ€Π°Π½Π½Π΅Ρ€.

2. БистСмы контроля вСрсий (Git)

ΠšΡ€Π°Ρ‚ΠΊΠΎΠ΅ описаниС Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ

Ни для ΠΊΠΎΠ³ΠΎ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ большим ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ΠΌ, Ссли я скаТу, Ρ‡Ρ‚ΠΎ систСма контроля вСрсий – Ρ‡Ρ€Π΅Π·Π²Ρ‹Ρ‡Π°ΠΉΠ½ΠΎ ваТная Ρ‡Π°ΡΡ‚ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΊΠ°ΠΊ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π΅, Ρ‚Π°ΠΊ ΠΈ ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡƒΠ°Π»ΡŒΠ½ΠΎ. ΠžΠΏΠΈΡ€Π°ΡΡΡŒ Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ источники, ΠΌΠΎΠΆΠ½ΠΎ с ΡƒΠ²Π΅Ρ€Π΅Π½Π½ΠΎΡΡ‚ΡŒΡŽ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Git являСтся Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ популярным прСдставитСлСм. БистСма контроля вСрсий Π΄Π°Π΅Ρ‚ мноТСство прСимущСств, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ ΠΎΠ±ΠΌΠ΅Π½ ΠΊΠΎΠ΄ΠΎΠΌ, Ρ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ вСрсий, восстановлСниС Π½Π° ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠ΅ Π²Π΅Ρ‚ΠΊΠΈ, ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π½ΠΎΠΉ истории, бэкапы. ΠœΡ‹ Π½Π΅ Π±ΡƒΠ΄Π΅ΠΌ ΠΎΠ±ΡΡƒΠΆΠ΄Π°Ρ‚ΡŒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΏΡƒΠ½ΠΊΡ‚ Π² дСталях, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ я ΡƒΠ²Π΅Ρ€Π΅Π½, Ρ‡Ρ‚ΠΎ Π²Ρ‹ с этим Ρ…ΠΎΡ€ΠΎΡˆΠΎ Π·Π½Π°ΠΊΠΎΠΌΡ‹ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Π² повсСднСвной Ρ€Π°Π±ΠΎΡ‚Π΅. Но Ссли Π²Π΄Ρ€ΡƒΠ³ Π½Π΅Ρ‚, Ρ‚ΠΎ я Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽ ΠΏΡ€ΠΈΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠΈ ΠΈ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ скорСС Π²ΠΎΡΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹ΠΉ ΠΏΡ€ΠΎΠ±Π΅Π».

Π¦Π΅Π½Π½ΠΎΡΡ‚ΡŒ для инфраструктуры Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ

И Ρ‚ΡƒΡ‚ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°Π΄Π°Ρ‚ΡŒ Ρ€Π΅Π·ΠΎΠ½Π½Ρ‹ΠΉ вопрос: Β«Π—Π°Ρ‡Π΅ΠΌ ΠΎΠ½ Π½Π°ΠΌ рассказываСт ΠΎ Git? ВсС это Π·Π½Π°ΡŽΡ‚ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΊΠ°ΠΊ для ΠΊΠΎΠ΄Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, Ρ‚Π°ΠΊ ΠΈ для ΠΊΠΎΠ΄Π° Π°Π²Ρ‚ΠΎ-тСстов». Π’Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚Π΅ Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎ ΠΏΡ€Π°Π²Ρ‹, Π½ΠΎ Π² этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ Π³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΎΠ± инфраструктурС ΠΈ данная сСкция ΠΈΠ³Ρ€Π°Π΅Ρ‚ Ρ€ΠΎΠ»ΡŒ ΠΏΡ€Π΅Π²ΡŒΡŽ для сСкции 7: Β«Π˜Π½Ρ„Ρ€Π°ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° ΠΊΠ°ΠΊ ΠΊΠΎΠ΄ (IaC)Β». Для нас это ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ вся инфраструктура, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Ρ‚Π΅ΡΡ‚ΠΎΠ²ΡƒΡŽ, описываСтся Π² Π²ΠΈΠ΄Π΅ ΠΊΠΎΠ΄Π°, соотвСтствСнно ΠΌΡ‹ ΠΊ Π½Π΅ΠΉ Ρ‚ΠΎΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ систСмы вСрсионирования ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹Π΅ прСимущСства ΠΊΠ°ΠΊ для ΠΊΠΎΠ΄Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ.

ΠœΡ‹ рассмотрим IaC Π±ΠΎΠ»Π΅Π΅ Π΄Π΅Ρ‚Π°Π»ΡŒΠ½ΠΎ Π½Π° шагС 7, Π½ΠΎ Π΄Π°ΠΆΠ΅ сСйчас ΠΌΠΎΠΆΠ½ΠΎ Π½Π°Ρ‡Π°Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Git локально, создав Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ. ΠžΠ±Ρ‰Π°Ρ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½Π° Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π°, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ ΠΊ инфраструктурС ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ.

Π˜Π»Π»ΡŽΡΡ‚Ρ€Π°Ρ†ΠΈΡ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ состояния инфраструктуры

DevOps инструмСнты Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для DevOps. ΠŸΡ€ΠΎΡ†Π΅ΡΡ построСния инфраструктуры Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ тСстирования с нуля

Бсылки для изучСния

АналогичныС инструмСнты

3. ΠšΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈΠ·Π°Ρ†ΠΈΡ (Docker)

ΠšΡ€Π°Ρ‚ΠΊΠΎΠ΅ описаниС Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ

Для дСмонстрации Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ контСйнСризация помСняла ΠΏΡ€Π°Π²ΠΈΠ»Π° ΠΈΠ³Ρ€Ρ‹, Π΄Π°Π²Π°ΠΉΡ‚Π΅ отправимся Π½Π° нСсколько дСсятилСтий Π² ΠΏΡ€ΠΎΡˆΠ»ΠΎΠ΅. Π’ Ρ‚Π΅ Π²Ρ€Π΅ΠΌΠ΅Π½Π° люди ΠΏΡ€ΠΈΠΎΠ±Ρ€Π΅Ρ‚Π°Π»ΠΈ ΠΈ использовали сСрвСрныС ΠΌΠ°ΡˆΠΈΠ½Ρ‹ для запуска ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Но Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ случаСв Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΡ‹Π΅ рСсурсы для запуска Π½Π΅ Π±Ρ‹Π»ΠΈ извСстны Π·Π°Ρ€Π°Π½Π΅Π΅. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Ρ‡Π΅Π³ΠΎ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Ρ‚Ρ€Π°Ρ‚ΠΈΠ»ΠΈ дСньги Π½Π° ΠΏΠΎΠΊΡƒΠΏΠΊΡƒ Π΄ΠΎΡ€ΠΎΠ³ΠΈΡ… ΠΌΠΎΡ‰Π½Ρ‹Ρ… сСрвСров, Π½ΠΎ Ρ‡Π°ΡΡ‚ΡŒ этих мощностСй Π½Π΅ Π±Ρ‹Π»Π° ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΡƒΡ‚ΠΈΠ»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π°.

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ этапом ΡΠ²ΠΎΠ»ΡŽΡ†ΠΈΠΈ стали Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠ°ΡˆΠΈΠ½Ρ‹ (VM), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π΅ΡˆΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ Ρ‚Ρ€Π°Ρ‚Ρ‹ срСдств Π½Π° Π½Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ рСсурсы. Π­Ρ‚Π° тСхнология ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»Π° Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ прилоТСния нСзависимо Π΄Ρ€ΡƒΠ³ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³Π° Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ сСрвСра, выдСляя ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΈΠ·ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ пространство. Но, ΠΊ соТалСнию, любая тСхнология ΠΈΠΌΠ΅Π΅Ρ‚ свои нСдостатки. Запуск VM Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½ΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы, которая потрСбляСт CPU, RAM, Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ ΠΈ, Π² зависимости ΠΎΡ‚ OS, Π½ΡƒΠΆΠ½ΠΎ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ расходы Π½Π° Π»ΠΈΡ†Π΅Π½Π·ΠΈΡŽ. Π­Ρ‚ΠΈ Ρ„Π°ΠΊΡ‚ΠΎΡ€Ρ‹ Π²Π»ΠΈΡΡŽΡ‚ Π½Π° ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΈ ΡƒΡΠ»ΠΎΠΆΠ½ΡΡŽΡ‚ ΠΏΠ΅Ρ€Π΅Π½ΠΎΡΠΈΠΌΠΎΡΡ‚ΡŒ.

И Π²ΠΎΡ‚ ΠΌΡ‹ подошли ΠΊ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈΠ·Π°Ρ†ΠΈΠΈ. И снова данная тСхнология Ρ€Π΅ΡˆΠΈΠ»Π° ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΡƒΡŽ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½ΡƒΡŽ OS, Ρ‡Ρ‚ΠΎ позволяСт ΠΎΡΠ²ΠΎΠ±ΠΎΠ΄ΠΈΡ‚ΡŒ большоС количСство рСсурсов ΠΈ прСдоставляСт быстроС ΠΈ Π³ΠΈΠ±ΠΊΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ для пСрСносимости.

ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, тСхнология ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈΠ·Π°Ρ†ΠΈΠΈ Π½Π΅ являСтся Ρ‡Π΅ΠΌ-Ρ‚ΠΎ Π½ΠΎΠ²Ρ‹ΠΌ ΠΈ Π²ΠΏΠ΅Ρ€Π²Ρ‹Π΅ Π±Ρ‹Π»Π° прСдставлСна Π² ΠΊΠΎΠ½Ρ†Π΅ 70-Ρ…. Π’ Ρ‚Π΅ Π²Ρ€Π΅ΠΌΠ΅Π½Π° ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΠ»ΠΎΡΡŒ ΠΌΠ½ΠΎΠ³ΠΎ исслСдований, Π½Π°Ρ€Π°Π±ΠΎΡ‚ΠΎΠΊ, ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΎΠΊ. Но ΠΈΠΌΠ΅Π½Π½ΠΎ Docker Π°Π΄Π°ΠΏΡ‚ΠΈΡ€ΠΎΠ²Π°Π» эту Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΡŽ ΠΈ сдСлал Π΅Π΅ лСгкодоступной для масс. Π’ нашС врСмя, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ Π³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΎ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°Ρ…, Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ случаСв ΠΌΡ‹ ΠΈΠΌΠ΅Π΅ΠΌ Π²Π²ΠΈΠ΄Ρƒ Docker. Когда ΠΌΡ‹ Π³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΎ Docker-ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°Ρ…, ΠΌΡ‹ ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°Π΅ΠΌ Linux-ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹. ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Windows ΠΈ macOS-систСмы для запуска ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ², Π½ΠΎ Π²Π°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π² Ρ‚Π°ΠΊΠΎΠΌ случаС появляСтся Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ прослойка. НапримСр, Docker Π½Π° Mac Π½Π΅Π·Π°ΠΌΠ΅Ρ‚Π½ΠΎ запускаСт ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹ Π²Π½ΡƒΡ‚Ρ€ΠΈ лСгковСсной Linux VM. ΠœΡ‹ Π΅Ρ‰Π΅ вСрнСмся ΠΊ этой Ρ‚Π΅ΠΌΠ΅, ΠΊΠΎΠ³Π΄Π° Π±ΡƒΠ΄Π΅ΠΌ ΠΎΠ±ΡΡƒΠΆΠ΄Π°Ρ‚ΡŒ запуск Android-эмуляторов Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ², Ρ‚Π°ΠΊ Ρ‚Π°ΠΊ здСсь появляСтся ΠΎΡ‡Π΅Π½ΡŒ Π²Π°ΠΆΠ½ΠΎΠΉ нюанс, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ.

Π¦Π΅Π½Π½ΠΎΡΡ‚ΡŒ для инфраструктуры Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ

ΠœΡ‹ выяснили, Ρ‡Ρ‚ΠΎ контСйнСризация ΠΈ Docker – это ΠΊΡ€ΡƒΡ‚ΠΎ. Π”Π°Π²Π°ΠΉΡ‚Π΅ посмотрим Π½Π° это Π² контСкстС Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ, вСдь ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ инструмСнт ΠΈΠ»ΠΈ тСхнология Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Ρ€Π΅ΡˆΠ°Ρ‚ΡŒ ΠΊΠ°ΠΊΡƒΡŽ-Π»ΠΈΠ±ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ. ΠžΠ±ΠΎΠ·Π½Π°Ρ‡ΠΈΠΌ ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ тСстирования Π² контСкстС UI-тСстов:

  • ΠΎΠ³Ρ€ΠΎΠΌΠ½ΠΎΠ΅ количСство зависимостСй ΠΏΡ€ΠΈ установкС Selenium ΠΈ Π² особСнности Appium;
  • ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ совмСстимости ΠΌΠ΅ΠΆΠ΄Ρƒ вСрсиями Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ΠΎΠ², симуляторов ΠΈ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΎΠ²;
  • отсутствиС ΠΈΠ·ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ пространства для Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ΠΎΠ²/симуляторов, Ρ‡Ρ‚ΠΎ особСнно ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π½ΠΎ для ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ запуска;
  • тяТСло ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ, Ссли Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ 10, 50, 100 ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ 1000 Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ΠΎΠ² ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ.

Но ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Selenium являСтся самым популярным инструмСнтом Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ, Π° Docker – самым популярным инструмСнтом ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈΠ·Π°Ρ†ΠΈΠΈ, Ρ‚ΠΎ Π½ΠΈ для ΠΊΠΎΠ³ΠΎ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ ΡΡŽΡ€ΠΏΡ€ΠΈΠ·ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΊΡ‚ΠΎ-Ρ‚ΠΎ попытался ΠΈΡ… ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΌΠΎΡ‰Π½Ρ‹ΠΉ инструмСнт для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π²Ρ‹ΡˆΠ΅ΡƒΠΏΠΎΠΌΡΠ½ΡƒΡ‚Ρ‹Ρ… ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ. Рассмотрим Ρ‚Π°ΠΊΠΈΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ.Β 

Selenium grid in docker

Π­Ρ‚ΠΎΡ‚ инструмСнт являСтся самым популярным Π² ΠΌΠΈΡ€Π΅ Selenium для запуска Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ΠΎΠ² Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΌΠ°ΡˆΠΈΠ½Π°Ρ… ΠΈ управлСния ΠΈΠΌΠΈ ΠΈΠ· Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΡƒΠ·Π»Π°. Для запуска Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ 2 части: Hub ΠΈ Node(s). Hub – это Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½Ρ‹ΠΉ ΡƒΠ·Π΅Π», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ всС запросы ΠΎΡ‚ тСстов ΠΈ распрСдСляСт ΠΈΡ… ΠΏΠΎ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ Nodes. Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Node ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΡƒΡŽ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΡƒΠΊΠ°Π·Π°Π² Π½ΡƒΠΆΠ½Ρ‹ΠΉ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ ΠΈ Π΅Π³ΠΎ Π²Π΅Ρ€ΡΠΈΡŽ. Однако Π½Π°ΠΌ всС Π΅Ρ‰Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ самим ΠΏΠΎΠ·Π°Π±ΠΎΡ‚ΠΈΡ‚ΡŒΡΡ ΠΎ совмСстимых Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π°Ρ… для Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ΠΎΠ² ΠΈ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΈΡ… Π½Π° Π½ΡƒΠΆΠ½Ρ‹Π΅ Nodes. По этой ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π΅ Selenium grid Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² чистом Π²ΠΈΠ΄Π΅, Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ Ρ‚Π΅Ρ… случаСв, ΠΊΠΎΠ³Π΄Π° Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ нСльзя ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π½Π° Linux OS. Для всСх ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ… случаСв Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π³ΠΈΠ±ΠΊΠΈΠΌ ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΌ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ Π±ΡƒΠ΄Π΅Ρ‚ использованиС Docker-ΠΎΠ±Ρ€Π°Π·ΠΎΠ² для запуска Selenium grid Hub ΠΈ Nodes. Π’Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ сильно ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΡƒΠ·Π»Π°ΠΌΠΈ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Π½ΡƒΠΆΠ½Ρ‹ΠΉ Π½Π°ΠΌ ΠΎΠ±Ρ€Π°Π· с ΡƒΠΆΠ΅ установлСнными совмСстимыми вСрсиями Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ΠΎΠ² ΠΈ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΎΠ².

НСсмотря Π½Π° Π½Π΅Π³Π°Ρ‚ΠΈΠ²Π½Ρ‹Π΅ ΠΎΡ‚Π·Ρ‹Π²Ρ‹ ΠΎ ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹, особСнно ΠΏΡ€ΠΈ запускС большого числа Nodes ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎ, Selenium grid всС Π΅Ρ‰Π΅ остаСтся самым популярным инструмСнтом для ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ запуска Selenium-тСстов. Π’Π°ΠΆΠ½ΠΎ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π² open-source постоянно ΠΏΠΎΡΠ²Π»ΡΡŽΡ‚ΡΡ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Π΄ΠΎΡ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π΄Π°Π½Π½ΠΎΠ³ΠΎ инструмСнта, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΠΎΡ€ΡŽΡ‚ΡΡ с Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ ΡƒΠ·ΠΊΠΈΠΌΠΈ мСстами.

Selenoid for Web

Π­Ρ‚ΠΎΡ‚ инструмСнт являСтся ΠΏΡ€ΠΎΡ€Ρ‹Π²ΠΎΠΌ Π² ΠΌΠΈΡ€Π΅ Selenium, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ сразу ΠΈΠ· ΠΊΠΎΡ€ΠΎΠ±ΠΊΠΈ ΠΈ сдСлал Тизнь ΠΌΠ½ΠΎΠ³ΠΈΡ… ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€ΠΎΠ² ΠΏΠΎ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΎΡ‰Π΅. ΠŸΡ€Π΅ΠΆΠ΄Π΅ всСго, это Π½Π΅ очСрСдная модификация Selenium grid. ВмСсто этого Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ создали Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎ Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ Selenium Hub Π½Π° языкС Golang, Ρ‡Ρ‚ΠΎ Π² связкС с лСгковСсными Docker-ΠΎΠ±Ρ€Π°Π·Π°ΠΌΠΈ для Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ΠΎΠ² Π΄Π°Π»ΠΎ Ρ‚ΠΎΠ»Ρ‡ΠΎΠΊ Π² Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠΈ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ тСстирования. Π‘ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ³ΠΎ, Π² случаС Selenium Grid ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ всС Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΡ‹Π΅ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Ρ‹ ΠΈ ΠΈΡ… вСрсии Π·Π°Ρ€Π°Π½Π΅Π΅, Ρ‡Ρ‚ΠΎ Π½Π΅ являСтся ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΠΉ, ΠΊΠΎΠ³Π΄Π° Ρ€Π°Π±ΠΎΡ‚Π° ΠΈΠ΄Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с ΠΊΠ°ΠΊΠΈΠΌ-Ρ‚ΠΎ ΠΎΠ΄Π½ΠΈΠΌ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ΠΎΠΌ. Но ΠΊΠΎΠ³Π΄Π° Ρ€Π΅Ρ‡ΡŒ ΠΈΠ΄Π΅Ρ‚ ΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Ρ… Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°Ρ…, Ρ‚ΠΎ Selenoid – это Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π½ΠΎΠΌΠ΅Ρ€ ΠΎΠ΄ΠΈΠ½, благодаря Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ β€˜Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ ΠΏΠΎ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΡŽβ€™. ВсС, Ρ‡Ρ‚ΠΎ ΠΎΡ‚ нас трСбуСтся, это Π·Π°Ρ€Π°Π½Π΅Π΅ Π²Ρ‹Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ Π½ΡƒΠΆΠ½Ρ‹Π΅ ΠΎΠ±Ρ€Π°Π·Ρ‹ с Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°ΠΌΠΈ ΠΈ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ» ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ взаимодСйствуСт Selenoid. ПослС Ρ‚ΠΎΠ³ΠΎ ΠΊΠ°ΠΊ Selenoid ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ запрос ΠΎΡ‚ тСстов, ΠΎΠ½ автоматичСски запустит Π½ΡƒΠΆΠ½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ с Π½ΡƒΠΆΠ½Ρ‹ΠΌ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ΠΎΠΌ. Когда тСст Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡΡ, Selenoid отставит ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€, Ρ‚Π΅ΠΌ самым освободив рСсурсы для ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… запросов. Π’Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ устраняСт ΠΈΠ·Π²Π΅ΡΡ‚Π½ΡƒΡŽ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ β€˜Π΄Π΅Π³Ρ€Π°Π΄Π°Ρ†ΠΈΠΈ узлов’, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ часто встрСчаСм Π² Selenium grid.

Но, ΡƒΠ²Ρ‹, Selenoid всС Π΅Ρ‰Π΅ Π½Π΅ сСрСбряная пуля. ΠœΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ β€˜Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ ΠΏΠΎ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΡŽβ€™, Π½ΠΎ функция β€˜Ρ€Π΅ΡΡƒΡ€ΡΡ‹ ΠΏΠΎ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΡŽβ€™ всС Π΅Ρ‰Π΅ Π½Π΅ доступна. Для использования Selenoid ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ Π΅Π³ΠΎ Π½Π° физичСском ΠΆΠ΅Π»Π΅Π·Π΅ ΠΈΠ»ΠΈ Π½Π° VM, Ρ‡Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π·Π°Ρ€Π°Π½Π΅Π΅ Π·Π½Π°Ρ‚ΡŒ, сколько рСсурсов Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ. Π― полагаю, это Π½Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° для ΠΌΠ°Π»Π΅Π½ΡŒΠΊΠΈΡ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π·Π°ΠΏΡƒΡΠΊΠ°ΡŽΡ‚ 10, 20 ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ 30 Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ΠΎΠ² ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎ. Но Ρ‡Ρ‚ΠΎ Ссли Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ 100, 500, 1000 ΠΈ большС? НС ΠΈΠΌΠ΅Π΅Ρ‚ Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ смысла ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ ΠΈ ΠΏΠ»Π°Ρ‚ΠΈΡ‚ΡŒ Π·Π° Ρ‚Π°ΠΊΠΎΠ΅ количСство рСсурсов постоянно. Π’ сСкции 5 ΠΈ 6 Π΄Π°Π½Π½ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠΈ ΠΌΡ‹ обсудим Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ, Ρ‚Π΅ΠΌ самым Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ сниТая расходы ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ.

Selenoid for Android

ПослС успСха Selenoid Π² качСствС инструмСнта для web-Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ, люди Ρ…ΠΎΡ‚Π΅Π»ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅ для Android. И это ΡΠ²Π΅Ρ€ΡˆΠΈΠ»ΠΎΡΡŒ – Selenoid Π±Ρ‹Π» Π²Ρ‹ΠΏΡƒΡ‰Π΅Π½ с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ Android. Π‘ высокоуровнСвой ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π΅Π½ web-Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ. ЕдинствСнноС ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ вмСсто ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² с Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°ΠΌΠΈ Selenoid запускаСт ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹ с Android-эмуляторами. На ΠΌΠΎΠΉ взгляд, Π½Π° сСгодняшний ΠΌΠΎΠΌΠ΅Π½Ρ‚ это самый ΠΌΠΎΡ‰Π½Ρ‹ΠΉ бСсплатный инструмСнт для запуска Android-тСстов ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎ.

МнС Π±Ρ‹ ΠΎΡ‡Π΅Π½ΡŒ Π½Π΅ Ρ…ΠΎΡ‚Π΅Π»ΠΎΡΡŒ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ ΠΎ Π½Π΅Π³Π°Ρ‚ΠΈΠ²Π½Ρ‹Ρ… сторонах Π΄Π°Π½Π½ΠΎΠ³ΠΎ инструмСнта, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΌΠ½Π΅ ΠΎΡ‡Π΅Π½ΡŒ нравится. Но всС ΠΆΠ΅ Ρ‚ΡƒΡ‚ ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‚ Ρ‚Π΅ ΠΆΠ΅ нСдостатки, относящиСся ΠΈ ΠΊ web-Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ, связанныС с ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ. Π’ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ этому Π½ΡƒΠΆΠ½ΠΎ Ρ€Π°ΡΡΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΎ Π΅Ρ‰Π΅ ΠΎΠ΄Π½ΠΎΠΌ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΡ‚Π°Ρ‚ΡŒ Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½ΠΎΡΡ‚ΡŒΡŽ, Ссли ΠΌΡ‹ настраиваСм инструмСнт Π²ΠΏΠ΅Ρ€Π²Ρ‹Π΅. Для запуска Android-ΠΎΠ±Ρ€Π°Π·ΠΎΠ² Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠ° физичСская машина ΠΈΠ»ΠΈ VM с nested virtualisation β€” ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ. Π’ практичСском руководствС я Π΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽ, ΠΊΠ°ΠΊ это Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° Linux VM. Однако Ссли Π²Ρ‹ ΡΠ²Π»ΡΠ΅Ρ‚Π΅ΡΡŒ macOS ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ ΠΈ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ Selenoid локально, Ρ‚ΠΎ для запуска Android-тСстов это Π±ΡƒΠ΄Π΅Ρ‚ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ. Но Π²Ρ‹ всСгда ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Linux VM локально с настроСнной β€˜nested virtualisation’ ΠΈ Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ Selenoid Π²Π½ΡƒΡ‚Ρ€ΠΈ.

Π˜Π»Π»ΡŽΡΡ‚Ρ€Π°Ρ†ΠΈΡ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ состояния инфраструктуры

Π’ контСкстС этой ΡΡ‚Π°Ρ‚ΡŒΠΈ ΠΌΡ‹ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ 2 инструмСнта для ΠΈΠ»Π»ΡŽΡΡ‚Ρ€Π°Ρ†ΠΈΠΈ инфраструктуры. Π­Ρ‚ΠΎ Selenium grid для web-тСстов ΠΈ Selenoid для Android-тСстов. Π’ руководствС Π½Π° GitHub я Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠΊΠ°ΠΆΡƒ, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Selenoid для запуска web-тСстов.Β 

DevOps инструмСнты Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для DevOps. ΠŸΡ€ΠΎΡ†Π΅ΡΡ построСния инфраструктуры Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ тСстирования с нуля

Бсылки для изучСния

АналогичныС инструмСнты

  • Π‘ΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ инструмСнты ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈΠ·Π°Ρ†ΠΈΠΈ, Π½ΠΎ Docker – самый популярный. Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π΅Ρ‰Π΅, Ρ‚ΠΎ ΡƒΡ‡Ρ‚ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ Ρ‚Π΅ инструмСнты, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ рассмотрСли для ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ запуска Selenium-тСстов, Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΈΠ· ΠΊΠΎΡ€ΠΎΠ±ΠΊΠΈ.Β Β 
  • Как ΡƒΠΆΠ΅ Π±Ρ‹Π»ΠΎ сказано, сущСствуСт ΠΌΠ½ΠΎΠ³ΠΎ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΉ Selenium grid, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Zalenium.

4. CI / CD

ΠšΡ€Π°Ρ‚ΠΊΠΎΠ΅ описаниС Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ

ΠŸΡ€Π°ΠΊΡ‚ΠΈΠΊΠ° Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½ΠΎΠΉ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ довольно популярна Π² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΈ стоит Π² ΠΎΠ΄Π½ΠΎΠΌ ряду с систСмами контроля вСрсий. НС смотря Π½Π° это, я Ρ‡ΡƒΠ²ΡΡ‚Π²ΡƒΡŽ, Ρ‡Ρ‚ΠΎ сущСствуСт ΠΏΡƒΡ‚Π°Π½ΠΈΡ†Π° Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠ»ΠΎΠ³ΠΈΠΈ. Π’ этом ΠΏΠ°Ρ€Π°Π³Ρ€Π°Ρ„Π΅ я Π±Ρ‹ Ρ…ΠΎΡ‚Π΅Π» ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ 3 ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π΄Π°Π½Π½ΠΎΠΉ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ с ΠΌΠΎΠ΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния. Π’ ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅ Π²Ρ‹ смоТСтС Π½Π°ΠΉΡ‚ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ статСй с Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ интСрпрСтациями, ΠΈ это Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ, Ссли вашС ΠΌΠ½Π΅Π½ΠΈΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ. Π‘Π°ΠΌΠΎΠ΅ Π³Π»Π°Π²Π½ΠΎΠ΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ Π±Ρ‹Π»ΠΈ Π½Π° ΠΎΠ΄Π½ΠΎΠΉ Π²ΠΎΠ»Π½Π΅ с вашими ΠΊΠΎΠ»Π»Π΅Π³Π°ΠΌΠΈ.

Π˜Ρ‚Π°ΠΊ, ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ 3 Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°: CI β€” Continuous Integration (нСпрСрывная интСграция), CD β€” Continuous Delivery (нСпрСрывная поставка) ΠΈ снова CD β€” Continuous Deployment (Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½ΠΎΠ΅ Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅).Β  (Π”Π°Π»Π΅Π΅ я Π±ΡƒΠ΄Ρƒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ эти Ρ‚Π΅Ρ€ΠΌΠΈΠ½Ρ‹ Π½Π° английском языкС). КаТдая модификация добавляСт нСсколько Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… этапов ΠΊ Π²Π°ΡˆΠ΅ΠΌΡƒ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€Ρƒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. Но слово continuous (нСпрСрывная) являСтся самым Π³Π»Π°Π²Π½Ρ‹ΠΌ. Π’ этом контСкстС ΠΌΡ‹ ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°Π΅ΠΌ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ происходит ΠΎΡ‚ Π½Π°Ρ‡Π°Π»Π° ΠΈ Π΄ΠΎ ΠΊΠΎΠ½Ρ†Π°, Π±Π΅Π· ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠΉ ΠΈΠ»ΠΈ Ρ€ΡƒΡ‡Π½ΠΎΠ³ΠΎ воздСйствия. Π”Π°Π²Π°ΠΉΡ‚Π΅ посмотрим Π½Π° CI & CD ΠΈ CD Π² Π΄Π°Π½Π½ΠΎΠΌ контСкстС.

  • Continuous Integration – это Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΉ шаг ΡΠ²ΠΎΠ»ΡŽΡ†ΠΈΠΈ. ПослС ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π½Π° сСрвСр, ΠΌΡ‹ ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π±Ρ‹ΡΡ‚Ρ€ΡƒΡŽ ΠΎΠ±Ρ€Π°Ρ‚Π½ΡƒΡŽ связь, Ρ‡Ρ‚ΠΎ с нашими измСнСниями всС Π² порядкС. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ CI Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ запуск инструмСнтов статичСского Π°Π½Π°Π»ΠΈΠ·Π° ΠΊΠΎΠ΄Π° ΠΈ ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½Ρ‹Π΅/Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠ΅ API тСсты Π­Ρ‚ΠΎ позволяСт ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ нашСм ΠΊΠΎΠ΄Π΅ ΡƒΠΆΠ΅ нСсколько сСкунд/ΠΌΠΈΠ½ΡƒΡ‚ спустя.
  • Continuous Delivery являСтся Π±ΠΎΠ»Π΅Π΅ ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚Ρ‹ΠΌ шагом, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΌΡ‹ запускаСм ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅/UI-тСсты. Однако Π½Π° Π΄Π°Π½Π½ΠΎΠΌ этапС ΠΌΡ‹ Π½Π΅ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ Ρ‚Π°ΠΊ ΠΆΠ΅ быстро, ΠΊΠ°ΠΊ Π² случаС с CI. Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, эти Ρ‚ΠΈΠΏΡ‹ тСстов Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ большС Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ для прохоТдСния. Π’ΠΎ-Π²Ρ‚ΠΎΡ€Ρ‹Ρ…, ΠΏΠ΅Ρ€Π΅Π΄ запуском ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ наши измСнСния Π½Π° test/staging β€” срСдС. Π‘ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ³ΠΎ, Ссли ΠΌΡ‹ Π³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΎ мобильной Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅, Ρ‚ΠΎ появляСтся Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ этап для создания сборки нашСго прилоТСния.
  • Continuous Deployment ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ автоматичСски выпускаСм (release) наши измСнСния Π½Π° production, Ссли всС ΠΏΡ€ΠΈΠ΅ΠΌΠΎΡ‡Π½Ρ‹Π΅ тСсты Π±Ρ‹Π»ΠΈ ΠΏΡ€ΠΎΠΉΠ΄Π΅Π½Ρ‹ Π½Π° ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ… этапах. Π’ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ этому послС этапа release ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ этапы, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ запуск smoke β€” тСстов Π½Π° production ΠΈ сбор ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΡƒΡŽΡ‰ΠΈΡ… ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊ. Continuous Deployment Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΈ Ρ…ΠΎΡ€ΠΎΡˆΠ΅ΠΌ ΠΏΠΎΠΊΡ€Ρ‹Ρ‚ΠΈΠΈ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌΠΈ тСстами. Если Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ΡΡ ΠΊΠ°ΠΊΠΈΠ΅-Ρ‚ΠΎ Ρ€ΡƒΡ‡Π½Ρ‹Π΅ Π²ΠΌΠ΅ΡˆΠ°Ρ‚Π΅Π»ΡŒΡΡ‚Π²Π°, Π² Ρ‚ΠΎΠΌ числС ΠΈ тСстированиС, Ρ‚ΠΎ это большС Π½Π΅ Continuous (Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½ΠΎΠ΅). Π’ΠΎΠ³Π΄Π° ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ наш ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€ соотвСтствуСт Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ Continuous Delivery.

Π¦Π΅Π½Π½ΠΎΡΡ‚ΡŒ для инфраструктуры Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ

Π’ этом Ρ€Π°Π·Π΄Π΅Π»Π΅ я Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡƒΡ‚ΠΎΡ‡Π½ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ Π³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΎΠ± end-to-end UI-тСстах, это ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Ρ€Π°Π·Π²ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°Ρ‚ΡŒ наши измСнСния ΠΈ связанныС сСрвисы Π½Π° тСстовых срСдах. Continuous Integration β€” процСсс Π½Π΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌ для Π΄Π°Π½Π½ΠΎΠΉ Π·Π°Π΄Π°Ρ‡ΠΈ ΠΈ ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΠΎΠ·Π°Π±ΠΎΡ‚ΠΈΡ‚ΡŒΡΡ ΠΎ Π²Π½Π΅Π΄Ρ€Π΅Π½ΠΈΠΈ ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ Continuous Deliver ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊ. Continuous Deployment Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΠΌΠ΅Π΅Ρ‚ смысл Π² контСкстС UI-тСстов, Ссли ΠΌΡ‹ собираСмся Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ ΠΈΡ… Π½Π° production.

И ΠΏΠ΅Ρ€Π΅Π΄ Ρ‚Π΅ΠΌ ΠΊΠ°ΠΊ ΠΌΡ‹ посмотрим Π½Π° ΠΈΠ»Π»ΡŽΡΡ‚Ρ€Π°Ρ†ΠΈΡŽ измСнСния Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹, я Ρ…ΠΎΡ‡Ρƒ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ нСсколько слов ΠΎ GitLab CI. Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΡ… CI/CD-инструмСнтов, GitLab прСдоставляСт ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ Π΄Ρ€ΡƒΠ³ΠΈΡ… Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, GitLab – это большС Ρ‡Π΅ΠΌ CI. Он Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΠΈΠ· ΠΊΠΎΡ€ΠΎΠ±ΠΊΠΈ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ исходным ΠΊΠΎΠ΄ΠΎΠΌ, Agile ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅, CI/CD pipelines, инструмСнты логирования ΠΈ сборы ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊ. АрхитСктура GitLab состоит ΠΈΠ· Gitlab CI/CD ΠΈ GitLab Runner. ΠŸΡ€ΠΈΠ²ΠΎΠΆΡƒ ΠΊΡ€Π°Ρ‚ΠΊΠΎΠ΅ описаниС с ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎ сайта:

Gitlab CI/CD is a web application with an API that stores its state in a database, manages projects/builds and provides a user interface. GitLab Runner is an application which processes builds. It can be deployed separately and works with GitLab CI/CD through an API. For tests running you need both Gitlab instance and Runner.

Π˜Π»Π»ΡŽΡΡ‚Ρ€Π°Ρ†ΠΈΡ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ состояния инфраструктуры

DevOps инструмСнты Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для DevOps. ΠŸΡ€ΠΎΡ†Π΅ΡΡ построСния инфраструктуры Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ тСстирования с нуля

Бсылки для изучСния

АналогичныС инструмСнты

5. ΠžΠ±Π»Π°Ρ‡Π½Ρ‹Π΅ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹

ΠšΡ€Π°Ρ‚ΠΊΠΎΠ΅ описаниС Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ

Π’ этом Ρ€Π°Π·Π΄Π΅Π»Π΅ ΠΌΡ‹ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΎ популярном Ρ‚Ρ€Π΅Π½Π΄Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ называСтся β€˜ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹Π΅ облака’. НСсмотря Π½Π° ΠΎΠ³Ρ€ΠΎΠΌΠ½ΡƒΡŽ ΠΏΠΎΠ»ΡŒΠ·Ρƒ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π΄Π°ΡŽΡ‚ описанныС Π²Ρ‹ΡˆΠ΅ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈΠ·Π°Ρ†ΠΈΠΈ, Π½Π°ΠΌ всС Π΅Ρ‰Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ рСсурсы. Компании ΠΏΡ€ΠΈΠΎΠ±Ρ€Π΅Ρ‚Π°ΡŽΡ‚ Π΄ΠΎΡ€ΠΎΠ³ΠΈΠ΅ сСрвСра ΠΈΠ»ΠΈ Π°Ρ€Π΅Π½Π΄ΡƒΡŽΡ‚ Π΄Π°Ρ‚Π°-Ρ†Π΅Π½Ρ‚Ρ€Ρ‹, Π½ΠΎ Π² Ρ‚Π°ΠΊΠΎΠΌ случаС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ расчСты (ΠΈΠ½ΠΎΠ³Π΄Π° нСрСалистичныС) Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΌΠ½ΠΎΠ³ΠΎ рСсурсов Π½Π°ΠΌ понадобится, Π±ΡƒΠ΄Π΅ΠΌ Π»ΠΈ ΠΌΡ‹ ΠΈΡ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ 24/7 ΠΈ для ΠΊΠ°ΠΊΠΈΡ… Ρ†Π΅Π»Π΅ΠΉ. НапримСр, для production трСбуСтся Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠΉ круглосуточно сСрвСр, Π½ΠΎ Π½ΡƒΠΆΠ½Ρ‹ Π»ΠΈ Π½Π°ΠΌ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹Π΅ рСсурсы для тСстирования Π² Π½Π΅Ρ€Π°Π±ΠΎΡ‡Π΅Π΅ врСмя? Π­Ρ‚ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ зависит ΠΎΡ‚ Ρ‚ΠΈΠΏΠ° выполняСмого тСстирования. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π°Π³Ρ€ΡƒΠ·ΠΎΡ‡Π½Ρ‹Π΅/стрСссовыС тСсты, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ ΠΏΠ»Π°Π½ΠΈΡ€ΡƒΠ΅ΠΌ ΠΏΡ€ΠΎΠ³ΠΎΠ½ΡΡ‚ΡŒ Π² Π½Π΅Ρ€Π°Π±ΠΎΡ‡ΠΈΠ΅ часы, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ дСнь. Но, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎ, круглосуточная Π΄ΠΎΡΡ‚ΡƒΠΏΠ½ΠΎΡΡ‚ΡŒ сСрвСров Π½Π΅ трСбуСтся для end-to-end Π°Π²Ρ‚ΠΎ-тСстов ΠΈ Π² особСнности для срСд Ρ€ΡƒΡ‡Π½ΠΎΠ³ΠΎ тСстирования. Для Ρ‚Π°ΠΊΠΈΡ… ситуаций Π±Ρ‹Π»ΠΎ Π±Ρ‹ Ρ…ΠΎΡ€ΠΎΡˆΠΎ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ рСсурсов, сколько Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΡŽ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ… ΠΈ ΠΏΡ€Π΅ΠΊΡ€Π°Ρ‰Π°Ρ‚ΡŒ ΠΏΠ»Π°Ρ‚ΠΈΡ‚ΡŒ, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ΠΈ большС Π½Π΅ Π½ΡƒΠΆΠ½Ρ‹. Π‘ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ³ΠΎ, Π±Ρ‹Π»ΠΎ Π±Ρ‹ прСкрасно ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ ΠΈΡ… ΠΌΠΎΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½ΠΎ, сдСлав нСсколько ΠΊΠ»ΠΈΠΊΠΎΠ² ΠΌΡ‹ΡˆΠΊΠΎΠΉ ΠΈΠ»ΠΈ запустив ΠΏΠ°Ρ€Ρƒ скриптов. Для этого ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΎΠ±Π»Π°ΠΊΠ°. Π”Π°Π²Π°ΠΉΡ‚Π΅ посмотрим Π½Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅:

Β«The public cloud is defined as computing services offered by third-party providers over the public Internet, making them available to anyone who wants to use or purchase them. They may be free or sold on-demand, allowing customers to pay only per usage for the CPU cycles, storage, or bandwidth they consumeΒ».

Π‘Ρ‹Ρ‚ΡƒΠ΅Ρ‚ ΠΌΠ½Π΅Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΎΠ±Π»Π°ΠΊΠ° – это Π΄ΠΎΡ€ΠΎΠ³ΠΎ. Но ΠΈΡ… ΠΊΠ»ΡŽΡ‡Π΅Π²Π°Ρ идСя – ΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½ΠΈΠ΅ расходов ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ. Как Π±Ρ‹Π»ΠΎ упомянуто Ρ€Π°Π½Π΅Π΅, ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΎΠ±Π»Π°ΠΊΠ° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ рСсурсы ΠΏΠΎ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΡŽ ΠΈ ΠΏΠ»Π°Ρ‚ΠΈΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π·Π° врСмя ΠΈΡ… использования. Π’Π°ΠΊΠΆΠ΅, ΠΈΠ½ΠΎΠ³Π΄Π° ΠΌΡ‹ Π·Π°Π±Ρ‹Π²Π°Π΅ΠΌ, Ρ‡Ρ‚ΠΎ сотрудники ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‚ Π·Π°Ρ€ΠΏΠ»Π°Ρ‚Ρƒ, Π° спСциалисты Ρ‚ΠΎΠΆΠ΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π΄ΠΎΡ€ΠΎΠ³ΠΈΠΌ рСсурсом. НСобходимо ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΎΠ±Π»Π°ΠΊΠ° Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΠ±Π»Π΅Π³Ρ‡Π°ΡŽΡ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ инфраструктуры, Ρ‡Ρ‚ΠΎ позволяСт ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Π°ΠΌ ΡΡ„ΠΎΠΊΡƒΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π½Π° Π±ΠΎΠ»Π΅Π΅ Π²Π°ΠΆΠ½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡Π°Ρ….Β 

Π¦Π΅Π½Π½ΠΎΡΡ‚ΡŒ для инфраструктуры Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ

КакиС ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎ рСсурсы Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ для end-to-end UI-тСстов? Π’ основном это Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠ°ΡˆΠΈΠ½Ρ‹ ΠΈΠ»ΠΈ кластСры (ΠΌΡ‹ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΎ Kubernetes Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ сСкции) для запуска Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ΠΎΠ² ΠΈ эмуляторов. Π§Π΅ΠΌ большС Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ΠΎΠ² ΠΈ эмуляторов ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ, Ρ‚Π΅ΠΌ большС CPU ΠΈ памяти трСбуСтся ΠΈ Ρ‚Π΅ΠΌ большС Π΄Π΅Π½Π΅Π³ Π½Π°ΠΌ придСтся Π·Π° это Π·Π°ΠΏΠ»Π°Ρ‚ΠΈΡ‚ΡŒ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΎΠ±Π»Π°ΠΊΠ° Π² контСкстС Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ тСстирования ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Π½Π°ΠΌ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ большоС число (100, 200, 1000 …) Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ΠΎΠ²/эмуляторов ΠΏΠΎ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΡŽ, ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ тСстирования ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ быстрСС ΠΈ ΠΏΠ΅Ρ€Π΅ΡΡ‚Π°Π²Π°Ρ‚ΡŒ ΠΏΠ»Π°Ρ‚ΠΈΡ‚ΡŒ Π·Π° Ρ‚Π°ΠΊΠΈΠ΅ Π±Π΅Π·ΡƒΠΌΠ½ΠΎ рСсурсозатратныС мощности.Β 

Π‘Π°ΠΌΡ‹ΠΌΠΈ популярными ΠΎΠ±Π»Π°Ρ‡Π½Ρ‹ΠΌΠΈ ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€Π°ΠΌΠΈ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Amazon Web Services (AWS), Microsoft Azure, Google Cloud Platform (GCP). Π’ практичСском руководствС прСдставлСны ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ использования GCP, Π½ΠΎ Π² Ρ†Π΅Π»ΠΎΠΌ Π½Π΅Π²Π°ΠΆΠ½ΠΎ, Ρ‡Ρ‚ΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ Π²Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для Π·Π°Π΄Π°Ρ‡ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ. ВсС ΠΎΠ½ΠΈ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π». ΠžΠ±Ρ‹Ρ‡Π½ΠΎ для Π²Ρ‹Π±ΠΎΡ€Π° ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€Π° руководство фокусируСтся Π½Π° всСй инфраструктурС ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ ΠΈ бизнСс-трСбованиях, Ρ‡Ρ‚ΠΎ Π·Π° Ρ€Π°ΠΌΠΊΠ°ΠΌΠΈ Π΄Π°Π½Π½ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠΈ. Для ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€ΠΎΠ² ΠΏΠΎ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ Π±ΡƒΠ΄Π΅Ρ‚ интСрСснСС ΡΡ€Π°Π²Π½ΠΈΡ‚ΡŒ использованиС ΠΎΠ±Π»Π°Ρ‡Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€ΠΎΠ² с использованиСм ΠΎΠ±Π»Π°Ρ‡Π½Ρ‹Ρ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎ для Ρ†Π΅Π»Π΅ΠΉ тСстирования, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ Sauce Labs, BrowserStack, BitBar ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅. Π’Π°ΠΊ Π΄Π°Π²Π°ΠΉ Ρ‚Π΅ ΠΆΠ΅ сдСлаСм это! На ΠΌΠΎΠΉ взгляд, Sauce Labs являСтся самой извСстной Ρ„Π΅Ρ€ΠΌΠΎΠΉ ΠΎΠ±Π»Π°Ρ‡Π½ΠΎΠ³ΠΎ тСстирования, поэтому я ΠΈ взял Π΅Π΅ для сравнСния.Β 

GCP ΠΏΡ€ΠΎΡ‚ΠΈΠ² Sauce Labs для Ρ†Π΅Π»Π΅ΠΉ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ:

ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΠΌ, Ρ‡Ρ‚ΠΎ Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠ³Π½Π°Ρ‚ΡŒ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ 8 web-тСстов ΠΈ 8 Android-тСстов. Для этого ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ GCP ΠΈ запустим 2 Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠ°ΡˆΠΈΠ½Ρ‹ с Selenoid. На ΠΏΠ΅Ρ€Π²ΠΎΠΉ ΠΌΡ‹ ΠΏΠΎΠ΄Π½ΠΈΠΌΠ΅ΠΌ 8 ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² с Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°ΠΌΠΈ. На Π²Ρ‚ΠΎΡ€ΠΎΠΉ – 8 ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² с эмуляторами. Π”Π°Π²Π°ΠΉΡ‚Π΅ взглянСм Π½Π° Ρ†Π΅Π½Ρ‹:Β Β 

DevOps инструмСнты Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для DevOps. ΠŸΡ€ΠΎΡ†Π΅ΡΡ построСния инфраструктуры Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ тСстирования с нуля
Для запуска ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° с Chrome, Π½Π°ΠΌ понадобится n1-standard-1 машина. Π’ случаС с Android это Π±ΡƒΠ΄Π΅Ρ‚ n1-standard-4 для ΠΎΠ΄Π½ΠΎΠ³ΠΎ эмулятора. На самом Π΄Π΅Π»Π΅ Π±ΠΎΠ»Π΅Π΅ Π³ΠΈΠ±ΠΊΠΈΠΉ ΠΈ Π΄Π΅ΡˆΠ΅Π²Ρ‹ΠΉ способ – это Π·Π°Π΄Π°Π½ΠΈΠ΅ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ для CPU/Memory, Π½ΠΎ Π² Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ для сравнСния с Sauce Labs это Π½Π΅ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΈΠ°Π»ΡŒΠ½ΠΎ.

А Π²ΠΎΡ‚ Ρ‚Π°Ρ€ΠΈΡ„Ρ‹ Π½Π° использованиС Sauce Labs:

DevOps инструмСнты Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для DevOps. ΠŸΡ€ΠΎΡ†Π΅ΡΡ построСния инфраструктуры Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ тСстирования с нуля
Π― полагаю, Π²Ρ‹ ΡƒΠΆΠ΅ Π·Π°ΠΌΠ΅Ρ‚ΠΈΠ»ΠΈ Ρ€Π°Π·Π½ΠΈΡ†Ρƒ, Π½ΠΎ всС ΠΆΠ΅ ΠΏΡ€ΠΈΠ²Π΅Π΄Ρƒ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ с расчСтами для нашСй Π·Π°Π΄Π°Ρ‡ΠΈ:

Required resources
Montly
Working hours(8 a.m β€” 8 p.m)
Working hours+ Preemptible

GCP for Web
n1-standard-1 x 8 = n1-standard-8
$194.18
23 days * 12h * 0.38 = 104.88$Β 
23 days * 12h * 0.08 = 22.08$

Sauce Labs for Web
Virtual Cloud8 parallel tests
$1.559

GCP for Android
n1-standard-4 x 8: n1-standard-16
$776.72
23 days * 12h * 1.52 = 419.52$Β 
23 days * 12h * 0.32 = 88.32$

Sauce Labs for Android
Real Device Cloud 8 parallel tests
$1.999

Как Π²ΠΈΠ΄Π½ΠΎ, Ρ€Π°Π·Π½ΠΈΡ†Π° Π² стоимости ΠΎΠ³Ρ€ΠΎΠΌΠ½Π°, особСнно Ссли Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ тСсты Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ двСнадцатичасовой ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΠΊ. Но ΠΌΠΎΠΆΠ½ΠΎ Π΅Ρ‰Π΅ сильнСС ΡΠΎΠΊΡ€Π°Ρ‚ΠΈΡ‚ΡŒ расходы, Ссли ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ preemptible ΠΌΠ°ΡˆΠΈΠ½Ρ‹. Π§Ρ‚ΠΎ ΠΆΠ΅ это Ρ‚Π°ΠΊΠΎΠ΅?

A preemptible VM is an instance that you can create and run at a muchower price than normal instances. However, Compute Engine might terminate (preempt) these instances if it requires access to those resources for other tasks. Preemptible instances are excess Compute Engine capacity, so their availability varies with usage.

If your apps are fault-tolerant and can withstand possible instance preemptions, then preemptible instances can reduce your Compute Engine costs significantly. For example, batch processing jobs can run on preemptible instances. If some of those instances terminate during processing, the job slows but does not completely stop. Preemptible instances complete your batch processing tasks without placing additional workload on your existing instances and without requiring you to pay full price for additional normal instances.

И это всС Π΅Ρ‰Π΅ Π½Π΅ ΠΊΠΎΠ½Π΅Ρ†! Π’ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ я ΡƒΠ²Π΅Ρ€Π΅Π½, Ρ‡Ρ‚ΠΎ Π½ΠΈΠΊΡ‚ΠΎ Π½Π΅ запускаСт тСсты ΠΏΠΎ 12 часов Π±Π΅Π· ΠΏΠ΅Ρ€Π΅Ρ€Ρ‹Π²Π°. И Ссли это Ρ‚Π°ΠΊ, Ρ‚ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ автоматичСски Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ ΠΈ ΠΎΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠ°ΡˆΠΈΠ½Ρ‹, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ΠΈ Π½Π΅ Π½ΡƒΠΆΠ½Ρ‹. РСальноС врСмя использования ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ½ΠΈΠ·ΠΈΡ‚ΡŒΡΡ Π΄ΠΎ 6 часов Π² сутки. Π’ΠΎΠ³Π΄Π° ΠΎΠΏΠ»Π°Ρ‚Π° Π² контСкстС нашСй Π·Π°Π΄Π°Ρ‡ΠΈ ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚ΡΡ Π°ΠΆ Π΄ΠΎ 11$ Π² мСсяц Π·Π° 8 Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ΠΎΠ². Π Π°Π·Π²Π΅ это Π½Π΅ прСкрасно? Но с preemptible машинами ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ остороТны ΠΈ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ ΠΊ прСрываниям ΠΈ Π½Π΅ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Π΅, хотя эти ситуации ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ прСдусмотрСны ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π½Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎ. Оно Ρ‚ΠΎΠ³ΠΎ стоит!

Но Π½ΠΈ Π² ΠΊΠΎΠ΅ΠΌ случаС я Π½Π΅ Π³ΠΎΠ²ΠΎΡ€ΡŽ β€˜Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΎΠ±Π»Π°Ρ‡Π½Ρ‹Π΅ тСстовыС фСрмы’. Они ΠΈΠΌΠ΅ΡŽΡ‚ ряд прСимущСств. ΠŸΡ€Π΅ΠΆΠ΄Π΅ всСго это Π½Π΅ просто Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Π°Ρ машина, Π° ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½ΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ для Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ тСстирования с Π½Π°Π±ΠΎΡ€ΠΎΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π° ΠΈΠ· ΠΊΠΎΡ€ΠΎΠ±ΠΊΠΈ: ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ доступ, Π»ΠΎΠ³ΠΈ, ΡΠΊΡ€ΠΈΠ½ΡˆΠΎΡ‚Ρ‹, видСозапись, Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Ρ‹ ΠΈ физичСскиС ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Π΅ устройства. Π’ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… ситуациях это ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π΅Π·Π°ΠΌΠ΅Π½ΠΈΠΌΠΎΠΉ ΡˆΠΈΠΊΠ°Ρ€Π½ΠΎΠΉ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²ΠΎΠΉ. ОсобСнно тСстовыС ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ для IOS-Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ, ΠΊΠΎΠ³Π΄Π° ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΎΠ±Π»Π°ΠΊΠ° ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Linux/Windows-систСмы. Но Ρ€Π°Π·Π³ΠΎΠ²ΠΎΡ€ ΠΏΡ€ΠΎ IOS Π±ΡƒΠ΄Π΅Ρ‚ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… ΡΡ‚Π°Ρ‚ΡŒΡΡ…. Π― Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽ всСгда ΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΏΠΎ ситуации ΠΈ ΠΎΡ‚Ρ‚Π°Π»ΠΊΠΈΠ²Π°Ρ‚ΡŒΡΡ ΠΎΡ‚ Π·Π°Π΄Π°Ρ‡: Π² ΠΊΠ°ΠΊΠΈΡ…-Ρ‚ΠΎ дСшСвлС ΠΈ эффСктивнСС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΎΠ±Π»Π°ΠΊΠ°, Π° Π² ΠΊΠ°ΠΊΠΈΡ… Ρ‚ΠΎ тСстовыС ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΎ стоят ΠΏΠΎΡ‚Ρ€Π°Ρ‡Π΅Π½Π½Ρ‹Ρ… Π΄Π΅Π½Π΅Π³.

Π˜Π»Π»ΡŽΡΡ‚Ρ€Π°Ρ†ΠΈΡ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ состояния инфраструктуры

DevOps инструмСнты Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для DevOps. ΠŸΡ€ΠΎΡ†Π΅ΡΡ построСния инфраструктуры Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ тСстирования с нуля

Бсылки для изучСния

АналогичныС инструмСнты:

6. ΠžΡ€ΠΊΠ΅ΡΡ‚Ρ€Π°Ρ†ΠΈΡ

ΠšΡ€Π°Ρ‚ΠΊΠΎΠ΅ описаниС Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ

Π£ мСня Ρ…ΠΎΡ€ΠΎΡˆΠΈΠ΅ новости – ΠΌΡ‹ ΠΏΠΎΡ‡Ρ‚ΠΈ достигли ΠΊΠΎΠ½Ρ†Π° ΡΡ‚Π°Ρ‚ΡŒΠΈ! На Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ наша инфраструктура Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ состоит ΠΈΠ· web ΠΈ Android-тСстов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ запускаСм Ρ‡Π΅Ρ€Π΅Π· GitLab CI ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ инструмСнты с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ Docker: Selenium grid ΠΈ Selenoid. Π‘ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ³ΠΎ, ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ созданныС Ρ‡Π΅Ρ€Π΅Π· GCP Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠ°ΡˆΠΈΠ½Ρ‹ для поднятия Π² Π½ΠΈΡ… ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² с Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°ΠΌΠΈ ΠΈ эмуляторами. Для ΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½ΠΈΡ расходов ΠΌΡ‹ запускаСм этим Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠ°ΡˆΠΈΠ½Ρ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΡŽ ΠΈ останавливаСм, ΠΊΠΎΠ³Π΄Π° тСстированиС Π½Π΅ проводится. БущСствуСт Π»ΠΈ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π΅Ρ‰Π΅, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ Π½Π°ΡˆΡƒ инфраструктуру? ΠžΡ‚Π²Π΅Ρ‚ – Π΄Π°! ВстрСчаСм Kubernetes (K8s)!

Для Π½Π°Ρ‡Π°Π»Π° рассмотрим, ΠΊΠ°ΠΊ слова оркСстрация, кластСр ΠΈ Kubernetes связаны ΠΌΠ΅ΠΆΠ΄Ρƒ собой. На высоком ΡƒΡ€ΠΎΠ²Π½Π΅ оркСстрация – это систСма, которая Ρ€Π°Π·Π²ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°Π΅Ρ‚ ΠΈ управляСт прилоТСниями. Для Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ тСстирования Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈΠ·ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΌΠΈ (containerised) прилоТСниями ΡΠ²Π»ΡΡŽΡ‚ΡΡ Selenium grid ΠΈ Selenoid. Docker ΠΈ K8s Π΄ΠΎΠΏΠΎΠ»Π½ΡΡŽΡ‚ Π΄Ρ€ΡƒΠ³ Π΄Ρ€ΡƒΠ³Π°. ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для развСртывания ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π²Ρ‚ΠΎΡ€ΠΎΠΉ – для оркСстрации. Π’ свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ K8s являСтся кластСром. Π—Π°Π΄Π°Ρ‡Π° кластСра ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ VMs Π² качСствС Nodes, Ρ‡Ρ‚ΠΎ позволяСт ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π», ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈ сСрвисы Π² Ρ€Π°ΠΌΠΊΠ°Ρ… ΠΎΠ΄Π½ΠΎΠ³ΠΎ сСрвСра (кластСра). Если ΠΊΠ°ΠΊΠΎΠΉ Π»ΠΈΠ±ΠΎ ΠΈΠ· Node ΡƒΠΏΠ°Π΄Π΅Ρ‚, Ρ‚ΠΎ подхватятся Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Nodes, Ρ‡Ρ‚ΠΎ обСспСчиваСт Π½Π°ΡˆΠ΅ΠΌΡƒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ Π±Π΅ΡΠΏΠ΅Ρ€Π΅Π±ΠΎΠΉΠ½ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ. Π’ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ этому K8s ΠΈΠΌΠ΅Π΅Ρ‚ Π²Π°ΠΆΠ½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, ΡΠ²ΡΠ·Π°Π½Π½ΡƒΡŽ с ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ (scaling), благодаря Ρ‡Π΅ΠΌΡƒ ΠΌΡ‹ автоматичСски ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½ΠΎΠ΅ количСство рСсурсов, ΠΎΡΠ½ΠΎΠ²Ρ‹Π²Π°ΡΡΡŒ Π½Π° Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅ ΠΈ установлСнных ограничСниях.

По ΠΏΡ€Π°Π²Π΄Π΅ говоря, Ρ€ΡƒΡ‡Π½ΠΎΠ΅ Ρ€Π°Π·Π²ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°Π½ΠΈΠ΅ Kubernetes с нуля являСтся совсСм Π½Π΅Ρ‚Ρ€ΠΈΠ²ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ Π·Π°Π΄Π°Ρ‡Π΅ΠΉ. Π― ΠΎΡΡ‚Π°Π²Π»ΡŽ ссылку Π½Π° извСстноС практичСскоС руководство Β«Kubernetes The Hard WayΒ», ΠΈ, Ссли Π²Π°ΠΌ интСрСсно, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΎΠ²Π°Ρ‚ΡŒΡΡ. Но, ΠΊ ΡΡ‡Π°ΡΡ‚ΡŒΡŽ, ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹Π΅ способы ΠΈ инструмСнты. Π‘Π°ΠΌΡ‹ΠΌ Π»Π΅Π³ΠΊΠΈΠΉ ΠΈΠ· Π½ΠΈΡ… – ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Google Kubernetes Engine (GKE) Π² GCP, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ΠΉ кластСр послС Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΊΠ»ΠΈΠΊΠΎΠ². Для Π½Π°Ρ‡Π°Π»Π° изучСния я Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠΌΠ΅Π½Π½ΠΎ этот ΠΏΠΎΠ΄Ρ…ΠΎΠ΄, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π²Π°ΠΌ ΡΡ„ΠΎΠΊΡƒΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π½Π° ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠΈ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ K8s для своих Π·Π°Π΄Π°Ρ‡ вмСсто исслСдования Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΠΌΠ΅ΠΆΠ΄Ρƒ собой ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹.Β 

Π¦Π΅Π½Π½ΠΎΡΡ‚ΡŒ для инфраструктуры Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ

Рассмотрим нСсколько Π·Π½Π°Ρ‡ΠΈΠΌΡ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ прСдоставляСт K8s:

  • Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠΈ прилоТСния: использованиС multi-nodes кластСра, вмСсто VMs;
  • динамичСскоС ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅: ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Π΅Ρ‚ расходы Π½Π° рСсурсы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΡŽ;
  • самовосстановлСниС (Self-healing): автоматичСскоС восстановлСниС pods (Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Ρ‡Π΅Π³ΠΎ Π²ΠΎΡΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΈ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹);
  • Π²Ρ‹ΠΊΠ°Ρ‚ΠΊΠ° обновлСния ΠΈ ΠΎΡ‚ΠΊΠ°Ρ‚ΠΎΠ² ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π±Π΅Π· простоя: ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ инструмСнтов, Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ΠΎΠ² ΠΈ эмуляторов Π½Π΅ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΡ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ

Но K8s – всС Π΅Ρ‰Π΅ Π½Π΅ сСрСбряная пуля. Для понимания всСх прСимущСств ΠΈ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ Π² контСкстС рассматриваСмых Π½Π°ΠΌΠΈ инструмСнтов (Selenium grid, Selenoid) ΠΊΡ€Π°Ρ‚ΠΊΠΎ обсудим строСниС K8s. Cluster содСрТит Π΄Π²Π° Ρ‚ΠΈΠΏΠ° Nodes: Master Nodes ΠΈ Workers Nodes. Master Nodes ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‚ Π·Π° ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅, Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅ ΠΈ scheduling decisions. Workers nodes – это Ρ‚ΠΎ, Π³Π΄Π΅ прилоТСния Π·Π°ΠΏΡƒΡ‰Π΅Π½Ρ‹. Nodes Ρ‚Π°ΠΊΠΆΠ΅ содСрТат срСду запуска ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ². Π’ нашСм случаС это Docker, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, связанныС с ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°ΠΌΠΈ. Но Π΅ΡΡ‚ΡŒ ΠΈ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ containerd. Π’Π°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ»ΠΈ самовосстановлСниС Π½Π΅ относится ΠΊ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°ΠΌ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ. Π­Ρ‚ΠΎ рСализуСтся Ρ‡Π΅Ρ€Π΅Π· Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅/ΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½ΠΈΠ΅ числа pods, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π² свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ содСрТат ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹ (ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΎΠ΄ΠΈΠ½ container Π½Π° pod, Π½ΠΎ Π² зависимости ΠΎΡ‚ Π·Π°Π΄Π°Ρ‡ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈ большС). ВысокоуровнСвая иСрархия прСдставляСт собой worker nodes, Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… находятся pods, Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… подняты ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹.

Ѐункция ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ являСтся ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠΉ ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½Π° ΠΊΠ°ΠΊ ΠΊ nodes Π²Π½ΡƒΡ‚Ρ€ΠΈ cluster node-pool, Ρ‚Π°ΠΊ ΠΈ ΠΊ pods Π²Π½ΡƒΡ‚Ρ€ΠΈ node. БущСствуСт 2 Ρ‚ΠΈΠΏΠ° ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ относятся ΠΊΠ°ΠΊ ΠΊ nodes, Ρ‚Π°ΠΊ ΠΈ pods. ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ Ρ‚ΠΈΠΏ – Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΉ –  ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ происходит Π·Π° счСт увСличСния числа nodes/pods. Π’Π°ΠΊΠΎΠΉ Ρ‚ΠΈΠΏ являСтся Π±ΠΎΠ»Π΅Π΅ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ. Π’Ρ‚ΠΎΡ€ΠΎΠΉ Ρ‚ΠΈΠΏ, соотвСтствСнно, Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ. ΠœΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ осущСствляСтся Π·Π° счСт увСличСния Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ² nodes/pods, Π° Π½Π΅ ΠΈΡ… количСства.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ рассмотрим наши инструмСнты Π² контСкстС Π²Ρ‹ΡˆΠ΅ΡƒΠΏΠΎΠΌΡΠ½ΡƒΡ‚Ρ‹Ρ… Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠ².

Selenium grid

Как Π±Ρ‹Π»ΠΎ упомянуто Ρ€Π°Π½Π΅Π΅, Selenium grid – ΠΎΡ‡Π΅Π½ΡŒ популярный инструмСнт, ΠΈ Π½Π΅ ΡΡŽΡ€ΠΏΡ€ΠΈΠ·, Ρ‡Ρ‚ΠΎ ΠΎΠ½ Π±Ρ‹Π» ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½ (containerised). Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Π½Π΅ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ ΡƒΠ΄ΠΈΠ²Π»Π΅Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ Selenium grid ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ Π² K8s. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π² ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΌ K8s-Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ. Как ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ, ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Ρ‹Π²Π°ΡŽ ссылки Π² ΠΊΠΎΠ½Ρ†Π΅ сСкции. Π’ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ этому Π² практичСском руководствС ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ, ΠΊΠ°ΠΊ это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ‡Π΅Ρ€Π΅Π΄ Terraform. Π’Π°ΠΊΠΆΠ΅ Π΅ΡΡ‚ΡŒ инструкция, ΠΊΠ°ΠΊ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ число pods, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ содСрТат ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹ с Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°ΠΌΠΈ. Но функция автоматичСского ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ Π² контСкстС K8s – всС Π΅Ρ‰Π΅ Π½Π΅ Π΄ΠΎ ΠΊΠΎΠ½Ρ†Π° очСвидная Π·Π°Π΄Π°Ρ‡Π°. Когда я Π½Π°Ρ‡ΠΈΠ½Π°Π» ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠ΅, я Π½Π΅ нашСл Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ практичСского руководства ΠΈΠ»ΠΈ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΉ. ПослС Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… исслСдований ΠΈ экспСримСнтов ΠΏΡ€ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ΅ DevOps-ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΌΡ‹ Π²Ρ‹Π±Ρ€Π°Π»ΠΈ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ поднятия ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² с Π½ΡƒΠΆΠ½Ρ‹ΠΌΠΈ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°ΠΌΠΈ Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ pod, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ находится Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ worker node. Π’Π°ΠΊΠΎΠΉ способ позволяСт Π½Π°ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΡΡ‚Ρ€Π°Ρ‚Π΅Π³ΠΈΡŽ Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ nodes Π·Π° счСт увСличСния ΠΈΡ… числа. Π― надСюсь, Ρ‡Ρ‚ΠΎ Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ ситуация измСнится, ΠΈ ΠΌΡ‹ ΡƒΠ²ΠΈΠ΄ΠΈΠΌ всС большС ΠΈ большС описаний Π»ΡƒΡ‡ΡˆΠΈΡ… ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΎΠ² ΠΈ Π³ΠΎΡ‚ΠΎΠ²Ρ‹Ρ… Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ, особСнно послС выпуска Selenium grid 4 с ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½ΠΎΠΉ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ΠΉ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€ΠΎΠΉ.

Selenoid:

Π’ настоящСС врСмя Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅ Selenoid Π² K8s являСтся самым большим Ρ€Π°Π·ΠΎΡ‡Π°Ρ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ. Они Π½Π΅ совмСстимы. ВСорСтичСски ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠ΄Π½ΡΡ‚ΡŒ Selenoid-ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ Π²Π½ΡƒΡ‚Ρ€ΠΈ pod, Π½ΠΎ ΠΊΠΎΠ³Π΄Π° Selenoid Π½Π°Ρ‡Π½Π΅Ρ‚ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹ с Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°ΠΌΠΈ, ΠΎΠ½ΠΈ всС Π΅Ρ‰Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π²Π½ΡƒΡ‚Ρ€ΠΈ этого ΠΆΠ΅ pod. Π­Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ scaling Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ΠΌ ΠΈ, ΠΊΠ°ΠΊ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚, Ρ€Π°Π±ΠΎΡ‚Π° Selenoid Π²Π½ΡƒΡ‚Ρ€ΠΈ кластСра Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ ΠΎΡ‚ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π²Π½ΡƒΡ‚Ρ€ΠΈ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹. ΠšΠΎΠ½Π΅Ρ† истории.

Moon:

Зная это ΡƒΠ·ΠΊΠΎΠ΅ мСсто ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с Selenoid, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ выпустили Π±ΠΎΠ»Π΅Π΅ ΠΌΠΎΡ‰Π½Ρ‹ΠΉ инструмСнт, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π°Π·Π²Π°Π»ΠΈ Moon. Π­Ρ‚ΠΎΡ‚ инструмСнт Π±Ρ‹Π» ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ Π·Π°Π΄ΡƒΠΌΠ°Π½ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Kubernetes ΠΈ, ΠΊΠ°ΠΊ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚, ΠΌΠΎΠΆΠ½ΠΎ ΠΈ Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π°Π²Ρ‚ΠΎΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ. Π‘ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ³ΠΎ, я Π±Ρ‹ сказал, Ρ‡Ρ‚ΠΎ Π² настоящий ΠΌΠΎΠΌΠ΅Π½Ρ‚ это СдинствСнный инструмСнт Π² ΠΌΠΈΡ€Π΅ Selenium, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΠ· ΠΊΠΎΡ€ΠΎΠ±ΠΊΠΈ ΠΈΠΌΠ΅Π΅Ρ‚ native K8s cluster-ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ (ΡƒΠΆΠ΅ Π½Π΅Ρ‚, см. ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ инструмСнт ). ΠšΠ»ΡŽΡ‡Π΅Π²ΠΎΠΉ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒΡŽ Moon, которая обСспСчиваСт Π΄Π°Π½Π½ΡƒΡŽ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ, являСтся:Β 

Completely stateless. Selenoid stores in memory information about currently running browser sessions. If for some reason its process crashes β€” then all running sessions are lost. Moon contrarily has no internal state and can be replicated across data centers. Browser sessions remain alive even if one or more replicas go down.

Π˜Ρ‚Π°ΠΊ, Moon ΡˆΠΈΠΊΠ°Ρ€Π½ΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅, Π½ΠΎ с ΠΎΠ΄Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΠΉ, ΠΎΠ½ Π½Π΅ бСсплатный. Π¦Π΅Π½Π° зависит ΠΎΡ‚ числа сСссий. БСсплатно ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ 0-4 сСссии, Ρ‡Ρ‚ΠΎ Π½Π΅ особо ΠΏΠΎΠ»Π΅Π·Π½ΠΎ. Но, начиная ΡƒΠΆΠ΅ с пятой сСссии, придСтся Π·Π°ΠΏΠ»Π°Ρ‚ΠΈΡ‚ΡŒ ΠΏΠΎ 5$ Π·Π° ΠΊΠ°ΠΆΠ΄ΡƒΡŽ. Битуация ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ ΠΎΡ‚ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ ΠΊ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ, Π½ΠΎ Π² нашСм случаС использованиС Moon бСссмыслСнно. Как я описывал Π²Ρ‹ΡˆΠ΅, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ VMs с Selenium Grid ΠΏΠΎ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΡŽ ΠΈΠ»ΠΈ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚ΡŒ число Nodes Π² кластСрС. ΠŸΡ€ΠΈΠ±Π»ΠΈΠ·ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π° ΠΎΠ΄ΠΈΠ½ pipeline ΠΌΡ‹ запускаСм 500 Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ΠΎΠ² ΠΈ останавливаСм всС рСсурсы послС Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ тСстов. Если Π±Ρ‹ ΠΌΡ‹ использовали Moon, Π½Π°ΠΌ Π±Ρ‹ ΠΏΡ€ΠΈΡˆΠ»ΠΎΡΡŒ Π·Π°ΠΏΠ»Π°Ρ‚ΠΈΡ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… 500 x 5 = 2500 $ Π² мСсяц ΠΈ Π½Π΅ Π²Π°ΠΆΠ½ΠΎ, ΠΊΠ°ΠΊ часто ΠΌΡ‹ запускаСм тСсты. И ΠΎΠΏΡΡ‚ΡŒ ΠΆΠ΅, я Π½Π΅ Π³ΠΎΠ²ΠΎΡ€ΡŽ Β«Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ MoonΒ». Для Π²Π°ΡˆΠΈΡ… Π·Π°Π΄Π°Ρ‡ это ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π΅Π·Π°ΠΌΠ΅Π½ΠΈΠΌΡ‹ΠΌ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ссли Ρƒ вас Π²Β  ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ²/ΠΊΠΎΠΌΠ°Π½Π΄ ΠΈ Π²Π°ΠΌ Π½ΡƒΠΆΠ΅Π½ ΠΎΠ³Ρ€ΠΎΠΌΠ½Ρ‹ΠΉ ΠΎΠ±Ρ‰ΠΈΠΉ кластСр для всСх. Как всСгда, я ΠΎΡΡ‚Π°Π²Π»ΡΡŽ ссылку Π² ΠΊΠΎΠ½Ρ†Π΅ ΠΈ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ всС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ расчСты Π² контСкстС вашСй Π·Π°Π΄Π°Ρ‡ΠΈ.

Callisto: (Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅! Π­Ρ‚ΠΎΠ³ΠΎ Π½Π΅Ρ‚ Π² ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΈ содСрТится Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² русском ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π΅)

Как я ΠΈ сказал, Selenium – ΠΎΡ‡Π΅Π½ΡŒ популярный инструмСнт, Π° сфСра IT развиваСтся ΠΎΡ‡Π΅Π½ΡŒ быстро. Пока я Ρ€Π°Π±ΠΎΡ‚Π°Π» Π½Π°Π΄ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΎΠΌ, Π² сСти появился Π½ΠΎΠ²Ρ‹ΠΉ ΠΌΠ½ΠΎΠ³ΠΎΠΎΠ±Π΅Ρ‰Π°ΡŽΡ‰ΠΈΠΉ инструмСнт Callisto (ΠΏΡ€ΠΈΠ²Π΅Ρ‚ Cypress ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌ ΡƒΠ±ΠΈΠΉΡ†Π°ΠΌ Selenium). Он Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π°Ρ‚ΠΈΠ²Π½ΠΎ с K8s ΠΈ позволяСт Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ Selenoid-ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹ Π² pods, распрСдСлСно ΠΏΠΎ Nodes. ВсС Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ сразу ΠΈΠ· ΠΊΠΎΡ€ΠΎΠ±ΠΊΠΈ, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Π°Π²Ρ‚ΠΎΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅. Ѐантастика, Π½ΠΎ Π½Π°Π΄ΠΎ Ρ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ. МнС ΡƒΠΆΠ΅ ΡƒΠ΄Π°Π»ΠΎΡΡŒ Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹ΠΉ инструмСнт ΠΈ ΠΏΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ нСсколько экспСримСнтов. Но Π²Ρ‹Π²ΠΎΠ΄Ρ‹ Π΄Π΅Π»Π°Ρ‚ΡŒ Ρ€Π°Π½ΠΎ, послС получСния Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² Π½Π° Π΄Π»ΠΈΠ½Π½ΠΎΠΉ дистанции, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, я сдСлаю ΠΎΠ±Π·ΠΎΡ€ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… ΡΡ‚Π°Ρ‚ΡŒΡΡ…. Пока ΠΎΡΡ‚Π°Π²Π»ΡΡŽ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ссылки для ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… исслСдований.Β Β 

Π˜Π»Π»ΡŽΡΡ‚Ρ€Π°Ρ†ΠΈΡ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ состояния инфраструктуры

DevOps инструмСнты Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для DevOps. ΠŸΡ€ΠΎΡ†Π΅ΡΡ построСния инфраструктуры Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ тСстирования с нуля

Бсылки для изучСния

АналогичныС инструмСнты

7. Π˜Π½Ρ„Ρ€Π°ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° ΠΊΠ°ΠΊ ΠΊΠΎΠ΄ (IaC)

ΠšΡ€Π°Ρ‚ΠΊΠΎΠ΅ описаниС Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ

И Π²ΠΎΡ‚ ΠΌΡ‹ ΠΏΠΎΠ΄ΠΎΠ±Ρ€Π°Π»ΠΈΡΡŒ ΠΊ послСднСму Ρ€Π°Π·Π΄Π΅Π»Ρƒ. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ, данная тСхнология ΠΈ связанныС с Π½Π΅ΠΉ Π·Π°Π΄Π°Ρ‡ΠΈ Π½Π΅ входят Π² Π·ΠΎΠ½Ρƒ отвСтсвСнности ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€ΠΎΠ² ΠΏΠΎ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ. И Π½Π° это Π΅ΡΡ‚ΡŒ свои ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρ‹. Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… организациях инфраструктурныС вопросы находятся ΠΏΠΎΠ΄ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π΅ΠΌ DevOps ΠΎΡ‚Π΄Π΅Π»Π° ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π½Π΅ особо заботятся ΠΎ Ρ‚ΠΎΠΌ, благодаря Ρ‡Π΅ΠΌΡƒ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ pipeline ΠΈ ΠΊΠ°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ всС, Ρ‡Ρ‚ΠΎ с Π½ΠΈΠΌ связано. Π’ΠΎ-Π²Ρ‚ΠΎΡ€Ρ‹Ρ…, Π±ΡƒΠ΄Π΅ΠΌ чСстными, ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ° Β«Π˜Π½Ρ„Ρ€Π°ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° ΠΊΠ°ΠΊ ΠΊΠΎΠ΄ (IaC)Β» всС Π΅Ρ‰Π΅ Π½Π΅ примСняСтся Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… компаниях. Но ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎ это стало популярным Ρ‚Ρ€Π΅Π½Π΄ΠΎΠΌ ΠΈ Π²Π°ΠΆΠ½ΠΎ ΡΡ‚Π°Ρ€Π°Ρ‚ΡŒΡΡ Π±Ρ‹Ρ‚ΡŒ Π²ΠΎΠ²Π»Π΅Ρ‡Π΅Π½Π½Ρ‹ΠΌ Π² связанныС с этим процСссы, ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Ρ‹ ΠΈ инструмСнты. Или, ΠΏΠΎ ΠΊΡ€Π°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅Ρ€Π΅, Π±Ρ‹Ρ‚ΡŒ Π² курсС событий.

НачнСм с ΠΌΠΎΡ‚ΠΈΠ²Π°Ρ†ΠΈΠΈ использования Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π°. ΠœΡ‹ ΡƒΠΆΠ΅ обсудили, Ρ‡Ρ‚ΠΎ для запуска тСстов Π² GitlabCI Π½Π°ΠΌ понадобятся ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ рСсурсы для запуска Gitlab Runner. А для запуска ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² с Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°ΠΌΠΈ/эмуляторами Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π·Π°Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ VM ΠΈΠ»ΠΈ кластСр. Помимо рСсурсов для тСстирования, Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ число мощностСй для поддСрТания срСд Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, staging, production, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…, автоматичСскиС расписания, ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ сСти, балансировщик Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ, ΠΏΡ€Π°Π²Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅. ΠšΠ»ΡŽΡ‡Π΅Π²Π°Ρ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΡ‹Ρ… усилиях для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ этого всСго. Π•ΡΡ‚ΡŒ нСсколько способов Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π²Π½ΠΎΡΠΈΡ‚ΡŒ измСнСния ΠΈ Π²Ρ‹ΠΊΠ°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ обновлСния. НапримСр, Π² контСкстС GCP ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ UI-консоль Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅ ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ всС дСйствия, кликая ΠΊΠ½ΠΎΠΏΠΊΠΈ. ΠΠ»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΌ способом ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ использованиС API-Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² для взаимодСйствия с ΠΎΠ±Π»Π°Ρ‡Π½Ρ‹ΠΌΠΈ сущностями ΠΈΠ»ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅Β  ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ сроки gcloud для выполнСния Π½ΡƒΠΆΠ½Ρ‹Ρ… манипуляций. Но ΠΏΡ€ΠΈ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ большом количСствС Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… сущностСй ΠΈ инфраструктурных элСмСнтов становится тяТСло ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ всС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ. Π‘ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ³ΠΎ, всС эти Ρ€ΡƒΡ‡Π½Ρ‹Π΅ дСйствия Π½Π΅ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅. ΠœΡ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ΠΈΡ… Π½Π° review ΠΏΠ΅Ρ€Π΅Π΄ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ систСму контроля вСрсий ΠΈ быстро ΠΎΡ‚ΠΊΠ°Ρ‚ΠΈΡ‚ΡŒ ΠΏΡ€Π°Π²ΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΈΠ²Π΅Π»ΠΈ ΠΊ ΠΈΠ½Ρ†ΠΈΠ΄Π΅Π½Ρ‚Ρƒ. Для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Ρ‚Π°ΠΊΠΈΡ… ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Ρ‹ создавали ΠΈ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ автоматичСскиС bash/shell-скрипты, Ρ‡Ρ‚ΠΎ Π½Π΅Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ… способов, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΈΡ… Π½Π΅ Ρ‚Π°ΠΊ ΡƒΠΆ ΠΈ Π»Π΅Π³ΠΊΠΎ быстро ΠΏΡ€ΠΎΡ‡Π΅ΡΡ‚ΡŒ, ΠΏΠΎΠ½ΡΡ‚ΡŒ, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ ΠΈ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π½ΠΎΠΌ стилС.

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΈ практичСском руководствС я ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽ 2 инструмСнта, относящихся ΠΊ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ IaC. Π­Ρ‚ΠΎ Terraform ΠΈ Ansible. НСкоторыС ΠΏΠΎΠ»Π°Π³Π°ΡŽΡ‚, Ρ‡Ρ‚ΠΎ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ смысла ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ… ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΈΡ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π» схоТ ΠΈ ΠΎΠ½ΠΈ взаимозамСняСмыС. Но Π΄Π΅Π»ΠΎ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄ Π½ΠΈΠΌΠΈ ставятся ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ Ρ€Π°Π·Π½Ρ‹Π΅ Π·Π°Π΄Π°Ρ‡ΠΈ. И Ρ„Π°ΠΊΡ‚ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ эти инструмСнты Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π΄ΠΎΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Π΄Ρ€ΡƒΠ³ Π΄Ρ€ΡƒΠ³Π°, Π±Ρ‹Π» ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ Π½Π° совмСстной ΠΏΡ€Π΅Π·Π΅Π½Ρ‚Π°Ρ†ΠΈΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌΠΈ, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠΌΠΈ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ HashiCorp ΠΈ RedHat. ΠšΠΎΠ½Ρ†Π΅ΠΏΡ‚ΡƒΠ°Π»ΡŒΠ½Π°Ρ Ρ€Π°Π·Π½ΠΈΡ†Π° Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Terraform – это provisioning-инструмСнт для управлСния самими сСрвСрами. Π’ Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ Ansible являСтся инструмСнтом управлСния конфигурациями, Π·Π°Π΄Π°Ρ‡Π΅ΠΉ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ являСтся установка, настройка ΠΈ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ софтом Π½Π° этих сСрвСрах.

Π•Ρ‰Π΅ ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠΉ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒΡŽ Π΄Π°Π½Π½Ρ‹Ρ… инструмСнтов являСтся ΡΡ‚ΠΈΠ»ΡŒ написания ΠΊΠΎΠ΄Π°. Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ bash ΠΈ Ansible, Terraform ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Π΄Π΅ΠΊΠ»Π°Ρ€Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ ΡΡ‚ΠΈΠ»ΡŒ, основанный Π½Π° описании ΠΆΠ΅Π»Π°Π΅ΠΌΠΎΠ³ΠΎ ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠ³ΠΎ состояния, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΄ΠΎΡΡ‚ΠΈΡ‡ΡŒ Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ выполнСния. НапримСр, Ссли ΠΌΡ‹ собираСмся ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ 10 VMs ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ измСнСния Ρ‡Π΅Ρ€Π΅Π· Terraform, Ρ‚ΠΎ ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ 10 VMs. Если ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ скрипт Π΅Ρ‰Π΅ Ρ€Π°Π·, Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Ρƒ нас ΡƒΠΆΠ΅ Π΅ΡΡ‚ΡŒ 10 VMs, ΠΈ Terraform Π·Π½Π°Π΅Ρ‚ ΠΎΠ± этом, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½ Ρ…Ρ€Π°Π½ΠΈΡ‚ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ состояниС инфраструктуры Π² state-Ρ„Π°ΠΉΠ»Π΅. А Π²ΠΎΡ‚ Ansible ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΈ, Ссли ΠΏΠΎΠΏΡ€ΠΎΡΠΈΡ‚ΡŒ Π΅Π³ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ 10 VMs, Ρ‚ΠΎ Π½Π° ΠΏΠ΅Ρ€Π²ΠΎΠΌ запускС ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ 10 VMs, Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ с Terraform. Но послС ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ запуска Ρƒ нас ΡƒΠΆΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ 20 VMs. Π’ этом ΠΈ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π²Π°ΠΆΠ½ΠΎΠ΅ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅. Π’ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π½ΠΎΠΌ стилС ΠΌΡ‹ Π½Π΅ Ρ…Ρ€Π°Π½ΠΈΠΌ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ состояниС ΠΈ просто описываСм ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ шагов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Ρ‹. РазумССтся, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ситуации, Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ нСсколько ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΎΠΊ Π½Π° сущСствованиС рСсурсов ΠΈ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ состояниС, Π½ΠΎ Π½Π΅Ρ‚ смысла Ρ‚Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ нашС врСмя ΠΈ ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Ρ‹Π²Π°Ρ‚ΡŒ усилия Π½Π° ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π°Π½Π½ΠΎΠΉ Π»ΠΎΠ³ΠΈΠΊΠΈ. К Ρ‚ΠΎΠΌΡƒ ΠΆΠ΅ это ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ риск ΡΠΎΠ²Π΅Ρ€ΡˆΠΈΡ‚ΡŒ ошибки.Β 

ΠžΠ±ΠΎΠ±Ρ‰ΠΈΠ² всС Π²Ρ‹ΡˆΠ΅ сказанноС, ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π²Ρ‹Π²ΠΎΠ΄, Ρ‡Ρ‚ΠΎ для provisioning сСрвСров Π±ΠΎΠ»Π΅Π΅ подходящим инструмСнтом являСтся Terraform ΠΈ дСкларативная нотация. А Π²ΠΎΡ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΏΠΎ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΡŽ конфигурациями Π»ΡƒΡ‡ΡˆΠ΅ Π΄Π΅Π»Π΅Π³ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° Ansible. Π Π°Π·ΠΎΠ±Ρ€Π°Π²ΡˆΠΈΡΡŒ с этим, Π΄Π°Π²Π°ΠΉΡ‚Π΅ посмотрим Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ использования Π² контСкстС Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ.

Π¦Π΅Π½Π½ΠΎΡΡ‚ΡŒ для инфраструктуры Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ

Π—Π΄Π΅ΡΡŒ Π²Π°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ лишь Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ инфраструктура Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ тСстирования Π΄ΠΎΠ»ΠΆΠ½Π° Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒΡΡ ΠΊΠ°ΠΊ Ρ‡Π°ΡΡ‚ΡŒ всСй инфраструктуры ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ. А это Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ всС IaC-ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹Β  Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½Ρ‹ глобально ΠΊ рСсурсам всСй ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ. ΠšΡ‚ΠΎ Π·Π° это отвСтствСнСн, зависит ΠΎΡ‚ Π²Π°ΡˆΠΈΡ… процСссов. DevOps-ΠΊΠΎΠΌΠ°Π½Π΄Π° Π±ΠΎΠ»Π΅Π΅ ΠΎΠΏΡ‹Ρ‚Π½Π° Π² Π΄Π°Π½Π½Ρ‹Ρ… вопросах, ΠΎΠ½ΠΈ видят всю ΠΊΠ°Ρ€Ρ‚ΠΈΠ½Ρƒ происходящСго. Однако QA-ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Ρ‹ сильнСС Π²ΠΎΠ²Π»Π΅Ρ‡Π΅Π½Ρ‹ Π² процСсс построСния Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ структуру pipeline, Ρ‡Ρ‚ΠΎ позволяСт ΠΈΠΌ Π»ΡƒΡ‡ΡˆΠ΅ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ всС Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΡ‹Π΅ измСнСния ΠΈ возмоТности для ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ. Π‘Π°ΠΌΡ‹ΠΉ Π»ΡƒΡ‡ΡˆΠΈΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ – это Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ сообща, ΠΎΠ±ΠΌΠ΅Π½ΠΈΠ²Π°Ρ‚ΡŒΡΡ знаниями ΠΈ идСями для достиТСния ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΠΎΠ³ΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°.Β 

ΠŸΡ€ΠΈΠ²Π΅Π΄Ρƒ нСсколько ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² использования Terraform ΠΈ Ansible Π² контСкстС Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ тСстирования ΠΈ инструмСнтов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ обсуТдали Π΄ΠΎ этого:

1. ΠžΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ‡Π΅Ρ€Π΅Π· Terraform Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ характСристики ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ VMs ΠΈ кластСров.

2. Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ansible Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ для тСстирования инструмСнты: docker, Selenoid, Selenium Grid ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ Π½ΡƒΠΆΠ½Ρ‹Π΅ вСрсии Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ΠΎΠ²/эмуляторов.

3. ΠžΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ‡Π΅Ρ€Π΅Π· Terraform характСристики VM, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΏΡƒΡ‰Π΅Π½ GitLab Runner.

4. Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ansible GitLab Runner ΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ ΡΠΎΠΏΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ инструмСнты, Π·Π°Π΄Π°Ρ‚ΡŒ настройки ΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ.

Π˜Π»Π»ΡŽΡΡ‚Ρ€Π°Ρ†ΠΈΡ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ состояния инфраструктуры

DevOps инструмСнты Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для DevOps. ΠŸΡ€ΠΎΡ†Π΅ΡΡ построСния инфраструктуры Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ тСстирования с нуля

Бсылки для изучСния:

АналогичныС инструмСнты

ПодвСдСм ΠΈΡ‚ΠΎΠ³ΠΈ!

Step
Technology
Tools
Π¦Π΅Π½Π½ΠΎΡΡ‚ΡŒ для инфраструктуры Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ

1
Local running
Node.js, Selenium, Appium

  • НаиболСС популярныС инструмСнты для web ΠΈ mobile
  • ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΌΠ½ΠΎΠ³ΠΈΡ… языков ΠΈ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ (Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Node.js)

2
Version control systemsΒ 
Git

  • АналогичныС прСимущСства с ΠΊΠΎΠ΄ΠΎΠΌ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ

3
Containerisation
Docker, Selenium grid, Selenoid (Web, Android)

  • ΠŸΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹ΠΉ запуск тСстов
  • Π˜Π·ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ срСды
  • ΠŸΡ€ΠΎΡΡ‚ΠΎΠ΅, Π³ΠΈΠ±ΠΊΠΎΠ΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ вСрсий
  • ДинамичСская остановка Π½Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… рСсурсов
  • Π›Π΅Π³ΠΊΠΎ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ

4
CI / CD
Gitlab CI

  • ВСсты Ρ‡Π°ΡΡ‚ΡŒ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€Π°
  • Быстрая обратная связь
  • Π’ΠΈΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ для всСй ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ / ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹

5
Cloud platforms
Google Cloud Platform

  • РСсурсы ΠΏΠΎ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΡŽ (ΠΏΠ»Π°Ρ‚ΠΈΠΌ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊΠΎΠ³Π΄Π° Π½ΡƒΠΆΠ½Ρ‹)
  • Π›Π΅Π³ΠΊΠΎ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ‚ΡŒ
  • Π’ΠΈΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ ΠΈ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ всСх рСсурсов

6
Orchestration
Kubernetes
Π’ контСкстС ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² с Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°ΠΌΠΈ/эмуляторами Π²Π½ΡƒΡ‚Ρ€ΠΈ pods:

  • ΠœΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ / Π°Π²Ρ‚ΠΎΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅
  • БамовосстановлСниС
  • ОбновлСния ΠΈ ΠΎΡ‚ΠΊΠ°Ρ‚Ρ‹ Π±Π΅Π· ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠΉ

7
Infrastructure as a codeΒ  (IaC)
Terraform, Ansible

  • АналогичныС прСимущСства с инфраструктурой Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ
  • ВсС прСимущСства вСрсионирования ΠΊΠΎΠ΄Π°
  • Π›Π΅Π³ΠΊΠΎ Π²Π½ΠΎΡΠΈΡ‚ΡŒ измСнСния ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ
  • ΠŸΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½ΠΎ

Mind map Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡ‹: ΡΠ²ΠΎΠ»ΡŽΡ†ΠΈΡ инфраструктуры

step1: Local
DevOps инструмСнты Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для DevOps. ΠŸΡ€ΠΎΡ†Π΅ΡΡ построСния инфраструктуры Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ тСстирования с нуля

step2: VCS
DevOps инструмСнты Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для DevOps. ΠŸΡ€ΠΎΡ†Π΅ΡΡ построСния инфраструктуры Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ тСстирования с нуля

step3: ContainerisationΒ 
DevOps инструмСнты Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для DevOps. ΠŸΡ€ΠΎΡ†Π΅ΡΡ построСния инфраструктуры Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ тСстирования с нуля

step4: CI/CDΒ 
DevOps инструмСнты Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для DevOps. ΠŸΡ€ΠΎΡ†Π΅ΡΡ построСния инфраструктуры Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ тСстирования с нуля

step5: Cloud Platforms
DevOps инструмСнты Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для DevOps. ΠŸΡ€ΠΎΡ†Π΅ΡΡ построСния инфраструктуры Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ тСстирования с нуля

step6: Orchestration
DevOps инструмСнты Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для DevOps. ΠŸΡ€ΠΎΡ†Π΅ΡΡ построСния инфраструктуры Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ тСстирования с нуля

step7: IaC
DevOps инструмСнты Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для DevOps. ΠŸΡ€ΠΎΡ†Π΅ΡΡ построСния инфраструктуры Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ тСстирования с нуля

Π§Ρ‚ΠΎ дальшС?

Π˜Ρ‚Π°ΠΊ, это ΠΊΠΎΠ½Π΅Ρ† ΡΡ‚Π°Ρ‚ΡŒΠΈ. Но Π² Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ я Π±Ρ‹ Ρ…ΠΎΡ‚Π΅Π» ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ с Π²Π°ΠΌΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ договорСнности.

Π‘ вашСй стороны
Как Π±Ρ‹Π»ΠΎ сказано Π²Π½Π°Ρ‡Π°Π»Π΅, я Π±Ρ‹ Ρ…ΠΎΡ‚Π΅Π», Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΡ‚Π°Ρ‚ΡŒΡ нСсла ΠΏΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΠΏΠΎΠ»ΡŒΠ·Ρƒ ΠΈ ΠΏΠΎΠΌΠΎΠ³Π»Π° Π²Π°ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Π΅ знания Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Π΅. Π”ΠΎΠ±Π°Π²Π»ΡΡŽ Π΅Ρ‰Π΅ Ρ€Π°Π· ссылку Π½Π° практичСскоС руководство.

Но Π΄Π°ΠΆΠ΅ послС этого Π½Π΅ ΠΎΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°ΠΉΡ‚Π΅ΡΡŒ, ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΡƒΠΉΡ‚Π΅ΡΡŒ, ΠΈΠ·ΡƒΡ‡Π°ΠΉΡ‚Π΅ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ссылки ΠΈ ΠΊΠ½ΠΈΠΆΠΊΠΈ, ΡƒΠ·Π½Π°Π²Π°ΠΉΡ‚Π΅, ΠΊΠ°ΠΊ это Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρƒ вас Π² ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ, Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚Π΅ мСста, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ ΠΈ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΠΉΡ‚Π΅ Π² этом участиС. Π£Π΄Π°Ρ‡ΠΈ!

Π‘ ΠΌΠΎΠ΅ΠΉ стороны

Из Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ это Π±Ρ‹Π»Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ пСрвая Ρ‡Π°ΡΡ‚ΡŒ. НСсмотря Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΠ½Π° ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΎΡΡŒ довольно большой, здСсь всС Π΅Ρ‰Π΅ Π½Π΅ раскрыты Π²Π°ΠΆΠ½Ρ‹Π΅ Ρ‚Π΅ΠΌΡ‹. Π’ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΉ части я ΠΏΠ»Π°Π½ΠΈΡ€ΡƒΡŽ Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ инфраструктуру Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ Π² контСкстС IOS. Из-Π·Π° ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ Apple, связанных с запусками IOS симуляторов Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° macOS систСмах, наш Π½Π°Π±ΠΎΡ€ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ суТСн. НапримСр, ΠΌΡ‹ Π»ΠΈΡˆΠ΅Π½Ρ‹ возмоТности ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Docker для запуска симулятора ΠΈΠ»ΠΈ ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΎΠ±Π»Π°ΠΊΠΎΠ² для запуска Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… машин. Но это Π½Π΅ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π½Π΅Ρ‚ Π΄Ρ€ΡƒΠ³ΠΈΡ… Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ². Π― ΠΏΠΎΡΡ‚Π°Ρ€Π°ΡŽΡΡŒ Π΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ вас Π² курсС ΠΏΠ΅Ρ€Π΅Π΄ΠΎΠ²Ρ‹Ρ… Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ ΠΈ соврСмСнных инструмСнтов!

Π’Π°ΠΊΠΆΠ΅ я Π½Π΅ упомянул довольно большиС Ρ‚Π΅ΠΌΡ‹, связанныС с ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ΠΎΠΌ. Π’ части 3 я ΡΠΎΠ±ΠΈΡ€Π°ΡŽΡΡŒ Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ популярныС инструмСнты для ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° инфраструктуры, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΊΠ°ΠΊΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ стоит ΠΏΡ€ΠΈΠ½ΡΡ‚ΡŒ Π²ΠΎ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅.

И напослСдок. Π’ Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ я ΠΏΠ»Π°Π½ΠΈΡ€ΡƒΡŽ Π²Ρ‹ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π²ΠΈΠ΄Π΅ΠΎ курс ΠΏΠΎ ΠΏΠΎΡΡ‚Ρ€ΠΎΠ΅Π½ΠΈΡŽ тСстовой инфраструктуры ΠΈ популярным инструмСнтам. Π’ настоящСС врСмя Π² ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅ довольно ΠΌΠ½ΠΎΠ³ΠΎ курсов ΠΈ Π»Π΅ΠΊΡ†ΠΈΠΉ ΠΏΠΎ DevOps, Π½ΠΎ всС ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Ρ‹ прСдставлСны Π² контСкстС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, Π½ΠΎ Π½Π΅ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ тСстирования. Π’ этом вопросС ΠΌΠ½Π΅ ΠΎΡ‡Π΅Π½ΡŒ Π½ΡƒΠΆΠ½Π° обратная связь, Π±ΡƒΠ΄Π΅Ρ‚ Π»ΠΈ Ρ‚Π°ΠΊΠΎΠΉ курс интСрСсСн ΠΈ Ρ†Π΅Π½Π΅Π½ для сообщСства тСстировщиков ΠΈ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ‚ΠΎΡ€ΠΎΠ². Π—Π°Ρ€Π°Π½Π΅Π΅ спасибо!

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