Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ²ΠΎΠΉ ΡΠ΅ΠΏΠΎΡΠΊΠΈ DevOps Π·Π° ΠΏΡΡΡ ΡΠ°Π³ΠΎΠ² Π΄Π»Ρ Π½ΠΎΠ²ΠΈΡΠΊΠΎΠ².
DevOps ΡΡΠ°Π» ΠΏΠ°Π½Π°ΡΠ΅Π΅ΠΉ Π΄Π»Ρ ΡΠ»ΠΈΡΠΊΠΎΠΌ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΡΡ , ΡΠ°Π·ΠΎΠ±ΡΠ΅Π½Π½ΡΡ ΠΈ ΠΏΡΠΎΡΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ½ΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ. ΠΠΎ Π½ΡΠΆΠ½Ρ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΠ΅ ΠΏΠΎΠ·Π½Π°Π½ΠΈΡ Π² DevOps. ΠΠ΄Π΅ΡΡ Π±ΡΠ΄Π΅Ρ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½Ρ ΡΠ°ΠΊΠΈΠ΅ ΠΏΠΎΠ½ΡΡΠΈΡ, ΠΊΠ°ΠΊ ΡΠ΅ΠΏΠΎΡΠΊΠ° DevOps ΠΈ ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°ΡΡ Π΅Π΅ Π·Π° ΠΏΡΡΡ ΡΠ°Π³ΠΎΠ². ΠΡΠΎ Π½Π΅ ΠΏΠΎΠ»Π½ΠΎΠ΅ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ, Π° ΡΠΎΠ»ΡΠΊΠΎ βΡΡΠ±Π°β, ΠΊΠΎΡΠΎΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°ΡΡΠΈΡΡΡΡ. ΠΠ°ΡΠ½Π΅ΠΌ Ρ ΠΈΡΡΠΎΡΠΈΠΈ.
ΠΠΎΠ΅ Π·Π½Π°ΠΊΠΎΠΌΡΡΠ²ΠΎ Ρ DevOps
ΠΠΎΠ³Π΄Π°-ΡΠΎ Ρ ΡΠ°Π±ΠΎΡΠ°Π» Ρ ΠΎΠ±Π»Π°ΠΊΠ°ΠΌΠΈ Π² Citi Group ΠΈ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°Π» Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ IaaS, ΡΡΠΎΠ±Ρ ΡΠΏΡΠ°Π²Π»ΡΡΡ ΠΎΠ±Π»Π°ΡΠ½ΠΎΠΉ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠΎΠΉ Citi, Π½ΠΎ ΠΌΠ½Π΅ Π²ΡΠ΅Π³Π΄Π° Π±ΡΠ»ΠΎ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΡΠ΅ΠΏΠΎΡΠΊΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈ ΡΠ»ΡΡΡΠΈΡΡ ΠΊΡΠ»ΡΡΡΡΡ ΡΡΠ΅Π΄ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ². ΠΡΠ΅Π³ ΠΠ°Π²Π΅Π½Π΄Π΅Ρ, Π½Π°Ρ ΡΠ΅Ρ
Π΄ΠΈΡΠ΅ΠΊΡΠΎΡ ΠΏΠΎ ΠΎΠ±Π»Π°ΡΠ½ΠΎΠΉ Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΠ΅ ΠΈ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ΅, ΠΏΠΎΡΠΎΠ²Π΅ΡΠΎΠ²Π°Π» ΠΌΠ½Π΅ ΠΊΠ½ΠΈΠ³Ρ
Π ΡΠ°Π±Π»ΠΈΡΠ΅ Π½Π° ΠΎΠ±ΠΎΡΠΎΡΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ, ΠΊΠ°ΠΊ ΡΠ°ΡΡΠΎ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Π²ΡΠΊΠ°ΡΡΠ²Π°ΡΡ Π½ΠΎΠ²ΡΠ΅ Π²Π΅ΡΡΠΈΠΈ:
ΠΠ°ΠΊ Amazon, Google ΠΈ Netflix ΡΡΠΏΠ΅Π²Π°ΡΡ ΡΡΠΎΠ»ΡΠΊΠΎ Π²ΡΠΊΠ°ΡΡΠ²Π°ΡΡ? Π Π²ΡΠ΅ ΠΏΡΠΎΡΡΠΎ: ΠΎΠ½ΠΈ ΠΏΠΎΠ½ΡΠ»ΠΈ, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°ΡΡ ΠΏΠΎΡΡΠΈ ΠΈΠ΄Π΅Π°Π»ΡΠ½ΡΡ ΡΠ΅ΠΏΠΎΡΠΊΡ DevOps.
Π£ Π½Π°Ρ Π² Citi Π²ΡΠ΅ Π±ΡΠ»ΠΎ ΡΠΎΠ²ΡΠ΅ΠΌ Π½Π΅ ΡΠ°ΠΊ, ΠΏΠΎΠΊΠ° ΠΌΡ Π½Π΅ ΠΏΠ΅ΡΠ΅ΡΠ»ΠΈ Π½Π° DevOps. Π’ΠΎΠ³Π΄Π° Ρ ΠΌΠΎΠ΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π±ΡΠ»ΠΈ ΡΠ°Π·Π½ΡΠ΅ ΡΡΠ΅Π΄Ρ, Π½ΠΎ ΠΏΠΎΡΡΠ°Π²ΠΊΡ Π½Π° ΡΠ΅ΡΠ²Π΅Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΌΡ Π΄Π΅Π»Π°Π»ΠΈ Π²ΡΡΡΠ½ΡΡ. Π£ Π²ΡΠ΅Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² Π±ΡΠ» Π΄ΠΎΡΡΡΠΏ ΡΠΎΠ»ΡΠΊΠΎ ΠΊ ΠΎΠ΄Π½ΠΎΠΌΡ ΡΠ΅ΡΠ²Π΅ΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π½Π° Π±Π°Π·Π΅ IBM WebSphere Application Server Community Edition. ΠΡΠΈ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΏΠΎΠΏΡΡΠΊΠ΅ ΠΏΠΎΡΡΠ°Π²ΠΊΠΈ ΡΠ΅ΡΠ²Π΅Ρ βΠΏΠ°Π΄Π°Π»β, Π° Π½Π°ΠΌ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΠ»ΠΎΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π· βΠ±ΠΎΠ»Π΅Π·Π½Π΅Π½Π½ΠΎβ Π΄ΠΎΠ³ΠΎΠ²Π°ΡΠΈΠ²Π°ΡΡΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠΎΠ±ΠΎΠΉ. Π Π΅ΡΠ΅ Ρ Π½Π°Ρ Π±ΡΠ»ΠΎ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎΠ΅ ΠΏΠΎΠΊΡΡΡΠΈΠ΅ ΠΊΠΎΠ΄Π° ΡΠ΅ΡΡΠ°ΠΌΠΈ, ΡΡΡΠ΄ΠΎΠ΅ΠΌΠΊΠΈΠΉ ΡΡΡΠ½ΠΎΠΉ ΠΏΡΠΎΡΠ΅ΡΡ ΠΏΠΎΡΡΠ°Π²ΠΊΠΈ ΠΈ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°ΡΡ ΠΏΠΎΡΡΠ°Π²ΠΊΡ ΠΊΠΎΠ΄Π° Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΠΎ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠΉ Π·Π°Π΄Π°ΡΠ΅ ΠΈΠ»ΠΈ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°.
ΠΡΠ»ΠΎ ΠΏΠΎΠ½ΡΡΠ½ΠΎ, ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ ΡΡΠΎΡΠ½ΠΎ ΡΡΠΎ-ΡΠΎ Π΄Π΅Π»Π°ΡΡ, ΠΈ Ρ Π½Π°ΡΠ΅Π» ΠΊΠΎΠ»Π»Π΅Π³Ρ-Π΅Π΄ΠΈΠ½ΠΎΠΌΡΡΠ»Π΅Π½Π½ΠΈΠΊΠ°. ΠΡ ΡΠ΅ΡΠΈΠ»ΠΈ Π²ΠΌΠ΅ΡΡΠ΅ ΡΠΎΠ·Π΄Π°ΡΡ ΠΏΠ΅ΡΠ²ΡΡ ΡΠ΅ΠΏΠΎΡΠΊΡ DevOps β ΠΎΠ½ Π½Π°ΡΡΡΠΎΠΈΠ» Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΡ ΠΌΠ°ΡΠΈΠ½Ρ ΠΈ ΡΠ΅ΡΠ²Π΅Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Tomcat, Π° Ρ Π·Π°Π½ΡΠ»ΡΡ Jenkins, ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠ΅ΠΉ Ρ Atlassian Jira ΠΈ BitBucket, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΈ ΠΏΠΎΠΊΡΡΡΠΈΠ΅ΠΌ ΠΊΠΎΠ΄Π° ΡΠ΅ΡΡΠ°ΠΌΠΈ. ΠΡΠΎΠ΅ΠΊΡ Π±ΡΠ» ΡΡΠΏΠ΅ΡΠ½ΡΠΌ: ΠΌΡ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°Π»ΠΈ ΡΠ΅ΠΏΠΎΡΠΊΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ, Π΄ΠΎΠ±ΠΈΠ»ΠΈΡΡ ΠΏΠΎΡΡΠΈ 100% Π±Π΅ΡΠΏΠ΅ΡΠ΅Π±ΠΎΠΉΠ½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ ΡΠ΅ΡΠ²Π΅ΡΠ° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ, ΠΌΠΎΠ³Π»ΠΈ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°ΡΡ ΠΈ ΡΠ»ΡΡΡΠ°ΡΡ ΠΏΠΎΠΊΡΡΡΠΈΠ΅ ΠΊΠΎΠ΄Π° ΡΠ΅ΡΡΠ°ΠΌΠΈ, Π° Π²Π΅ΡΠΊΡ Git ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ ΠΏΡΠΈΠ²ΡΠ·Π°ΡΡ ΠΊ ΠΏΠΎΡΡΠ°Π²ΠΊΠ΅ ΠΈ Π·Π°Π΄Π°ΡΠ΅ Jira. Π ΠΏΠΎΡΡΠΈ Π²ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ, ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΠΌΡ ΡΡΡΠΎΠΈΠ»ΠΈ ΡΠ΅ΠΏΠΎΡΠΊΡ DevOps, Π±ΡΠ»ΠΈ ΠΎΡΠΊΡΡΡΡΠΌ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ.
ΠΠΎ ΡΠ°ΠΊΡΡ, ΡΠ΅ΠΏΠΎΡΠΊΠ° Π±ΡΠ»Π° ΡΠΏΡΠΎΡΠ΅Π½Π½ΠΎΠΉ, Π²Π΅Π΄Ρ ΠΌΡ Π΄Π°ΠΆΠ΅ Π½Π΅ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ»ΠΈ ΡΠ°ΡΡΠΈΡΠ΅Π½Π½ΡΠ΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Jenkins ΠΈΠ»ΠΈ Ansible. ΠΠΎ Ρ Π½Π°Ρ Π²ΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΎΡΡ. ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΡΡΠΎ ΡΠ»Π΅Π΄ΡΡΠ²ΠΈΠ΅ ΠΏΡΠΈΠ½ΡΠΈΠΏΠ°
ΠΡΠ°ΡΠΊΠΎΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΠ΅ΠΏΠΎΡΠΊΠΈ DevOps ΠΈ CI/CD
Π£ DevOps Π΅ΡΡΡ ΡΠ°Π·Π½ΡΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ. DevOps, ΠΊΠ°ΠΊ ΠΈ Agile, Π²ΠΊΠ»ΡΡΠ°Π΅Ρ Π² ΡΠ΅Π±Ρ ΡΠ°Π·Π½ΡΠ΅ Π΄ΠΈΡΡΠΈΠΏΠ»ΠΈΠ½Ρ. ΠΠΎ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΡΠΎΠ³Π»Π°ΡΡΡΡΡ Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ: DevOps β ΡΡΠΎ ΠΌΠ΅ΡΠΎΠ΄, ΠΈΠ»ΠΈ ΠΆΠΈΠ·Π½Π΅Π½Π½ΡΠΉ ΡΠΈΠΊΠ», ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΠ, Π³Π»Π°Π²Π½ΡΠΉ ΠΏΡΠΈΠ½ΡΠΈΠΏ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ β ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΊΡΠ»ΡΡΡΡΡ, Π³Π΄Π΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠΈ βΠ½Π° ΠΎΠ΄Π½ΠΎΠΉ Π²ΠΎΠ»Π½Π΅β, ΡΡΡΠ½ΠΎΠΉ ΡΡΡΠ΄ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°Π½, ΠΊΠ°ΠΆΠ΄ΡΠΉ Π·Π°Π½ΠΈΠΌΠ°ΡΡΡΡ ΡΠ΅ΠΌ, ΡΡΠΎ Π»ΡΡΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΡΠΌΠ΅Π΅Ρ, Π²ΠΎΠ·ΡΠ°ΡΡΠ°Π΅Ρ ΡΠ°ΡΡΠΎΡΠ° ΠΏΠΎΡΡΠ°Π²ΠΎΠΊ, ΠΏΠΎΠ²ΡΡΠ°Π΅ΡΡΡ ΠΏΡΠΎΠ΄ΡΠΊΡΠΈΠ²Π½ΠΎΡΡΡ ΡΠ°Π±ΠΎΡΡ, ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°Π΅ΡΡΡ Π³ΠΈΠ±ΠΊΠΎΡΡΡ.
Π Ρ ΠΎΡΡ ΠΎΠ΄Π½ΠΈΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΡΠ΅Π΄Ρ DevOps, Π±Π΅Π· Π½ΠΈΡ Π½Π΅ ΠΎΠ±ΠΎΠΉΡΠΈΡΡ. Π‘Π°ΠΌΡΠΌ Π²Π°ΠΆΠ½ΡΠΌ ΠΈΠ· Π½ΠΈΡ ΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π΅ΠΏΡΠ΅ΡΡΠ²Π½Π°Ρ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ ΠΈ Π½Π΅ΠΏΡΠ΅ΡΡΠ²Π½Π°Ρ ΠΏΠΎΡΡΠ°Π²ΠΊΠ° (CI/CD). Π ΡΠ΅ΠΏΠΎΡΠΊΠ΅ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ Π΅ΡΡΡ ΡΠ°Π·Π½ΡΠ΅ ΡΡΠ°ΠΏΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, DEV (ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°), INT (ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ), TST (ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅), QA (ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ ΠΊΠ°ΡΠ΅ΡΡΠ²Π°), UAT (ΠΏΡΠΈΠ΅ΠΌΠΎΡΠ½ΠΎΠ΅ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌΠΈ), STG (ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠ°), PROD (ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅)), ΡΡΡΠ½ΡΠ΅ Π·Π°Π΄Π°ΡΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Ρ, ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΌΠΎΠ³ΡΡ Π΄Π΅Π»Π°ΡΡ ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠΉ ΠΊΠΎΠ΄, Π΄Π΅Π»Π°ΡΡ Π΅Π³ΠΎ ΠΏΠΎΡΡΠ°Π²ΠΊΡ ΠΈ ΠΌΠΎΠ³ΡΡ Π»Π΅Π³ΠΊΠΎ ΠΏΠ΅ΡΠ΅ΡΡΡΠ°ΠΈΠ²Π°ΡΡΡΡ.
ΠΠ°Π½Π½Π°Ρ Π·Π°ΠΌΠ΅ΡΠΊΠ° ΠΎΠΏΠΈΡΡΠ²Π°Π΅Ρ, ΠΊΠ°ΠΊ Π·Π° ΠΏΡΡΡ ΡΠ°Π³ΠΎΠ² ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ΅ΠΏΠΎΡΠΊΡ DevOps, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½Π° ΠΊΠ°ΡΡΠΈΠ½ΠΊΠ΅ Π½ΠΈΠΆΠ΅, Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² Ρ ΠΎΡΠΊΡΡΡΡΠΌ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ.
ΠΠ΅ΡΠ΅ΠΉΠ΄Π΅ΠΌ ΠΊ Π΄Π΅Π»Ρ.
Π¨Π°Π³ 1: ΠΠ»Π°ΡΡΠΎΡΠΌΠ° CI/CD
ΠΠ΅ΡΠ²ΡΠΌ Π΄Π΅Π»ΠΎΠΌ Π²Π°ΠΌ Π½ΡΠΆΠ΅Π½ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ CI/CD. Jenkins β ΡΡΠΎ ΠΎΡΠΊΡΡΡΡΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ CI/CD Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΠΉ Π½Π° Java Ρ Π»ΠΈΡΠ΅Π½Π·ΠΈΠ΅ΠΉ MIT, Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π½Π°ΡΠ°Π»Π°ΡΡ ΠΏΠΎΠΏΡΠ»ΡΡΠΈΠ·Π°ΡΠΈΡ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΡ DevOps ΠΈ ΠΊΠΎΡΠΎΡΡΠΉ Π΄Π΅-ΡΠ°ΠΊΡΠΎ ΡΡΠ°Π» ΡΡΠ°Π½Π΄Π°ΡΡΠΎΠΌ Π΄Π»Ρ CICD.
Π ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Jenkins? ΠΡΠ΅Π΄ΡΡΠ°Π²ΡΡΠ΅, ΡΡΠΎ Ρ Π²Π°Ρ Π΅ΡΡΡ Π²ΠΎΠ»ΡΠ΅Π±Π½ΡΠΉ ΠΏΡΠ»ΡΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π΄Π»Ρ ΡΠ°ΠΌΡΡ ΡΠ°Π·Π½ΡΡ ΡΠ΅ΡΠ²ΠΈΡΠΎΠ² ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ². Π‘Π°ΠΌ ΠΏΠΎ ΡΠ΅Π±Π΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ CI/CD, ΡΠΈΠΏΠ° Jenkins, Π±Π΅ΡΠΏΠΎΠ»Π΅Π·Π΅Π½, Π½ΠΎ Ρ ΡΠ°Π·Π½ΡΠΌΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ ΠΈ ΡΠ΅ΡΠ²ΠΈΡΠ°ΠΌΠΈ ΠΎΠ½ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ Π²ΡΠ΅ΠΌΠΎΠ³ΡΡΠΈΠΌ.
ΠΡΠΎΠΌΠ΅ Jenkins Π΅ΡΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π΄ΡΡΠ³ΠΈΡ ΠΎΡΠΊΡΡΡΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ², Π²ΡΠ±ΠΈΡΠ°ΠΉΡΠ΅ Π»ΡΠ±ΠΎΠΉ.
ΠΠΎΡ ΠΊΠ°ΠΊ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡ DevOps Ρ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠΌ CI/CD
Π£ Π²Π°Ρ Π² localhost Π΅ΡΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ CI/CD, Π½ΠΎ Π΄Π΅Π»Π°ΡΡ ΠΏΠΎΠΊΠ° ΠΎΡΠΎΠ±ΠΎ Π½Π΅ΡΠ΅Π³ΠΎ. ΠΠ΅ΡΠ΅ΠΉΠ΄Π΅ΠΌ ΠΊ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌΡ ΡΠ°Π³Ρ.
Π¨Π°Π³ 2: ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π²Π΅ΡΡΠΈΡΠΌΠΈ
ΠΡΡΡΠΈΠΉ (ΠΈ, ΠΏΠΎΠΆΠ°Π»ΡΠΉ, ΡΠ°ΠΌΡΠΉ ΠΏΡΠΎΡΡΠΎΠΉ) ΡΠΏΠΎΡΠΎΠ± ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΠΌΠ°Π³ΠΈΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ° CI/CD β ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ Ρ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠΌ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π²Π΅ΡΡΠΈΠΉ (source control management, SCM). ΠΠ°ΡΠ΅ΠΌ Π½ΡΠΆΠ΅Π½ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π²Π΅ΡΡΠΈΠΉ? ΠΠΎΠΏΡΡΡΠΈΠΌ Π²Ρ Π΄Π΅Π»Π°Π΅ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠΡ ΠΏΠΈΡΠ΅ΡΠ΅ Π΅Π³ΠΎ Π½Π° Java, Python, C++, Go, Ruby, JavaScript ΠΈΠ»ΠΈ Π½Π° Π»ΡΠ±ΠΎΠΌ Π΄ΡΡΠ³ΠΎΠΌ ΡΠ·ΡΠΊΠ΅, ΠΊΠΎΠΈΡ Π²Π°Π³ΠΎΠ½ ΠΈ ΠΌΠ°Π»Π΅Π½ΡΠΊΠ°Ρ ΡΠ΅Π»Π΅ΠΆΠΊΠ°. Π’ΠΎ, ΡΡΠΎ Π²Ρ ΠΏΠΈΡΠ΅ΡΠ΅, Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ. ΠΠΎΠ½Π°ΡΠ°Π»Ρ, ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Π΅ΡΠ»ΠΈ Π²Ρ ΡΠ°Π±ΠΎΡΠ°Π΅ΡΠ΅ Π² ΠΎΠ΄ΠΈΠ½ΠΎΡΠΊΡ, ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΡ ΡΠ°Π½ΡΡΡ Π²ΡΠ΅ Π² Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠΉ ΠΊΠ°ΡΠ°Π»ΠΎΠ³. ΠΠΎ ΠΊΠΎΠ³Π΄Π° ΠΏΡΠΎΠ΅ΠΊΡ ΡΠ°Π·ΡΠ°ΡΡΠ°Π΅ΡΡΡ ΠΈ ΠΊ Π½Π΅ΠΌΡ ΠΏΡΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΡΠ΅ΡΡΡ Π±ΠΎΠ»ΡΡΠ΅ Π»ΡΠ΄Π΅ΠΉ, Π²Π°ΠΌ Π½ΡΠΆΠ΅Π½ ΡΠΏΠΎΡΠΎΠ± Π΄Π΅Π»ΠΈΡΡΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡΠΌΠΈ Π² ΠΊΠΎΠ΄Π΅, Π½ΠΎ ΠΏΡΠΈ ΡΡΠΎΠΌ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠΎΠ² ΠΏΡΠΈ ΡΠ»ΠΈΡΠ½ΠΈΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ. Π Π΅ΡΠ΅ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΊΠ°ΠΊ-ΡΠΎ Π²ΠΎΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠ΅ Π²Π΅ΡΡΠΈΠΈ Π±Π΅Π· ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠ΅Π·Π΅ΡΠ²Π½ΡΡ ΠΊΠΎΠΏΠΈΠΉ ΠΈ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΌΠ΅ΡΠΎΠ΄Π° copy-paste Π΄Π»Ρ ΡΠ°ΠΉΠ»ΠΎΠ² Ρ ΠΊΠΎΠ΄ΠΎΠΌ.
Π ΡΡΡ Π±Π΅Π· SCM Π½ΠΈΠΊΡΠ΄Π°. SCM ΡΠΎΡ ΡΠ°Π½ΡΠ΅Ρ ΠΊΠΎΠ΄ Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡΡ , ΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ Π΅Π³ΠΎ Π²Π΅ΡΡΠΈΡΠΌΠΈ ΠΈ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½ΠΈΡΡΠ΅Ρ Π΅Π³ΠΎ ΡΡΠ΅Π΄ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ².
ΠΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² SCM Π½Π΅ΠΌΠ°Π»ΠΎ, Π½ΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΠΎΠΌ Π΄Π΅-ΡΠ°ΠΊΡΠΎ Π·Π°ΡΠ»ΡΠΆΠ΅Π½Π½ΠΎ ΡΡΠ°Π» Git. Π― ΡΠΎΠ²Π΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈΠΌΠ΅Π½Π½ΠΎ Π΅Π³ΠΎ, Π½ΠΎ Π΅ΡΡΡ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ Π²Π°ΡΠΈΠ°Π½ΡΡ.
ΠΠΎΡ ΠΊΠ°ΠΊ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½ DevOps ΠΏΠΎΡΠ»Π΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ SCM.
ΠΠ½ΡΡΡΡΠΌΠ΅Π½Ρ CI/CD ΠΌΠΎΠΆΠ΅Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ Π·Π°Π³ΡΡΠ·ΠΊΡ ΠΈ Π²ΡΠ³ΡΡΠ·ΠΊΡ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΈ ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΡΡ ΡΠ°Π±ΠΎΡΡ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π΅. ΠΠ΅ΠΏΠ»ΠΎΡ ΠΎ? ΠΠΎ ΠΊΠ°ΠΊ ΡΠ΅ΠΏΠ΅ΡΡ ΠΈΠ· ΡΡΠΎΠ³ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠ°Π±ΠΎΡΠ΅Π΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π»ΡΠ±ΠΈΠΌΠΎΠ΅ ΠΌΠΈΠ»Π»ΠΈΠ°ΡΠ΄Π°ΠΌΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ?
Π¨Π°Π³ 3: ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΠΈ ΡΠ±ΠΎΡΠΊΠΈ
ΠΡΠ΅ ΠΈΠ΄Π΅Ρ ΠΊΠ°ΠΊ Π½Π°Π΄ΠΎ. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΡΠ³ΡΡΠΆΠ°ΡΡ ΠΊΠΎΠ΄ ΠΈ ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π²Π΅ΡΡΠΈΠΉ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠΈΠ³Π»Π°ΡΠΈΡΡ Π΄ΡΡΠ·Π΅ΠΉ ΠΏΠΎΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ Π²Π°ΠΌΠΈ. ΠΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Ρ Π²Π°Ρ ΠΏΠΎΠΊΠ° Π½Π΅Ρ. Π§ΡΠΎΠ±Ρ ΡΡΠΎ Π±ΡΠ»ΠΎ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π΅Π³ΠΎ Π½ΡΠΆΠ½ΠΎ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΠΈ ΠΏΠΎΠΌΠ΅ΡΡΠΈΡΡ Π² ΠΏΠ°ΠΊΠ΅Ρ Π΄Π»Ρ ΠΏΠΎΡΡΠ°Π²ΠΊΠΈ ΠΈΠ»ΠΈ Π·Π°ΠΏΡΡΡΠΈΡΡ ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ ΡΠ°ΠΉΠ». (ΠΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠΈΡΡΠ΅ΠΌΡΠΉ ΡΠ·ΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, Π²ΡΠΎΠ΄Π΅ JavaScript ΠΈΠ»ΠΈ PHP, ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ Π½Π΅ Π½Π°Π΄ΠΎ.)
ΠΡΠΈΠΌΠ΅Π½ΡΠΉΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΠΈ ΡΠ±ΠΎΡΠΊΠΈ. ΠΠ°ΠΊΠΎΠΉ Π±Ρ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π²Ρ Π½ΠΈ Π²ΡΠ±ΡΠ°Π»ΠΈ, ΠΎΠ½ Π±ΡΠ΄Π΅Ρ ΡΠΎΠ±ΠΈΡΠ°ΡΡ ΠΊΠΎΠ΄ Π² Π½ΡΠΆΠ½ΠΎΠΌ ΡΠΎΡΠΌΠ°ΡΠ΅ ΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΎΡΠΈΡΡΠΊΡ, ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ, ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΠΏΠΎΡΡΠ°Π²ΠΊΡ. ΠΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ ΡΠ±ΠΎΡΠΊΠΈ Π±ΡΠ²Π°ΡΡ ΡΠ°Π·Π½ΡΠ΅ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠ·ΡΠΊΠ°, Π½ΠΎ ΠΎΠ±ΡΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ Π²Π°ΡΠΈΠ°Π½ΡΡ Ρ ΠΎΡΠΊΡΡΡΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ.
ΠΡΠ΅Π²ΠΎΡΡ ΠΎΠ΄Π½ΠΎ! Π’Π΅ΠΏΠ΅ΡΡ Π²ΡΡΠ°Π²ΠΈΠΌ ΡΠ°ΠΉΠ»Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΠΈ ΡΠ±ΠΎΡΠΊΠΈ Π² ΡΠΈΡΡΠ΅ΠΌΡ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π²Π΅ΡΡΠΈΠΉ, ΡΡΠΎΠ±Ρ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ CI/CD ΠΈΡ ΡΠΎΠ±ΡΠ°Π».
ΠΡΠΎΠ΄Π΅, Π²ΡΠ΅ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎ. ΠΠΎ ΠΊΡΠ΄Π° ΡΠ΅ΠΏΠ΅ΡΡ Π²ΡΠ΅ ΡΡΠΎ Π²ΡΠΊΠ°ΡΠΈΡΡ?
Π¨Π°Π³ 4: ΡΠ΅ΡΠ²Π΅Ρ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ
ΠΡΠ°ΠΊ, Ρ Π²Π°Ρ Π΅ΡΡΡ Π·Π°ΠΏΠ°ΠΊΠΎΠ²Π°Π½Π½ΡΠΉ ΡΠ°ΠΉΠ», ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»Π½ΡΡΡ ΠΈΠ»ΠΈ Π²ΡΠΊΠ°ΡΡΠ²Π°ΡΡ. Π§ΡΠΎΠ±Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΡΠΈΠ½ΠΎΡΠΈΠ»ΠΎ ΠΏΠΎΠ»ΡΠ·Ρ, Ρ Π½Π΅Π³ΠΎ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ ΡΠ΅ΡΠ²ΠΈΡ ΠΈΠ»ΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ, Π½ΠΎ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π³Π΄Π΅-ΡΠΎ ΡΡΠΎ Π²ΡΠ΅ ΡΠ°Π·ΠΌΠ΅ΡΡΠΈΡΡ.
ΠΠ΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΡΠΈΡΡ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π‘Π΅ΡΠ²Π΅Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΡΡΠ΅Π΄Ρ, Π³Π΄Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΡ Π»ΠΎΠ³ΠΈΠΊΡ ΠΈΠ· ΠΏΠ°ΠΊΠ΅ΡΠ°, Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΎΡΡΠΈΡΠΎΠ²ΠΊΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° ΠΈ ΠΎΡΠΊΡΡΡΡ web-ΡΠ΅ΡΠ²ΠΈΡΡ ΡΠ΅ΡΠ΅Π· ΡΠΎΠΊΠ΅Ρ. ΠΠ°ΠΌ Π½ΡΠΆΠ΅Π½ HTTP-ΡΠ΅ΡΠ²Π΅Ρ ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π΄ΡΡΠ³ΠΈΡ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠΉ (Π²ΠΈΡΡΡΠ°Π»ΡΠ½Π°Ρ ΠΌΠ°ΡΠΈΠ½Π°, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ), ΡΡΠΎΠ±Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΠ΅ΡΠ²Π΅Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠΠΎΠΊΠ° Π΄Π°Π²Π°ΠΉΡΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΠΌ, ΡΡΠΎ Π²Ρ ΡΠ°Π·Π±ΠΈΡΠ°Π΅ΡΠ΅ΡΡ ΡΠΎ Π²ΡΠ΅ΠΌ ΡΡΠΈΠΌ Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ (Ρ ΠΎΡΡ ΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°Ρ Ρ ΡΠ°ΡΡΠΊΠ°ΠΆΡ Π½ΠΈΠΆΠ΅).
ΠΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΎΡΠΊΡΡΡΡΡ ΡΠ΅ΡΠ²Π΅ΡΠΎΠ² Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.
Π£ Π½Π°Ρ ΡΠΆΠ΅ ΠΏΠΎΠ»ΡΡΠΈΠ»ΡΡ ΠΏΠΎΡΡΠΈ ΡΠ°Π±ΠΎΡΠ°Ρ ΡΠ΅ΠΏΠΎΡΠΊΠ° DevOps. ΠΡΠ»ΠΈΡΠ½Π°Ρ ΡΠ°Π±ΠΎΡΠ°!
Π ΠΏΡΠΈΠ½ΡΠΈΠΏΠ΅, Π·Π΄Π΅ΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡΡ, Π΄Π°Π»ΡΡΠ΅ Π²Ρ ΡΠΏΡΠ°Π²ΠΈΡΠ΅ΡΡ ΡΠ°ΠΌΠΈ, Π½ΠΎ ΡΡΠΎΠΈΡ Π΅ΡΠ΅ ΡΠ°ΡΡΠΊΠ°Π·Π°ΡΡ ΠΎ ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΊΠΎΠ΄Π°.
Π¨Π°Π³ 5: Π’Π΅ΡΡΠΎΠ²ΠΎΠ΅ ΠΏΠΎΠΊΡΡΡΠΈΠ΅
Π’Π΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΡΠ½ΠΈΠΌΠ°Π΅Ρ ΠΌΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΈ ΡΠΈΠ», Π½ΠΎ Π»ΡΡΡΠ΅ ΡΡΠ°Π·Ρ Π½Π°ΠΉΡΠΈ ΠΎΡΠΈΠ±ΠΊΠΈ ΠΈ ΡΠ»ΡΡΡΠΈΡΡ ΠΊΠΎΠ΄, ΡΡΠΎΠ±Ρ ΠΏΠΎΡΠ°Π΄ΠΎΠ²Π°ΡΡ ΠΊΠΎΠ½Π΅ΡΠ½ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ. ΠΠ»Ρ ΡΡΠΎΠΉ ΡΠ΅Π»ΠΈ Π΅ΡΡΡ ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΡΠΊΡΡΡΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠΈΡΡΡΡ ΠΊΠΎΠ΄, Π° Π΅ΡΠ΅ ΠΈ ΠΏΠΎΡΠΎΠ²Π΅ΡΡΡΡ, ΠΊΠ°ΠΊ Π΅Π³ΠΎ ΡΠ»ΡΡΡΠΈΡΡ. ΠΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² CI/CD ΠΌΠΎΠ³ΡΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°ΡΡΡΡ ΠΊ ΡΡΠΈΠΌ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΠΌ ΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠ²Π°ΡΡ ΠΏΡΠΎΡΠ΅ΡΡ.
Π’Π΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΎ Π½Π° Π΄Π²Π΅ ΡΠ°ΡΡΠΈ: ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΈ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΡΡΠΎΠ±Ρ ΠΏΠΈΡΠ°ΡΡ ΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΡΠ΅ΡΡΡ, ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ Ρ ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΠΊΠ°ΠΌΠΈ ΠΏΠΎ ΠΏΠΎΠ²ΡΡΠ΅Π½ΠΈΡ ΠΊΠ°ΡΠ΅ΡΡΠ²Π° ΠΊΠΎΠ΄Π°.
Π€ΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΈ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ
ΠΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ Ρ ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΠΊΠ°ΠΌΠΈ ΠΏΠΎ ΠΊΠ°ΡΠ΅ΡΡΠ²Ρ
ΠΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΡΡΠΈΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² ΠΈ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΎΠ² Π½Π°ΠΏΠΈΡΠ°Π½Ρ Π΄Π»Ρ Java, Python ΠΈ JavaScript, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ C++ ΠΈ C# β ΠΏΡΠΎΠΏΡΠΈΠ΅ΡΠ°ΡΠ½ΡΠ΅ (Ρ ΠΎΡΡ Ρ GCC ΠΎΡΠΊΡΡΡΡΠΉ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄).
ΠΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ ΡΠ΅ΡΡΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠΎΠΊΡΡΡΠΈΡ ΠΌΡ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΠ»ΠΈ, ΠΈ ΡΠ΅ΠΏΠ΅ΡΡ ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½ DevOps Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ, ΠΊΠ°ΠΊ Π½Π° ΡΠΈΡΡΠ½ΠΊΠ΅ Π² Π½Π°ΡΠ°Π»Π΅ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π°.
ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠ°Π³ΠΈ
ΠΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ
ΠΠ°ΠΊ Ρ ΡΠΆΠ΅ Π³ΠΎΠ²ΠΎΡΠΈΠ», ΡΠ΅ΡΠ²Π΅Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΡΠΈΡΡ Π½Π° Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Π΅ ΠΈΠ»ΠΈ ΡΠ΅ΡΠ²Π΅ΡΠ΅, Π½ΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠΏΡΠ»ΡΡΠ½Ρ.
ΠΠ»Ρ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ² ΠΎΠ±ΡΡΠ½ΠΎ Π±Π΅ΡΡΡ Docker ΠΈ Kubernetes, Ρ ΠΎΡΡ Π΅ΡΡΡ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ Π²Π°ΡΠΈΠ°Π½ΡΡ.
ΠΠΎΡΠΈΡΠ°ΠΉΡΠ΅ ΡΡΠ°ΡΡΠΈ ΠΎ Docker ΠΈ Kubernetes Π½Π°
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Docker? ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² Docker Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Kubernetes? Kubernetes Ρ Π½ΡΠ»Ρ
ΠΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΠΈ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΠΎΠ³ΠΎ ΠΠ
ΠΠ°ΡΠ° ΡΠ΅ΠΏΠΎΡΠΊΠ° DevOps ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π° Π½Π° ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΡΡ ΡΠ±ΠΎΡΠΊΡ ΠΈ ΠΏΠΎΡΡΠ°Π²ΠΊΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π½ΠΎ Ρ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ DevOps ΠΌΠΎΠΆΠ½ΠΎ Π΄Π΅Π»Π°ΡΡ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΠ΅ ΡΡΡΠΊΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ Β«ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ° ΠΊΠ°ΠΊ ΠΊΠΎΠ΄Β» (IaC), ΠΊΠΎΡΠΎΡΡΠ΅ Π΅ΡΠ΅ Π½Π°Π·ΡΠ²Π°ΡΡΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΠΈ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΠΎΠ³ΠΎ ΠΠ. ΠΡΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ ΠΏΠΎΠΌΠΎΠ³Π°ΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΡ, ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ Π·Π°Π΄Π°ΡΠΈ Π΄Π»Ρ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΠΎΠ³ΠΎ ΠΠ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΠΈ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΠ°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ (ΡΠ΅ΡΠ²Π΅Ρ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ , ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³Π°) Ρ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΌΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΠΌΠΈ ΠΈ Π²ΡΠΊΠ°ΡΡΠ²Π°ΡΡ ΠΈΡ Π½Π° ΡΠ΅ΡΠ²Π΅Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.
ΠΠΎΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ² ΠΎΡΠΊΡΡΡΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΠΈ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΠΎΠ³ΠΎ ΠΠ:
ΠΠΎΠ΄ΡΠΎΠ±Π½ΠΎΡΡΠΈ Π² ΡΡΠ°ΡΡΡΡ
Π½Π°
Π ΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΠΎ Π½Π°ΡΠ°Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ Ansible Π‘ΡΡΠ°ΡΠ΅Π³ΠΈΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΠΈ Π΄Π΅ΠΏΠ»ΠΎΡ Ρ Ansible 5 Π»ΡΡΡΠΈΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠ΅ΠΉ
Π ΡΡΠΎ ΡΠ΅ΠΏΠ΅ΡΡ?
ΠΡΠΎ ΡΠΎΠ»ΡΠΊΠΎ Π²Π΅ΡΡ
ΡΡΠΊΠ° Π°ΠΉΡΠ±Π΅ΡΠ³Π°. Π¦Π΅ΠΏΠΎΡΠΊΠ° DevOps ΠΌΠΎΠΆΠ΅Ρ Π³ΠΎΡΠ°Π·Π΄ΠΎ Π±ΠΎΠ»ΡΡΠ΅. ΠΠ°ΡΠ½ΠΈΡΠ΅ Ρ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ° CI/CD ΠΈ ΡΠ·Π½Π°ΠΉΡΠ΅, ΡΡΠΎ Π΅ΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ, ΡΡΠΎΠ±Ρ ΡΠΏΡΠΎΡΡΠΈΡΡ ΡΠ΅Π±Π΅ ΡΠ°Π±ΠΎΡΡ. ΠΠ΅ Π·Π°Π±ΡΠ΄ΡΡΠ΅ ΠΏΡΠΎ
ΠΠΎΡ Π΅ΡΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Ρ ΠΎΡΠΎΡΠΈΡ ΡΡΠ°ΡΠ΅ΠΉ ΠΎ DevOps Π΄Π»Ρ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΡ :
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ DevOps 5 Π½Π°Π²ΡΠΊΠΎΠ² DevOps-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° DevOps Π΄Π»Ρ Π²ΡΠ΅Ρ ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² ΠΏΡΠΎΠ³Π½ΠΎΠ·Π½ΡΡ Π°Π½Π°Π»ΠΈΡΠΈΠΊΡ Π² DevOps
Π Π΅ΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°ΡΡ DevOps Ρ ΠΎΡΠΊΡΡΡΡΠΌΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ Π΄Π»Ρ agile:
ΠΡΡΠΎΡΠ½ΠΈΠΊ: habr.com