Π©Π΅ Π·Π°ΠΏΠΎΡΠ½Π΅ΠΌ Π½Π°ΡΠΈΡ Π±Π»ΠΎΠ³ Ρ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ, Π±Π°Π·ΠΈΡΠ°Π½ΠΈ Π½Π° ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡΠ΅ ΠΈΠ·ΠΊΠ°Π·Π²Π°Π½ΠΈΡ Π½Π° Π½Π°ΡΠΈΡ ΡΠ΅Ρ
Π½ΠΈΡΠ΅ΡΠΊΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡ
31 ΠΌΠ°ΠΉ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΡΠ΅Π½ΡΠΈΡΡΠ°
ΠΠΊΠΎ ΠΈΠΌΠ°ΡΠ΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ ΠΎΡΠ΄Π΅Π»Π΅ΡΠ΅ ΡΠ°Ρ
ΠΠ΅ΠΏΡΠ΅ΠΊΡΡΠ½Π°ΡΠ° Π΄ΠΎΡΡΠ°Π²ΠΊΠ° Ρ Docker
ΠΏΠΎΠ΄ Continuous Delivery Π½ΠΈΠ΅ ΡΠ°Π·Π±ΠΈΡΠ°ΠΌΠ΅ Π²Π΅ΡΠΈΠ³Π°ΡΠ° ΠΎΡ ΡΡΠ±ΠΈΡΠΈΡ, Π² ΡΠ΅Π·ΡΠ»ΡΠ°Ρ Π½Π° ΠΊΠΎΠΈΡΠΎ ΠΊΠΎΠ΄ΡΡ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ ΠΎΡ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ΡΠΎ Π½Π° Git ΠΏΡΡΠ²ΠΎ ΠΈΠ΄Π²Π° Π² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²ΠΎΡΠΎ ΠΈ ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° ΡΠ΅ ΠΎΠ·ΠΎΠ²Π°Π²Π° Π² Π°ΡΡ ΠΈΠ²Π°. ΠΠ·Π³Π»Π΅ΠΆΠ΄Π° ΡΠ°ΠΊΠ°: Git β Build β Test β Release β Operate.
ΠΠΎ-Π³ΠΎΠ»ΡΠΌΠ°ΡΠ° ΡΠ°ΡΡ ΠΎΡ Π΄ΠΎΠΊΠ»Π°Π΄Π° Π΅ ΠΏΠΎΡΠ²Π΅ΡΠ΅Π½Π° Π½Π° Π΅ΡΠ°ΠΏΠ° Π½Π° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ (ΡΠ³Π»ΠΎΠ±ΡΠ²Π°Π½Π΅ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅), Π° ΡΠ΅ΠΌΠΈΡΠ΅ Π·Π° ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°Π²Π°Π½Π΅ ΠΈ ΡΠ°Π±ΠΎΡΠ° ΡΠ° Π·Π°ΡΠ΅Π³Π½Π°ΡΠΈ Π½Π°ΠΊΡΠ°ΡΠΊΠΎ. Π©Π΅ Π³ΠΎΠ²ΠΎΡΠΈΠΌ Π·Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ ΠΈ ΡΠ°Π±Π»ΠΎΠ½ΠΈ, ΠΊΠΎΠΈΡΠΎ Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°Ρ Π΄Π° Π³ΠΈ ΡΠ°Π·ΡΠ΅ΡΠΈΡΠ΅, Π° ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΈΡΠ΅ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π½Π° ΡΠ΅Π·ΠΈ ΡΠ°Π±Π»ΠΎΠ½ΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ.
ΠΠ°ΡΠΎ ΠΈΠ·ΠΎΠ±ΡΠΎ Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌ Docker ΡΡΠΊ? ΠΠ΅ Π½Π°ΠΏΡΠ°Π·Π½ΠΎ ΡΠ΅ΡΠΈΡ ΠΌΠ΅ Π΄Π° Π³ΠΎΠ²ΠΎΡΠΈΠΌ Π·Π° ΠΏΡΠ°ΠΊΡΠΈΠΊΠΈΡΠ΅ Π·Π° Π½Π΅ΠΏΡΠ΅ΠΊΡΡΠ½Π°ΡΠ° Π΄ΠΎΡΡΠ°Π²ΠΊΠ° Π² ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° Π½Π° ΡΠΎΠ·ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Ρ ΠΎΡΠ²ΠΎΡΠ΅Π½ ΠΊΠΎΠ΄. ΠΡΠΏΡΠ΅ΠΊΠΈ ΡΠ΅ ΡΠ΅Π»ΠΈΡΡ Π΄ΠΎΠΊΠ»Π°Π΄ Π΅ ΠΏΠΎΡΠ²Π΅ΡΠ΅Π½ Π½Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ ΠΌΡ, ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠΈΡΠΈΠ½ΠΈ ΡΠ΅ ΡΠ°Π·ΠΊΡΠΈΠ²Π°Ρ ΠΏΡΠΈ ΡΠ°Π·Π³Π»Π΅ΠΆΠ΄Π°Π½Π΅ΡΠΎ Π½Π° ΠΎΡΠ½ΠΎΠ²Π½ΠΈΡ ΠΌΠΎΠ΄Π΅Π» Π½Π° Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅ Π½Π° ΠΊΠΎΠ΄Π° Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ.
ΠΡΠ½ΠΎΠ²Π΅Π½ ΠΌΠΎΠ΄Π΅Π» Π½Π° ΡΠ°Π·Π³ΡΡΡΠ°Π½Π΅
Π’Π°ΠΊΠ° ΡΠ΅, ΠΊΠΎΠ³Π°ΡΠΎ ΠΏΡΡΠΊΠ°ΠΌΠ΅ Π½ΠΎΠ²ΠΈ Π²Π΅ΡΡΠΈΠΈ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ, ΡΡΡ ΡΠΈΠ³ΡΡΠ½ΠΎΡΡ ΡΠ΅ ΡΠ±Π»ΡΡΠΊΠ²Π°ΠΌΠ΅ Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌ Ρ ΠΏΡΠ΅ΡΡΠΎΠΉ, Π³Π΅Π½Π΅ΡΠΈΡΠ°Π½ΠΈ ΠΏΡΠΈ ΠΏΡΠ΅Π²ΠΊΠ»ΡΡΠ²Π°Π½Π΅ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²Π΅Π½ΠΈΡ ΡΡΡΠ²ΡΡ. Π’ΡΠ°ΡΠΈΠΊΡΡ ΠΎΡ ΡΡΠ°ΡΠ°ΡΠ° Π²Π΅ΡΡΠΈΡ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ ΠΊΡΠΌ Π½ΠΎΠ²Π°ΡΠ° Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΏΡΠ΅Π²ΠΊΠ»ΡΡΠΈ ΠΌΠΎΠΌΠ΅Π½ΡΠ°Π»Π½ΠΎ: ΠΏΡΡΠ²ΠΎ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ ΡΠ²Π΅ΡΠΈΠΌ, ΡΠ΅ Π½ΠΎΠ²Π°ΡΠ° Π²Π΅ΡΡΠΈΡ Π΅ Π½Π΅ ΡΠ°ΠΌΠΎ ΡΡΠΏΠ΅ΡΠ½ΠΎ ΠΈΠ·ΡΠ΅Π³Π»Π΅Π½Π°, Π½ΠΎ ΠΈ βΠ·Π°Π³ΡΡΡΠ°β (Ρ.Π΅. Π½Π°ΠΏΡΠ»Π½ΠΎ Π³ΠΎΡΠΎΠ²Π° Π·Π° ΠΎΠ±ΡΠ»ΡΠΆΠ²Π°Π½Π΅ Π½Π° Π·Π°ΡΠ²ΠΊΠΈ).
Π’Π°ΠΊΠ° ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎ Π²ΡΠ΅ΠΌΠ΅ ΠΈ Π΄Π²Π΅ΡΠ΅ Π²Π΅ΡΡΠΈΠΈ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ (ΡΡΠ°ΡΠ°ΡΠ° ΠΈ Π½ΠΎΠ²Π°ΡΠ°) ΡΠ΅ ΡΠ°Π±ΠΎΡΡΡ Π΅Π΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ. ΠΠΎΠ΅ΡΠΎ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ Π²ΠΎΠ΄ΠΈ Π΄ΠΎ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡ Π½Π° ΡΠΏΠΎΠ΄Π΅Π»Π΅Π½ΠΈ ΡΠ΅ΡΡΡΡΠΈ: ΠΌΡΠ΅ΠΆΠ°, ΡΠ°ΠΉΠ»ΠΎΠ²Π° ΡΠΈΡΡΠ΅ΠΌΠ°, IPC ΠΈ Π΄Ρ. Π‘ Docker ΡΠΎΠ·ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌ ΡΠ΅ ΡΠ΅ΡΠ°Π²Π° Π»Π΅ΡΠ½ΠΎ ΡΡΠ΅Π· ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π²Π΅ΡΡΠΈΠΈ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ Π² ΠΎΡΠ΄Π΅Π»Π½ΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ, Π·Π° ΠΊΠΎΠΈΡΠΎ Π΅ Π³Π°ΡΠ°Π½ΡΠΈΡΠ°Π½Π° ΠΈΠ·ΠΎΠ»Π°ΡΠΈΡ Π½Π° ΡΠ΅ΡΡΡΡΠ° Π² ΡΠ°ΠΌΠΊΠΈΡΠ΅ Π½Π° Π΅Π΄ΠΈΠ½ ΠΈ ΡΡΡΠΈ Ρ
ΠΎΡΡ (ΡΡΡΠ²ΡΡ/Π²ΠΈΡΡΡΠ°Π»Π½Π° ΠΌΠ°ΡΠΈΠ½Π°). Π Π°Π·Π±ΠΈΡΠ° ΡΠ΅, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΌΠΈΠ½Π΅ΡΠ΅ Ρ Π½ΡΠΊΠΎΠΈ ΡΡΠΈΠΊΠΎΠ²Π΅ ΠΈ Π±Π΅Π· ΠΈΠ·ΠΎΠ»Π°ΡΠΈΡ, Π½ΠΎ Π°ΠΊΠΎ ΠΈΠΌΠ° Π³ΠΎΡΠΎΠ² ΠΈ ΡΠ΄ΠΎΠ±Π΅Π½ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ, ΡΠΎΠ³Π°Π²Π° ΠΈΠΌΠ° ΠΈ ΠΎΠ±ΡΠ°ΡΠ½Π°ΡΠ° ΠΏΡΠΈΡΠΈΠ½Π° - Π΄Π° Π½Π΅ Π³ΠΎ ΠΏΡΠ΅Π½Π΅Π±ΡΠ΅Π³Π²Π°ΡΠ΅.
ΠΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈΠ·Π°ΡΠΈΡΡΠ° ΠΎΡΠΈΠ³ΡΡΡΠ²Π° ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΡΡΠ³ΠΈ ΠΏΡΠ΅Π΄ΠΈΠΌΡΡΠ²Π° ΠΏΡΠΈ Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅. ΠΡΡΠΊΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π·Π°Π²ΠΈΡΠΈ ΠΎΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½Π° Π²Π΅ΡΡΠΈΡ (ΠΈΠ»ΠΈ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ΠΎΡ Π²Π΅ΡΡΠΈΠΈ) ΠΏΡΠ΅Π²ΠΎΠ΄Π°Ρ, Π½Π°Π»ΠΈΡΠΈΠ΅ Π½Π° ΠΌΠΎΠ΄ΡΠ»ΠΈ/ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈΡ ΠΈ Π΄Ρ., ΠΊΠ°ΠΊΡΠΎ ΠΈ ΡΠ΅Ρ Π½ΠΈΡΠ΅ Π²Π΅ΡΡΠΈΠΈ. Π ΡΠΎΠ²Π° ΡΠ΅ ΠΎΡΠ½Π°ΡΡ Π½Π΅ ΡΠ°ΠΌΠΎ Π·Π° Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π°ΡΠ° ΠΈΠ·ΠΏΡΠ»Π½ΠΈΠΌΠ° ΡΡΠ΅Π΄Π°, Π½ΠΎ ΠΈ Π·Π° ΡΡΠ»Π°ΡΠ° ΡΡΠ΅Π΄Π°, Π²ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ ΡΠΈΡΡΠ΅ΠΌΠ΅Π½ ΡΠΎΡΡΡΠ΅Ρ ΠΈ Π½Π΅Π³ΠΎΠ²Π°ΡΠ° Π²Π΅ΡΡΠΈΡ (Π΄ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π°ΡΠ° Linux Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΡ). ΠΠΎΡΠ°Π΄ΠΈ ΡΠ°ΠΊΡΠ°, ΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈΡΠ΅ ΡΡΠ΄ΡΡΠΆΠ°Ρ Π½Π΅ ΡΠ°ΠΌΠΎ ΠΊΠΎΠ΄ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π½ΠΎ ΠΈ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»Π½ΠΎ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½ ΡΠΈΡΡΠ΅ΠΌΠ΅Π½ ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ ΡΠΎΡΡΡΠ΅Ρ Π½Π° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΈΡΠ΅ Π²Π΅ΡΡΠΈΠΈ, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π·Π°Π±ΡΠ°Π²ΠΈΡΠ΅ Π·Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈΡΠ΅ ΡΡΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈΡΠ΅.
ΠΠΈΠ΅ ΡΠ΅ ΠΎΠ±ΠΎΠ±ΡΠΈ ΠΎΡΠ½ΠΎΠ²Π΅Π½ ΠΌΠΎΠ΄Π΅Π» Π½Π° ΡΠ°Π·Π³ΡΡΡΠ°Π½Π΅ Π½ΠΎΠ²ΠΈ Π²Π΅ΡΡΠΈΠΈ, ΠΊΠ°ΡΠΎ ΡΠ΅ Π²Π·Π΅ΠΌΠ°Ρ ΠΏΡΠ΅Π΄Π²ΠΈΠ΄ ΡΠ»Π΅Π΄Π½ΠΈΡΠ΅ ΡΠ°ΠΊΡΠΎΡΠΈ:
- ΠΡΡΠ²ΠΎΠ½Π°ΡΠ°Π»Π½ΠΎ ΡΡΠ°ΡΠ°ΡΠ° Π²Π΅ΡΡΠΈΡ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ ΡΠ°Π±ΠΎΡΠΈ Π² ΠΏΡΡΠ²ΠΈΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ.
- Π‘Π»Π΅Π΄ ΡΠΎΠ²Π° Π½ΠΎΠ²Π°ΡΠ° Π²Π΅ΡΡΠΈΡ ΡΠ΅ ΡΠ°Π·Π³ΡΡΡΠ° ΠΈ βΠ·Π°Π³ΡΡΠ²Π°β Π²ΡΠ² Π²ΡΠΎΡΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ. Π’ΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ ΠΎΡΠ±Π΅Π»Π΅ΠΆΠΈ, ΡΠ΅ ΡΠ°ΠΌΠ°ΡΠ° ΡΠ°Π·ΠΈ Π½ΠΎΠ²Π° Π²Π΅ΡΡΠΈΡ ΠΌΠΎΠΆΠ΅ Π΄Π° Π½ΠΎΡΠΈ Π½Π΅ ΡΠ°ΠΌΠΎ Π°ΠΊΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ ΠΊΠΎΠ΄ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ, Π½ΠΎ ΠΈ Π²ΡΡΠΊΠ° Π½Π΅Π³ΠΎΠ²Π° Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ, ΠΊΠ°ΠΊΡΠΎ ΠΈ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Π½ΠΎΠ²Π° Π²Π΅ΡΡΠΈΡ Π½Π° OpenSSL ΠΈΠ»ΠΈ ΡΡΠ»Π°ΡΠ° Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΡ).
- ΠΠΎΠ³Π°ΡΠΎ Π½ΠΎΠ²Π°ΡΠ° Π²Π΅ΡΡΠΈΡ Π΅ Π½Π°ΠΏΡΠ»Π½ΠΎ Π³ΠΎΡΠΎΠ²Π° Π΄Π° ΠΎΠ±ΡΠ»ΡΠΆΠ²Π° Π·Π°ΡΠ²ΠΊΠΈ, ΡΡΠ°ΡΠΈΠΊΡΡ ΡΠ΅ ΠΏΡΠ΅Π²ΠΊΠ»ΡΡΠ²Π° ΠΎΡ ΠΏΡΡΠ²ΠΈΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ ΠΊΡΠΌ Π²ΡΠΎΡΠΈΡ.
- Π‘ΡΠ°ΡΠ°ΡΠ° Π²Π΅ΡΡΠΈΡ Π²Π΅ΡΠ΅ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΡΠΏΡΡΠ½Π°.
Π’ΠΎΠ·ΠΈ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ Π½Π° Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅ Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π²Π΅ΡΡΠΈΠΈ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ Π² ΠΎΡΠ΄Π΅Π»Π½ΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ Π΄ΡΡΠ³ΠΎ ΡΠ΄ΠΎΠ±ΡΡΠ²ΠΎ - Π±ΡΡΠ·ΠΎ Π²ΡΡΡΠ°Π½Π΅ Π½Π°Π·Π°Π΄ ΠΊΡΠΌ ΡΡΠ°ΡΠ°ΡΠ° Π²Π΅ΡΡΠΈΡ (Π² ΠΊΡΠ°Ρ Π½Π° ΠΊΡΠ°ΠΈΡΠ°ΡΠ° Π΅ Π΄ΠΎΡΡΠ°ΡΡΡΠ½ΠΎ Π΄Π° ΠΏΡΠ΅Π²ΠΊΠ»ΡΡΠΈΡΠ΅ ΡΡΠ°ΡΠΈΠΊΠ° ΠΊΡΠΌ ΠΆΠ΅Π»Π°Π½ΠΈΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ).
ΠΠΎΡΠ»Π΅Π΄Π½Π°ΡΠ° ΠΏΡΡΠ²Π° ΠΏΡΠ΅ΠΏΠΎΡΡΠΊΠ° Π·Π²ΡΡΠΈ ΠΊΠ°ΡΠΎ Π½Π΅ΡΠΎ, Π² ΠΊΠΎΠ΅ΡΠΎ Π΄ΠΎΡΠΈ ΠΊΠ°ΠΏΠΈΡΠ°Π½ΡΡ Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° Π½Π°ΠΌΠ΅ΡΠΈ Π³ΡΠ΅ΡΠΊΠ°: β[ΠΏΡΠΈ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° Π½Π΅ΠΏΡΠ΅ΠΊΡΡΠ½Π°ΡΠ° Π΄ΠΎΡΡΠ°Π²ΠΊΠ° Ρ Docker] ΠΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡΠ΅ Docker [ΠΈ ΡΠ°Π·Π±Π΅ΡΠ΅ΡΠ΅ ΠΊΠ°ΠΊΠ²ΠΎ Π΄Π°Π²Π°]" ΠΠ΅ Π·Π°Π±ΡΠ°Π²ΡΠΉΡΠ΅, ΡΠ΅ ΡΠΎΠ²Π° Π½Π΅ Π΅ ΡΡΠ΅Π±ΡΡΠ΅Π½ ΠΊΡΡΡΡΠΌ, ΠΊΠΎΠΉΡΠΎ ΡΠ΅ ΡΠ΅ΡΠΈ Π²ΡΠ΅ΠΊΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌ, Π° ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ, ΠΊΠΎΠΉΡΠΎ ΠΎΡΠΈΠ³ΡΡΡΠ²Π° ΡΡΠ΄Π΅ΡΠ½Π° ΠΎΡΠ½ΠΎΠ²Π°.
ΠΡΠ·ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΠΌΠΎΡΡ
ΠΠΎΠ΄ βΠ²ΡΠ·ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΠΌΠΎΡΡβ ΠΈΠΌΠ°ΠΌΠ΅ ΠΏΡΠ΅Π΄Π²ΠΈΠ΄ ΠΎΠ±ΠΎΠ±ΡΠ΅Π½ Π½Π°Π±ΠΎΡ ΠΎΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ, ΡΡΠ΅ΡΠ°Π½ΠΈ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ° Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠΎΠ²ΠΎΡΠΈΠΌ Π·Π° ΡΠ°ΠΊΠΈΠ²Π° ΡΠ»ΡΡΠ°ΠΈ:
- Π‘ΡΠ΅Π½Π°ΡΠΈΠΈΡΠ΅, ΠΏΡΠΎΠ²Π΅ΡΠ΅Π½ΠΈ ΠΎΡ ΠΎΡΠ΄Π΅Π»Π° Π·Π° ΠΊΠ°ΡΠ΅ΡΡΠ²ΠΎ Π·Π° ΠΏΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠ°, ΡΡΡΠ±Π²Π° Π΄Π° Π±ΡΠ΄Π°Ρ ΡΠΎΡΠ½ΠΎ Π²ΡΠ·ΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈ Π² ΠΏΡΠΎΠ΄ΡΠΊΡΠΈΡΡΠ°.
- ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡΠ° ΡΠ΅ ΠΏΡΠ±Π»ΠΈΠΊΡΠ²Π°Ρ Π½Π° ΡΡΡΠ²ΡΡΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΠΏΠΎΠ»ΡΡΠ°Π²Π°Ρ ΠΏΠ°ΠΊΠ΅ΡΠΈ ΠΎΡ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΎΠ³Π»Π΅Π΄Π°Π»Π½ΠΈ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ° (Ρ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π½Π° Π²ΡΠ΅ΠΌΠ΅ΡΠΎ ΡΠ΅ ΡΠ΅ Π°ΠΊΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Ρ, Π° Ρ ΡΡΡ ΠΈ Π²Π΅ΡΡΠΈΠΈΡΠ΅ Π½Π° ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½ΠΈΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ).
- βΠΡΠΈΡΠΊΠΎ ΡΠ°Π±ΠΎΡΠΈ Π·Π° ΠΌΠ΅Π½ Π½Π° ΠΌΡΡΡΠΎ!β (...ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅ Π½Π΅ ΡΠ΅ Π΄ΠΎΠΏΡΡΠΊΠ°Ρ Π΄ΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²ΠΎ.)
- Π’ΡΡΠ±Π²Π° Π΄Π° ΠΏΡΠΎΠ²Π΅ΡΠΈΡΠ΅ Π½Π΅ΡΠΎ Π² ΡΡΠ°ΡΠ°ΡΠ° (Π°ΡΡ ΠΈΠ²ΠΈΡΠ°Π½Π°) Π²Π΅ΡΡΠΈΡ.
- ...
Π’ΡΡ Π½Π°ΡΠ° ΠΎΠ±ΡΠ° ΡΡΡΠ½ΠΎΡΡ ΡΠ΅ ΡΠ²Π΅ΠΆΠ΄Π° Π΄ΠΎ ΡΠ°ΠΊΡΠ°, ΡΠ΅ Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡΠ»Π½ΠΎΡΠΎ ΡΡΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ Π½Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΈΡΠ΅ ΡΡΠ΅Π΄ΠΈ (ΠΊΠ°ΠΊΡΠΎ ΠΈ Π»ΠΈΠΏΡΠ°ΡΠ° Π½Π° ΡΠΎΠ²Π΅ΡΠΊΠΈΡ ΡΠ°ΠΊΡΠΎΡ). ΠΠ°ΠΊ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Π³Π°ΡΠ°Π½ΡΠΈΡΠ°ΠΌΠ΅ Π²ΡΠ·ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΠΌΠΎΡΡ? ΠΠ°ΠΏΡΠ°Π²Π΅ΡΠ΅ Docker ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π±Π°Π·ΠΈΡΠ°Π½ΠΈ Π½Π° ΠΊΠΎΠ΄ ΠΎΡ Git ΠΈ ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° Π΄Π° Π³ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ Π·Π° Π²ΡΡΠΊΠ° Π·Π°Π΄Π°ΡΠ°: Π½Π° ΡΠ΅ΡΡΠΎΠ²ΠΈ ΡΠ°ΠΉΡΠΎΠ²Π΅, Π² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²ΠΎ, Π½Π° Π»ΠΎΠΊΠ°Π»Π½ΠΈ ΠΌΠ°ΡΠΈΠ½ΠΈ Π½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΡΠΈ... Π ΡΡΡΠΎΡΠΎ Π²ΡΠ΅ΠΌΠ΅ Π΅ Π²Π°ΠΆΠ½ΠΎ Π΄Π° ΡΠ΅ ΡΠ²Π΅Π΄Π°Ρ Π΄ΠΎ ΠΌΠΈΠ½ΠΈΠΌΡΠΌ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΡΠ°, ΠΊΠΎΠΈΡΠΎ ΡΠ΅ ΠΈΠ·Π²ΡΡΡΠ²Π°Ρ ΡΠ»Π΅Π΄ ΡΠ³Π»ΠΎΠ±ΡΠ²Π°Π½Π΅ Π½Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ: ΠΊΠΎΠ»ΠΊΠΎΡΠΎ ΠΏΠΎ-ΠΏΡΠΎΡΡΠΎ Π΅, ΡΠΎΠ»ΠΊΠΎΠ²Π° ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ Π²Π΅ΡΠΎΡΡΠ½ΠΎ Π΅ Π΄Π° ΠΈΠΌΠ° Π³ΡΠ΅ΡΠΊΠΈ.
ΠΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ°ΡΠ° Π΅ ΠΊΠΎΠ΄
ΠΠΊΠΎ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ½ΠΈΡΠ΅ ΠΈΠ·ΠΈΡΠΊΠ²Π°Π½ΠΈΡ (Π½Π°Π»ΠΈΡΠΈΠ΅ Π½Π° ΡΡΡΠ²ΡΡΠ΅Π½ ΡΠΎΡΡΡΠ΅Ρ, Π½Π΅Π³ΠΎΠ²Π°ΡΠ° Π²Π΅ΡΡΠΈΡ ΠΈ Ρ.Π½.) Π½Π΅ ΡΠ° ΡΠΎΡΠΌΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ ΠΈ βΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΠ°Π½ΠΈβ, ΡΠΎΠ³Π°Π²Π° Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° Π²ΡΡΠΊΠ° Π°ΠΊΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° Π΄ΠΎΠ²Π΅Π΄Π΅ Π΄ΠΎ ΠΊΠ°ΡΠ°ΡΡΡΠΎΡΠ°Π»Π½ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΠΈΡΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π² Π΅ΡΠ°ΠΏΠ° Π²Π΅ΡΠ΅ ΡΡΠ΅ ΠΏΡΠ΅ΠΌΠΈΠ½Π°Π»ΠΈ ΠΊΡΠΌ PHP 7.0 ΠΈ ΡΡΠ΅ ΠΏΡΠ΅Π½Π°ΠΏΠΈΡΠ°Π»ΠΈ ΡΡΠΎΡΠ²Π΅ΡΠ½ΠΎ ΠΊΠΎΠ΄Π° - ΡΠΎΠ³Π°Π²Π° ΠΏΠΎΡΠ²Π°ΡΠ° ΠΌΡ Π² ΠΏΡΠΎΠ΄ΡΠΊΡΠΈΡ Ρ Π½ΡΠΊΠ°ΠΊΡΠ² ΡΡΠ°Ρ PHP (5.5) ΡΡΡ ΡΠΈΠ³ΡΡΠ½ΠΎΡΡ ΡΠ΅ ΠΈΠ·Π½Π΅Π½Π°Π΄Π° Π½ΡΠΊΠΎΠ³ΠΎ. ΠΠΎΠΆΠ΅ Π΄Π° Π½Π΅ Π·Π°Π±ΡΠ°Π²ΡΡΠ΅ Π·Π° Π³ΠΎΠ»ΡΠΌΠ° ΠΏΡΠΎΠΌΡΠ½Π° Π²ΡΠ² Π²Π΅ΡΡΠΈΡΡΠ° Π½Π° ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΠ°, Π½ΠΎ βΠ΄ΡΠ²ΠΎΠ»ΡΡ Π΅ Π² Π΄Π΅ΡΠ°ΠΉΠ»ΠΈΡΠ΅β: ΠΈΠ·Π½Π΅Π½Π°Π΄Π°ΡΠ° ΠΌΠΎΠΆΠ΅ Π΄Π° Π΅ Π² ΠΌΠ°Π»ΠΊΠ° Π°ΠΊΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° Π²ΡΡΠΊΠ° Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ.
ΠΠ΄ΠΈΠ½ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ Π·Π° ΡΠ΅ΡΠ°Π²Π°Π½Π΅ Π½Π° ΡΠΎΠ·ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌ Π΅ ΠΈΠ·Π²Π΅ΡΡΠ΅Π½ ΠΊΠ°ΡΠΎ IaC (ΠΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ° ΠΊΠ°ΡΠΎ ΠΊΠΎΠ΄, βΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ° ΠΊΠ°ΡΠΎ ΠΊΠΎΠ΄β) ΠΈ Π²ΠΊΠ»ΡΡΠ²Π° ΡΡΡ ΡΠ°Π½ΡΠ²Π°Π½Π΅ Π½Π° ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ½ΠΈ ΠΈΠ·ΠΈΡΠΊΠ²Π°Π½ΠΈΡ Π·Π°Π΅Π΄Π½ΠΎ Ρ ΠΊΠΎΠ΄Π° Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ. ΠΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ Π³ΠΎ, ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅ ΠΈ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΡΡΠΈΡΠ΅ ΠΏΠΎ DevOps ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ°Π±ΠΎΡΡΡ Ρ Π΅Π΄Π½ΠΎ ΠΈ ΡΡΡΠΎ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ Π½Π° Git ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π½ΠΎ Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΡΠ°ΡΡΠΈ ΠΎΡ Π½Π΅Π³ΠΎ. ΠΡ ΡΠΎΠ·ΠΈ ΠΊΠΎΠ΄ ΡΠ΅ ΡΡΠ·Π΄Π°Π²Π° Docker ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π² Git, Π² ΠΊΠΎΠ΅ΡΠΎ ΡΠ΅ Π²Π½Π΅Π΄ΡΡΠ²Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ, ΠΊΠ°ΡΠΎ ΡΠ΅ Π²Π·Π΅ΠΌΠ°Ρ ΠΏΡΠ΅Π΄Π²ΠΈΠ΄ Π²ΡΠΈΡΠΊΠΈ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠΈ Π½Π° ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ°ΡΠ°. ΠΡΠΎΡΡΠΎ ΠΊΠ°Π·Π°Π½ΠΎ, ΡΠΊΡΠΈΠΏΡΠΎΠ²Π΅ΡΠ΅ (ΠΏΡΠ°Π²ΠΈΠ»Π°ΡΠ°) Π·Π° ΡΠ³Π»ΠΎΠ±ΡΠ²Π°Π½Π΅ Π½Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΡΡΡΠ±Π²Π° Π΄Π° Π±ΡΠ΄Π°Ρ Π² Π΅Π΄Π½ΠΎ ΠΈ ΡΡΡΠΎ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ Ρ ΠΈΠ·Ρ ΠΎΠ΄Π½ΠΈΡ ΠΊΠΎΠ΄ ΠΈ Π΄Π° Π±ΡΠ΄Π°Ρ ΠΎΠ±Π΅Π΄ΠΈΠ½Π΅Π½ΠΈ.
Π ΡΠ»ΡΡΠ°ΠΉ Π½Π° ΠΌΠ½ΠΎΠ³ΠΎΡΠ»ΠΎΠΉΠ½Π° Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΠ° Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ - Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΠΈΠΌΠ° nginx, ΠΊΠΎΠΉΡΠΎ ΡΡΠΎΠΈ ΠΏΡΠ΅Π΄ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΠ΅ΡΠΎ Π²Π΅ΡΠ΅ ΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π° Π² Docker ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ - Docker ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡΡΠ° ΡΡΡΠ±Π²Π° Π΄Π° Π±ΡΠ΄Π°Ρ ΡΡΠ·Π΄Π°Π΄Π΅Π½ΠΈ ΠΎΡ ΠΊΠΎΠ΄ Π² Git Π·Π° Π²ΡΠ΅ΠΊΠΈ ΡΠ»ΠΎΠΉ. Π’ΠΎΠ³Π°Π²Π° ΠΏΡΡΠ²ΠΎΡΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΡΠ΅ ΡΡΠ΄ΡΡΠΆΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ ΠΈ Π΄ΡΡΠ³ΠΈ βΠ±Π»ΠΈΠ·ΠΊΠΈβ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ, Π° Π²ΡΠΎΡΠΎΡΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΡΠ΅ ΡΡΠ΄ΡΡΠΆΠ° nginx Π½Π°Π³ΠΎΡΠ΅ ΠΏΠΎ Π²Π΅ΡΠΈΠ³Π°ΡΠ°.
Docker ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ, ΠΊΠΎΠΌΡΠ½ΠΈΠΊΠ°ΡΠΈΡ Ρ Git
ΠΠΈΠ΅ ΡΠ°Π·Π΄Π΅Π»ΡΠΌΠ΅ Π²ΡΠΈΡΠΊΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π½Π° Docker, ΡΡΠ±ΡΠ°Π½ΠΈ ΠΎΡ Git, Π² Π΄Π²Π΅ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ: Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΈ ΠΈ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°Π²Π°ΡΠΈ. ΠΡΠ΅ΠΌΠ΅Π½Π½ΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΌΠ°ΡΠΊΠΈΡΠ°Π½ΠΈ Ρ ΠΈΠΌΠ΅ΡΠΎ Π½Π° ΠΊΠ»ΠΎΠ½Π° Π² Git, ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ ΠΏΡΠ΅Π·Π°ΠΏΠΈΡΠ°Π½ΠΈ ΠΎΡ ΡΠ»Π΅Π΄Π²Π°ΡΠΈΡ ΠΊΠΎΠΌΠΈΡ ΠΈ ΡΠ΅ ΡΠ°Π·ΠΏΡΠΎΡΡΡΠ°Π½ΡΠ²Π°Ρ ΡΠ°ΠΌΠΎ Π·Π° ΠΏΡΠ΅Π³Π»Π΅Π΄ (Π½Π΅ Π·Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²ΠΎ). Π’ΠΎΠ²Π° Π΅ ΠΎΡΠ½ΠΎΠ²Π½Π°ΡΠ° ΠΈΠΌ ΡΠ°Π·Π»ΠΈΠΊΠ° ΠΎΡ ΡΠ΅Π·ΠΈ Π½Π° ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ΡΠΎ: Π½ΠΈΠΊΠΎΠ³Π° Π½Π΅ Π·Π½Π°Π΅ΡΠ΅ ΠΊΠΎΠΉ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ΅Π½ Π°Π½Π³Π°ΠΆΠΈΠΌΠ΅Π½Ρ ΠΈΠΌΠ° Π² ΡΡΡ .
ΠΠΌΠ° ΡΠΌΠΈΡΡΠ» Π΄Π° ΡΠ΅ ΡΡΠ±ΠΈΡΠ°Ρ Π²ΡΠ² Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ: ΠΎΡΠ½ΠΎΠ²Π½ΠΈΡΡ ΠΊΠ»ΠΎΠ½ (ΠΌΠΎΠΆΠ΅ΡΠ΅ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ Π΄Π° Π³ΠΎ ΠΏΡΠ΅Ρ Π²ΡΡΠ»ΠΈΡΠ΅ Π½Π° ΠΎΡΠ΄Π΅Π»Π΅Π½ ΡΠ°ΠΉΡ, Π·Π° Π΄Π° Π²ΠΈΠΆΠ΄Π°ΡΠ΅ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ ΡΠ΅ΠΊΡΡΠ°ΡΠ° Π²Π΅ΡΡΠΈΡ Π½Π° Π³Π»Π°Π²Π½ΠΈΡ), ΠΊΠ»ΠΎΠ½ΠΎΠ²Π΅ Ρ Π²Π΅ΡΡΠΈΠΈ, ΠΊΠ»ΠΎΠ½ΠΎΠ²Π΅ Π½Π° ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΈ ΠΈΠ½ΠΎΠ²Π°ΡΠΈΠΈ.
Π‘Π»Π΅Π΄ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»Π½ΠΈΡ ΠΏΡΠ΅Π³Π»Π΅Π΄ Π½Π° Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΈΡΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΡΠ΅ ΡΡΠΈΠ³Π½Π΅ Π΄ΠΎ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΡΡΡΠ° ΠΎΡ ΠΏΡΠ΅Π²ΠΎΠ΄ Π² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²ΠΎ, ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅ ΠΏΠΎΡΡΠ°Π²ΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ Π΅ΡΠΈΠΊΠ΅Ρ. ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ ΡΡΠ±ΡΠ°Π½ΠΈ ΠΏΠΎ Π΅ΡΠΈΠΊΠ΅Ρ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°Π²Π°Π½Π΅ Π½Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ (Π½Π΅Π³ΠΎΠ²ΠΈΡΡ ΡΠ°Π³ ΡΡΠΎΡΠ²Π΅ΡΡΡΠ²Π° Π½Π° ΡΠ°Π³Π° ΠΎΡ Git) ΠΈ ΡΠ΅ ΡΠ°Π·Π³ΡΡΡΠ° ΠΊΡΠΌ Π΅ΡΠ°ΠΏΠ°. ΠΠΊΠΎ Π±ΡΠ΄Π΅ ΡΡΠΏΠ΅ΡΠ½ΠΎ ΠΏΡΠΎΠ²Π΅ΡΠ΅Π½ ΠΎΡ ΠΎΡΠ΄Π΅Π»Π° ΠΏΠΎ ΠΊΠ°ΡΠ΅ΡΡΠ²ΠΎ, ΡΠΎΠΉ ΠΎΡΠΈΠ²Π° Π² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²ΠΎ.
DAPP
ΠΡΠΈΡΠΊΠΎ ΠΎΠΏΠΈΡΠ°Π½ΠΎ (ΡΠ°Π·ΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½ΠΈΠ΅, ΡΠ³Π»ΠΎΠ±ΡΠ²Π°Π½Π΅ Π½Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅, ΠΏΠΎΡΠ»Π΅Π΄Π²Π°ΡΠ° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°) ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ° Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° Bash ΡΠΊΡΠΈΠΏΡΠΎΠ²Π΅ ΠΈ Π΄ΡΡΠ³ΠΈ βΠΈΠΌΠΏΡΠΎΠ²ΠΈΠ·ΠΈΡΠ°Π½ΠΈβ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ. ΠΠΎ Π°ΠΊΠΎ Π½Π°ΠΏΡΠ°Π²ΠΈΡΠ΅ ΡΠΎΠ²Π°, ΡΠΎΠ³Π°Π²Π° Π² Π΅Π΄ΠΈΠ½ ΠΌΠΎΠΌΠ΅Π½Ρ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ΡΠΎ ΡΠ΅ Π΄ΠΎΠ²Π΅Π΄Π΅ Π΄ΠΎ Π³ΠΎΠ»ΡΠΌΠ° ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ ΠΈ Π»ΠΎΡΠ° ΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌΠΎΡΡ. Π Π°Π·Π±ΠΈΡΠ°ΠΉΠΊΠΈ ΡΠΎΠ²Π°, ΡΡΠΈΠ³Π½Π°Ρ ΠΌΠ΅ Π΄ΠΎ ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ΡΠΎ Π½Π° Π½Π°ΡΠ° ΡΠΎΠ±ΡΡΠ²Π΅Π½Π° ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½Π° ΠΏΠΎΠΌΠΎΡΠ½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ° Π·Π° ΡΠ°Π±ΠΎΡΠ΅Π½ ΠΏΡΠΎΡΠ΅Ρ Π·Π° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ Π½Π° CI/CD - DAPP.
ΠΠ΅Π³ΠΎΠ²ΠΈΡΡ ΠΈΠ·Ρ
ΠΎΠ΄Π΅Π½ ΠΊΠΎΠ΄ Π΅ Π½Π°ΠΏΠΈΡΠ°Π½ Π½Π° Ruby, Ρ ΠΎΡΠ²ΠΎΡΠ΅Π½ ΠΊΠΎΠ΄ ΠΈ Π΅ ΠΏΡΠ±Π»ΠΈΠΊΡΠ²Π°Π½ Π½Π°
ΠΠΊΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΎ Π½Π° 13 Π°Π²Π³ΡΡΡ 2019 Π³.: Π² ΠΌΠΎΠΌΠ΅Π½ΡΠ° ΠΏΡΠΎΠ΅ΠΊΡ DAPP ΠΏΡΠ΅ΠΈΠΌΠ΅Π½ΡΠ²Π°Π½ Π½Π°
Kubernetes
ΠΡΡΠ³ Π³ΠΎΡΠΎΠ² ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Ρ ΠΎΡΠ²ΠΎΡΠ΅Π½ ΠΊΠΎΠ΄, ΠΊΠΎΠΉΡΠΎ Π²Π΅ΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈ Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΎ ΠΏΡΠΈΠ·Π½Π°Π½ΠΈΠ΅ Π² ΠΏΡΠΎΡΠ΅ΡΠΈΠΎΠ½Π°Π»Π½Π°ΡΠ° ΡΡΠ΅Π΄Π°, Π΅ Kubernetes, ΠΊΠ»ΡΡΡΠ΅Ρ Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° Docker. Π’Π΅ΠΌΠ°ΡΠ° Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ ΠΌΡ Π² ΡΠ°Π±ΠΎΡΠ°ΡΠ° Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠΈ, ΠΈΠ·Π³ΡΠ°Π΄Π΅Π½ΠΈ Π½Π° Docker, Π΅ ΠΈΠ·Π²ΡΠ½ ΠΎΠ±Ρ Π²Π°ΡΠ° Π½Π° Π΄ΠΎΠΊΠ»Π°Π΄Π°, ΡΠ°ΠΊΠ° ΡΠ΅ ΠΏΡΠ΅Π·Π΅Π½ΡΠ°ΡΠΈΡΡΠ° Π΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π° Π΄ΠΎ ΠΏΡΠ΅Π³Π»Π΅Π΄ Π½Π° Π½ΡΠΊΠΎΠΈ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ.
ΠΠ° Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅ Kubernetes ΠΏΡΠ΅Π΄Π»Π°Π³Π°:
- ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° Π³ΠΎΡΠΎΠ²Π½ΠΎΡΡΡΠ° β ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° Π³ΠΎΡΠΎΠ²Π½ΠΎΡΡΡΠ° Π½Π° Π½ΠΎΠ²Π° Π²Π΅ΡΡΠΈΡ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ (Π·Π° ΠΏΡΠ΅Π²ΠΊΠ»ΡΡΠ²Π°Π½Π΅ Π½Π° ΡΡΠ°ΡΠΈΠΊ ΠΊΡΠΌ Π½Π΅Π³ΠΎ);
- ΠΏΠΎΠ΄Π²ΠΈΠΆΠ½Π° Π°ΠΊΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ - ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π½Π° Π°ΠΊΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ Π² ΠΊΠ»ΡΡΡΠ΅Ρ ΠΎΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ (ΠΈΠ·ΠΊΠ»ΡΡΠ²Π°Π½Π΅, Π°ΠΊΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ, ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠ° Π·Π° ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅, ΠΏΡΠ΅Π²ΠΊΠ»ΡΡΠ²Π°Π½Π΅ Π½Π° ΡΡΠ°ΡΠΈΠΊΠ°);
- ΡΠΈΠ½Ρ ΡΠΎΠ½Π½Π° Π°ΠΊΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ - Π°ΠΊΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π² ΠΊΠ»ΡΡΡΠ΅Ρ Ρ ΡΠ°Π·Π»ΠΈΡΠ΅Π½ ΠΏΠΎΠ΄Ρ ΠΎΠ΄: ΠΏΡΡΠ²ΠΎ Π½Π° ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Π°ΡΠ° ΠΎΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈΡΠ΅, ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° Π½Π° ΠΎΡΡΠ°Π½Π°Π»ΠΈΡΠ΅;
- canary releases - ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π½Π° Π½ΠΎΠ²ΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π²ΡΡΡ Ρ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ (ΠΌΠ°Π»ΡΠΊ) Π±ΡΠΎΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ Π·Π° Π½Π°Π±Π»ΡΠ΄Π΅Π½ΠΈΠ΅ Π½Π° Π°Π½ΠΎΠΌΠ°Π»ΠΈΠΈ.
Π’ΡΠΉ ΠΊΠ°ΡΠΎ Continuous Delivery Π½Π΅ Π΅ ΡΠ°ΠΌΠΎ ΠΏΡΡΠΊΠ°Π½Π΅ΡΠΎ Π½Π° Π½ΠΎΠ²Π° Π²Π΅ΡΡΠΈΡ, Kubernetes ΠΈΠΌΠ° ΡΠ΅Π΄ΠΈΡΠ° Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π·Π° ΠΏΠΎΡΠ»Π΅Π΄Π²Π°ΡΠ° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ°ΡΠ°: Π²Π³ΡΠ°Π΄Π΅Π½ΠΎ Π½Π°Π±Π»ΡΠ΄Π΅Π½ΠΈΠ΅ ΠΈ ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠ°Π½Π΅ Π·Π° Π²ΡΠΈΡΠΊΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ, Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ ΠΌΠ°ΡΠ°Π±ΠΈΡΠ°Π½Π΅ ΠΈ Ρ.Π½. ΠΡΠΈΡΠΊΠΎ ΡΠΎΠ²Π° Π²Π΅ΡΠ΅ ΡΠ°Π±ΠΎΡΠΈ ΠΈ ΠΏΡΠΎΡΡΠΎ ΡΠ°ΠΊΠ° ΠΏΡΠ°Π²ΠΈΠ»Π½ΠΎΡΠΎ Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅ Π²ΡΠ² Π²Π°ΡΠΈΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΠΈ.
ΠΠΊΠΎΠ½ΡΠ°ΡΠ΅Π»Π½ΠΈ ΠΏΡΠ΅ΠΏΠΎΡΡΠΊΠΈ
- ΠΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡΠ΅ Docker.
- Π‘ΡΠ·Π΄Π°Π²Π°ΠΉΡΠ΅ Docker ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π·Π° Π²ΡΠΈΡΠΊΠΈ Π²Π°ΡΠΈ Π½ΡΠΆΠ΄ΠΈ.
- Π‘Π»Π΅Π΄Π²Π°ΠΉΡΠ΅ ΠΏΡΠΈΠ½ΡΠΈΠΏΠ° βΠΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ°ΡΠ° Π΅ ΠΊΠΎΠ΄β.
- Π‘Π²ΡΡΠΆΠ΅ΡΠ΅ Git ΠΊΡΠΌ Docker.
- Π Π΅Π³ΡΠ»ΠΈΡΠ°ΠΉΡΠ΅ ΡΠ΅Π΄Π° Π½Π° ΡΠ°Π·Π³ΡΡΡΠ°Π½Π΅.
- ΠΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡΠ΅ Π³ΠΎΡΠΎΠ²Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° (Kubernetes ΠΈΠ»ΠΈ Π΄ΡΡΠ³Π°).
ΠΠΈΠ΄Π΅ΠΎΠΊΠ»ΠΈΠΏΠΎΠ²Π΅ ΠΈ ΡΠ»Π°ΠΉΠ΄ΠΎΠ²Π΅
ΠΠΈΠ΄Π΅ΠΎ ΠΎΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΡΠΎ (ΠΎΠΊΠΎΠ»ΠΎ ΡΠ°Ρ)
ΠΡΠ΅Π΄ΡΡΠ°Π²ΡΠ½Π΅ Π½Π° Π΄ΠΎΠΊΠ»Π°Π΄Π°:
PS
ΠΡΡΠ³ΠΈ Π΄ΠΎΠΊΠ»Π°Π΄ΠΈ ΠΏΠΎ ΡΠ΅ΠΌΠ°ΡΠ° Π² Π½Π°ΡΠΈΡ Π±Π»ΠΎΠ³:
- Β«
werf - Π½Π°ΡΠΈΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π·Π° CI / CD Π² Kubernetes (ΠΎΠ±Ρ ΠΏΡΠ΅Π³Π»Π΅Π΄ ΠΈ Π²ΠΈΠ΄Π΅ΠΎ ΠΎΡΡΠ΅Ρ) Β» (ΠΠΌΠΈΡΡΠΈΠΉ Π‘ΡΠΎΠ»ΡΡΠΎΠ²; 27 ΠΌΠ°ΠΉ 2019 Π³. Π² DevOpsConf); - Β«
ΠΠ°Π·ΠΈ Π΄Π°Π½Π½ΠΈ ΠΈ Kubernetes Β» (ΠΠΌΠΈΡΡΠΈΠΉ Π‘ΡΠΎΠ»ΡΡΠΎΠ²; 8 Π½ΠΎΠ΅ΠΌΠ²ΡΠΈ 2018 Π³. Π² HighLoad++); - Β«
ΠΠ°ΠΉ-Π΄ΠΎΠ±ΡΠΈ ΠΏΡΠ°ΠΊΡΠΈΠΊΠΈ Π·Π° CI/CD Ρ Kubernetes ΠΈ GitLab Β» (ΠΠΌΠΈΡΡΠΈΠΉ Π‘ΡΠΎΠ»ΡΡΠΎΠ²; 7 Π½ΠΎΠ΅ΠΌΠ²ΡΠΈ 2017 Π³. Π² HighLoad++); - Β«
ΠΠ°ΡΠΈΡΡ ΠΎΠΏΠΈΡ Ρ Kubernetes Π² ΠΌΠ°Π»ΠΊΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠΈ Β» (ΠΠΌΠΈΡΡΠΈΠΉ Π‘ΡΠΎΠ»ΡΡΠΎΠ²; 6 ΡΠ½ΠΈ 2017 Π³. Π² RootConf).
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: www.habr.com