ΠΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ Π½Π° Π²Π°ΡΠ°ΡΠ° ΠΏΡΡΠ²Π° DevOps Π²Π΅ΡΠΈΠ³Π° Π² ΠΏΠ΅Ρ ΡΡΡΠΏΠΊΠΈ Π·Π° Π½Π°ΡΠΈΠ½Π°Π΅ΡΠΈ.
DevOps ΡΠ΅ ΠΏΡΠ΅Π²ΡΡΠ½Π° Π² ΠΏΠ°Π½Π°ΡΠ΅Ρ Π·Π° ΡΠ²ΡΡΠ΄Π΅ Π±Π°Π²Π½ΠΈ, Π½Π΅ΡΠ²ΡΡΠ·Π°Π½ΠΈ ΠΈ ΠΈΠ½Π°ΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°ΡΠΈΡΠ½ΠΈ ΠΏΡΠΎΡΠ΅ΡΠΈ Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°. ΠΠΎ ΠΈΠΌΠ°ΡΠ΅ Π½ΡΠΆΠ΄Π° ΠΎΡ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»Π½ΠΈ ΠΏΠΎΠ·Π½Π°Π½ΠΈΡ Π² DevOps. Π©Π΅ ΠΎΠ±Ρ Π²Π°Π½Π΅ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΈ ΠΊΠ°ΡΠΎ Π²Π΅ΡΠΈΠ³Π°ΡΠ° DevOps ΠΈ ΠΊΠ°ΠΊ Π΄Π° ΡΡΠ·Π΄Π°Π΄Π΅ΡΠ΅ ΡΠ°ΠΊΠ°Π²Π° Π² ΠΏΠ΅Ρ ΡΡΡΠΏΠΊΠΈ. Π’ΠΎΠ²Π° Π½Π΅ Π΅ ΠΏΡΠ»Π½ΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ, Π° ΡΠ°ΠΌΠΎ "ΡΠΈΠ±Π°", ΠΊΠΎΡΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΡΠ°Π·ΡΠΈΡΠ΅Π½Π°. ΠΠ° Π·Π°ΠΏΠΎΡΠ½Π΅ΠΌ Ρ ΠΈΡΡΠΎΡΠΈΡΡΠ°.
ΠΠΎΠ΅ΡΠΎ Π²ΡΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² DevOps
ΠΡΠ΅Π΄ΠΈ ΡΠ°Π±ΠΎΡΠ΅Ρ
Ρ ΠΎΠ±Π»Π°ΡΠΈ Π² Citi Group ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ²Π°Ρ
IaaS ΡΠ΅Π± ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΎΠ±Π»Π°ΡΠ½Π°ΡΠ° ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ° Π½Π° Citi, Π½ΠΎ Π²ΠΈΠ½Π°Π³ΠΈ ΡΡΠΌ ΡΠ΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡΠ²Π°Π» ΠΎΡ ΡΠΎΠ²Π° ΠΊΠ°ΠΊ Π΄Π° ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠ°ΠΌ Π²Π΅ΡΠΈΠ³Π°ΡΠ° Π·Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΠΈ Π΄Π° ΠΏΠΎΠ΄ΠΎΠ±ΡΡ ΠΊΡΠ»ΡΡΡΠ°ΡΠ° ΡΡΠ΅Π΄ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅. ΠΡΠ΅Π³ ΠΠ°Π²Π°Π½Π΄ΡΡ, Π½Π°ΡΠΈΡΡ ΡΠ΅Ρ
Π½ΠΈΡΠ΅ΡΠΊΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡ Π·Π° ΠΎΠ±Π»Π°ΡΠ½Π° Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΠ° ΠΈ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ°, ΠΌΠΈ ΠΏΡΠ΅ΠΏΠΎΡΡΡΠ° ΡΠ°Π·ΠΈ ΠΊΠ½ΠΈΠ³Π°.
Π’Π°Π±Π»ΠΈΡΠ°ΡΠ° Π½Π° Π³ΡΡΠ±Π° ΠΏΠΎΠΊΠ°Π·Π²Π° ΠΊΠΎΠ»ΠΊΠΎ ΡΠ΅ΡΡΠΎ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈΡΠ΅ ΠΏΡΡΠΊΠ°Ρ Π½ΠΎΠ²ΠΈ Π²Π΅ΡΡΠΈΠΈ:
ΠΠ°ΠΊ Amazon, Google ΠΈ Netflix ΡΡΠΏΡΠ²Π°Ρ Π΄Π° ΡΠ°Π·ΠΏΡΠΎΡΡΡΠ°Π½ΡΡ ΡΠΎΠ»ΠΊΠΎΠ²Π° ΠΌΠ½ΠΎΠ³ΠΎ? Π ΡΠΎΠ²Π° Π΅ ΠΏΡΠΎΡΡΠΎ: ΡΠ΅ ΠΈΠ·ΠΌΠΈΡΠ»ΠΈΡ Π° ΠΊΠ°ΠΊ Π΄Π° ΡΡΠ·Π΄Π°Π΄Π°Ρ ΠΏΠΎΡΡΠΈ ΠΏΠ΅ΡΡΠ΅ΠΊΡΠ½Π° DevOps Π²Π΅ΡΠΈΠ³Π°.
ΠΠ΅ΡΠ°ΡΠ° Π±ΡΡ Π° ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π·Π° Π½Π°Ρ Π² Citi, Π΄ΠΎΠΊΠ°ΡΠΎ Π½Π΅ ΠΏΡΠ΅ΠΌΠΈΠ½Π°Ρ ΠΌΠ΅ ΠΊΡΠΌ DevOps. Π’ΠΎΠ³Π°Π²Π° ΠΌΠΎΡΡ Π΅ΠΊΠΈΠΏ ΠΈΠΌΠ°ΡΠ΅ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΡΡΠ΅Π΄ΠΈ, Π½ΠΎ Π½ΠΈΠ΅ Π½Π°ΠΏΡΠ°Π²ΠΈΡ ΠΌΠ΅ Π΄ΠΎΡΡΠ°Π²ΠΊΠ°ΡΠ° Π΄ΠΎ ΡΡΡΠ²ΡΡΠ° Π·Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΡΡΡΠ½ΠΎ. ΠΡΠΈΡΠΊΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈ ΠΈΠΌΠ°Ρ Π° Π΄ΠΎΡΡΡΠΏ ΡΠ°ΠΌΠΎ Π΄ΠΎ Π΅Π΄ΠΈΠ½ ΡΡΡΠ²ΡΡ Π·Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°, Π±Π°Π·ΠΈΡΠ°Π½ Π½Π° IBM WebSphere Application Server Community Edition. ΠΡΠΈ Π΅Π΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π΅Π½ ΠΎΠΏΠΈΡ Π·Π° Π΄ΠΎΡΡΠ°Π²ΠΊΠ° ΡΡΡΠ²ΡΡΡΡ βΠΏΠ°Π΄Π½Π°β ΠΈ Π²ΡΠ΅ΠΊΠΈ ΠΏΡΡ ΡΡΡΠ±Π²Π°ΡΠ΅ βΠ±ΠΎΠ»Π΅Π·Π½Π΅Π½ΠΎβ Π΄Π° ΠΏΡΠ΅Π³ΠΎΠ²Π°ΡΡΠΌΠ΅ ΠΏΠΎΠΌΠ΅ΠΆΠ΄Ρ ΡΠΈ. ΠΡΠ²Π΅Π½ ΡΠΎΠ²Π° ΠΈΠΌΠ°Ρ ΠΌΠ΅ Π½Π΅Π΄ΠΎΡΡΠ°ΡΡΡΠ½ΠΎ ΠΏΠΎΠΊΡΠΈΡΠΈΠ΅ Π½Π° ΠΊΠΎΠ΄Π° Ρ ΡΠ΅ΡΡΠΎΠ²Π΅, ΠΎΡΠ½Π΅ΠΌΠ°Ρ Π²ΡΠ΅ΠΌΠ΅ ΠΏΡΠΎΡΠ΅Ρ Π½Π° ΡΡΡΠ½ΠΎ Π΄ΠΎΡΡΠ°Π²ΡΠ½Π΅ ΠΈ Π½ΡΠΌΠ°ΡΠ΅ Π½Π°ΡΠΈΠ½ Π΄Π° ΠΏΡΠΎΡΠ»Π΅Π΄ΠΈΠΌ Π΄ΠΎΡΡΠ°Π²ΡΠ½Π΅ΡΠΎ Π½Π° ΠΊΠΎΠ΄ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° Π½ΡΠΊΠ°ΠΊΠ²Π° Π·Π°Π΄Π°ΡΠ° ΠΈΠ»ΠΈ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΎ ΠΈΠ·ΠΈΡΠΊΠ²Π°Π½Π΅.
ΠΠ΅ΡΠ΅ ΡΡΠ½ΠΎ, ΡΠ΅ ΡΠΏΠ΅ΡΠ½ΠΎ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ Π½Π°ΠΏΡΠ°Π²ΠΈ Π½Π΅ΡΠΎ ΠΈ Π½Π°ΠΌΠ΅ΡΠΈΡ ΡΡΠΌΠΈΡΠ»Π΅Π½ΠΈΠΊ. Π Π΅ΡΠΈΡ ΠΌΠ΅ Π΄Π° ΡΡΠ·Π΄Π°Π΄Π΅ΠΌ Π·Π°Π΅Π΄Π½ΠΎ ΠΏΡΡΠ²Π°ΡΠ° DevOps Π²Π΅ΡΠΈΠ³Π° β ΡΠΎΠΉ Π½Π°ΡΡΡΠΎΠΈ Π²ΠΈΡΡΡΠ°Π»Π½Π° ΠΌΠ°ΡΠΈΠ½Π° ΠΈ ΡΡΡΠ²ΡΡ Π·Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Tomcat, Π° Π°Π· ΡΠ΅ ΠΏΠΎΠ³ΡΠΈΠΆΠΈΡ Π·Π° ΠΠΆΠ΅Π½ΠΊΠΈΠ½Ρ, ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ Ρ 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 Π΅ Π»ΠΈΡΠ΅Π½Π·ΠΈΡΠ°Π½ ΠΎΡ MIT CI/CD ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Ρ ΠΎΡΠ²ΠΎΡΠ΅Π½ ΠΊΠΎΠ΄, Π½Π°ΠΏΠΈΡΠ°Π½ Π½Π° Java, ΠΊΠΎΠΉΡΠΎ ΠΏΠΎΠΏΡΠ»ΡΡΠΈΠ·ΠΈΡΠ° Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ DevOps ΠΈ ΡΠ΅ ΠΏΡΠ΅Π²ΡΡΠ½Π° Π² Π΄Π΅ ΡΠ°ΠΊΡΠΎ ΡΡΠ°Π½Π΄Π°ΡΡ Π·Π° CICD.
ΠΠ°ΠΊΠ²ΠΎ Π΅ ΠΠΆΠ΅Π½ΠΊΠΈΠ½Ρ? ΠΡΠ΅Π΄ΡΡΠ°Π²Π΅ΡΠ΅ ΡΠΈ, ΡΠ΅ ΠΈΠΌΠ°ΡΠ΅ ΠΌΠ°Π³ΠΈΡΠ΅ΡΠΊΠΈ ΠΊΠΎΠ½ΡΡΠΎΠ»Π΅Π½ ΠΏΠ°Π½Π΅Π» Π·Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΡΡΠ»ΡΠ³ΠΈ ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ. Π‘Π°ΠΌ ΠΏΠΎ ΡΠ΅Π±Π΅ ΡΠΈ CI/CD ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ ΠΊΠ°ΡΠΎ Jenkins Π΅ Π±Π΅Π·ΠΏΠΎΠ»Π΅Π·Π΅Π½, Π½ΠΎ Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ ΠΈ ΡΡΠ»ΡΠ³ΠΈ ΡΠΎΠΉ ΡΡΠ°Π²Π° Π²ΡΠ΅ΠΌΠΎΠ³ΡΡ.
Π Π΄ΠΎΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΡΠΌ Jenkins ΠΈΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΡΡΠ³ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ Ρ ΠΎΡΠ²ΠΎΡΠ΅Π½ ΠΊΠΎΠ΄, ΠΈΠ·Π±Π΅ΡΠ΅ΡΠ΅ Π²ΡΠ΅ΠΊΠΈ.
ΠΡΠΎ ΠΊΠ°ΠΊ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° ΠΏΡΠΎΡΠ΅ΡΡΡ DevOps Ρ CI/CD ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ
ΠΠΌΠ°ΡΠ΅ CI/CD ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π² localhost, Π½ΠΎ Π²ΡΠ΅ ΠΎΡΠ΅ Π½ΡΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ°Π±ΠΎΡΠ°. ΠΠ° ΠΏΡΠ΅ΠΌΠΈΠ½Π΅ΠΌ ΠΊΡΠΌ ΡΠ»Π΅Π΄Π²Π°ΡΠ°ΡΠ° ΡΡΡΠΏΠΊΠ°.
Π‘ΡΡΠΏΠΊΠ° 2: ΠΠ΅ΡΡΠΈΠΎΠ½ΠΈΡΠ°Π½Π΅
ΠΠ°ΠΉ-Π΄ΠΎΠ±ΡΠΈΡΡ (ΠΈ ΠΌΠΎΠΆΠ΅ Π±ΠΈ Π½Π°ΠΉ-Π»Π΅ΡΠ½ΠΈΡΡ) Π½Π°ΡΠΈΠ½ Π΄Π° ΡΠ΅ΡΡΠ²Π°ΡΠ΅ ΠΌΠ°Π³ΠΈΡΡΠ° Π½Π° CI/CD ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π΅ Π΄Π° Π³ΠΎ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠ°ΡΠ΅ Ρ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΊΠΎΠ½ΡΡΠΎΠ»Π° Π½Π° ΠΈΠ·ΡΠΎΡΠ½ΠΈΡΠΈΡΠ΅ (SCM). ΠΠ°ΡΠΎ Π²ΠΈ Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌ ΠΊΠΎΠ½ΡΡΠΎΠ» Π½Π° Π²Π΅ΡΡΠΈΠΈΡΠ΅? ΠΠ° ΠΏΡΠΈΠ΅ΠΌΠ΅ΠΌ, ΡΠ΅ ΠΏΡΠ°Π²ΠΈΡΠ΅ Π·Π°ΡΠ²Π»Π΅Π½ΠΈΠ΅. ΠΠΈΡΠ΅ΡΠ΅ Π³ΠΎ Π½Π° Java, Python, C++, Go, Ruby, JavaScript ΠΈΠ»ΠΈ Π²ΡΠ΅ΠΊΠΈ Π΄ΡΡΠ³ Π΅Π·ΠΈΠΊ, ΠΊΠΎΠΉΡΠΎ Π΅ ΠΊΠ°ΡΡΡΠ° ΠΈ ΠΌΠ°Π»ΠΊΠ° ΠΊΠΎΠ»ΠΈΡΠΊΠ°. Π’ΠΎΠ²Π°, ΠΊΠΎΠ΅ΡΠΎ ΠΏΠΈΡΠ΅ΡΠ΅, ΡΠ΅ Π½Π°ΡΠΈΡΠ° ΠΈΠ·Ρ ΠΎΠ΄Π΅Π½ ΠΊΠΎΠ΄. Π Π½Π°ΡΠ°Π»ΠΎΡΠΎ, ΠΎΡΠΎΠ±Π΅Π½ΠΎ Π°ΠΊΠΎ ΡΠ°Π±ΠΎΡΠΈΡΠ΅ ΡΠ°ΠΌΠΈ, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π·Π°ΠΏΠΈΡΠ΅ΡΠ΅ Π²ΡΠΈΡΠΊΠΎ Π² Π»ΠΎΠΊΠ°Π»Π½Π° Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ. ΠΠΎ ΡΡΠΉ ΠΊΠ°ΡΠΎ ΠΏΡΠΎΠ΅ΠΊΡΡΡ ΡΠ΅ ΡΠ°Π·ΡΠ°ΡΡΠ²Π° ΠΈ ΠΏΠΎΠ²Π΅ΡΠ΅ Ρ ΠΎΡΠ° ΡΠ΅ ΠΏΡΠΈΡΡΠ΅Π΄ΠΈΠ½ΡΠ²Π°Ρ, Π²ΠΈΠ΅ ΡΠ΅ Π½ΡΠΆΠ΄Π°Π΅ΡΠ΅ ΠΎΡ Π½Π°ΡΠΈΠ½ Π΄Π° ΡΠΏΠΎΠ΄Π΅Π»ΡΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅ Π² ΠΊΠΎΠ΄Π°, Π½ΠΎ ΠΈΠ·Π±ΡΠ³Π²Π°ΡΠ΅ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠΈ ΠΏΡΠΈ ΠΎΠ±Π΅Π΄ΠΈΠ½ΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅. ΠΡΠ²Π΅Π½ ΡΠΎΠ²Π° ΡΡΡΠ±Π²Π° ΠΏΠΎ Π½ΡΠΊΠ°ΠΊΡΠ² Π½Π°ΡΠΈΠ½ Π΄Π° Π²ΡΠ·ΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ ΠΏΡΠ΅Π΄ΠΈΡΠ½ΠΈ Π²Π΅ΡΡΠΈΠΈ, Π±Π΅Π· Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ ΡΠ΅Π·Π΅ΡΠ²Π½ΠΈ ΠΊΠΎΠΏΠΈΡ ΠΈ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Π° Π·Π° ΠΊΠΎΠΏΠΈΡΠ°Π½Π΅ ΠΈ ΠΏΠΎΡΡΠ°Π²ΡΠ½Π΅ Π·Π° ΠΊΠΎΠ΄ΠΎΠ²ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅.
Π ΡΡΠΊ Π±Π΅Π· SCM Π½Π°Π²ΡΡΠΊΡΠ΄Π΅. SCM ΡΡΡ ΡΠ°Π½ΡΠ²Π° ΠΊΠΎΠ΄ Π² Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ°, ΡΠΏΡΠ°Π²Π»ΡΠ²Π° Π²Π΅ΡΡΠΈΠΈΡΠ΅ ΠΌΡ ΠΈ Π³ΠΎ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½ΠΈΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅.
ΠΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎ SCM ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ, Π½ΠΎ Git Π·Π°ΡΠ»ΡΠΆΠ΅Π½ΠΎ ΡΠ΅ ΠΏΡΠ΅Π²ΡΡΠ½Π° Π² Π΄Π΅ ΡΠ°ΠΊΡΠΎ ΡΡΠ°Π½Π΄Π°ΡΡ. Π‘ΡΠ²Π΅ΡΠ²Π°ΠΌ Π²ΠΈ Π΄Π° Π³ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅, Π½ΠΎ ΠΈΠΌΠ° ΠΈ Π΄ΡΡΠ³ΠΈ ΠΎΠΏΡΠΈΠΈ.
ΠΡΠΎ ΠΊΠ°ΠΊ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° ΡΡΡΠ±ΠΎΠΏΡΠΎΠ²ΠΎΠ΄ΡΡ DevOps ΡΠ»Π΅Π΄ Π΄ΠΎΠ±Π°Π²ΡΠ½Π΅ Π½Π° SCM.
ΠΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡΡ CI/CD ΠΌΠΎΠΆΠ΅ Π΄Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠ° ΠΊΠ°ΡΠ²Π°Π½Π΅ΡΠΎ ΠΈ ΠΈΠ·ΡΠ΅Π³Π»ΡΠ½Π΅ΡΠΎ Π½Π° ΠΈΠ·Ρ ΠΎΠ΄Π½ΠΈΡ ΠΊΠΎΠ΄ ΠΈ Π΅ΠΊΠΈΠΏΠ½ΠΎΡΠΎ ΡΡΡΡΡΠ΄Π½ΠΈΡΠ΅ΡΡΠ²ΠΎ. ΠΠ΅ Π΅ Π·Π»Π΅? ΠΠΎ ΡΠ΅Π³Π° ΠΊΠ°ΠΊ Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΡΠ΅ ΡΠ°Π±ΠΎΡΠ΅ΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΎΡ ΡΠΎΠ²Π°, ΠΎΠ±ΠΈΡΠ°Π½ΠΎ ΠΎΡ ΠΌΠΈΠ»ΠΈΠ°ΡΠ΄ΠΈ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ?
Π‘ΡΡΠΏΠΊΠ° 3: ΠΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π·Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΡ Π½Π° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅
ΠΡΠΈΡΠΊΠΎ Π²ΡΡΠ²ΠΈ ΠΊΠ°ΠΊΡΠΎ ΡΡΡΠ±Π²Π°. ΠΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΊΠ°ΡΠΈΡΠ΅ ΠΊΠΎΠ΄ ΠΈ Π΄Π° ΠΈΠ·Π²ΡΡΡΠΈΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ Π² ΠΊΠΎΠ½ΡΡΠΎΠ»Π° Π½Π° ΠΈΠ·ΡΠΎΡΠ½ΠΈΠΊΠ° ΠΈ Π΄Π° ΠΏΠΎΠΊΠ°Π½ΠΈΡΠ΅ ΠΏΡΠΈΡΡΠ΅Π»ΠΈ Π΄Π° ΡΠ°Π±ΠΎΡΡΡ Ρ Π²Π°Ρ. ΠΠΎ Π²ΡΠ΅ ΠΎΡΠ΅ Π½ΡΠΌΠ°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠΠ° Π΄Π° Π±ΡΠ΄Π΅ ΡΠΎΠ²Π° ΡΠ΅Π± ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΡΠΎ ΡΡΡΠ±Π²Π° Π΄Π° Π±ΡΠ΄Π΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°Π½ΠΎ ΠΈ ΠΏΠ°ΠΊΠ΅ΡΠΈΡΠ°Π½ΠΎ Π·Π° ΡΠ°Π·ΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π° ΠΊΠ°ΡΠΎ ΠΈΠ·ΠΏΡΠ»Π½ΠΈΠΌ ΡΠ°ΠΉΠ». (ΠΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠΈΡΠ°Π½ Π΅Π·ΠΈΠΊ Π·Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΠ°Π½Π΅ ΠΊΠ°ΡΠΎ JavaScript ΠΈΠ»ΠΈ PHP Π½Π΅ Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° ΡΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°.)
ΠΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π·Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΡ Π½Π° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ΡΠΎ. ΠΠΎΠΉΡΠΎ ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π΄Π° ΠΈΠ·Π±Π΅ΡΠ΅ΡΠ΅, ΡΠΎΠΉ ΡΠ΅ ΡΠ³Π»ΠΎΠ±ΠΈ ΠΊΠΎΠ΄Π° Π² ΠΏΡΠ°Π²ΠΈΠ»Π½ΠΈΡ ΡΠΎΡΠΌΠ°Ρ ΠΈ ΡΠ΅ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠ° ΠΏΠΎΡΠΈΡΡΠ²Π°Π½Π΅ΡΠΎ, ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°Π½Π΅ΡΠΎ, ΡΠ΅ΡΡΠ²Π°Π½Π΅ΡΠΎ ΠΈ Π΄ΠΎΡΡΠ°Π²ΠΊΠ°ΡΠ°. ΠΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈΡΠ΅ Π·Π° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ ΡΠ΅ ΡΠ°Π·Π»ΠΈΡΠ°Π²Π°Ρ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ ΠΎΡ Π΅Π·ΠΈΠΊΠ°, Π½ΠΎ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΡΠ»Π΅Π΄Π½ΠΈΡΠ΅ ΠΎΠΏΡΠΈΠΈ Ρ ΠΎΡΠ²ΠΎΡΠ΅Π½ ΠΊΠΎΠ΄.
ΠΠ΅ΡΡΠ΅ΠΊΡΠ½ΠΎ! Π‘Π΅Π³Π° Π½Π΅ΠΊΠ° Π²ΠΌΡΠΊΠ½Π΅ΠΌ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΈΡΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ Π½Π° ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ° Π·Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ΡΠΎ Π² ΠΊΠΎΠ½ΡΡΠΎΠ»Π° Π½Π° ΠΈΠ·ΡΠΎΡΠ½ΠΈΠΊΠ°, ΡΠ°ΠΊΠ° ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡΡ CI/CD Π΄Π° Π³ΠΈ ΠΈΠ·Π³ΡΠ°Π΄ΠΈ.
Π§ΡΠ²ΡΡΠ²Π° ΡΠ΅ Π΄ΠΎΠ±ΡΠ΅. ΠΠΎ ΠΊΡΠ΄Π΅ Π΅ Π²ΡΠΈΡΠΊΠΎ ΡΠΎΠ²Π° Π΄Π° ΡΠ΅ ΡΠ°Π·Π³ΡΡΠ½Π΅ ΡΠ΅Π³Π°?
Π‘ΡΡΠΏΠΊΠ° 4: Π‘ΡΡΠ²ΡΡ Π·Π° ΡΠ΅Π± ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
Π ΡΠ°ΠΊΠ°, ΠΈΠΌΠ°ΡΠ΅ ΠΏΠ°ΠΊΠ΅ΡΠΈΡΠ°Π½ ΡΠ°ΠΉΠ», ΠΊΠΎΠΉΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ ΠΈΠ»ΠΈ ΡΠ°Π·Π³ΡΡΠ½Π°Ρ. ΠΠ° Π΄Π° Π±ΡΠ΄Π΅ Π΅Π΄Π½ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π°ΠΈΡΡΠΈΠ½Π° ΠΏΠΎΠ»Π΅Π·Π½ΠΎ, ΡΠΎ ΡΡΡΠ±Π²Π° Π΄Π° ΠΈΠΌΠ° Π½ΡΠΊΠ°ΠΊΠ²Π° ΡΡΠ»ΡΠ³Π° ΠΈΠ»ΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ, Π½ΠΎ ΡΡΡΠ±Π²Π° Π΄Π° Π³ΠΎ ΠΏΠΎΡΡΠ°Π²ΠΈΡΠ΅ Π½ΡΠΊΡΠ΄Π΅.
Π£Π΅Π± ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ Ρ ΠΎΡΡΠ²Π°Π½ΠΎ Π½Π° ΡΡΡΠ²ΡΡ Π·Π° ΡΠ΅Π± ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. Π‘ΡΡΠ²ΡΡΡΡ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΎΡΠΈΠ³ΡΡΡΠ²Π° ΡΡΠ΅Π΄Π°, Π² ΠΊΠΎΡΡΠΎ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°ΡΠ΅ ΠΏΠ°ΠΊΠ΅ΡΠΈΡΠ°Π½Π° Π»ΠΎΠ³ΠΈΠΊΠ°, Π΄Π° Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·ΠΈΡΠ°ΡΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΈ ΠΈ Π΄Π° ΠΈΠ·Π»Π°Π³Π°ΡΠ΅ ΡΠ΅Π± ΡΡΠ»ΡΠ³ΠΈ ΠΏΡΠ΅Π· ΡΠΎΠΊΠ΅Ρ. ΠΠΌΠ°ΡΠ΅ Π½ΡΠΆΠ΄Π° ΠΎΡ 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 Ρ ΠΎΡΠ²ΠΎΡΠ΅Π½ΠΈ Π³ΡΠ²ΠΊΠ°Π²ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ:
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: www.habr.com