ΠΡΠ°Π΄Π΅ΡΠ΅ Π½Π° Π²Π°ΡΠΈΠΎΡ ΠΏΡΠ² ΡΠΈΠ½ΡΠΈΡ DevOps Π²ΠΎ ΠΏΠ΅Ρ ΡΠ΅ΠΊΠΎΡΠΈ Π·Π° ΠΏΠΎΡΠ΅ΡΠ½ΠΈΡΠΈ.
DevOps ΡΡΠ°Π½Π° Π»Π΅ΠΊ Π·Π° ΠΏΡΠ΅ΠΌΠ½ΠΎΠ³Ρ Π±Π°Π²Π½ΠΈ, ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈ ΠΈ Π½Π° Π΄ΡΡΠ³ Π½Π°ΡΠΈΠ½ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°ΡΠΈΡΠ½ΠΈ ΡΠ°Π·Π²ΠΎΡΠ½ΠΈ ΠΏΡΠΎΡΠ΅ΡΠΈ. ΠΠΎ, Π²ΠΈ ΡΡΠ΅Π±Π° ΠΌΠΈΠ½ΠΈΠΌΠ°Π»Π½ΠΎ Π·Π½Π°Π΅ΡΠ΅ Π²ΠΎ DevOps. ΠΠ΅ ΠΎΠΏΡΠ°ΡΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈ ΠΊΠ°ΠΊΠΎ ΡΡΠΎ Π΅ ΡΠΈΠ½ΡΠΈΡΠΎΡ DevOps ΠΈ ΠΊΠ°ΠΊΠΎ Π΄Π° ΡΠ΅ ΡΠΎΠ·Π΄Π°Π΄Π΅ Π΅Π΄Π΅Π½ Π²ΠΎ ΠΏΠ΅Ρ ΡΠ΅ΠΊΠΎΡΠΈ. ΠΠ²Π° Π½Π΅ Π΅ ΡΠ΅Π»ΠΎΡΠ΅Π½ Π²ΠΎΠ΄ΠΈΡ, ΡΡΠΊΡ ΡΠ°ΠΌΠΎ βΡΠΈΠ±Π°β ΡΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΏΡΠΎΡΠΈΡΠΈ. ΠΠ° ΠΏΠΎΡΠ½Π΅ΠΌΠ΅ ΡΠΎ ΠΈΡΡΠΎΡΠΈΡΠ°ΡΠ°.
ΠΠΎΡΠΎΡ Π²ΠΎΠ²Π΅Π΄ Π²ΠΎ DevOps
ΠΠΎΡΠ°Π½ΠΎ ΡΠ°Π±ΠΎΡΠ΅Π² ΡΠΎ ΠΎΠ±Π»Π°ΡΠΈ Π²ΠΎ Citi Group ΠΈ ΡΠ°Π·Π²ΠΈΠ²Π°Π² Π²Π΅Π±-Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡΠ° IaaS Π·Π° ΡΠΏΡΠ°Π²ΡΠ²Π°ΡΠ΅ ΡΠΎ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ°ΡΠ° Π½Π° ΠΎΠ±Π»Π°ΠΊ Π½Π° Citi, Π½ΠΎ ΠΎΡΡΠ΅ΠΊΠΎΠ³Π°Ρ ΠΌΠ΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠΈΡΠ°Π»ΠΎ ΠΊΠ°ΠΊΠΎ Π΄Π° Π³ΠΎ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠ°ΠΌ ΡΠ°Π·Π²ΠΎΡΠ½ΠΈΠΎΡ ΡΠΈΠ½ΡΠΈΡ ΠΈ Π΄Π° ΡΠ° ΠΏΠΎΠ΄ΠΎΠ±ΡΠ°ΠΌ ΠΊΡΠ»ΡΡΡΠ°ΡΠ° ΠΌΠ΅ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ΅ΡΠΈΡΠ΅. ΠΡΠ΅Π³ ΠΠ°Π²Π΅Π½Π΄Π΅Ρ, Π½Π°ΡΠΈΠΎΡ CTO Π·Π° Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΠ° ΠΈ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ° Π²ΠΎ ΠΎΠ±Π»Π°ΠΊ, ΠΌΠΈ ΡΠ° ΠΏΡΠ΅ΠΏΠΎΡΠ°ΡΠ° ΠΎΠ²Π°Π° ΠΊΠ½ΠΈΠ³Π°.
Π’Π°Π±Π΅Π»Π°ΡΠ° Π½Π° Π·Π°Π΄Π½Π°ΡΠ° ΡΡΡΠ°Π½Π° ΠΏΠΎΠΊΠ°ΠΆΡΠ²Π° ΠΊΠΎΠ»ΠΊΡ ΡΠ΅ΡΡΠΎ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈΡΠ΅ ΠΎΠ±ΡΠ°Π²ΡΠ²Π°Π°Ρ Π½ΠΎΠ²ΠΈ Π²Π΅ΡΠ·ΠΈΠΈ:
ΠΠ°ΠΊΠΎ ΠΠΌΠ°Π·ΠΎΠ½, ΠΡΠ³Π» ΠΈ ΠΠ΅ΡΡΠ»ΠΈΠΊΡ ΡΡΠΏΠ΅Π²Π°Π°Ρ Π΄Π° ΠΏΡΡΡΠ°Ρ ΡΠΎΠ»ΠΊΡ ΠΌΠ½ΠΎΠ³Ρ? Π ΡΠΎΠ° Π΅ Π΅Π΄Π½ΠΎΡΡΠ°Π²Π½ΠΎ: ΡΠΈΠ΅ ΡΡΠ°ΡΠΈΡΠ° ΠΊΠ°ΠΊΠΎ Π΄Π° ΡΠΎΠ·Π΄Π°Π΄Π°Ρ ΡΠ΅ΡΠΈΡΠΈ ΡΠΎΠ²ΡΡΠ΅Π½ ΡΠΈΠ½ΡΠΈΡ Π½Π° 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. ΠΠ΅Π½ΠΊΠΈΠ½Ρ Π΅ Π»ΠΈΡΠ΅Π½ΡΠΈΡΠ°Π½Π° ΠΎΠ΄ MIT, CI/CD Π°Π»Π°ΡΠΊΠ° ΡΠΎ ΠΎΡΠ²ΠΎΡΠ΅Π½ ΠΊΠΎΠ΄, Π½Π°ΠΏΠΈΡΠ°Π½Π° Π½Π° Java, ΠΊΠΎΡΠ° Π³ΠΎ ΠΏΠΎΠΏΡΠ»Π°ΡΠΈΠ·ΠΈΡΠ°ΡΠ΅ Π΄Π²ΠΈΠΆΠ΅ΡΠ΅ΡΠΎ DevOps ΠΈ ΡΡΠ°Π½Π° Π΄Π΅ ΡΠ°ΠΊΡΠΎ ΡΡΠ°Π½Π΄Π°ΡΠ΄ Π·Π° CICD.
Π¨ΡΠΎ Π΅ ΠΠ΅Π½ΠΊΠΈΠ½Ρ? ΠΠ°ΠΌΠΈΡΠ»Π΅ΡΠ΅ Π΄Π΅ΠΊΠ° ΠΈΠΌΠ°ΡΠ΅ ΠΌΠ°Π³ΠΈΡΠ΅Π½ ΠΊΠΎΠ½ΡΡΠΎΠ»Π΅Π½ ΠΏΠ°Π½Π΅Π» Π·Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΡΡΠ»ΡΠ³ΠΈ ΠΈ Π°Π»Π°ΡΠΊΠΈ. Π‘Π°ΠΌΠ°ΡΠ° Π°Π»Π°ΡΠΊΠ° CI/CD ΠΊΠ°ΠΊΠΎ ΠΠ΅Π½ΠΊΠΈΠ½Ρ Π΅ Π±Π΅ΡΠΊΠΎΡΠΈΡΠ½Π°, Π½ΠΎ ΡΠΎ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π°Π»Π°ΡΠΊΠΈ ΠΈ ΡΡΠ»ΡΠ³ΠΈ, ΡΠ°Π° ΡΡΠ°Π½ΡΠ²Π° ΡΠ΅ΠΌΠΎΡΠ½Π°.
ΠΠΎΠΊΡΠ°Ρ ΠΠ΅Π½ΠΊΠΈΠ½Ρ, ΠΈΠΌΠ° ΠΌΠ½ΠΎΠ³Ρ Π΄ΡΡΠ³ΠΈ Π°Π»Π°ΡΠΊΠΈ ΡΠΎ ΠΎΡΠ²ΠΎΡΠ΅Π½ ΠΊΠΎΠ΄, ΠΈΠ·Π±Π΅ΡΠ΅ΡΠ΅ ΠΊΠΎΡΠ° Π±ΠΈΠ»ΠΎ.
ΠΠ²Π΅ ΠΊΠ°ΠΊΠΎ ΠΈΠ·Π³Π»Π΅Π΄Π° ΠΏΡΠΎΡΠ΅ΡΠΎΡ 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 Π¨ΡΠΎ Π΅ ΠΡΠ±Π΅ΡΠ½Π΅ΡΠ΅Ρ? ΠΡΠ±Π΅ΡΠ½Π΅ΡΠΈΡ ΠΎΠ΄ Π½ΡΠ»Π°
ΠΠ»Π°ΡΠΊΠΈ Π·Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΡΠ° Π½Π° Middleware
ΠΠ°ΡΠΈΠΎΡ ΡΠΈΠ½ΡΠΈΡ DevOps Π΅ ΡΠΎΠΊΡΡΠΈΡΠ°Π½ Π½Π° Π·Π°Π΅Π΄Π½ΠΈΡΠΊΠΎ Π³ΡΠ°Π΄Π΅ΡΠ΅ ΠΈ ΠΈΡΠΏΠΎΡΠ°ΠΊΠ° Π½Π° Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡΠ°, Π½ΠΎ ΠΈΠΌΠ° ΠΈ Π΄ΡΡΠ³ΠΈ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΈ ΡΠ°Π±ΠΎΡΠΈ ΡΡΠΎ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π³ΠΈ ΠΏΡΠ°Π²ΠΈΡΠ΅ ΡΠΎ Π°Π»Π°ΡΠΊΠΈΡΠ΅ DevOps. ΠΠ° ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠΎΡΠΈΡΡΠ΅ΡΠ΅ Infrastructure as Code (IaC) Π°Π»Π°ΡΠΊΠΈ, ΠΈΡΡΠΎ ΡΠ°ΠΊΠ° ΠΏΠΎΠ·Π½Π°ΡΠΈ ΠΊΠ°ΠΊΠΎ Π°Π»Π°ΡΠΊΠΈ Π·Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΡΠ° Π½Π° Middleware. ΠΠ²ΠΈΠ΅ Π°Π»Π°ΡΠΊΠΈ ΠΏΠΎΠΌΠ°Π³Π°Π°Ρ Π΄Π° ΡΠ΅ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠ° ΠΈΠ½ΡΡΠ°Π»Π°ΡΠΈΡΠ°ΡΠ°, ΡΠΏΡΠ°Π²ΡΠ²Π°ΡΠ΅ΡΠΎ ΠΈ Π΄ΡΡΠ³ΠΈΡΠ΅ Π·Π°Π΄Π°ΡΠΈ Π·Π° ΡΡΠ΅Π΄Π΅Π½ ΡΠΎΡΡΠ²Π΅Ρ. ΠΠ° ΠΏΡΠΈΠΌΠ΅Ρ, Π°Π»Π°ΡΠΊΠ° Π·Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΡΠ° ΠΌΠΎΠΆΠ΅ Π΄Π° Π·Π΅ΠΌΠ΅ Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠΈ (ΡΠ΅ΡΠ²Π΅Ρ Π·Π° Π²Π΅Π±-Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠΈ, Π±Π°Π·Π° Π½Π° ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ, Π°Π»Π°ΡΠΊΠΈ Π·Π° ΡΠ»Π΅Π΄Π΅ΡΠ΅) ΡΠΎ ΠΏΡΠ°Π²ΠΈΠ»Π½ΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΠΈ Π΄Π° Π³ΠΈ ΡΡΡΠΊΠ° Π΄ΠΎ ΡΠ΅ΡΠ²Π΅ΡΠΎΡ Π·Π° Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠΈ.
ΠΠ²Π΅ Π½Π΅ΠΊΠΎΠ»ΠΊΡ ΠΎΠΏΡΠΈΠΈ Π·Π° ΠΎΡΠ²ΠΎΡΠ΅Π½ΠΈ Π°Π»Π°ΡΠΊΠΈ Π·Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΡΠ° Π½Π° ΡΡΠ΅Π΄Π½ΠΈΠΎΡ ΡΠΎΡΡΠ²Π΅Ρ:
ΠΠ΅ΡΠ°Π»ΠΈ Π²ΠΎ Π½Π°ΠΏΠΈΡΠΈΡΠ΅
ΠΠΎΠ΄ΠΈΡ Π·Π° ΠΏΠΎΡΠ΅ΡΠΎΠΊ Π½Π° Ansible Π‘ΡΡΠ°ΡΠ΅Π³ΠΈΠΈ Π·Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΡΠ° Π½Π° ΡΠ°ΡΠΏΠΎΡΠ΅Π΄ΡΠ²Π°ΡΠ΅ ΡΠΎ Ansible Π’ΠΎΠΏ 5 Π°Π»Π°ΡΠΊΠΈ Π·Π° ΡΠΏΡΠ°Π²ΡΠ²Π°ΡΠ΅ ΡΠΎ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΠ°
Π ΡΠ΅Π³Π° ΡΡΠΎ?
ΠΠ²Π° Π΅ ΡΠ°ΠΌΠΎ Π²ΡΠ²ΠΎΡ Π½Π° Π»Π΅Π΄Π΅Π½ΠΈΠΎΡ Π±ΡΠ΅Π³. Π‘ΠΈΠ½ΡΠΈΡΠΎΡ DevOps ΠΌΠΎΠΆΠ΅ Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈ ΠΌΠ½ΠΎΠ³Ρ ΠΏΠΎΠ²Π΅ΡΠ΅. ΠΠ°ΠΏΠΎΡΠ½Π΅ΡΠ΅ ΡΠΎ CI/CD Π°Π»Π°ΡΠΊΠ° ΠΈ Π²ΠΈΠ΄Π΅ΡΠ΅ ΡΡΠΎ Π΄ΡΡΠ³ΠΎ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠ°ΡΠ΅ Π·Π° Π΄Π° ΡΠΈ ΡΠ° ΠΎΠ»Π΅ΡΠ½ΠΈΡΠ΅ ΡΠ°Π±ΠΎΡΠ°ΡΠ°. ΠΠ΅ Π·Π°Π±ΠΎΡΠ°Π²Π°ΡΡΠ΅ Π·Π°
ΠΠ²Π΅ ΡΡΡΠ΅ Π½Π΅ΠΊΠΎΠ»ΠΊΡ Π΄ΠΎΠ±ΡΠΈ Π½Π°ΠΏΠΈΡΠΈ Π·Π° DevOps Π·Π° ΠΏΠΎΡΠ΅ΡΠ½ΠΈΡΠΈ:
Π¨ΡΠΎ Π΅ DevOps 5 ΠΠ΅ΡΡΠΈΠ½ΠΈ Π½Π° ΡΠ°Π·Π²ΠΈΠ²Π°Ρ Π½Π° DevOps DevOps Π·Π° ΡΠ΅ΠΊΠΎΠ³ΠΎ ΠΠΎΠ²Π΅Π΄ Π²ΠΎ ΠΏΡΠ΅Π΄Π²ΠΈΠ΄Π»ΠΈΠ²Π° Π°Π½Π°Π»ΠΈΡΠΈΠΊΠ° Π²ΠΎ DevOps
ΠΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΡΠΎ ΡΠ°ΠΊΠ° Π΄Π° ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠ°ΡΠ΅ DevOps ΡΠΎ ΠΎΡΠ²ΠΎΡΠ΅Π½ΠΈ Π°Π³ΠΈΠ»Π½ΠΈ Π°Π»Π°ΡΠΊΠΈ:
ΠΠ·Π²ΠΎΡ: www.habr.com