Руководство для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…: создаСм DevOps-ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½

Если Π²Ρ‹ Π½ΠΎΠ²ΠΈΡ‡ΠΎΠΊ Π² DevOps, взглянитС Π½Π° эту ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ ΠΏΠΎ созданию вашСго ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€Π° ΠΈΠ· пяти этапов.

Руководство для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…: создаСм DevOps-ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½

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

МоС ΠΏΡƒΡ‚Π΅ΡˆΠ΅ΡΡ‚Π²ΠΈΠ΅ ΠΏΠΎ DevOps

РаньшС я Ρ€Π°Π±ΠΎΡ‚Π°Π» Π² ΠΎΠ±Π»Π°Ρ‡Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ Citi Group, разрабатывая Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Infrastructure-as-a-Service (IaaS) для управлСния ΠΎΠ±Π»Π°Ρ‡Π½ΠΎΠΉ инфраструктурой Citi, Π½ΠΎ мСня всСгда интСрСсовало, ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ процСсс развития Π±ΠΎΠ»Π΅Π΅ эффСктивным ΠΈ привнСсти ΠΏΠΎΠ·ΠΈΡ‚ΠΈΠ²Π½Ρ‹Π΅ ΠΊΡƒΠ»ΡŒΡ‚ΡƒΡ€Π½Ρ‹Π΅ измСнСния Π² ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ². ΠžΡ‚Π²Π΅Ρ‚ я нашСл Π² ΠΊΠ½ΠΈΠ³Π΅, Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°Π½Π½ΠΎΠΉ Π“Ρ€Π΅Π³ΠΎΠΌ Π›Π°Π²Π΅Π½Π΄Π΅Ρ€ΠΎΠΌ (Greg Lavender), тСхничСским Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΎΠΌ Citi ΠΏΠΎ ΠΎΠ±Π»Π°Ρ‡Π½ΠΎΠΉ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅ ΠΈ инфраструктурС. Книга Π½Π°Π·Ρ‹Π²Π°Π»Π°ΡΡŒ Β«ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ ЀСникс» (The Phoenix Project), ΠΈ Π² Π½Π΅ΠΉ ΠΎΠ±ΡŠΡΡΠ½ΡΡŽΡ‚ΡΡ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ DevOps, ΠΏΡ€ΠΈ этом ΠΎΠ½Π° читаСтся ΠΊΠ°ΠΊ Ρ€ΠΎΠΌΠ°Π½.

Π’ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ Π½Π° ΠΎΠ±ΠΎΡ€ΠΎΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ, ΠΊΠ°ΠΊ часто Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°ΡŽΡ‚ свои систСмы Π² срСдС для выпуска Ρ€Π΅Π»ΠΈΠ·ΠΎΠ²:

Amazon: 23 000 в дСнь
Google: 5 500 в дСнь
Netflix: 500 в дСнь
Facebook: Раз в дСнь
Twitter: 3 Ρ€Π°Π·Π° Π² нСдСлю
Випичная компания: Π Π°Π· Π² 9 мСсяцСв

Как Π²ΠΎΠΎΠ±Ρ‰Π΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ частоты Amazon, Google ΠΈ Netflix? ВсС ΠΏΠΎΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ эти ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ ΠΏΡ€ΠΈΠ΄ΡƒΠΌΠ°Π»ΠΈ, ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΠΎΡ‡Ρ‚ΠΈ ΠΈΠ΄Π΅Π°Π»ΡŒΠ½Ρ‹ΠΉ DevOps-ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€.

ΠœΡ‹ Π±Ρ‹Π»ΠΈ Π΄Π°Π»Π΅ΠΊΠΈ ΠΎΡ‚ этого, ΠΏΠΎΠΊΠ° Π½Π΅ Π²Π½Π΅Π΄Ρ€ΠΈΠ»ΠΈ DevOps Π² Citi. Π’ΠΎΠ³Π΄Π° Π² ΠΌΠΎΠ΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ Π±Ρ‹Π»ΠΈ Ρ€Π°Π·Π½Ρ‹Π΅ окруТСния, Π½ΠΎ Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅ Π½Π° сСрвСрС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π±Ρ‹Π»ΠΎ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Ρ€ΡƒΡ‡Π½Ρ‹ΠΌ. ВсС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΈΠΌΠ΅Π»ΠΈ доступ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊ ΠΎΠ΄Π½ΠΎΠΌΡƒ сСрвСру Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π½Π° Π±Π°Π·Π΅ IBM WebSphere Application Server Community Edition. ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π»Π°ΡΡŒ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ сСрвСр Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π°Π»ΡΡ всякий Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° нСсколько ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΠΏΡ‹Ρ‚Π°Π»ΠΈΡΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅, поэтому Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Π»ΠΈ ΡΠΎΠΎΠ±Ρ‰Π°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ Π΄Ρ€ΡƒΠ³Ρƒ ΠΎ своих намСрСниях, Ρ‡Ρ‚ΠΎ Π±Ρ‹Π»ΠΎ довольно Π±ΠΎΠ»Π΅Π·Π½Π΅Π½Π½ΠΎ. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, сущСствовали ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²Ρ‹ΠΌ тСстовым ΠΏΠΎΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ΠΌ ΠΊΠΎΠ΄Π°, Π³Ρ€ΠΎΠΌΠΎΠ·Π΄ΠΊΠΈΠΌΠΈ процСссами Ρ€ΡƒΡ‡Π½ΠΎΠ³ΠΎ развСртывания ΠΈ отсутствиСм возмоТности ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π°, связанного с ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ Π·Π°Π΄Π°Ρ‡Π΅ΠΉ ΠΈΠ»ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠΉ историСй.

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

Π’Π΅ΠΏΠ΅Ρ€ΡŒ я понимаю, насколько простым Π±Ρ‹Π» наш DevOps-ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½: ΠΌΡ‹ Π½Π΅ использовали Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ Π²Ρ€ΠΎΠ΄Π΅ Jenkins files ΠΈΠ»ΠΈ Ansible. Однако, этот простой ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€ Ρ€Π°Π±ΠΎΡ‚Π°Π» Ρ…ΠΎΡ€ΠΎΡˆΠΎ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, благодаря ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡƒ ΠŸΠ°Ρ€Π΅Ρ‚ΠΎ (Ρ‚Π°ΠΊΠΆΠ΅ извСстному ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ 80/20).

ΠšΡ€Π°Ρ‚ΠΊΠΎΠ΅ Π²Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² DevOps ΠΈ ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½ CI/CD

Если Π²Ρ‹ спроситС нСсколько Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊ: Β«Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ DevOps?Β», Ρ‚ΠΎ Π²Ρ‹, вСроятно, ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ нСсколько Ρ€Π°Π·Π½Ρ‹Ρ… ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠ². DevOps, ΠΊΠ°ΠΊ ΠΈ Agile, развивался, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ…Π²Π°Ρ‚ΠΈΡ‚ΡŒ мноТСство Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… дисциплин, Π½ΠΎ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ людСй согласятся с Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ Π²Π΅Ρ‰Π°ΠΌΠΈ: DevOps β€” это ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния ΠΈΠ»ΠΈ ΠΆΠΈΠ·Π½Π΅Π½Π½Ρ‹ΠΉ Ρ†ΠΈΠΊΠ» Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния (SDLC), Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½Ρ‹ΠΌ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΎΠΌ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ являСтся ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΊΡƒΠ»ΡŒΡ‚ΡƒΡ€Ρ‹, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΈ Π½Π΅-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Π² срСдС, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ:

Автоматизированы ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π°Π½Π΅Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΠ»ΠΈΡΡŒ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ;
ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Π΄Π΅Π»Π°Π΅Ρ‚ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΡƒΠΌΠ΅Π΅Ρ‚ Π»ΡƒΡ‡ΡˆΠ΅ всСго;
ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ Π²Π½Π΅Π΄Ρ€Π΅Π½ΠΈΠΉ Π·Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ ΠΎΡ‚Ρ€Π΅Π·ΠΎΠΊ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ увСличиваСтся; УвСличиваСтся пропускная ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ;
ΠŸΠΎΠ²Ρ‹ΡˆΠ°Π΅Ρ‚ΡΡ Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ.

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

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

Π¨Π°Π³ 1: ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ CI/CD

ΠŸΠ΅Ρ€Π²ΠΎΠ΅, Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ – инструмСнт для CI/CD. Jenkins, инструмСнт с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ, основанный Π½Π° Java, ΠΈ распространяСмый ΠΏΠΎ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠΈ MIT, являСтся Ρ‚Π΅ΠΌ срСдством, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ популяризировало Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ DevOps ΠΈ стало стандартом Π΄Π΅-Ρ„Π°ΠΊΡ‚ΠΎ.

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

Jenkins – всСго лишь ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΌΠ½ΠΎΠ³ΠΈΡ… инструмСнтов с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ для CI/CD, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для построСния DevOps-ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½Π°.

Jenkins: Creative Commons and MIT
Travis CI: MIT
CruiseControl: BSD
Buildbot: GPL
Apache Gump: Apache 2.0
Cabie: GNU

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

Руководство для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…: создаСм DevOps-ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½

Π£ вас Π΅ΡΡ‚ΡŒ инструмСнт CI/CD, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠΉ Π½Π° вашСм локалхостС, Π½ΠΎ Π½Π° Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π²Ρ‹ ΠΌΠ°Π»ΠΎ Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ. Π”Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΠ΅Ρ€Π΅ΠΉΠ΄Π΅ΠΌ Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ этап ΠΏΡƒΡ‚Π΅ΡˆΠ΅ΡΡ‚Π²ΠΈΡ Π² ΠΌΠΈΡ€ DevOps.

Π¨Π°Π³ 2: Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ систСмами контроля исходного ΠΊΠΎΠ΄Π°

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

ИмСнно здСсь срСдство контроля исходного ΠΊΠΎΠ΄Π° становится практичСски Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒΡŽ. Π­Ρ‚ΠΎΡ‚ инструмСнт сохраняСт ваш ΠΊΠΎΠ΄ Π² рСпозиториях, Π²Π΅Π΄Π΅Ρ‚ ΡƒΡ‡Π΅Ρ‚ вСрсий ΠΈ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½ΠΈΡ€ΡƒΠ΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ участников ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.

Π₯отя сущСствуСт мноТСство инструмСнтов контроля исходного ΠΊΠΎΠ΄Π°, Git являСтся стандартом, ΠΈ это Π²Π΅Ρ€Π½ΠΎ. Π― Π½Π°ΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Git, хотя, Ссли ΡƒΠ³ΠΎΠ΄Π½ΠΎ, Π΅ΡΡ‚ΡŒ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ.

Git: GPLv2 ΠΈ LGPL v2.1
Subversion: Apache 2.0
Concurrent Versions System (CVS): GNU
Vesta: LGPL
Mercurial: GNU GPL v2+

Π’Π°ΠΊ выглядит DevOps-ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½ с Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ срСдств контроля исходного ΠΊΠΎΠ΄Π°.

Руководство для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…: создаСм DevOps-ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½

Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚ CI/CD ΠΌΠΎΠΆΠ΅Ρ‚ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ процСссы ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ, получСния исходного ΠΊΠΎΠ΄Π° ΠΈ сотрудничСства ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ‡Π»Π΅Π½Π°ΠΌΠΈ. НСплохо? Но ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΈΠ· этого Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰Π΅Π΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΌΠΈΠ»Π»ΠΈΠ°Ρ€Π΄Ρ‹ людСй ΠΌΠΎΠ³Π»ΠΈ Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ ΠΎΡ†Π΅Π½ΠΈΡ‚ΡŒ?

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

ΠžΡ‚Π»ΠΈΡ‡Π½ΠΎ! Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ ΠΊΠΎΠ΄ ΠΈ Π²Π½ΠΎΡΠΈΡ‚ΡŒ измСнСния Π² систСму контроля исходного ΠΊΠΎΠ΄Π°, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ°Ρ‚ΡŒ своих Π΄Ρ€ΡƒΠ·Π΅ΠΉ ΠΊ сотрудничСству Π² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅. Но Π²Ρ‹ Π΅Ρ‰Π΅ Π½Π΅ создали ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π΅Π³ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ ΡƒΠΏΠ°ΠΊΠΎΠ²Π°Ρ‚ΡŒ Π² Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΉ ΠΏΠ°ΠΊΠ΅Ρ‚Π½Ρ‹ΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ ΠΈΠ»ΠΈ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π² Π²ΠΈΠ΄Π΅ исполняСмого Ρ„Π°ΠΉΠ»Π°. (ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΉ язык программирования, Ρ‚Π°ΠΊΠΎΠΉ ΠΊΠ°ΠΊ JavaScript ΠΈΠ»ΠΈ PHP, Π½Π΅ нуТдаСтся Π² компиляции).

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

НазваниС
ЛицСнзия
Π―Π·Ρ‹ΠΊ программирования

Maven
Apache 2.0
Java

Ant
Apache 2.0
Java

Gradle
Apache 2.0
Java

Bazel
Apache 2.0
Java

Make
GNU
N/A

Grunt
MIT
JavaScript

Gulp
MIT
JavaScript

Buildr
Apache
Ruby

Rake
MIT
Ruby

A-A-P
GNU
Python

SCons
MIT
Python

BitBake
GPLv2
Python

Cake
MIT
C#

ASDF
Expat (MIT)
LISP

Cabal
BSD
Haskell

Π—Π΄ΠΎΡ€ΠΎΠ²ΠΎ! Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ инструмСнта Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ сборки Π² систСму управлСния исходным ΠΊΠΎΠ΄ΠΎΠΌ ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ΡŒ Π²Π°ΡˆΠ΅ΠΌΡƒ инструмСнту CI/CD ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ всС Π²ΠΎΠ΅Π΄ΠΈΠ½ΠΎ.

Руководство для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…: создаСм DevOps-ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½

ВсС Ρ…ΠΎΡ€ΠΎΡˆΠΎ, Π½Π΅ Ρ‚Π°ΠΊ Π»ΠΈ? Но Π³Π΄Π΅ Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ вашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅?

Π¨Π°Π³ 4: Π‘Π΅Ρ€Π²Π΅Ρ€ для Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ

Пока Ρ‡Ρ‚ΠΎ Ρƒ вас Π΅ΡΡ‚ΡŒ ΡƒΠΏΠ°ΠΊΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΊΠ°ΠΊ исполняСмым, Ρ‚Π°ΠΊ ΠΈ устанавливаСмым. Для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ любоС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π±Ρ‹Π»ΠΎ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΌ, ΠΎΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ ΠΊΠ°ΠΊΡƒΡŽ-Ρ‚ΠΎ слуТбу ΠΈΠ»ΠΈ интСрфСйс, Π½ΠΎ Π²Π°ΠΌ Π½ΡƒΠΆΠ΅Π½ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ для размСщСния вашСго прилоТСния.

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

БущСствуСт нСсколько сСрвСров для Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ.

НазваниС
ЛицСнзия
Π―Π·Ρ‹ΠΊ программирования

Tomcat
Apache 2.0
Java

Jetty
Apache 2.0
Java

WildFly
GNU Lesser Public
Java

GlassFish
CDDL & GNU Less Public
Java

Django
3-Clause BSD
Python

Tornado
Apache 2.0
Python

Gunicorn
MIT
Python

Python
MIT
Python

Rails
MIT
Ruby

Node.js
MIT
Javascript

Π’Π°Ρˆ DevOps-ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½ ΠΏΠΎΡ‡Ρ‚ΠΈ Π³ΠΎΡ‚ΠΎΠ² ΠΊ использованию. Π₯ΠΎΡ€ΠΎΡˆΠ°Ρ Ρ€Π°Π±ΠΎΡ‚Π°!

Руководство для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…: создаСм DevOps-ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½

Π₯отя Π½Π° этом ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒΡΡ ΠΈ Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒΡΡ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠ΅ΠΉ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ, качСство ΠΊΠΎΠ΄Π° – ваТная Π²Π΅Ρ‰ΡŒ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΈ ΠΎΠ± этом Π½ΡƒΠΆΠ½ΠΎ Π±Π΅ΡΠΏΠΎΠΊΠΎΠΈΡ‚ΡŒΡΡ.

Π¨Π°Π³ 5: ΠŸΠΎΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ тСстирования ΠΊΠΎΠ΄Π°

РСализация тСстов ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π΅Ρ‰Π΅ ΠΎΠ΄Π½ΠΈΠΌ Π³Ρ€ΠΎΠΌΠΎΠ·Π΄ΠΊΠΈΠΌ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ, Π½ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π»ΠΎΠ²ΠΈΡ‚ΡŒ Π»ΡŽΠ±Ρ‹Π΅ ошибки Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Π½Π° Ρ€Π°Π½Π½Π΅ΠΉ стадии ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ°Ρ‚ΡŒ качСство ΠΊΠΎΠ΄Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€Π΅Π½Ρ‹. К ΡΡ‡Π°ΡΡ‚ΡŒΡŽ, сущСствуСт мноТСство инструмСнтов с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ для тСстирования вашСго ΠΊΠΎΠ΄Π° ΠΈ формирования Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΉ ΠΏΠΎ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡŽ Π΅Π³ΠΎ качСства. Π•Ρ‰Π΅ Π»ΡƒΡ‡ΡˆΠ΅ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ инструмСнтов CI/CD ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒΡΡ ΠΊ этим инструмСнтам ΠΈ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ процСсс.

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

БистСмы тСстирования ΠΊΠΎΠ΄Π°

НазваниС
ЛицСнзия
Π―Π·Ρ‹ΠΊ программирования

JUnit
Eclipse Public License
Java

EasyMock
Apache
Java

Mockito
MIT
Java

PowerMock
Apache 2.0
Java

Pytest
MIT
Python

Hypothesis
Mozilla
Python

Tox
MIT
Python

БистСмы Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΉ ΠΏΠΎ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡŽ ΠΊΠΎΠ΄Π°

НазваниС
ЛицСнзия
Π―Π·Ρ‹ΠΊ программирования

Cobertura
GNU
Java

CodeCover
Eclipse Public (EPL)
Java

Coverage.py
Apache 2.0
Python

Emma
Common Public License
Java

JaCoCo
Eclipse Public License
Java

Hypothesis
Mozilla
Python

Tox
MIT
Python

Jasmine
MIT
JavaScript

Karma
MIT
JavaScript

Mocha
MIT
JavaScript

Jest
MIT
JavaScript

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

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π»ΠΈ инструмСнты покрытия ΠΊΠΎΠ΄Π° тСстами, ваш DevOps-ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΡ…ΠΎΠΆ Π½Π° Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡƒ, ΠΏΠΎΠΊΠ°Π·Π°Π½Π½ΡƒΡŽ Π² Π½Π°Ρ‡Π°Π»Π΅ этого руководства.

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

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

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

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

Π₯отя ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ², Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ популярными ΡΠ²Π»ΡΡŽΡ‚ΡΡ Docker ΠΈ Kubernetes.

Docker: Apache 2.0
Kubernetes: Apache 2.0

ΠŸΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Ρ‹Π΅ срСдства Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ

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

Π’ΠΎΡ‚ нСсколько инструмСнтов ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½ΠΎΠΉ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ:

Ansible: GNU Public
SaltStack: Apache 2.0
Chef: Apache 2.0
Puppet: Apache ΠΈΠ»ΠΈ GPL

Руководство для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…: создаСм DevOps-ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½

Π£Π·Π½Π°ΠΉΡ‚Π΅ подробности, ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π²ΠΎΡΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½Π½ΡƒΡŽ ΠΏΡ€ΠΎΡ„Π΅ΡΡΠΈΡŽ с нуля ΠΈΠ»ΠΈ Level Up ΠΏΠΎ Π½Π°Π²Ρ‹ΠΊΠ°ΠΌ ΠΈ Π·Π°Ρ€ΠΏΠ»Π°Ρ‚Π΅, пройдя ΠΏΠ»Π°Ρ‚Π½Ρ‹Π΅ ΠΎΠ½Π»Π°ΠΉΠ½-курсы SkillFactory:

Π΅Ρ‰Π΅ курсы

ПолСзноС

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

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ