ΠΠ΅ Π³ΠΎ Π·Π°ΠΏΠΎΡΠ½Π΅ΠΌΠ΅ Π½Π°ΡΠΈΠΎΡ Π±Π»ΠΎΠ³ ΡΠΎ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ Π±Π°Π·ΠΈΡΠ°Π½ΠΈ Π½Π° Π½Π°ΡΠ½ΠΎΠ²ΠΈΡΠ΅ Π³ΠΎΠ²ΠΎΡΠΈ Π½Π° Π½Π°ΡΠΈΠΎΡ ΡΠ΅Ρ
Π½ΠΈΡΠΊΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡ
31 ΠΌΠ°Ρ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΡΠ΅Π½ΡΠΈΡΠ°ΡΠ°
ΠΠΊΠΎ ΠΈΠΌΠ°ΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎΡΡ Π΄Π° ΠΏΠΎΠΌΠΈΠ½Π΅ΡΠ΅ Π΅Π΄Π΅Π½ ΡΠ°Ρ
ΠΠΎΠ½ΡΠΈΠ½ΡΠΈΡΠ°Π½Π° ΠΈΡΠΏΠΎΡΠ°ΠΊΠ° ΡΠΎ Docker
ΠΠΎΠ΄ ΠΠΎΠ½ΡΠΈΠ½ΡΠΈΡΠ°Π½Π° ΠΈΡΠΏΠΎΡΠ°ΠΊΠ° Π³ΠΎ ΡΠ°Π·Π±ΠΈΡΠ°ΠΌΠ΅ ΡΠΈΠ½ΡΠΈΡΠΎΡ Π½Π° Π½Π°ΡΡΠ°Π½ΠΈ ΠΊΠ°ΠΊΠΎ ΡΠ΅Π·ΡΠ»ΡΠ°Ρ Π½Π° ΠΊΠΎΡ ΠΊΠΎΠ΄ΠΎΡ Π½Π° Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡΠ°ΡΠ° ΠΎΠ΄ ΡΠΊΠ»Π°Π΄ΠΈΡΡΠ΅ΡΠΎ Git ΠΏΡΠ²ΠΎ Π΄ΠΎΠ°ΡΠ° Π΄ΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²ΠΎ, Π° ΠΏΠΎΡΠΎΠ° Π·Π°Π²ΡΡΡΠ²Π° Π²ΠΎ Π°ΡΡ ΠΈΠ²Π°ΡΠ°. ΠΠ·Π³Π»Π΅Π΄Π° Π²Π°ΠΊΠ°: Git β Build β Test β Release β Operate.
ΠΠΎΠ³ΠΎΠ»Π΅ΠΌΠΈΠΎΡ Π΄Π΅Π» ΠΎΠ΄ ΠΈΠ·Π²Π΅ΡΡΠ°ΡΠΎΡ Π΅ ΠΏΠΎΡΠ²Π΅ΡΠ΅Π½ Π½Π° ΡΠ°Π·Π°ΡΠ° Π½Π° ΠΈΠ·Π³ΡΠ°Π΄Π±Π° (ΡΠΊΠ»ΠΎΠΏΡΠ²Π°ΡΠ΅ Π½Π° Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡΠ°ΡΠ°), Π° ΡΠ΅ΠΌΠΈΡΠ΅ Π·Π° ΠΎΠ±ΡΠ°Π²ΡΠ²Π°ΡΠ΅ ΠΈ ΡΡΠ½ΠΊΡΠΈΠΎΠ½ΠΈΡΠ°ΡΠ΅ ΡΠ΅ Π½Π°ΠΊΡΠ°ΡΠΊΠΎ Π΄ΠΎΠΏΡΠ΅Π½ΠΈ. ΠΠ΅ Π·Π±ΠΎΡΡΠ²Π°ΠΌΠ΅ Π·Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ ΠΈ ΠΎΠ±ΡΠ°ΡΡΠΈ ΠΊΠΎΠΈ Π²ΠΈ Π΄ΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°Π°Ρ Π΄Π° Π³ΠΈ ΡΠ΅ΡΠΈΡΠ΅, Π° ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΠΈΡΠ΅ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ Π½Π° ΠΎΠ²ΠΈΠ΅ ΠΎΠ±ΡΠ°ΡΡΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΠΈΠ΄Π°Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ.
ΠΠΎΡΡΠΎ Π²ΠΎΠΎΠΏΡΡΠΎ Π΅ ΠΏΠΎΡΡΠ΅Π±Π΅Π½ ΠΠΎΠΊΠ΅Ρ ΠΎΠ²Π΄Π΅? ΠΠ΅ Π·Π° ΡΠ°Π±Π΅ ΡΠ΅ΡΠΈΠ²ΠΌΠ΅ Π΄Π° Π·Π±ΠΎΡΡΠ²Π°ΠΌΠ΅ Π·Π° ΠΏΡΠ°ΠΊΡΠΈΠΊΠΈΡΠ΅ Π·Π° ΠΊΠΎΠ½ΡΠΈΠ½ΡΠΈΡΠ°Π½Π° ΠΈΡΠΏΠΎΡΠ°ΠΊΠ° Π²ΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ Π½Π° ΠΎΠ²Π°Π° Π°Π»Π°ΡΠΊΠ° ΡΠΎ ΠΎΡΠ²ΠΎΡΠ΅Π½ ΠΊΠΎΠ΄. ΠΠ°ΠΊΠΎ ΡΠ΅Π»ΠΈΠΎΡ ΠΈΠ·Π²Π΅ΡΡΠ°Ρ Π΅ ΠΏΠΎΡΠ²Π΅ΡΠ΅Π½ Π½Π° Π½Π΅Π³ΠΎΠ²Π°ΡΠ° ΡΠΏΠΎΡΡΠ΅Π±Π°, ΠΌΠ½ΠΎΠ³Ρ ΠΏΡΠΈΡΠΈΠ½ΠΈ ΡΠ΅ ΠΎΡΠΊΡΠΈΠ²Π°Π°Ρ ΠΊΠΎΠ³Π° ΡΠ΅ ΡΠ°Π·Π³Π»Π΅Π΄ΡΠ²Π° Π³Π»Π°Π²Π½ΠΈΠΎΡ ΠΎΠ±ΡΠ°Π·Π΅Ρ Π½Π° ΠΏΡΡΡΠ°ΡΠ΅ Π½Π° ΠΊΠΎΠ΄ΠΎΡ Π½Π° Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡΠ°ΡΠ°.
ΠΠ»Π°Π²Π½Π° ΡΠ΅ΠΌΠ° Π½Π° ΠΏΡΡΡΠ°ΡΠ΅
ΠΠ½Π°ΡΠΈ, ΠΊΠΎΠ³Π° ΡΠ΅ ΠΎΠ±ΡΠ°Π²ΠΈΠΌΠ΅ Π½ΠΎΠ²ΠΈ Π²Π΅ΡΠ·ΠΈΠΈ Π½Π° Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡΠ°ΡΠ°, ΡΠΈΠ³ΡΡΠ½ΠΎ ΡΠ΅ ΡΠ΅ ΡΠΎΠΎΡΠΈΠΌΠ΅ ΡΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌ ΡΠΎ Π·Π°ΡΡΠΎΡΠΎΡ, Π³Π΅Π½Π΅ΡΠΈΡΠ°Π½Π° ΠΏΡΠΈ ΠΏΡΠ΅ΡΡΠ»ΡΠ²Π°ΡΠ΅ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΠΈΠΎΡ ΡΠ΅ΡΠ²Π΅Ρ. Π‘ΠΎΠΎΠ±ΡΠ°ΡΠ°ΡΠΎΡ ΠΎΠ΄ ΡΡΠ°ΡΠ°ΡΠ° Π²Π΅ΡΠ·ΠΈΡΠ° Π½Π° Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡΠ°ΡΠ° Π½Π° Π½ΠΎΠ²Π°ΡΠ° Π½Π΅ ΠΌΠΎΠΆΠ΅ Π²Π΅Π΄Π½Π°Ρ Π΄Π° ΡΠ΅ ΠΏΡΠ΅ΡΡΠ»ΠΈ: ΠΏΡΠ²ΠΎ ΠΌΠΎΡΠ° Π΄Π° ΡΠ΅ ΡΠ²Π΅ΡΠΈΠΌΠ΅ Π΄Π΅ΠΊΠ° Π½ΠΎΠ²Π°ΡΠ° Π²Π΅ΡΠ·ΠΈΡΠ° Π½Π΅ ΡΠ°ΠΌΠΎ ΡΡΠΎ Π΅ ΡΡΠΏΠ΅ΡΠ½ΠΎ ΠΏΡΠ΅Π·Π΅ΠΌΠ΅Π½Π°, ΡΡΠΊΡ ΠΈ βΠ·Π°Π³ΡΠ΅Π°Π½Π°β (Ρ.Π΅. ΡΠ΅Π»ΠΎΡΠ½ΠΎ ΠΏΠΎΠ΄Π³ΠΎΡΠ²Π΅Π½Π° Π΄Π° ΠΎΠΏΡΠ»ΡΠΆΡΠ²Π° Π±Π°ΡΠ°ΡΠ°).
Π’Π°ΠΊΠ°, Π½Π΅ΠΊΠΎΠ΅ Π²ΡΠ΅ΠΌΠ΅ Π΄Π²Π΅ΡΠ΅ Π²Π΅ΡΠ·ΠΈΠΈ Π½Π° Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡΠ°ΡΠ° (ΡΡΠ°ΡΠ° ΠΈ Π½ΠΎΠ²Π°) ΡΠ΅ ΡΠ°Π±ΠΎΡΠ°Ρ ΠΈΡΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½ΠΎ. Π¨ΡΠΎ Π°Π²ΡΠΎΠΌΠ°ΡΡΠΊΠΈ Π²ΠΎΠ΄ΠΈ Π΄ΠΎ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡ Π½Π° ΡΠΏΠΎΠ΄Π΅Π»Π΅Π½ΠΈ ΡΠ΅ΡΡΡΡΠΈ: ΠΌΡΠ΅ΠΆΠ°, Π΄Π°ΡΠΎΡΠ΅ΡΠ΅Π½ ΡΠΈΡΡΠ΅ΠΌ, IPC, ΠΈΡΠ½. Π‘ΠΎ Docker, ΠΎΠ²ΠΎΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ Π»Π΅ΡΠ½ΠΎ ΡΠ΅ ΡΠ΅ΡΠ°Π²Π° ΡΠΎ ΠΈΠ·Π²ΡΡΡΠ²Π°ΡΠ΅ Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π²Π΅ΡΠ·ΠΈΠΈ Π½Π° Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡΠ°ΡΠ° Π²ΠΎ ΠΏΠΎΡΠ΅Π±Π½ΠΈ ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΠΈ, Π·Π° ΠΊΠΎΠΈ ΠΈΠ·ΠΎΠ»Π°ΡΠΈΡΠ°ΡΠ° Π½Π° ΡΠ΅ΡΡΡΡΠΈΡΠ΅ Π΅ Π·Π°Π³Π°ΡΠ°Π½ΡΠΈΡΠ°Π½Π° Π²ΠΎ ΠΈΡΡΠΈΠΎΡ Ρ
ΠΎΡΡ (ΡΠ΅ΡΠ²Π΅Ρ/Π²ΠΈΡΡΡΠ΅Π»Π½Π° ΠΌΠ°ΡΠΈΠ½Π°). Π‘Π΅ ΡΠ°Π·Π±ΠΈΡΠ°, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΏΠΎΠΌΠΈΠ½Π΅ΡΠ΅ ΡΠΎ Π½Π΅ΠΊΠΎΠΈ ΡΡΠΈΠΊΠΎΠ²ΠΈ Π±Π΅Π· Π²ΠΎΠΎΠΏΡΡΠΎ ΠΈΠ·ΠΎΠ»Π°ΡΠΈΡΠ°, Π½ΠΎ Π°ΠΊΠΎ ΠΏΠΎΡΡΠΎΠΈ Π³ΠΎΡΠΎΠ²Π° ΠΈ ΡΠ΄ΠΎΠ±Π½Π° Π°Π»Π°ΡΠΊΠ°, ΡΠΎΠ³Π°Ρ ΠΏΠΎΡΡΠΎΠΈ ΡΠΏΡΠΎΡΠΈΠ²Π½Π° ΠΏΡΠΈΡΠΈΠ½Π° - Π΄Π° Π½Π΅ ΡΠ° Π·Π°Π½Π΅ΠΌΠ°ΡΠΈΡΠ΅.
ΠΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΠΈΠ·Π°ΡΠΈΡΠ°ΡΠ° ΠΎΠ±Π΅Π·Π±Π΅Π΄ΡΠ²Π° ΠΌΠ½ΠΎΠ³Ρ Π΄ΡΡΠ³ΠΈ ΠΏΡΠΈΠ΄ΠΎΠ±ΠΈΠ²ΠΊΠΈ ΠΊΠΎΠ³Π° ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠΈ. Π‘Π΅ΠΊΠΎΡΠ° Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡΠ° Π·Π°Π²ΠΈΡΠΈ ΠΎΠ΄ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½Π° Π²Π΅ΡΠ·ΠΈΡΠ° (ΠΈΠ»ΠΈ ΠΎΠΏΡΠ΅Π³ Π½Π° Π²Π΅ΡΠ·ΠΈΠΈ) ΠΏΡΠ΅Π²Π΅Π΄ΡΠ²Π°Ρ, Π΄ΠΎΡΡΠ°ΠΏΠ½ΠΎΡΡ Π½Π° ΠΌΠΎΠ΄ΡΠ»ΠΈ/Π΅ΠΊΡΡΠ΅Π½Π·ΠΈΠΈ ΠΈΡΠ½., ΠΊΠ°ΠΊΠΎ ΠΈ Π½ΠΈΠ²Π½ΠΈΡΠ΅ Π²Π΅ΡΠ·ΠΈΠΈ. Π ΠΎΠ²Π° ΡΠ΅ ΠΎΠ΄Π½Π΅ΡΡΠ²Π° Π½Π΅ ΡΠ°ΠΌΠΎ Π½Π° Π½Π΅ΠΏΠΎΡΡΠ΅Π΄Π½Π°ΡΠ° ΠΈΠ·Π²ΡΡΠ½Π° ΠΎΠΊΠΎΠ»ΠΈΠ½Π°, ΡΡΠΊΡ ΠΈ Π½Π° ΡΠ΅Π»Π°ΡΠ° ΠΎΠΊΠΎΠ»ΠΈΠ½Π°, Π²ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ ΠΈ ΡΠΈΡΡΠ΅ΠΌΡΠΊΠΈ ΡΠΎΡΡΠ²Π΅Ρ ΠΈ Π½Π΅Π³ΠΎΠ²Π°ΡΠ° Π²Π΅ΡΠ·ΠΈΡΠ° (Π΄ΠΎ ΠΊΠΎΡΠΈΡΡΠ΅Π½Π°ΡΠ° Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΡΠ° Π½Π° Linux). ΠΠΎΡΠ°Π΄ΠΈ ΡΠ°ΠΊΡΠΎΡ ΡΡΠΎ ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΠΈΡΠ΅ ΡΠΎΠ΄ΡΠΆΠ°Ρ Π½Π΅ ΡΠ°ΠΌΠΎ ΠΊΠΎΠ΄ Π·Π° Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡΠ°, ΡΡΠΊΡ ΠΈ ΠΏΡΠ΅ΡΡ ΠΎΠ΄Π½ΠΎ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½ ΡΠΈΡΡΠ΅ΠΌΡΠΊΠΈ ΠΈ Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠ²Π΅Π½ ΡΠΎΡΡΠ²Π΅Ρ Π½Π° ΠΏΠΎΡΡΠ΅Π±Π½ΠΈΡΠ΅ Π²Π΅ΡΠ·ΠΈΠΈ, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π·Π°Π±ΠΎΡΠ°Π²ΠΈΡΠ΅ Π½Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈΡΠ΅ ΡΠΎ Π·Π°Π²ΠΈΡΠ½ΠΎΡΡΠΈΡΠ΅.
ΠΠ° Π³Π΅Π½Π΅ΡΠ°Π»ΠΈΠ·ΠΈΡΠ°ΠΌΠ΅ ΡΠ°Π±Π»ΠΎΠ½ Π·Π° Π³Π»Π°Π²Π½Π° ΠΏΡΡΡΠ°ΡΠ΅ Π½ΠΎΠ²ΠΈ Π²Π΅ΡΠ·ΠΈΠΈ Π·Π΅ΠΌΠ°ΡΡΠΈ Π³ΠΈ ΠΏΡΠ΅Π΄Π²ΠΈΠ΄ ΡΠ»Π΅Π΄Π½ΠΈΡΠ΅ ΡΠ°ΠΊΡΠΎΡΠΈ:
- ΠΡΠΏΡΠ²ΠΈΠ½, ΡΡΠ°ΡΠ°ΡΠ° Π²Π΅ΡΠ·ΠΈΡΠ° Π½Π° Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡΠ°ΡΠ° ΡΠ°Π±ΠΎΡΠΈ Π²ΠΎ ΠΏΡΠ²ΠΈΠΎΡ ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅Ρ.
- ΠΠΎΠ²Π°ΡΠ° Π²Π΅ΡΠ·ΠΈΡΠ° ΠΏΠΎΡΠΎΠ° ΡΠ΅ Π²Π°Π»Π° ΠΈ ΡΠ΅ βΠ·Π°Π³ΡΠ΅Π²Π°β Π²ΠΎ Π²ΡΠΎΡ ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅Ρ. ΠΡΠ΅Π΄ΠΈ Π΄Π° ΡΠ΅ ΠΎΠ΄Π±Π΅Π»Π΅ΠΆΠΈ Π΄Π΅ΠΊΠ° ΡΠ°ΠΌΠ°ΡΠ° ΠΎΠ²Π°Π° Π½ΠΎΠ²Π° Π²Π΅ΡΠ·ΠΈΡΠ° ΠΌΠΎΠΆΠ΅ Π΄Π° Π½ΠΎΡΠΈ Π½Π΅ ΡΠ°ΠΌΠΎ Π°ΠΆΡΡΠΈΡΠ°Π½ ΠΊΠΎΠ΄ Π½Π° Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡΠ°ΡΠ°, ΡΡΠΊΡ ΠΈ ΠΊΠΎΡΠ° Π±ΠΈΠ»ΠΎ Π½Π΅ΡΠ·ΠΈΠ½Π° Π·Π°Π²ΠΈΡΠ½ΠΎΡΡ, ΠΊΠ°ΠΊΠΎ ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠΎΡ (Π½Π° ΠΏΡΠΈΠΌΠ΅Ρ, Π½ΠΎΠ²Π° Π²Π΅ΡΠ·ΠΈΡΠ° Π½Π° OpenSSL ΠΈΠ»ΠΈ ΡΠ΅Π»Π°ΡΠ° Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΡΠ°).
- ΠΠΎΠ³Π° Π½ΠΎΠ²Π°ΡΠ° Π²Π΅ΡΠ·ΠΈΡΠ° Π΅ ΡΠ΅Π»ΠΎΡΠ½ΠΎ ΠΏΠΎΠ΄Π³ΠΎΡΠ²Π΅Π½Π° Π΄Π° ΠΎΠΏΡΠ»ΡΠΆΡΠ²Π° Π±Π°ΡΠ°ΡΠ°, ΡΠΎΠΎΠ±ΡΠ°ΡΠ°ΡΠΎΡ ΡΠ΅ ΠΏΡΠ΅ΡΡΠ»Π° ΠΎΠ΄ ΠΏΡΠ²ΠΈΠΎΡ ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅Ρ Π½Π° Π²ΡΠΎΡΠΈΠΎΡ.
- Π‘ΡΠ°ΡΠ°ΡΠ° Π²Π΅ΡΠ·ΠΈΡΠ° ΡΠ΅Π³Π° ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ Π·Π°ΠΏΡΠ΅.
ΠΠ²ΠΎΡ ΠΏΡΠΈΡΡΠ°ΠΏ Π½Π° ΡΠ°ΡΠΏΠΎΡΠ΅Π΄ΡΠ²Π°ΡΠ΅ Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π²Π΅ΡΠ·ΠΈΠΈ Π½Π° Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡΠ°ΡΠ° Π²ΠΎ ΠΏΠΎΡΠ΅Π±Π½ΠΈ ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΠΈ ΠΎΠ±Π΅Π·Π±Π΅Π΄ΡΠ²Π° ΡΡΡΠ΅ Π΅Π΄Π½Π° ΠΏΠΎΠ³ΠΎΠ΄Π½ΠΎΡΡ - Π±ΡΠ·ΠΎ Π²ΡΠ°ΡΠ°ΡΠ΅ Π½Π°Π·Π°Π΄ Π½Π° ΡΡΠ°ΡΠ°ΡΠ° Π²Π΅ΡΠ·ΠΈΡΠ° (Π½Π° ΠΊΡΠ°ΡΠΎΡ Π½Π° ΠΊΡΠ°ΠΈΡΡΠ°ΡΠ°, Π΄ΠΎΠ²ΠΎΠ»Π½ΠΎ Π΅ Π΄Π° Π³ΠΎ ΠΏΡΠ΅ΡΡΠ»ΠΈΡΠ΅ ΡΠΎΠΎΠ±ΡΠ°ΡΠ°ΡΠΎΡ Π²ΠΎ ΡΠ°ΠΊΠ°Π½ΠΈΠΎΡ ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅Ρ).
ΠΠΎΡΠ»Π΅Π΄Π½Π°ΡΠ° ΠΏΡΠ²Π° ΠΏΡΠ΅ΠΏΠΎΡΠ°ΠΊΠ° Π·Π²ΡΡΠΈ ΠΊΠ°ΠΊΠΎ Π½Π΅ΡΡΠΎ Π½Π° ΡΡΠΎ Π΄ΡΡΠΈ Π½ΠΈ ΠΊΠ°ΠΏΠ΅ΡΠ°Π½ΠΎΡ Π½Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΌΡ Π·Π°ΠΌΠ΅ΡΠΈ: β[ΠΏΡΠΈ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΈΡΠ°ΡΠ΅ Π½Π° ΠΊΠΎΠ½ΡΠΈΠ½ΡΠΈΡΠ°Π½Π° ΠΈΡΠΏΠΎΡΠ°ΠΊΠ° ΡΠΎ Docker] ΠΠΎΡΠΈΡΡΠ΅ΡΠ΅ Docker [ΠΈ ΡΠ°Π·Π±Π΅ΡΠ΅ΡΠ΅ ΡΡΠΎ Π΄Π°Π²Π° ΡΠΎΠ°]" ΠΠ°ΠΏΠΎΠΌΠ½Π΅ΡΠ΅, ΠΎΠ²Π° Π½Π΅ Π΅ ΡΡΠ΅Π±ΡΠ΅Π½ ΠΊΡΡΡΡΠΌ ΡΡΠΎ ΡΠ΅ Π³ΠΎ ΡΠ΅ΡΠΈ ΡΠ΅ΠΊΠΎΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ, ΡΡΠΊΡ Π°Π»Π°ΡΠΊΠ° ΠΊΠΎΡΠ° ΠΎΠ±Π΅Π·Π±Π΅Π΄ΡΠ²Π° ΠΏΡΠ΅ΠΊΡΠ°ΡΠ½Π° ΠΎΡΠ½ΠΎΠ²Π°.
Π Π΅ΠΏΡΠΎΠ΄ΡΠΊΡΠΈΠ²Π½ΠΎΡΡ
ΠΠΎΠ΄ βΡΠ΅ΠΏΡΠΎΠ΄ΡΠΊΡΠΈΠ²Π½ΠΎΡΡβ ΠΌΠΈΡΠ»ΠΈΠΌΠ΅ Π½Π° Π³Π΅Π½Π΅ΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ ΡΠ΅Ρ Π½Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ ΡΡΠΎ ΡΠ΅ ΡΡΠ΅ΡΠ°Π²Π°Π°Ρ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ° ΡΠΎ Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠΈ. ΠΠ±ΠΎΡΡΠ²Π°ΠΌΠ΅ Π·Π° ΡΠ°ΠΊΠ²ΠΈ ΡΠ»ΡΡΠ°ΠΈ:
- Π‘ΠΊΡΠΈΠΏΡΠΈΡΠ΅ ΠΏΡΠΎΠ²Π΅ΡΠ΅Π½ΠΈ ΠΎΠ΄ ΠΎΠ΄Π΄Π΅Π»ΠΎΡ Π·Π° ΠΊΠ²Π°Π»ΠΈΡΠ΅Ρ Π·Π° ΠΈΠ½ΡΡΠ΅Π½ΠΈΡΠ°ΡΠ΅ ΠΌΠΎΡΠ° ΠΏΡΠ΅ΡΠΈΠ·Π½ΠΎ Π΄Π° ΡΠ΅ ΡΠ΅ΠΏΡΠΎΠ΄ΡΡΠΈΡΠ°Π°Ρ Π²ΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²ΠΎΡΠΎ.
- ΠΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠΈΡΠ΅ ΡΠ΅ ΠΎΠ±ΡΠ°Π²ΡΠ²Π°Π°Ρ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠΈ ΠΊΠΎΠΈ ΠΌΠΎΠΆΠ°Ρ Π΄Π° ΠΏΡΠΈΠΌΠ°Π°Ρ ΠΏΠ°ΠΊΠ΅ΡΠΈ ΠΎΠ΄ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΎΠ³Π»Π΅Π΄Π°Π»Π° Π½Π° ΡΠΊΠ»Π°Π΄ΠΈΡΡΠ΅ΡΠΎ (ΡΠΎ ΡΠ΅ΠΊΠΎΡ Π½Π° Π²ΡΠ΅ΠΌΠ΅ΡΠΎ ΡΠΈΠ΅ ΡΠ΅ Π°ΠΆΡΡΠΈΡΠ°Π°Ρ, Π° ΡΠΎ Π½ΠΈΠ² ΠΈ Π²Π΅ΡΠ·ΠΈΠΈΡΠ΅ Π½Π° ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½ΠΈΡΠ΅ Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠΈ).
- βΠ‘Γ¨ ΡΠ°Π±ΠΎΡΠΈ Π·Π° ΠΌΠ΅Π½Π΅ Π»ΠΎΠΊΠ°Π»Π½ΠΎ! (...ΠΈ Π½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ΅ΡΠΈΡΠ΅ Π½Π΅ ΠΈΠΌ Π΅ Π΄ΠΎΠ·Π²ΠΎΠ»Π΅Π½ΠΎ Π΄Π° ΡΠ΅ ΠΏΡΠΎΠΈΠ·Π²Π΅Π΄ΡΠ²Π°Π°Ρ.)
- Π’ΡΠ΅Π±Π° Π΄Π° ΠΏΡΠΎΠ²Π΅ΡΠΈΡΠ΅ Π½Π΅ΡΡΠΎ Π²ΠΎ ΡΡΠ°ΡΠ°ΡΠ° (Π°ΡΡ ΠΈΠ²ΠΈΡΠ°Π½Π°) Π²Π΅ΡΠ·ΠΈΡΠ°.
- ...
ΠΠΈΠ²Π½Π°ΡΠ° ΠΎΠΏΡΡΠ° ΡΡΡΡΠΈΠ½Π° ΡΠ΅ ΡΠ²Π΅Π΄ΡΠ²Π° Π½Π° ΡΠ°ΠΊΡΠΎΡ Π΄Π΅ΠΊΠ° Π΅ Π½Π΅ΠΎΠΏΡ ΠΎΠ΄Π½Π° ΡΠ΅Π»ΠΎΡΠ½Π° ΡΡΠΎΠ³Π»Π°ΡΠ΅Π½ΠΎΡΡ Π½Π° ΡΠΏΠΎΡΡΠ΅Π±Π΅Π½ΠΈΡΠ΅ ΡΡΠ΅Π΄ΠΈΠ½ΠΈ (ΠΊΠ°ΠΊΠΎ ΠΈ ΠΎΡΡΡΡΡΠ²ΠΎΡΠΎ Π½Π° ΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΠ°ΠΊΡΠΎΡ). ΠΠ°ΠΊΠΎ ΠΌΠΎΠΆΠ΅ΠΌΠ΅ Π΄Π° Π³Π°ΡΠ°Π½ΡΠΈΡΠ°ΠΌΠ΅ ΡΠ΅ΠΏΡΠΎΠ΄ΡΠΊΡΠΈΠ²Π½ΠΎΡΡ? ΠΠ°ΠΏΡΠ°Π²Π΅ΡΠ΅ Docker ΡΠ»ΠΈΠΊΠΈ Π²ΡΠ· ΠΎΡΠ½ΠΎΠ²Π° Π½Π° ΠΊΠΎΠ΄ ΠΎΠ΄ Git, Π° ΠΏΠΎΡΠΎΠ° ΠΊΠΎΡΠΈΡΡΠ΅ΡΠ΅ Π³ΠΈ Π·Π° ΠΊΠΎΡΠ° Π±ΠΈΠ»ΠΎ Π·Π°Π΄Π°ΡΠ°: Π½Π° ΡΠ΅ΡΡ ΠΌΠ΅ΡΡΠ°, Π²ΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²ΠΎ, Π½Π° Π»ΠΎΠΊΠ°Π»Π½ΠΈ ΠΌΠ°ΡΠΈΠ½ΠΈ Π½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ΅ΡΠΈ... ΠΡΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½ΠΎ, Π²Π°ΠΆΠ½ΠΎ Π΅ Π΄Π° ΡΠ΅ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡΠ°Π°Ρ Π΄Π΅ΡΡΡΠ²Π°ΡΠ° ΡΡΠΎ ΡΠ΅ ΠΈΠ·Π²Π΅Π΄ΡΠ²Π°Π°Ρ ΠΏΠΎ ΡΠΊΠ»ΠΎΠΏΡΠ²Π°ΡΠ΅ Π½Π° ΡΠ»ΠΈΠΊΠ°ΡΠ°: ΠΊΠΎΠ»ΠΊΡ Π΅ ΠΏΠΎΠ΅Π΄Π½ΠΎΡΡΠ°Π²Π½ΠΎ, ΡΠΎΠ»ΠΊΡ Π΅ ΠΏΠΎΠΌΠ°Π»Π° Π²Π΅ΡΠΎΡΠ°ΡΠ½ΠΎΡΡΠ° Π΄Π° ΠΈΠΌΠ° Π³ΡΠ΅ΡΠΊΠΈ.
ΠΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ°ΡΠ° Π΅ ΠΊΠΎΠ΄
ΠΠΊΠΎ Π±Π°ΡΠ°ΡΠ°ΡΠ° Π·Π° ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ° (Π΄ΠΎΡΡΠ°ΠΏΠ½ΠΎΡΡ Π½Π° ΡΠΎΡΡΠ²Π΅Ρ Π·Π° ΡΠ΅ΡΠ²Π΅Ρ, Π½Π΅Π³ΠΎΠ²Π°ΡΠ° Π²Π΅ΡΠ·ΠΈΡΠ° ΠΈΡΠ½.) Π½Π΅ ΡΠ΅ ΡΠΎΡΠΌΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ ΠΈ βΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΠ°Π½ΠΈβ, ΡΠΎΠ³Π°Ρ ΠΎΠ±ΡΠ°Π²ΡΠ²Π°ΡΠ΅ΡΠΎ Π½Π° ΠΊΠΎΠ΅ Π±ΠΈΠ»ΠΎ Π°ΠΆΡΡΠΈΡΠ°ΡΠ΅ Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡΠ° ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅Π·ΡΠ»ΡΠΈΡΠ° ΡΠΎ ΠΊΠ°ΡΠ°ΡΡΡΠΎΡΠ°Π»Π½ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΠΈΡΠΈ. ΠΠ° ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠΈ ΠΈΠ½ΡΡΠ΅Π½ΠΈΡΠ°ΡΠ΅ΡΠΎ Π²Π΅ΡΠ΅ ΡΡΠ΅ ΡΠ΅ ΠΏΡΠ΅ΡΡΠ»ΠΈΠ»Π΅ Π½Π° PHP 7.0 ΠΈ ΡΠΎΠΎΠ΄Π²Π΅ΡΠ½ΠΎ ΡΡΠ΅ Π³ΠΎ ΠΏΡΠ΅ΡΠ°Π±ΠΎΡΠΈΠ»Π΅ ΠΊΠΎΠ΄ΠΎΡ - ΡΠΎΠ³Π°Ρ Π½Π΅Π³ΠΎΠ²ΠΎΡΠΎ ΠΏΠΎΡΠ°Π²ΡΠ²Π°ΡΠ΅ Π²ΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²ΠΎ ΡΠΎ Π½Π΅ΠΊΠΎΡ ΡΡΠ°Ρ PHP (5.5) ΡΠΈΠ³ΡΡΠ½ΠΎ ΡΠ΅ ΠΈΠ·Π½Π΅Π½Π°Π΄ΠΈ Π½Π΅ΠΊΠΎΠ³ΠΎ. ΠΠΎΠΆΠ΅Π±ΠΈ Π½Π΅ΠΌΠ° Π΄Π° Π·Π°Π±ΠΎΡΠ°Π²ΠΈΡΠ΅ Π½Π° Π³ΠΎΠ»Π΅ΠΌΠ° ΠΏΡΠΎΠΌΠ΅Π½Π° Π²ΠΎ Π²Π΅ΡΠ·ΠΈΡΠ°ΡΠ° Π½Π° ΠΏΡΠ΅Π²Π΅Π΄ΡΠ²Π°ΡΠΎΡ, Π½ΠΎ βΡΠ°Π²ΠΎΠ»ΠΎΡ Π΅ Π²ΠΎ Π΄Π΅ΡΠ°Π»ΠΈΡΠ΅β: ΠΈΠ·Π½Π΅Π½Π°Π΄ΡΠ²Π°ΡΠ΅ΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΠΈΠ΄Π΅ Π²ΠΎ ΠΌΠ°Π»ΠΎ Π°ΠΆΡΡΠΈΡΠ°ΡΠ΅ Π½Π° ΠΊΠ°ΠΊΠ²Π° Π±ΠΈΠ»ΠΎ Π·Π°Π²ΠΈΡΠ½ΠΎΡΡ.
ΠΡΠΈΡΡΠ°ΠΏ Π·Π° ΡΠ΅ΡΠ°Π²Π°ΡΠ΅ Π½Π° ΠΎΠ²ΠΎΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ Π΅ ΠΏΠΎΠ·Π½Π°Ρ ΠΊΠ°ΠΊΠΎ IaC (ΠΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ° ΠΊΠ°ΠΊΠΎ ΠΊΠΎΠ΄, βΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ° ΠΊΠ°ΠΊΠΎ ΠΊΠΎΠ΄β) ΠΈ Π²ΠΊΠ»ΡΡΡΠ²Π° ΡΠΊΠ»Π°Π΄ΠΈΡΠ°ΡΠ΅ Π½Π° Π±Π°ΡΠ°ΡΠ°ΡΠ° Π·Π° ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ° Π·Π°Π΅Π΄Π½ΠΎ ΡΠΎ ΠΊΠΎΠ΄ΠΎΡ Π½Π° Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡΠ°ΡΠ°. ΠΠΎΡΠΈΡΡΠ΅ΡΡΠΈ Π³ΠΎ, ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ΅ΡΠΈΡΠ΅ ΠΈ ΡΠΏΠ΅ΡΠΈΡΠ°Π»ΠΈΡΡΠΈΡΠ΅ Π·Π° DevOps ΠΌΠΎΠΆΠ°Ρ Π΄Π° ΡΠ°Π±ΠΎΡΠ°Ρ ΡΠΎ ΠΈΡΡΠΎΡΠΎ ΡΠΊΠ»Π°Π΄ΠΈΡΡΠ΅ Π·Π° Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠΈ Git, Π½ΠΎ Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π΄Π΅Π»ΠΎΠ²ΠΈ ΠΎΠ΄ Π½Π΅Π³ΠΎ. ΠΠ΄ ΠΎΠ²ΠΎΡ ΠΊΠΎΠ΄, Π²ΠΎ Git ΡΠ΅ ΠΊΡΠ΅ΠΈΡΠ° ΡΠ»ΠΈΠΊΠ° Π½Π° Docker, Π²ΠΎ ΠΊΠΎΡΠ° Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡΠ°ΡΠ° Π΅ ΡΠ°ΡΠΏΠΎΡΠ΅Π΄Π΅Π½Π° Π·Π΅ΠΌΠ°ΡΡΠΈ Π³ΠΈ ΠΏΡΠ΅Π΄Π²ΠΈΠ΄ ΡΠΈΡΠ΅ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠΈ Π½Π° ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ°ΡΠ°. ΠΠ΄Π½ΠΎΡΡΠ°Π²Π½ΠΎ ΠΊΠ°ΠΆΠ°Π½ΠΎ, ΡΠΊΡΠΈΠΏΡΠΈΡΠ΅ (ΠΏΡΠ°Π²ΠΈΠ»Π°ΡΠ°) Π·Π° ΡΠΎΡΡΠ°Π²ΡΠ²Π°ΡΠ΅ ΡΠ»ΠΈΠΊΠΈ ΡΡΠ΅Π±Π° Π΄Π° Π±ΠΈΠ΄Π°Ρ Π²ΠΎ ΠΈΡΡΠΎ ΡΠΊΠ»Π°Π΄ΠΈΡΡΠ΅ ΡΠΎ ΠΈΠ·Π²ΠΎΡΠ½ΠΈΠΎΡ ΠΊΠΎΠ΄ ΠΈ Π΄Π° ΡΠ΅ ΡΠΏΠΎΡΠ°Ρ Π·Π°Π΅Π΄Π½ΠΎ.
ΠΠΎ ΡΠ»ΡΡΠ°Ρ Π½Π° ΠΏΠΎΠ²Π΅ΡΠ΅ΡΠ»ΠΎΡΠ½Π° Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΠ° Π½Π° Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠΈ - Π½Π° ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠΎΡΡΠΎΠΈ nginx, ΠΊΠΎΡΠ° ΡΡΠΎΠΈ ΠΏΡΠ΅Π΄ Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡΠ° ΠΊΠΎΡΠ° Π²Π΅ΡΠ΅ ΡΠ°Π±ΠΎΡΠΈ Π²ΠΎ ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅Ρ Π½Π° Docker - Docker ΡΠ»ΠΈΠΊΠΈΡΠ΅ ΠΌΠΎΡΠ° Π΄Π° ΡΠ΅ ΠΊΡΠ΅ΠΈΡΠ°Π°Ρ ΠΎΠ΄ ΠΊΠΎΠ΄ΠΎΡ Π²ΠΎ Git Π·Π° ΡΠ΅ΠΊΠΎΡ ΡΠ»ΠΎΡ. Π’ΠΎΠ³Π°Ρ ΠΏΡΠ²Π°ΡΠ° ΡΠ»ΠΈΠΊΠ° ΡΠ΅ ΡΠΎΠ΄ΡΠΆΠΈ Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡΠ° ΡΠΎ ΠΏΡΠ΅Π²Π΅Π΄ΡΠ²Π°Ρ ΠΈ Π΄ΡΡΠ³ΠΈ βΠ±Π»ΠΈΡΠΊΠΈβ Π·Π°Π²ΠΈΡΠ½ΠΎΡΡΠΈ, Π° Π²ΡΠΎΡΠ°ΡΠ° ΡΠ»ΠΈΠΊΠ° ΡΠ΅ Π³ΠΎ ΡΠΎΠ΄ΡΠΆΠΈ upstream nginx.
ΠΠΎΠΊΠ΅Ρ ΡΠ»ΠΈΠΊΠΈ, ΠΊΠΎΠΌΡΠ½ΠΈΠΊΠ°ΡΠΈΡΠ° ΡΠΎ Git
Π‘ΠΈΡΠ΅ ΡΠ»ΠΈΠΊΠΈ Π½Π° Docker ΡΠΎΠ±ΡΠ°Π½ΠΈ ΠΎΠ΄ Git Π³ΠΈ Π΄Π΅Π»ΠΈΠΌΠ΅ Π²ΠΎ Π΄Π²Π΅ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ: ΠΏΡΠΈΠ²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΈ ΠΏΡΡΡΠ΅Π½ΠΈ. ΠΡΠΈΠ²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΡΠ»ΠΈΠΊΠΈ ΠΎΠ·Π½Π°ΡΠ΅Π½ΠΈ ΡΠΎ ΠΈΠΌΠ΅ΡΠΎ Π½Π° Π³ΡΠ°Π½ΠΊΠ°ΡΠ° Π²ΠΎ Git, ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΏΡΠ΅Π±ΡΠΈΡΠ°Ρ ΠΎΠ΄ ΡΠ»Π΅Π΄Π½ΠΈΠΎΡ commit ΠΈ ΡΠ΅ ΠΏΡΡΡΠ°Π°Ρ ΡΠ°ΠΌΠΎ Π·Π° ΠΏΡΠ΅Π³Π»Π΅Π΄ (Π½Π΅ Π·Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²ΠΎ). ΠΠ²Π° Π΅ Π½ΠΈΠ²Π½Π°ΡΠ° ΠΊΠ»ΡΡΠ½Π° ΡΠ°Π·Π»ΠΈΠΊΠ° ΠΎΠ΄ ΠΎΠ½ΠΈΠ΅ Π·Π° ΠΎΡΠ»ΠΎΠ±ΠΎΠ΄ΡΠ²Π°ΡΠ΅: Π½ΠΈΠΊΠΎΠ³Π°Ρ Π½Π΅ Π·Π½Π°Π΅ΡΠ΅ ΠΊΠΎΡΠ° ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½Π° ΠΎΠ±Π²ΡΡΠΊΠ° Π΅ Π²ΠΎ Π½ΠΈΠ².
ΠΠΌΠ° ΡΠΌΠΈΡΠ»Π° Π΄Π° ΡΠ΅ ΡΠΎΠ±ΠΈΡΠ°Π°Ρ Π²ΠΎ ΠΏΡΠΈΠ²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΡΠ»ΠΈΠΊΠΈ: Π³Π»Π°Π²Π½Π°ΡΠ° Π³ΡΠ°Π½ΠΊΠ° (ΠΌΠΎΠΆΠ΅ΡΠ΅ Π°Π²ΡΠΎΠΌΠ°ΡΡΠΊΠΈ Π΄Π° ΡΠ° ΠΏΡΠ΅ΡΡΠ»ΠΈΡΠ΅ Π½Π° ΠΏΠΎΡΠ΅Π±Π½Π° Π»ΠΎΠΊΠ°ΡΠΈΡΠ° Π·Π° ΠΏΠΎΡΡΠΎΡΠ°Π½ΠΎ Π΄Π° ΡΠ° Π³Π»Π΅Π΄Π°ΡΠ΅ ΡΠ΅ΠΊΠΎΠ²Π½Π°ΡΠ° Π²Π΅ΡΠ·ΠΈΡΠ° Π½Π° ΠΌΠ°ΡΡΠ΅Ρ), Π³ΡΠ°Π½ΠΊΠΈ ΡΠΎ ΠΈΠ·Π΄Π°Π½ΠΈΡΠ°, Π³ΡΠ°Π½ΠΊΠΈ Π½Π° ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΠΈ ΠΈΠ½ΠΎΠ²Π°ΡΠΈΠΈ.
ΠΡΠΊΠ°ΠΊΠΎ ΠΏΡΠ΅Π³Π»Π΅Π΄ΠΎΡ Π½Π° ΠΏΡΠΈΠ²ΡΠ΅ΠΌΠ΅Π½ΠΈΡΠ΅ ΡΠ»ΠΈΠΊΠΈ Π΄ΠΎΡΠ΄Π΅ Π΄ΠΎ ΠΏΠΎΡΡΠ΅Π±Π°ΡΠ° Π·Π° ΠΏΡΠ΅Π²Π΅Π΄ΡΠ²Π°ΡΠ΅ Π²ΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²ΠΎ, ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ΅ΡΠΈΡΠ΅ ΡΡΠ°Π²Π°Π°Ρ ΠΎΠ΄ΡΠ΅Π΄Π΅Π½Π° ΠΎΠ·Π½Π°ΠΊΠ°. ΠΠ²ΡΠΎΠΌΠ°ΡΡΠΊΠΈ ΡΠ΅ ΡΠΎΠ±ΠΈΡΠ° ΠΏΠΎ ΠΎΠ·Π½Π°ΠΊΠ° ΠΎΡΠ»ΠΎΠ±ΠΎΠ΄ΠΈ ΡΠ»ΠΈΠΊΠ° (Π½Π΅ΡΠ·ΠΈΠ½Π°ΡΠ° ΠΎΠ·Π½Π°ΠΊΠ° ΠΊΠΎΡΠ΅ΡΠΏΠΎΠ½Π΄ΠΈΡΠ° ΡΠΎ ΠΎΠ·Π½Π°ΠΊΠ°ΡΠ° ΠΎΠ΄ Git) ΠΈ Π΅ ΠΏΡΠ΅ΡΡΠ»Π΅Π½Π° Π½Π° ΡΡΠ΅Π½Π°. ΠΠΊΠΎ Π΅ ΡΡΠΏΠ΅ΡΠ½ΠΎ Π²Π΅ΡΠΈΡΠΈΠΊΡΠ²Π°Π½ ΠΎΠ΄ ΠΎΠ΄Π΄Π΅Π»ΠΎΡ Π·Π° ΠΊΠ²Π°Π»ΠΈΡΠ΅Ρ, ΡΠΎΡ ΠΎΠ΄ΠΈ Π²ΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²ΠΎ.
Π΄Π°ΠΏ
Π‘Γ¨ ΡΡΠΎ Π΅ ΠΎΠΏΠΈΡΠ°Π½ΠΎ (ΡΠ°ΡΠΏΠΎΡΠ΅Π΄ΡΠ²Π°ΡΠ΅, ΡΠΊΠ»ΠΎΠΏΡΠ²Π°ΡΠ΅ ΡΠ»ΠΈΠΊΠΈ, ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π½ΠΎ ΠΎΠ΄ΡΠΆΡΠ²Π°ΡΠ΅) ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠΈΡΠ° Π½Π΅Π·Π°Π²ΠΈΡΠ½ΠΎ ΡΠΎ ΠΊΠΎΡΠΈΡΡΠ΅ΡΠ΅ Π½Π° Bash ΡΠΊΡΠΈΠΏΡΠΈ ΠΈ Π΄ΡΡΠ³ΠΈ βΠΈΠΌΠΏΡΠΎΠ²ΠΈΠ·ΠΈΡΠ°Π½ΠΈβ Π°Π»Π°ΡΠΊΠΈ. ΠΠΎ, Π°ΠΊΠΎ Π³ΠΎ Π½Π°ΠΏΡΠ°Π²ΠΈΡΠ΅ ΠΎΠ²Π°, ΡΠΎΠ³Π°Ρ Π²ΠΎ ΠΎΠ΄ΡΠ΅Π΄Π΅Π½ ΠΌΠΎΠΌΠ΅Π½Ρ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠ°ΡΠ° ΡΠ΅ Π΄ΠΎΠ²Π΅Π΄Π΅ Π΄ΠΎ Π³ΠΎΠ»Π΅ΠΌΠ° ΡΠ»ΠΎΠΆΠ΅Π½ΠΎΡΡ ΠΈ ΡΠ»Π°Π±Π° ΠΊΠΎΠ½ΡΡΠΎΠ»Π°. Π Π°Π·Π±ΠΈΡΠ°ΡΡΠΈ Π³ΠΎ ΠΎΠ²Π°, Π΄ΠΎΡΠ΄ΠΎΠ²ΠΌΠ΅ Π΄Π° ΡΠΎΠ·Π΄Π°Π΄Π΅ΠΌΠ΅ ΡΠΎΠΏΡΡΠ²Π΅Π½Π° ΡΠΏΠ΅ΡΠΈΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½Π° Π°Π»Π°ΡΠΊΠ° Workflow Π·Π° ΠΈΠ·Π³ΡΠ°Π΄Π±Π° Π½Π° CI/CD - Π΄Π°ΠΏ.
ΠΠ΅Π³ΠΎΠ²ΠΈΠΎΡ ΠΈΠ·Π²ΠΎΡΠ΅Π½ ΠΊΠΎΠ΄ Π΅ Π½Π°ΠΏΠΈΡΠ°Π½ Π²ΠΎ Π ΡΠ±ΠΈ, ΡΠΎ ΠΎΡΠ²ΠΎΡΠ΅Π½ ΠΊΠΎΠ΄ ΠΈ ΠΎΠ±ΡΠ°Π²Π΅Π½ Π½Π°
ΠΠΆΡΡΠΈΡΠ°Π½ΠΎ Π½Π° 13 Π°Π²Π³ΡΡΡ 2019 Π³ΠΎΠ΄ΠΈΠ½Π°: ΠΌΠΎΠΌΠ΅Π½ΡΠ°Π»Π½ΠΎ ΠΏΡΠΎΠ΅ΠΊΡ Π΄Π°ΠΏ ΠΏΡΠ΅ΠΈΠΌΠ΅Π½ΡΠ²Π°Π½Π° Π²ΠΎ
ΠΡΠ±Π΅ΡΠ½Π΅ΡΠΈ
ΠΡΡΠ³Π° Π³ΠΎΡΠΎΠ²Π° Π°Π»Π°ΡΠΊΠ° ΡΠΎ ΠΎΡΠ²ΠΎΡΠ΅Π½ ΠΊΠΎΠ΄ ΠΊΠΎΡΠ° Π²Π΅ΡΠ΅ Π΄ΠΎΠ±ΠΈ Π·Π½Π°ΡΠ°ΡΠ½ΠΎ ΠΏΡΠΈΠ·Π½Π°Π½ΠΈΠ΅ Π²ΠΎ ΠΏΡΠΎΡΠ΅ΡΠΈΠΎΠ½Π°Π»Π½Π°ΡΠ° ΡΡΠ΅Π΄ΠΈΠ½Π° Π΅ ΠΡΠ±Π΅ΡΠ½Π΅ΡΠΈ, ΠΊΠ»Π°ΡΡΠ΅Ρ Π·Π° ΡΠΏΡΠ°Π²ΡΠ²Π°ΡΠ΅ ΡΠΎ Docker. Π’Π΅ΠΌΠ°ΡΠ° Π·Π° Π½Π΅Π³ΠΎΠ²Π°ΡΠ° ΡΠΏΠΎΡΡΠ΅Π±Π° Π²ΠΎ ΡΠ°Π±ΠΎΡΠ΅ΡΠ΅ΡΠΎ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠΈ ΠΈΠ·Π³ΡΠ°Π΄Π΅Π½ΠΈ Π½Π° Docker Π΅ Π½Π°Π΄Π²ΠΎΡ ΠΎΠ΄ ΠΎΠΏΡΠ΅Π³ΠΎΡ Π½Π° ΠΈΠ·Π²Π΅ΡΡΠ°ΡΠΎΡ, ΡΠ°ΠΊΠ° ΡΡΠΎ ΠΏΡΠ΅Π·Π΅Π½ΡΠ°ΡΠΈΡΠ°ΡΠ° Π΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π° Π½Π° ΠΏΡΠ΅Π³Π»Π΅Π΄ Π½Π° Π½Π΅ΠΊΠΎΠΈ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΈ ΠΊΠ°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ.
ΠΠ° Π²ΠΎΠ²Π΅Π΄ΡΠ²Π°ΡΠ΅, Kubernetes Π½ΡΠ΄ΠΈ:
- ΡΠΎΠ½Π΄Π° Π·Π° ΠΏΠΎΠ΄Π³ΠΎΡΠ²Π΅Π½ΠΎΡΡ - ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° ΠΏΠΎΠ΄Π³ΠΎΡΠ²Π΅Π½ΠΎΡΡΠ° Π½Π° Π½ΠΎΠ²Π° Π²Π΅ΡΠ·ΠΈΡΠ° Π½Π° Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡΠ°ΡΠ° (Π·Π° Π΄Π° ΡΠ΅ ΠΏΡΠ΅ΡΡΠ»ΠΈ ΡΠΎΠΎΠ±ΡΠ°ΡΠ°Ρ Π½Π° Π½Π΅Π°);
- ΡΡΠΊΠ°Π»Π°ΡΠ΅ Π°ΠΆΡΡΠΈΡΠ°ΡΠ΅ - ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π½ΠΎ Π°ΠΆΡΡΠΈΡΠ°ΡΠ΅ Π½Π° ΡΠ»ΠΈΠΊΠ°ΡΠ° Π²ΠΎ ΠΊΠ»Π°ΡΡΠ΅Ρ ΠΎΠ΄ ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΠΈ (ΠΈΡΠΊΠ»ΡΡΡΠ²Π°ΡΠ΅, Π°ΠΆΡΡΠΈΡΠ°ΡΠ΅, ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠ° Π·Π° Π»Π°Π½ΡΠΈΡΠ°ΡΠ΅, ΠΏΡΠ΅ΡΡΠ»ΡΠ²Π°ΡΠ΅ ΡΠΎΠΎΠ±ΡΠ°ΡΠ°Ρ);
- ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΎ Π°ΠΆΡΡΠΈΡΠ°ΡΠ΅ - Π°ΠΆΡΡΠΈΡΠ°ΡΠ΅ Π½Π° ΡΠ»ΠΈΠΊΠ° Π²ΠΎ ΠΊΠ»Π°ΡΡΠ΅Ρ ΡΠΎ ΡΠ°Π·Π»ΠΈΡΠ΅Π½ ΠΏΡΠΈΡΡΠ°ΠΏ: ΠΏΡΠ²ΠΎ Π½Π° ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Π° ΠΎΠ΄ ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΠΈΡΠ΅, ΠΏΠΎΡΠΎΠ° Π½Π° ΠΎΡΡΠ°Π½Π°ΡΠΈΡΠ΅;
- ΠΈΠ·Π΄Π°Π½ΠΈΡΠ° Π½Π° ΠΊΠ°Π½Π°ΡΠΈ - Π»Π°Π½ΡΠΈΡΠ°ΡΠ΅ Π½Π° Π½ΠΎΠ²Π° ΡΠ»ΠΈΠΊΠ° Π½Π° ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ (ΠΌΠ°Π») Π±ΡΠΎΡ ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΠΈ Π·Π° ΡΠ»Π΅Π΄Π΅ΡΠ΅ Π½Π° Π°Π½ΠΎΠΌΠ°Π»ΠΈΠΈΡΠ΅.
ΠΠΈΠ΄Π΅ΡΡΠΈ 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