Руководство для Ρ‡Π°ΠΉΠ½ΠΈΠΊΠΎΠ²: созданиС Ρ†Π΅ΠΏΠΎΡ‡Π΅ΠΊ DevOps с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ инструмСнтов с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ

Руководство для Ρ‡Π°ΠΉΠ½ΠΈΠΊΠΎΠ²: созданиС Ρ†Π΅ΠΏΠΎΡ‡Π΅ΠΊ DevOps с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ инструмСнтов с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π²ΠΎΠΉ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ DevOps Π·Π° ΠΏΡΡ‚ΡŒ шагов для Π½ΠΎΠ²ΠΈΡ‡ΠΊΠΎΠ².

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

МоС знакомство с DevOps

Когда-Ρ‚ΠΎ я Ρ€Π°Π±ΠΎΡ‚Π°Π» с ΠΎΠ±Π»Π°ΠΊΠ°ΠΌΠΈ Π² Citi Group ΠΈ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π» Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ IaaS, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΎΠ±Π»Π°Ρ‡Π½ΠΎΠΉ инфраструктурой Citi, Π½ΠΎ ΠΌΠ½Π΅ всСгда Π±Ρ‹Π»ΠΎ интСрСсно, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΡƒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ ΠΊΡƒΠ»ΡŒΡ‚ΡƒΡ€Ρƒ срСди Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ². Π“Ρ€Π΅Π³ Π›Π°Π²Π΅Π½Π΄Π΅Ρ€, наш Ρ‚Π΅Ρ…Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ ΠΏΠΎ ΠΎΠ±Π»Π°Ρ‡Π½ΠΎΠΉ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅ ΠΈ инфраструктурС, посовСтовал ΠΌΠ½Π΅ ΠΊΠ½ΠΈΠ³Ρƒ ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ «ЀСникс». Она прСкрасно ΠΎΠ±ΡŠΡΡΠ½ΡΠ΅Ρ‚ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ DevOps, ΠΏΡ€ΠΈ этом читаСтся, ΠΊΠ°ΠΊ Ρ€ΠΎΠΌΠ°Π½.

Π’ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ Π½Π° ΠΎΠ±ΠΎΡ€ΠΎΡ‚Π΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ, ΠΊΠ°ΠΊ часто ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Π²Ρ‹ΠΊΠ°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ Π½ΠΎΠ²Ρ‹Π΅ вСрсии:

Руководство для Ρ‡Π°ΠΉΠ½ΠΈΠΊΠΎΠ²: созданиС Ρ†Π΅ΠΏΠΎΡ‡Π΅ΠΊ DevOps с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ инструмСнтов с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ

Как Amazon, Google ΠΈ Netflix ΡƒΡΠΏΠ΅Π²Π°ΡŽΡ‚ ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Ρ‹ΠΊΠ°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ? А всС просто: ΠΎΠ½ΠΈ поняли, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΏΠΎΡ‡Ρ‚ΠΈ ΠΈΠ΄Π΅Π°Π»ΡŒΠ½ΡƒΡŽ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΡƒ DevOps.

Π£ нас Π² Citi всС Π±Ρ‹Π»ΠΎ совсСм Π½Π΅ Ρ‚Π°ΠΊ, ΠΏΠΎΠΊΠ° ΠΌΡ‹ Π½Π΅ ΠΏΠ΅Ρ€Π΅ΡˆΠ»ΠΈ Π½Π° DevOps. Π’ΠΎΠ³Π΄Π° Ρƒ ΠΌΠΎΠ΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π±Ρ‹Π»ΠΈ Ρ€Π°Π·Π½Ρ‹Π΅ срСды, Π½ΠΎ поставку Π½Π° сСрвСр Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΌΡ‹ Π΄Π΅Π»Π°Π»ΠΈ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ. Π£ всСх Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² Π±Ρ‹Π» доступ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊ ΠΎΠ΄Π½ΠΎΠΌΡƒ сСрвСру Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π½Π° Π±Π°Π·Π΅ IBM WebSphere Application Server Community Edition. ΠŸΡ€ΠΈ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ поставки сСрвСр β€œΠΏΠ°Π΄Π°Π»β€, Π° Π½Π°ΠΌ ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΠ»ΠΎΡΡŒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π· β€œΠ±ΠΎΠ»Π΅Π·Π½Π΅Π½Π½ΠΎβ€ Π΄ΠΎΠ³ΠΎΠ²Π°Ρ€ΠΈΠ²Π°Ρ‚ΡŒΡΡ ΠΌΠ΅ΠΆΠ΄Ρƒ собой. А Π΅Ρ‰Π΅ Ρƒ нас Π±Ρ‹Π»ΠΎ нСдостаточноС ΠΏΠΎΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ ΠΊΠΎΠ΄Π° тСстами, Ρ‚Ρ€ΡƒΠ΄ΠΎΠ΅ΠΌΠΊΠΈΠΉ Ρ€ΡƒΡ‡Π½ΠΎΠΉ процСсс поставки ΠΈ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ возмоТности ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ поставку ΠΊΠΎΠ΄Π° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π·Π°Π΄Π°Ρ‡Π΅ ΠΈΠ»ΠΈ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΡŽ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°.

Π‘Ρ‹Π»ΠΎ понятно, Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ срочно Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ, ΠΈ я нашСл ΠΊΠΎΠ»Π»Π΅Π³Ρƒ-Π΅Π΄ΠΈΠ½ΠΎΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΈΠΊΠ°. ΠœΡ‹ Ρ€Π΅ΡˆΠΈΠ»ΠΈ вмСстС ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π²ΡƒΡŽ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΡƒ DevOps β€” ΠΎΠ½ настроил Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΌΠ°ΡˆΠΈΠ½Ρƒ ΠΈ сСрвСр ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Tomcat, Π° я занялся Jenkins, ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠ΅ΠΉ с Atlassian Jira ΠΈ BitBucket, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΈ ΠΏΠΎΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ΠΌ ΠΊΠΎΠ΄Π° тСстами. ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ Π±Ρ‹Π» ΡƒΡΠΏΠ΅ΡˆΠ½Ρ‹ΠΌ: ΠΌΡ‹ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π»ΠΈ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΡƒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, добились ΠΏΠΎΡ‡Ρ‚ΠΈ 100% бСспСрСбойной Ρ€Π°Π±ΠΎΡ‚Ρ‹ сСрвСра Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, ΠΌΠΎΠ³Π»ΠΈ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ°Ρ‚ΡŒ ΠΏΠΎΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ ΠΊΠΎΠ΄Π° тСстами, Π° Π²Π΅Ρ‚ΠΊΡƒ Git ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΠΏΡ€ΠΈΠ²ΡΠ·Π°Ρ‚ΡŒ ΠΊ поставкС ΠΈ Π·Π°Π΄Π°Ρ‡Π΅ Jira. И ΠΏΠΎΡ‡Ρ‚ΠΈ всС инструмСнты, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΠΌΡ‹ строили Ρ†Π΅ΠΏΠΎΡ‡ΠΊΡƒ DevOps, Π±Ρ‹Π»ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ.

По Ρ„Π°ΠΊΡ‚Ρƒ, Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ° Π±Ρ‹Π»Π° ΡƒΠΏΡ€ΠΎΡ‰Π΅Π½Π½ΠΎΠΉ, вСдь ΠΌΡ‹ Π΄Π°ΠΆΠ΅ Π½Π΅ примСняли Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹Π΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Jenkins ΠΈΠ»ΠΈ Ansible. Но Ρƒ нас всС ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΎΡΡŒ. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, это слСдствиС ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ° ΠŸΠ°Ρ€Π΅Ρ‚ΠΎ (ΠΎΠ½ ΠΆΠ΅ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ 80/20).

ΠšΡ€Π°Ρ‚ΠΊΠΎΠ΅ описаниС Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ DevOps ΠΈ CI/CD

Π£ DevOps Π΅ΡΡ‚ΡŒ Ρ€Π°Π·Π½Ρ‹Π΅ опрСдСлСния. DevOps, ΠΊΠ°ΠΊ ΠΈ Agile, Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя Ρ€Π°Π·Π½Ρ‹Π΅ дисциплины. Но Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ согласятся с ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ: DevOps β€” это ΠΌΠ΅Ρ‚ΠΎΠ΄, ΠΈΠ»ΠΈ ΠΆΠΈΠ·Π½Π΅Π½Π½Ρ‹ΠΉ Ρ†ΠΈΠΊΠ», Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ПО, Π³Π»Π°Π²Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ β€” созданиС ΠΊΡƒΠ»ΡŒΡ‚ΡƒΡ€Ρ‹, Π³Π΄Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ сотрудники β€œΠ½Π° ΠΎΠ΄Π½ΠΎΠΉ волнС”, Ρ€ΡƒΡ‡Π½ΠΎΠΉ Ρ‚Ρ€ΡƒΠ΄ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½, ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‚ΡΡ Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Π»ΡƒΡ‡ΡˆΠ΅ всСго ΡƒΠΌΠ΅Π΅Ρ‚, возрастаСт частота поставок, ΠΏΠΎΠ²Ρ‹ΡˆΠ°Π΅Ρ‚ΡΡ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹, увСличиваСтся Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ.

И хотя ΠΎΠ΄Π½ΠΈΡ… Ρ‚ΠΎΠ»ΡŒΠΊΠΎ инструмСнтов нСдостаточно для создания срСды DevOps, Π±Π΅Π· Π½ΠΈΡ… Π½Π΅ ΠΎΠ±ΠΎΠΉΡ‚ΠΈΡΡŒ. Π‘Π°ΠΌΡ‹ΠΌ Π²Π°ΠΆΠ½Ρ‹ΠΌ ΠΈΠ· Π½ΠΈΡ… являСтся нСпрСрывная интСграция ΠΈ нСпрСрывная поставка (CI/CD). Π’ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ΅ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ окруТСния Π΅ΡΡ‚ΡŒ Ρ€Π°Π·Π½Ρ‹Π΅ этапы (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, DEV (Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°), INT (интСграция), TST (тСстированиС), QA (ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ качСства), UAT (ΠΏΡ€ΠΈΠ΅ΠΌΠΎΡ‡Π½ΠΎΠ΅ тСстированиС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌΠΈ), STG (ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ°), PROD (использованиС)), Ρ€ΡƒΡ‡Π½Ρ‹Π΅ Π·Π°Π΄Π°Ρ‡ΠΈ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π΄Π΅Π»Π°Ρ‚ΡŒ качСствСнный ΠΊΠΎΠ΄, Π΄Π΅Π»Π°ΡŽΡ‚ Π΅Π³ΠΎ поставку ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π»Π΅Π³ΠΊΠΎ ΠΏΠ΅Ρ€Π΅ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒΡΡ.

Данная Π·Π°ΠΌΠ΅Ρ‚ΠΊΠ° описываСт, ΠΊΠ°ΠΊ Π·Π° ΠΏΡΡ‚ΡŒ шагов ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΡƒ DevOps, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½Π° ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ΅ Π½ΠΈΠΆΠ΅, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ инструмСнтов с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ.

Руководство для Ρ‡Π°ΠΉΠ½ΠΈΠΊΠΎΠ²: созданиС Ρ†Π΅ΠΏΠΎΡ‡Π΅ΠΊ DevOps с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ инструмСнтов с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ

ΠŸΠ΅Ρ€Π΅ΠΉΠ΄Π΅ΠΌ ΠΊ Π΄Π΅Π»Ρƒ.

Π¨Π°Π³ 1: ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° CI/CD

ΠŸΠ΅Ρ€Π²Ρ‹ΠΌ Π΄Π΅Π»ΠΎΠΌ Π²Π°ΠΌ Π½ΡƒΠΆΠ΅Π½ инструмСнт CI/CD. Jenkins β€” это ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ инструмСнт CI/CD написанный Π½Π° Java с Π»ΠΈΡ†Π΅Π½Π·ΠΈΠ΅ΠΉ MIT, с ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π½Π°Ρ‡Π°Π»Π°ΡΡŒ популяризация двиТСния DevOps ΠΈ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΄Π΅-Ρ„Π°ΠΊΡ‚ΠΎ стал стандартом для CICD.

А Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Jenkins? ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²ΡŒΡ‚Π΅, Ρ‡Ρ‚ΠΎ Ρƒ вас Π΅ΡΡ‚ΡŒ Π²ΠΎΠ»ΡˆΠ΅Π±Π½Ρ‹ΠΉ ΠΏΡƒΠ»ΡŒΡ‚ управлСния для самых Ρ€Π°Π·Π½Ρ‹Ρ… сСрвисов ΠΈ инструмСнтов. Π‘Π°ΠΌ ΠΏΠΎ сСбС инструмСнт CI/CD, Ρ‚ΠΈΠΏΠ° Jenkins, бСсполСзСн, Π½ΠΎ с Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ инструмСнтами ΠΈ сСрвисами ΠΎΠ½ становится всСмогущим.

ΠšΡ€ΠΎΠΌΠ΅ Jenkins Π΅ΡΡ‚ΡŒ мноТСство Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Ρ… инструмСнтов, Π²Ρ‹Π±ΠΈΡ€Π°ΠΉΡ‚Π΅ любой.

Руководство для Ρ‡Π°ΠΉΠ½ΠΈΠΊΠΎΠ²: созданиС Ρ†Π΅ΠΏΠΎΡ‡Π΅ΠΊ DevOps с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ инструмСнтов с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ

Π’ΠΎΡ‚ ΠΊΠ°ΠΊ выглядит процСсс DevOps с инструмСнтом CI/CD

Руководство для Ρ‡Π°ΠΉΠ½ΠΈΠΊΠΎΠ²: созданиС Ρ†Π΅ΠΏΠΎΡ‡Π΅ΠΊ DevOps с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ инструмСнтов с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ

Π£ вас Π² localhost Π΅ΡΡ‚ΡŒ инструмСнт CI/CD, Π½ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΠΎΠΊΠ° особо Π½Π΅Ρ‡Π΅Π³ΠΎ. ΠŸΠ΅Ρ€Π΅ΠΉΠ΄Π΅ΠΌ ΠΊ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌΡƒ ΡˆΠ°Π³Ρƒ.

Π¨Π°Π³ 2: ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ вСрсиями

Π›ΡƒΡ‡ΡˆΠΈΠΉ (ΠΈ, ΠΏΠΎΠΆΠ°Π»ΡƒΠΉ, самый простой) способ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ магию инструмСнта CI/CD β€” ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ с инструмСнтом контроля вСрсий (source control management, SCM). Π—Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ΅Π½ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ вСрсий? Допустим Π²Ρ‹ Π΄Π΅Π»Π°Π΅Ρ‚Π΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π’Ρ‹ ΠΏΠΈΡˆΠ΅Ρ‚Π΅ Π΅Π³ΠΎ Π½Π° Java, Python, C++, Go, Ruby, JavaScript ΠΈΠ»ΠΈ Π½Π° любом Π΄Ρ€ΡƒΠ³ΠΎΠΌ языкС, ΠΊΠΎΠΈΡ… Π²Π°Π³ΠΎΠ½ ΠΈ малСнькая Ρ‚Π΅Π»Π΅ΠΆΠΊΠ°. Π’ΠΎ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΏΠΈΡˆΠ΅Ρ‚Π΅, называСтся исходным ΠΊΠΎΠ΄ΠΎΠΌ. ΠŸΠΎΠ½Π°Ρ‡Π°Π»Ρƒ, особСнно Ссли Π²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ Π² ΠΎΠ΄ΠΈΠ½ΠΎΡ‡ΠΊΡƒ, ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ всС Π² Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³. Но ΠΊΠΎΠ³Π΄Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ разрастаСтся ΠΈ ΠΊ Π½Π΅ΠΌΡƒ присоСдиняСтся большС людСй, Π²Π°ΠΌ Π½ΡƒΠΆΠ΅Π½ способ Π΄Π΅Π»ΠΈΡ‚ΡŒΡΡ измСнСниями Π² ΠΊΠΎΠ΄Π΅, Π½ΠΎ ΠΏΡ€ΠΈ этом ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ² ΠΏΡ€ΠΈ слияниях ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ. А Π΅Ρ‰Π΅ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΊΠ°ΠΊ-Ρ‚ΠΎ Π²ΠΎΡΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠ΅ вСрсии Π±Π΅Π· использования Ρ€Π΅Π·Π΅Ρ€Π²Π½Ρ‹Ρ… ΠΊΠΎΠΏΠΈΠΉ ΠΈ примСнСния ΠΌΠ΅Ρ‚ΠΎΠ΄Π° copy-paste для Ρ„Π°ΠΉΠ»ΠΎΠ² с ΠΊΠΎΠ΄ΠΎΠΌ.

И Ρ‚ΡƒΡ‚ Π±Π΅Π· SCM Π½ΠΈΠΊΡƒΠ΄Π°. SCM сохраняСт ΠΊΠΎΠ΄ Π² рСпозиториях, управляСт Π΅Π³ΠΎ вСрсиями ΠΈ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½ΠΈΡ€ΡƒΠ΅Ρ‚ Π΅Π³ΠΎ срСди Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ².

Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² SCM Π½Π΅ΠΌΠ°Π»ΠΎ, Π½ΠΎ стандартом Π΄Π΅-Ρ„Π°ΠΊΡ‚ΠΎ заслуТСнно стал Git. Π― ΡΠΎΠ²Π΅Ρ‚ΡƒΡŽ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠΌΠ΅Π½Π½ΠΎ Π΅Π³ΠΎ, Π½ΠΎ Π΅ΡΡ‚ΡŒ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹.

Руководство для Ρ‡Π°ΠΉΠ½ΠΈΠΊΠΎΠ²: созданиС Ρ†Π΅ΠΏΠΎΡ‡Π΅ΠΊ DevOps с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ инструмСнтов с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ

Π’ΠΎΡ‚ ΠΊΠ°ΠΊ выглядит ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½ DevOps послС добавлСния SCM.

Руководство для Ρ‡Π°ΠΉΠ½ΠΈΠΊΠΎΠ²: созданиС Ρ†Π΅ΠΏΠΎΡ‡Π΅ΠΊ DevOps с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ инструмСнтов с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ

Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚ CI/CD ΠΌΠΎΠΆΠ΅Ρ‚ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ ΠΈ Π²Ρ‹Π³Ρ€ΡƒΠ·ΠΊΡƒ исходного ΠΊΠΎΠ΄Π° ΠΈ ΡΠΎΠ²ΠΌΠ΅ΡΡ‚Π½ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π΅. НСплохо? Но ΠΊΠ°ΠΊ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΈΠ· этого ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‡Π΅Π΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, любимоС ΠΌΠΈΠ»Π»ΠΈΠ°Ρ€Π΄Π°ΠΌΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ?

Π¨Π°Π³ 3: инструмСнт Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ сборки

ВсС ΠΈΠ΄Π΅Ρ‚ ΠΊΠ°ΠΊ Π½Π°Π΄ΠΎ. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Ρ‹Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ ΠΊΠΎΠ΄ ΠΈ Ρ„ΠΈΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ измСнСния Π² систСмС контроля вСрсий, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΈΠ³Π»Π°ΡΠΈΡ‚ΡŒ Π΄Ρ€ΡƒΠ·Π΅ΠΉ ΠΏΠΎΡ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Π²Π°ΠΌΠΈ. Но прилоТСния Ρƒ вас ΠΏΠΎΠΊΠ° Π½Π΅Ρ‚. Π§Ρ‚ΠΎΠ±Ρ‹ это Π±Ρ‹Π»ΠΎ Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π΅Π³ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Π² ΠΏΠ°ΠΊΠ΅Ρ‚ для поставки ΠΈΠ»ΠΈ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΊΠ°ΠΊ исполняСмый Ρ„Π°ΠΉΠ». (Π˜Π½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΉ язык программирования, Π²Ρ€ΠΎΠ΄Π΅ JavaScript ΠΈΠ»ΠΈ PHP, ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π΅ Π½Π°Π΄ΠΎ.)

ΠŸΡ€ΠΈΠΌΠ΅Π½ΡΠΉΡ‚Π΅ инструмСнт Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ сборки. Какой Π±Ρ‹ инструмСнт Π²Ρ‹ Π½ΠΈ Π²Ρ‹Π±Ρ€Π°Π»ΠΈ, ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ±ΠΈΡ€Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π² Π½ΡƒΠΆΠ½ΠΎΠΌ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ ΠΈ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ очистку, ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡŽ, тСстированиС ΠΈ поставку. Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ сборки Π±Ρ‹Π²Π°ΡŽΡ‚ Ρ€Π°Π·Π½Ρ‹Π΅ Π² зависимости ΠΎΡ‚ языка, Π½ΠΎ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ ΠΊΠΎΠ΄ΠΎΠΌ.

Руководство для Ρ‡Π°ΠΉΠ½ΠΈΠΊΠΎΠ²: созданиС Ρ†Π΅ΠΏΠΎΡ‡Π΅ΠΊ DevOps с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ инструмСнтов с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ

ΠŸΡ€Π΅Π²ΠΎΡΡ…ΠΎΠ΄Π½ΠΎ! Π’Π΅ΠΏΠ΅Ρ€ΡŒ вставим Ρ„Π°ΠΉΠ»Ρ‹ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ инструмСнта Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ сборки Π² систСму контроля вСрсий, Ρ‡Ρ‚ΠΎΠ±Ρ‹ инструмСнт CI/CD ΠΈΡ… собрал.

Руководство для Ρ‡Π°ΠΉΠ½ΠΈΠΊΠΎΠ²: созданиС Ρ†Π΅ΠΏΠΎΡ‡Π΅ΠΊ DevOps с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ инструмСнтов с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ

Π’Ρ€ΠΎΠ΄Π΅, всС Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ. Но ΠΊΡƒΠ΄Π° Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ всС это Π²Ρ‹ΠΊΠ°Ρ‚ΠΈΡ‚ΡŒ?

Π¨Π°Π³ 4: сСрвСр Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ

Π˜Ρ‚Π°ΠΊ, Ρƒ вас Π΅ΡΡ‚ΡŒ Π·Π°ΠΏΠ°ΠΊΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΈΠ»ΠΈ Π²Ρ‹ΠΊΠ°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ приносило ΠΏΠΎΠ»ΡŒΠ·Ρƒ, Ρƒ Π½Π΅Π³ΠΎ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ сСрвис ΠΈΠ»ΠΈ интСрфСйс, Π½ΠΎ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π³Π΄Π΅-Ρ‚ΠΎ это всС Ρ€Π°Π·ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ.

Π’Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π·ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Π½Π° сСрвСрС Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π‘Π΅Ρ€Π²Π΅Ρ€ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ обСспСчиваСт срСду, Π³Π΄Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΡƒΡŽ Π»ΠΎΠ³ΠΈΠΊΡƒ ΠΈΠ· ΠΏΠ°ΠΊΠ΅Ρ‚Π°, Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ отрисовку интСрфСйса ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ web-сСрвисы Ρ‡Π΅Ρ€Π΅Π· сокСт. Π’Π°ΠΌ Π½ΡƒΠΆΠ΅Π½ HTTP-сСрвСр ΠΈ нСсколько Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠΉ (Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Π°Ρ машина, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€), Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ сСрвСр ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Пока Π΄Π°Π²Π°ΠΉΡ‚Π΅ прСдставим, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Ρ€Π°Π·Π±ΠΈΡ€Π°Π΅Ρ‚Π΅ΡΡŒ со всСм этим Π² процСссС (хотя ΠΎ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°Ρ… я расскаТу Π½ΠΈΠΆΠ΅).

Π•ΡΡ‚ΡŒ нСсколько ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Ρ… сСрвСров Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.

Руководство для Ρ‡Π°ΠΉΠ½ΠΈΠΊΠΎΠ²: созданиС Ρ†Π΅ΠΏΠΎΡ‡Π΅ΠΊ DevOps с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ инструмСнтов с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ

Π£ нас ΡƒΠΆΠ΅ получился ΠΏΠΎΡ‡Ρ‚ΠΈ рабочая Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ° DevOps. ΠžΡ‚Π»ΠΈΡ‡Π½Π°Ρ Ρ€Π°Π±ΠΎΡ‚Π°!

Руководство для Ρ‡Π°ΠΉΠ½ΠΈΠΊΠΎΠ²: созданиС Ρ†Π΅ΠΏΠΎΡ‡Π΅ΠΊ DevOps с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ инструмСнтов с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ

Π’ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ΅, здСсь ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒΡΡ, дальшС Π²Ρ‹ ΡΠΏΡ€Π°Π²ΠΈΡ‚Π΅ΡΡŒ сами, Π½ΠΎ стоит Π΅Ρ‰Π΅ Ρ€Π°ΡΡΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΎ качСствС ΠΊΠΎΠ΄Π°.

Π¨Π°Π³ 5: ВСстовоС ΠΏΠΎΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅

ВСстированиС ΠΎΡ‚Π½ΠΈΠΌΠ°Π΅Ρ‚ ΠΌΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΈ сил, Π½ΠΎ Π»ΡƒΡ‡ΡˆΠ΅ сразу Π½Π°ΠΉΡ‚ΠΈ ошибки ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ ΠΊΠΎΠ΄, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΡ€Π°Π΄ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ. Для этой Ρ†Π΅Π»ΠΈ Π΅ΡΡ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Ρ… инструмСнтов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΎΡ‚Π΅ΡΡ‚ΠΈΡ€ΡƒΡŽΡ‚ ΠΊΠΎΠ΄, Π° Π΅Ρ‰Π΅ ΠΈ ΠΏΠΎΡΠΎΠ²Π΅Ρ‚ΡƒΡŽΡ‚, ΠΊΠ°ΠΊ Π΅Π³ΠΎ ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ. Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ инструмСнтов CI/CD ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒΡΡ ΠΊ этим инструмСнтам ΠΈ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€Π²Π°Ρ‚ΡŒ процСсс.

ВСстированиС Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΎ Π½Π° Π΄Π²Π΅ части: Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ тСстирования, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ тСсты, ΠΈ инструмСнты с подсказками ΠΏΠΎ ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡŽ качСства ΠΊΠΎΠ΄Π°.

Π€Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ тСстирования

Руководство для Ρ‡Π°ΠΉΠ½ΠΈΠΊΠΎΠ²: созданиС Ρ†Π΅ΠΏΠΎΡ‡Π΅ΠΊ DevOps с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ инструмСнтов с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ

Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ с подсказками ΠΏΠΎ качСству

Руководство для Ρ‡Π°ΠΉΠ½ΠΈΠΊΠΎΠ²: созданиС Ρ†Π΅ΠΏΠΎΡ‡Π΅ΠΊ DevOps с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ инструмСнтов с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ

Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ этих инструмСнтов ΠΈ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ² написаны для Java, Python ΠΈ JavaScript, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ C++ ΠΈ C# β€” ΠΏΡ€ΠΎΠΏΡ€ΠΈΠ΅Ρ‚Π°Ρ€Π½Ρ‹Π΅ (хотя Ρƒ GCC ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ исходный ΠΊΠΎΠ΄).

Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ тСстового покрытия ΠΌΡ‹ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠ»ΠΈ, ΠΈ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½ DevOps Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ, ΠΊΠ°ΠΊ Π½Π° рисункС Π² Π½Π°Ρ‡Π°Π»Π΅ руководства.

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ шаги

ΠšΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹

Как я ΡƒΠΆΠ΅ Π³ΠΎΠ²ΠΎΡ€ΠΈΠ», сСрвСр ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π·ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Π½Π° Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ машинС ΠΈΠ»ΠΈ сСрвСрС, Π½ΠΎ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹ Π±ΠΎΠ»Π΅Π΅ популярны.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹? Π’ΠΊΡ€Π°Ρ‚Ρ†Π΅, Π² Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ машинС опСрационная систСма Ρ‡Π°Ρ‰Π΅ всСго Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ большС мСста, Ρ‡Π΅ΠΌ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρƒ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ достаточно Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ ΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ. Π’ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… случаях Π±Π΅Π· Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… машин Π½Π΅ ΠΎΠ±ΠΎΠΉΡ‚ΠΈΡΡŒ, Π½ΠΎ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ Π²ΠΌΠ΅Ρ‰Π°Π΅Ρ‚ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ вмСстС с сСрвСром Π±Π΅Π· Π»ΠΈΡˆΠ½ΠΈΡ… Π·Π°Ρ‚Ρ€Π°Ρ‚.

Для ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π±Π΅Ρ€ΡƒΡ‚ Docker ΠΈ Kubernetes, хотя Π΅ΡΡ‚ΡŒ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹.

Руководство для Ρ‡Π°ΠΉΠ½ΠΈΠΊΠΎΠ²: созданиС Ρ†Π΅ΠΏΠΎΡ‡Π΅ΠΊ DevOps с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ инструмСнтов с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ

ΠŸΠΎΡ‡ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ ΠΎ Docker ΠΈ Kubernetes Π½Π° Opensource.com:

Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½ΠΎΠ³ΠΎ ПО

Наша Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ° DevOps ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π° Π½Π° ΡΠΎΠ²ΠΌΠ΅ΡΡ‚Π½ΡƒΡŽ сборку ΠΈ поставку прилоТСния, Π½ΠΎ с инструмСнтами DevOps ΠΌΠΎΠΆΠ½ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ интСрСсныС ΡˆΡ‚ΡƒΠΊΠΈ. НапримСр, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ инструмСнты «инфраструктура ΠΊΠ°ΠΊ ΠΊΠΎΠ΄Β» (IaC), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΅Ρ‰Π΅ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ инструмСнтами Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½ΠΎΠ³ΠΎ ПО. Π­Ρ‚ΠΈ инструмСнты ΠΏΠΎΠΌΠΎΠ³Π°ΡŽΡ‚ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ установку, ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Π·Π°Π΄Π°Ρ‡ΠΈ для ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½ΠΎΠ³ΠΎ ПО. НапримСр, инструмСнт Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ€Π°Ρ‚ΡŒ прилоТСния (сСрвСр Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ…, инструмСнты ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π°) с ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΌΠΈ конфигурациями ΠΈ Π²Ρ‹ΠΊΠ°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΈΡ… Π½Π° сСрвСр ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.

Π’ΠΎΡ‚ нСсколько Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Ρ… инструмСнтов Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½ΠΎΠ³ΠΎ ПО:

Руководство для Ρ‡Π°ΠΉΠ½ΠΈΠΊΠΎΠ²: созданиС Ρ†Π΅ΠΏΠΎΡ‡Π΅ΠΊ DevOps с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ инструмСнтов с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ

ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΡΡ‚ΠΈ Π² ΡΡ‚Π°Ρ‚ΡŒΡΡ… Π½Π° Opensource.com:

И Ρ‡Ρ‚ΠΎ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ?

Π­Ρ‚ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Π΅Ρ€Ρ…ΡƒΡˆΠΊΠ° айсбСрга. Π¦Π΅ΠΏΠΎΡ‡ΠΊΠ° DevOps ΠΌΠΎΠΆΠ΅Ρ‚ Π³ΠΎΡ€Π°Π·Π΄ΠΎ большС. НачнитС с инструмСнта CI/CD ΠΈ ΡƒΠ·Π½Π°ΠΉΡ‚Π΅, Ρ‡Ρ‚ΠΎ Π΅Ρ‰Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΏΡ€ΠΎΡΡ‚ΠΈΡ‚ΡŒ сСбС Ρ€Π°Π±ΠΎΡ‚Ρƒ. НС Π·Π°Π±ΡƒΠ΄ΡŒΡ‚Π΅ ΠΏΡ€ΠΎ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Π΅ инструмСнты ΠΊΠΎΠΌΠΌΡƒΠ½ΠΈΠΊΠ°Ρ†ΠΈΠΈ для эффСктивной совмСстной Ρ€Π°Π±ΠΎΡ‚Ρ‹.

Π’ΠΎΡ‚ Π΅Ρ‰Π΅ нСсколько Ρ…ΠΎΡ€ΠΎΡˆΠΈΡ… статСй ΠΎ DevOps для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…:

А Π΅Ρ‰Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ DevOps с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌΠΈ инструмСнтами для agile:

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