Π‘Π²ΠΎΠΉ Π±Π»ΠΎΠ³ ΡΠ΅ Π·Π°ΠΏΠΎΡΠ½Π΅ΠΌ Ρ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ, ΡΡΠ·Π΄Π°Π΄Π΅Π½ΠΈ ΠΏΠΎ ΠΌΠΎΡΠΈΠ²ΠΈ ΠΎΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡΠ΅ ΠΈΠ·ΡΠ²ΠΈ Π½Π° Π½Π°ΡΠΈΡ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡ (ΠΠΌΠΈΡΡΠΈΠΉ Π‘ΡΠΎΠ»ΡΡΠΎΠ²). ΠΡΠΈΡΠΊΠΈ ΡΠ΅ ΡΠ΅ ΡΡΡΡΠΎΡΡ Π° ΠΏΡΠ΅Π· 2016 Π³ΠΎΠ΄ΠΈΠ½Π° Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΏΡΠΎΡΠ΅ΡΠΈΠΎΠ½Π°Π»Π½ΠΈ ΠΌΠ΅ΡΠΎΠΏΡΠΈΡΡΠΈΡ ΠΈ Π±ΡΡ Π° ΠΏΠΎΡΠ²Π΅ΡΠ΅Π½ΠΈ Π½Π° ΡΠ΅ΠΌΠ°ΡΠ° DevOps ΠΈ Docker. ΠΠ΄Π½ΠΎ Π²ΠΈΠ΄Π΅ΠΎ, ΠΎΡ ΡΡΠ΅ΡΠ°ΡΠ° Docker Moscow Π² ΠΎΡΠΈΡΠ° Π½Π° Badoo, Π²Π΅ΡΠ΅ Π½Π° ΡΠ°ΠΉΡΠ°. ΠΠΎΠ²ΠΈΡΠ΅ ΡΠ΅ Π±ΡΠ΄Π°Ρ ΠΏΡΠΈΠ΄ΡΡΠΆΠ΅Π½ΠΈ ΠΎΡ ΡΡΠ°ΡΠΈΠΈ, ΠΏΡΠ΅Π΄Π°Π²Π°ΡΠΈ ΡΡΡΠ½ΠΎΡΡΡΠ° Π½Π° Π΄ΠΎΠΊΠ»Π°Π΄ΠΈΡΠ΅. Π ΡΠ°ΠΊΠ°β¦
31 ΠΌΠ°ΠΉ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΡΠ΅Π½ΡΠΈΡΡΠ° , ΠΏΡΠΎΠ²Π΅ΠΆΠ΄Π°ΡΠ° ΡΠ΅ ΠΊΠ°ΡΠΎ ΡΠ°ΡΡ ΠΎΡ ΡΠ΅ΡΡΠΈΠ²Π°Π»Π° βΠ ΡΡΠΊΠΈ ΠΈΠ½ΡΠ΅ΡΠ½Π΅Ρ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈβ (Π ΠΠ’++ 2016), ΡΠ΅ΠΊΡΠΈΡΡΠ° βΠΠ΅ΠΏΡΠ΅ΠΊΡΡΠ½Π°ΡΠΎ ΡΠ°Π·Π³ΡΡΡΠ°Π½Π΅ ΠΈ Π΄Π΅ΠΏΠ»ΠΎΠΉβ Π±Π΅ΡΠ΅ ΠΎΡΠΊΡΠΈΡΠ° Ρ Π΄ΠΎΠΊΠ»Π°Π΄ βΠΠ°ΠΉ-Π΄ΠΎΠ±ΡΠΈ ΠΏΡΠ°ΠΊΡΠΈΠΊΠΈ Π·Π° Continuous Delivery Ρ Dockerβ. Π Π½Π΅Π³ΠΎ Π±ΡΡ Π° ΠΎΠ±ΠΎΠ±ΡΠ΅Π½ΠΈ ΠΈ ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠΈΠ·ΠΈΡΠ°Π½ΠΈ Π½Π°ΠΉ-Π΄ΠΎΠ±ΡΠΈΡΠ΅ ΠΏΡΠ°ΠΊΡΠΈΠΊΠΈ Π·Π° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ Π½Π° ΠΏΡΠΎΡΠ΅ΡΠ° Π½Π° Continuous Delivery (CD) Ρ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° Docker ΠΈ Π΄ΡΡΠ³ΠΈ Open Source ΠΏΡΠΎΠ΄ΡΠΊΡΠΈ. Π‘ ΡΠ΅Π·ΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΠ°Π±ΠΎΡΠΈΠΌ Π² ΠΏΡΠΎΠ΄ΡΠΊΡΠΈΡ, ΠΊΠΎΠ΅ΡΠΎ Π½ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΡΠ΅ ΠΎΠΏΠΈΡΠ°ΠΌΠ΅ Π½Π° ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΠΎΠΏΠΈΡ.

ΠΠΊΠΎ ΠΈΠΌΠ°ΡΠ΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π΄Π° ΠΎΡΠ΄Π΅Π»ΠΈΡΠ΅ ΡΠ°Ρ Π½Π° , ΠΏΡΠ΅ΠΏΠΎΡΡΡΠ²Π°ΠΌΠ΅ Π΄Π° Π³ΠΎ Π³Π»Π΅Π΄Π°ΡΠ΅ ΠΈΠ·ΡΡΠ»ΠΎ. Π ΠΏΡΠΎΡΠΈΠ²Π΅Π½ ΡΠ»ΡΡΠ°ΠΉ β ΠΏΠΎ-Π΄ΠΎΠ»Ρ Π΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π΅Π½ ΠΎΡΠ½ΠΎΠ²Π½ΠΈΡΡ ΡΠ΅Π·ΡΠΌΠ΅ Π² ΡΠ΅ΠΊΡΡΠΎΠ² ΡΠΎΡΠΌΠ°Ρ.
Continuous Delivery Ρ Docker
ΠΠΎΠ΄ Continuous Delivery ΡΠ°Π·Π±ΠΈΡΠ°ΠΌΠ΅ Π²Π΅ΡΠΈΠ³Π°ΡΠ° ΠΎΡ ΠΌΠ΅ΡΠΎΠΏΡΠΈΡΡΠΈΡ, Π² ΡΠ΅Π·ΡΠ»ΡΠ°Ρ Π½Π° ΠΊΠΎΡΡΠΎ ΠΊΠΎΠ΄ΡΡ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ ΠΎΡ Git Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ΡΠΎ ΠΏΡΡΠ²ΠΎ Π΄ΠΎΡΡΠΈΠ³Π° ΠΏΡΠΎΠ΄ΡΠΊΡΠΈΡ, Π° ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° ΠΏΠΎΠΏΠ°Π΄Π° Π² Π°ΡΡ ΠΈΠ². ΠΠ·Π³Π»Π΅ΠΆΠ΄Π° ΡΠ°ΠΊΠ°: Git β Build (ΡΠ³Π»ΠΎΠ±ΡΠ²Π°Π½Π΅) β Test (ΡΠ΅ΡΡΠΈΡΠ°Π½Π΅) β Release (ΡΠ΅Π»ΠΈΠ·) β Operate (ΠΏΠΎΡΠ»Π΅Π΄Π²Π°ΡΠ° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°).

ΠΠΎ-Π³ΠΎΠ»ΡΠΌΠ°ΡΠ° ΡΠ°ΡΡ ΠΎΡ Π΄ΠΎΠΊΠ»Π°Π΄Π° Π΅ ΠΏΠΎΡΠ²Π΅ΡΠ΅Π½Π° Π½Π° Π΅ΡΠ°ΠΏΠ° build (ΡΠ³Π»ΠΎΠ±ΡΠ²Π°Π½Π΅ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ), Π° ΡΠ΅ΠΌΠΈΡΠ΅ release ΠΈ operate ΡΠ° Π·Π°ΡΠ΅Π³Π½Π°ΡΠΈ Π² ΠΎΠ±ΠΎΠ±ΡΠ΅Π½ Π²ΠΈΠ΄. Π©Π΅ ΡΡΠ°Π½Π΅ Π΄ΡΠΌΠ° Π·Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈΡΠ΅ ΠΈ ΡΠ°Π±Π»ΠΎΠ½ΠΈΡΠ΅, ΠΊΠΎΠΈΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°Ρ ΡΡΡ
Π½ΠΎΡΠΎ ΡΠ΅ΡΠ°Π²Π°Π½Π΅, Π° ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΈΡΠ΅ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π½Π° ΡΠ΅Π·ΠΈ ΡΠ°Π±Π»ΠΎΠ½ΠΈ ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ.
ΠΠ°ΡΠΎ ΡΡΠΊ ΠΈΠ·ΠΎΠ±ΡΠΎ Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌ Docker? ΠΠ΅ ΠΏΡΠΎΡΡΠΎ ΡΠ°ΠΊΠ° ΡΠ΅ΡΠΈΡ ΠΌΠ΅ Π΄Π° Π³ΠΎΠ²ΠΎΡΠΈΠΌ Π·Π° ΠΏΡΠ°ΠΊΡΠΈΠΊΠΈΡΠ΅ Π½Π° Continuous Delivery Π² ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° Π½Π° ΡΠΎΠ·ΠΈ Open Source ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ. ΠΡΠΏΡΠ΅ΠΊΠΈ ΡΠ΅ ΡΠ΅Π»ΠΈΡΡ Π΄ΠΎΠΊΠ»Π°Π΄ Π΅ ΠΏΠΎΡΠ²Π΅ΡΠ΅Π½ Π½Π° Π½Π΅Π³ΠΎ, ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠΈΡΠΈΠ½ΠΈ ΡΠ΅ ΡΠ°Π·ΠΊΡΠΈΠ²Π°Ρ ΠΎΡΠ΅ ΠΏΡΠΈ ΡΠ°Π·Π³Π»Π΅ΠΆΠ΄Π°Π½Π΅ΡΠΎ Π½Π° ΠΎΡΠ½ΠΎΠ²Π½ΠΈΡ ΡΠ°Π±Π»ΠΎΠ½ Π·Π° Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅ Π½Π° ΠΊΠΎΠ΄Π° Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ.
ΠΡΠ½ΠΎΠ²Π΅Π½ ΡΠ°Π±Π»ΠΎΠ½ Π·Π° Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅
Π ΡΠ°ΠΊΠ°, ΠΏΡΠΈ Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅ Π½Π° Π½ΠΎΠ²ΠΈ Π²Π΅ΡΡΠΈΠΈ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½ΠΎ ΡΠ΅ ΡΠ±Π»ΡΡΠΊΠ²Π°ΠΌΠ΅ Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π½Π° ΠΏΡΠΎΡΡΠΎΡ, ΠΊΠΎΠΉΡΠΎ ΡΠ΅ ΠΎΠ±ΡΠ°Π·ΡΠ²Π° ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΠΏΡΠ΅Π²ΠΊΠ»ΡΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΠΏΡΠΎΠ΄ΡΠΊΡΠΈΠΎΠ½Π½ΠΈΡ ΡΡΡΠ²ΡΡ. Π’ΡΠ°ΡΠΈΠΊΡΡ ΠΎΡ ΡΡΠ°ΡΠ°ΡΠ° Π²Π΅ΡΡΠΈΡ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ ΠΊΡΠΌ Π½ΠΎΠ²Π°ΡΠ° Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΏΡΠ΅Ρ Π²ΡΡΠ»Ρ ΠΌΠΈΠ³Π½ΠΎΠ²Π΅Π½ΠΎ: ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»Π½ΠΎ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ ΡΠ²Π΅ΡΠΈΠΌ, ΡΠ΅ Π½ΠΎΠ²Π°ΡΠ° Π²Π΅ΡΡΠΈΡ Π½Π΅ ΡΠ°ΠΌΠΎ Π΅ ΡΡΠΏΠ΅ΡΠ½ΠΎ ΠΏΡΡΠ½Π°ΡΠ°, Π½ΠΎ ΠΈ Π΅ "ΠΏΠΎΠ΄Π³ΡΡΡΠ°" (Ρ.Π΅. Π½Π°ΠΏΡΠ»Π½ΠΎ Π³ΠΎΡΠΎΠ²Π° Π·Π° ΠΎΠ±ΡΠ»ΡΠΆΠ²Π°Π½Π΅ Π½Π° Π·Π°ΠΏΠΈΡΠ²Π°Π½ΠΈΡ).

Π’Π°ΠΊΠ°, ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎ Π²ΡΠ΅ΠΌΠ΅ ΠΈ Π΄Π²Π΅ΡΠ΅ Π²Π΅ΡΡΠΈΠΈ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ (ΡΡΠ°ΡΠ° ΠΈ Π½ΠΎΠ²Π°) ΡΠ΅ ΡΠ°Π±ΠΎΡΡΡ Π΅Π΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ. ΠΠΎΠ΅ΡΠΎ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ Π²ΠΎΠ΄ΠΈ Π΄ΠΎ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡ Π½Π° ΠΎΠ±ΡΠΈ ΡΠ΅ΡΡΡΡΠΈ: ΠΌΡΠ΅ΠΆΠ°, ΡΠ°ΠΉΠ»ΠΎΠ²Π΅, IPC ΠΈ Ρ.Π½. Π‘ Docker ΡΠΎΠ·ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌ Π»Π΅ΡΠ½ΠΎ ΡΠ΅ ΡΠ°Π·ΡΠ΅ΡΠ°Π²Π°, ΠΊΠ°ΡΠΎ ΡΠ΅ ΡΡΠ°ΡΡΠΈΡΠ°Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π²Π΅ΡΡΠΈΠΈ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ Π² ΠΎΡΠ΄Π΅Π»Π½ΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ, Π·Π° ΠΊΠΎΠΈΡΠΎ Π΅ Π³Π°ΡΠ°Π½ΡΠΈΡΠ°Π½Π° ΠΈΠ·ΠΎΠ»Π°ΡΠΈΡ Π½Π° ΡΠ΅ΡΡΡΡΠΈΡΠ΅ Π² ΡΠ°ΠΌΠΊΠΈΡΠ΅ Π½Π° Π΅Π΄ΠΈΠ½ Ρ
ΠΎΡΡ (ΡΡΡΠ²ΡΡ/Π²ΠΈΡΡΡΠ°Π»Π½Π° ΠΌΠ°ΡΠΈΠ½Π°). Π Π°Π·Π±ΠΈΡΠ° ΡΠ΅, ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΡΠ°Π·ΡΠΈΡΠ° Π½Π° Π½ΡΠΊΠΎΠΈ Ρ
ΠΈΡΡΠΈΠ½ΠΈ ΠΈ Π±Π΅Π· ΠΈΠ·ΠΎΠ»Π°ΡΠΈΡ, Π½ΠΎ Π°ΠΊΠΎ ΠΈΠΌΠ° Π³ΠΎΡΠΎΠ² ΠΈ ΡΠ΄ΠΎΠ±Π΅Π½ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ, ΡΠΎ ΠΈΠΌΠ° ΠΈ ΠΊΠΎΠ½ΡΡΠ°ΡΠ΅Π·ΠΎΠ½ β Π΄Π° Π½Π΅ ΡΠ΅ ΠΏΡΠ΅Π½Π΅Π±ΡΠ΅Π³Π²Π°.
ΠΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈΠ·Π°ΡΠΈΡΡΠ° ΠΏΡΠ΅Π΄Π»Π°Π³Π° ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΡΡΠ³ΠΈ ΠΏΡΠ΅Π΄ΠΈΠΌΡΡΠ²Π° ΠΏΡΠΈ Π΄Π΅ΠΏΠ»ΠΎΡ. ΠΡΡΠΊΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π·Π°Π²ΠΈΡΠΈ ΠΎΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π° Π²Π΅ΡΡΠΈΡ (ΠΈΠ»ΠΈ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ Π²Π΅ΡΡΠΈΠΈ) ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΠ°, Π½Π°Π»ΠΈΡΠΈΠ΅ΡΠΎ Π½Π° ΠΌΠΎΠ΄ΡΠ»ΠΈ/ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈΡ ΠΈ Ρ.Π½., ΠΊΠ°ΠΊΡΠΎ ΠΈ ΡΠ΅Ρ Π½ΠΈΡΠ΅ Π²Π΅ΡΡΠΈΠΈ. Π ΡΠΎΠ²Π° Π²Π°ΠΆΠΈ Π½Π΅ ΡΠ°ΠΌΠΎ Π·Π° Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π°ΡΠ° ΠΈΠ·ΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½Π° ΡΡΠ΅Π΄Π°, Π½ΠΎ ΠΈ Π·Π° ΡΡΠ»Π°ΡΠ° ΠΎΠ±ΠΊΡΡΠΆΠ°Π²Π°ΡΠ° ΡΡΠ΅Π΄Π°, Π²ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ ΡΠΈΡΡΠ΅ΠΌΠ΅Π½ ΡΠΎΡΡΡΠ΅Ρ ΠΈ Π½Π΅Π³ΠΎΠ²ΠΈΡΠ΅ Π²Π΅ΡΡΠΈΠΈ (Π²ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ Π΄ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΈΡ Linux-Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²). ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΠ΅Π½ΠΈΠ΅ Π½Π° ΡΠ°ΠΊΡΠ°, ΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈΡΠ΅ ΡΡΠ΄ΡΡΠΆΠ°Ρ Π½Π΅ ΡΠ°ΠΌΠΎ ΠΊΠΎΠ΄Π° Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡΠ°, Π½ΠΎ ΠΈ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»Π½ΠΎ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½ ΡΠΈΡΡΠ΅ΠΌΠ΅Π½ ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ ΡΠΎΡΡΡΠ΅Ρ Π² Π½ΡΠΆΠ½ΠΈΡΠ΅ Π²Π΅ΡΡΠΈΠΈ, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π·Π°Π±ΡΠ°Π²ΠΈΡΠ΅ Π·Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈΡΠ΅ Ρ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈΡΠ΅.
ΠΠ±ΠΎΠ±ΡΠΈΠΌ ΠΎΡΠ½ΠΎΠ²Π½ΠΈΡ ΡΠ°Π±Π»ΠΎΠ½ Π½Π° ΠΈΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° Π½ΠΎΠ²ΠΈ Π²Π΅ΡΡΠΈΠΈ, Π²Π·Π΅ΠΌΠ°ΠΉΠΊΠΈ ΠΏΡΠ΅Π΄Π²ΠΈΠ΄ ΠΏΠΎΡΠΎΡΠ΅Π½ΠΈΡΠ΅ ΡΠ°ΠΊΡΠΎΡΠΈ:
- ΠΡΡΠ²ΠΎ, ΡΡΠ°ΡΠ°ΡΠ° Π²Π΅ΡΡΠΈΡ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ ΡΠ°Π±ΠΎΡΠΈ Π² ΠΏΡΡΠ²ΠΈΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ.
- Π‘Π»Π΅Π΄ ΡΠΎΠ²Π° Π½ΠΎΠ²Π°ΡΠ° Π²Π΅ΡΡΠΈΡ ΡΠ΅ ΠΈΠ·Π΄Π°Π²Π° ΠΈ "Π·Π°Π³ΡΡΠ²Π°" Π²ΡΠ² Π²ΡΠΎΡΠΈΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ. ΠΠ°Π±Π΅Π»Π΅ΠΆΠΈΡΠ΅Π»Π½ΠΎ Π΅, ΡΠ΅ ΡΠ°ΠΌΠ°ΡΠ° Π½ΠΎΠ²Π° Π²Π΅ΡΡΠΈΡ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΡΠ΄ΡΡΠΆΠ° Π½Π΅ ΡΠ°ΠΌΠΎ ΠΎΠ±Π½ΠΎΠ²Π΅Π½ ΠΊΠΎΠ΄ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ, Π½ΠΎ ΠΈ Π²ΡΡΠΊΠ°ΠΊΠ²ΠΈ Π½Π΅Π³ΠΎΠ²ΠΈ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ, ΠΊΠ°ΠΊΡΠΎ ΠΈ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π½ΠΎΠ²Π° Π²Π΅ΡΡΠΈΡ Π½Π° OpenSSL ΠΈΠ»ΠΈ ΡΠ΅Π»ΠΈΡ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²).
- ΠΠΎΠ³Π°ΡΠΎ Π½ΠΎΠ²Π°ΡΠ° Π²Π΅ΡΡΠΈΡ Π΅ Π½Π°ΠΏΡΠ»Π½ΠΎ Π³ΠΎΡΠΎΠ²Π° Π΄Π° ΠΎΠ±ΡΠ»ΡΠΆΠ²Π° Π·Π°ΡΠ²ΠΊΠΈΡΠ΅, ΡΡΠ°ΡΠΈΠΊΡΡ ΡΠ΅ ΠΏΡΠ΅Ρ Π²ΡΡΠ»Ρ ΠΎΡ ΠΏΡΡΠ²ΠΈΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ Π½Π° Π²ΡΠΎΡΠΈΡ.
- Π‘Π΅Π³Π° ΡΡΠ°ΡΠ°ΡΠ° Π²Π΅ΡΡΠΈΡ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΡΠΏΡΡΠ½Π°.
Π’Π°ΠΊΡΠ² ΠΏΠΎΠ΄Ρ ΠΎΠ΄ Ρ ΡΠ°Π·Π³ΡΡΡΠ°Π½Π΅ΡΠΎ Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π²Π΅ΡΡΠΈΠΈ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ Π² ΠΎΡΠ΄Π΅Π»Π½ΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ ΠΏΡΠ΅Π΄Π»Π°Π³Π° ΠΎΡΠ΅ Π΅Π΄Π½ΠΎ ΡΠ΄ΠΎΠ±ΡΡΠ²ΠΎ β Π±ΡΡΠ·ΠΎ Π²ΡΠ·ΡΡΠ°Π½ΠΎΠ²ΡΠ²Π°Π½Π΅ Π½Π° ΡΡΠ°ΡΠ°ΡΠ° Π²Π΅ΡΡΠΈΡ (Π²ΡΠ΅ ΠΏΠ°ΠΊ Π΅ Π΄ΠΎΡΡΠ°ΡΡΡΠ½ΠΎ Π΄Π° ΠΏΡΠ΅ΠΌΠ΅ΡΡΠΈΡΠ΅ ΡΡΠ°ΡΠΈΠΊΠ° Π½Π° Π½ΡΠΆΠ½ΠΈΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ).

ΠΠ°ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½Π°ΡΠ° ΠΏΡΡΠ²Π° ΠΏΡΠ΅ΠΏΠΎΡΡΠΊΠ° Π·Π²ΡΡΠΈ ΡΠ°ΠΊΠ°, ΡΠ΅ Π΄ΠΎΡΠΈ ΠΠ°ΠΏΠΈΡΠ°Π½ΡΡ Π½ΡΠΌΠ° ΠΊΠ°ΠΊ Π΄Π° Π²ΡΠ·ΡΠ°Π·ΠΈ: "[ΠΏΡΠΈ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° Continuous Delivery Ρ Docker] ΠΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡΠ΅ Docker [ΠΈ ΡΠ°Π·Π±Π΅ΡΠ΅ΡΠ΅ ΠΊΠ°ΠΊΠ²ΠΎ ΠΏΡΠ΅Π΄Π»Π°Π³Π°]". ΠΠΎΠΌΠ½Π΅ΡΠ΅, ΡΠ΅ Π½Π΅ Π΅ "ΡΡΠ΅Π±ΡΡΠ½Π° ΠΊΡΡΡΡΠΌΠΈΡΠ°", ΠΊΠΎΡΡΠΎ ΡΠ΅ΡΠ°Π²Π° Π²ΡΡΠΊΠ°ΠΊΠ²ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ, Π° ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ, ΠΊΠΎΠΉΡΠΎ ΠΏΡΠ΅Π΄Π»Π°Π³Π° ΠΎΡΠ»ΠΈΡΠ½Π° ΠΎΡΠ½ΠΎΠ²Π°.
ΠΡΠ·ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΠΌΠΎΡΡ
ΠΠΎΠ΄ βΠ²ΡΠ·ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΠΌΠΎΡΡβ ΡΠ°Π·Π±ΠΈΡΠ°ΠΌΠ΅ ΠΎΠ±ΠΎΠ±ΡΠ΅Π½ Π½Π°Π±ΠΎΡ ΠΎΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ, Ρ ΠΊΠΎΠΈΡΠΎ ΡΠ΅ ΡΠ±Π»ΡΡΠΊΠ²Π°ΠΌΠ΅ ΠΏΡΠΈ Π΅ΠΊΡΠΏΠ»ΠΎΠ°ΡΠ°ΡΠΈΡΡΠ° Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. Π‘ΡΠ°Π²Π° Π²ΡΠΏΡΠΎΡ Π·Π° ΡΠ°ΠΊΠΈΠ²Π° ΡΠ»ΡΡΠ°ΠΈ:
- Π‘ΡΠ΅Π½Π°ΡΠΈΠΈ, ΠΏΡΠΎΠ²Π΅ΡΠ΅Π½ΠΈ ΠΎΡ ΠΎΡΠ΄Π΅Π»Π° Π·Π° ΠΊΠ°ΡΠ΅ΡΡΠ²ΠΎ Π½Π° staging, ΡΡΡΠ±Π²Π° ΡΠΎΡΠ½ΠΎ Π΄Π° ΡΠ΅ Π²ΡΠ·ΠΏΡΠΎΠΈΠ·Π²Π΅ΠΆΠ΄Π°Ρ Π² production.
- ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡΠ° ΡΠ΅ ΠΏΡΠ±Π»ΠΈΠΊΡΠ²Π°Ρ Π½Π° ΡΡΡΠ²ΡΡΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΠΏΠΎΠ»ΡΡΠ°Π²Π°Ρ ΠΏΠ°ΠΊΠ΅ΡΠΈ ΠΎΡ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΎΠ³Π»Π΅Π΄Π°Π»Π½ΠΈ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ (Ρ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π½Π° Π²ΡΠ΅ΠΌΠ΅ΡΠΎ ΡΠ΅ ΡΠ΅ ΠΎΠ±Π½ΠΎΠ²ΡΠ²Π°Ρ, Π° Π·Π°Π΅Π΄Π½ΠΎ Ρ ΡΡΡ ΠΈ Π²Π΅ΡΡΠΈΠΈΡΠ΅ Π½Π° ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½ΠΈΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ).
- βΠΡΠΈ ΠΌΠ΅Π½ Π»ΠΎΠΊΠ°Π»Π½ΠΎ Π²ΡΠΈΡΠΊΠΎ ΡΠ°Π±ΠΎΡΠΈ!β (β¦ ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅ Π½Π΅ ΡΠ° Π΄ΠΎΠΏΡΡΠ½Π°ΡΠΈ Π΄ΠΎ production.)
- ΠΠ΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΅ Π΄Π° ΡΠ΅ ΠΏΡΠΎΠ²Π΅ΡΠΈ Π½Π΅ΡΠΎ Π² ΡΡΠ°ΡΠ° (Π°ΡΡ ΠΈΠ²Π½Π°) Π²Π΅ΡΡΠΈΡ.
- β¦
ΠΠ±ΡΠ°ΡΠ° ΠΈΠΌ ΡΡΡΠ½ΠΎΡΡ ΡΠ΅ ΡΠ²Π΅ΠΆΠ΄Π° Π΄ΠΎ ΡΠΎΠ²Π°, ΡΠ΅ Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡΠ»Π½ΠΎ ΡΡΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ Π½Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΈΡΠ΅ ΡΡΠ΅Π΄ΠΈ (ΠΊΠ°ΠΊΡΠΎ ΠΈ ΠΎΡΡΡΡΡΠ²ΠΈΠ΅ Π½Π° ΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΠ°ΠΊΡΠΎΡ). ΠΠ°ΠΊ Π΄Π° Π³Π°ΡΠ°Π½ΡΠΈΡΠ°ΠΌΠ΅ Π²ΡΠ·ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΠΌΠΎΡΡ? ΠΠ° ΡΠ΅ ΠΏΡΠ°Π²ΡΡ Docker-ΠΎΠ±ΡΠ°Π·ΠΈ Π½Π° Π±Π°Π·Π° ΠΊΠΎΠ΄Π° ΠΎΡ Git ΠΈ ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ Π·Π° ΠΊΠ°ΠΊΠ²ΠΈΡΠΎ ΠΈ Π΄Π° Π΅ Π·Π°Π΄Π°ΡΠΈ: Π½Π° ΡΠ΅ΡΡΠΎΠ²ΠΈ ΠΏΠ»ΠΎΡΠ°Π΄ΠΊΠΈ, Π² production, Π½Π° Π»ΠΎΠΊΠ°Π»Π½ΠΈ ΠΌΠ°ΡΠΈΠ½ΠΈ Π½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΡΠΈβ¦ ΠΡΠΈ ΡΠΎΠ²Π° Π΅ Π²Π°ΠΆΠ½ΠΎ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° Π΄Π΅ΠΉΡΡΠ²ΠΈΡΡΠ°, ΠΊΠΎΠΈΡΠΎ ΡΠ΅ ΠΈΠ·Π²ΡΡΡΠ²Π°Ρ ΡΠ»Π΅Π΄ ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ΡΠΎ Π½Π° ΠΎΠ±ΡΠ°Π·Π°: ΠΊΠΎΠ»ΠΊΠΎΡΠΎ ΠΏΠΎ-ΠΏΡΠΎΡΡΠΎ β ΡΠΎΠ»ΠΊΠΎΠ²Π° ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠ° Π²Π΅ΡΠΎΡΡΠ½ΠΎΡΡ Π·Π° Π³ΡΠ΅ΡΠΊΠΈ.
ΠΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ°ΡΠ° Π΅ ΠΊΠΎΠ΄
ΠΠΊΠΎ ΠΈΠ·ΠΈΡΠΊΠ²Π°Π½ΠΈΡΡΠ° ΠΊΡΠΌ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ°ΡΠ° (Π½Π°Π»ΠΈΡΠΈΠ΅ Π½Π° ΡΡΡΠ²ΡΡΠ½ΠΎ ΠΠ, Π½Π΅Π³ΠΎΠ²ΠΈ Π²Π΅ΡΡΠΈΠΈ ΠΈ Ρ.Π½.) Π½Π΅ ΡΠ΅ ΡΠΎΡΠΌΠ°Π»ΠΈΠ·ΠΈΡΠ°Ρ ΠΈ Π½Π΅ βΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΠ°Ρβ, Π²ΡΡΠΊΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° Π·Π°Π²ΡΡΡΠΈ Ρ Π½Π΅ΠΏΡΠΈΡΡΠ½ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΠΈΡΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π½Π° staging Π²Π΅ΡΠ΅ ΡΡΠ΅ ΠΏΡΠ΅ΠΌΠΈΠ½Π°Π»ΠΈ Π½Π° PHP 7.0 ΠΈ ΡΡΠ΅ ΠΏΡΠ΅Π½Π°ΠΏΠΈΡΠ°Π»ΠΈ ΠΊΠΎΠ΄Π° ΡΡΠΎΡΠ²Π΅ΡΠ½ΠΎ β ΡΠΎΠ³Π°Π²Π° ΠΏΠΎΡΠ²Π°ΡΠ° ΠΌΡ Π½Π° production Ρ Π½ΡΠΊΠ°ΠΊΠ²Π° ΡΡΠ°ΡΠ° Π²Π΅ΡΡΠΈΡ Π½Π° PHP (5.5) Π½Π΅ΠΏΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΡΠ΅ ΠΈΠ·Π½Π΅Π½Π°Π΄Π° Π½ΡΠΊΠΎΠ³ΠΎ. ΠΠ°ΠΊΠ°Ρ Π΄Π° Π½Π΅ ΡΡΡΠ±Π²Π° Π΄Π° Π·Π°Π±ΡΠ°Π²ΡΡΠ΅ Π·Π° Π³ΠΎΠ»ΡΠΌΠΎΡΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π½Π° Π²Π΅ΡΡΠΈΡΡΠ° Π½Π° ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΠ°, βΠ΄ΡΠ²ΠΎΠ»ΡΡ ΡΠ΅ ΠΊΡΠΈΠ΅ Π² Π΄Π΅ΡΠ°ΠΉΠ»ΠΈΡΠ΅β: ΠΈΠ·Π½Π΅Π½Π°Π΄Π° ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΊΡΠΈΠ΅ Π² ΠΌΠ°Π»ΠΊΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π½Π° Π²ΡΡΠΊΠ° Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ.
ΠΠΎΠ΄Ρ ΠΎΠ΄ΡΡ, ΠΊΠΎΠΉΡΠΎ ΡΠ΅ΡΠ°Π²Π° ΡΠΎΠ·ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌ, Π΅ ΠΈΠ·Π²Π΅ΡΡΠ΅Π½ ΠΊΠ°ΡΠΎ IaC (Infrastructure as Code, βΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ° ΠΊΠ°ΡΠΎ ΠΊΠΎΠ΄β) ΠΈ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π° ΡΡΡ ΡΠ°Π½ΡΠ²Π°Π½Π΅ Π½Π° ΠΈΠ·ΠΈΡΠΊΠ²Π°Π½ΠΈΡΡΠ° ΠΊΡΠΌ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ°ΡΠ° Π·Π°Π΅Π΄Π½ΠΎ Ρ ΠΊΠΎΠ΄Π° Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ. Π‘ Π½Π΅Π³ΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅ ΠΈ DevOps ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΡΡΠΈΡΠ΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ°Π±ΠΎΡΡΡ Ρ Π΅Π΄ΠΈΠ½ Git ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ, Π½ΠΎ Π½Π°Π΄ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π½Π΅Π³ΠΎΠ²ΠΈ ΡΠ°ΡΡΠΈ. ΠΡ ΡΠΎΠ·ΠΈ ΠΊΠΎΠ΄ Π² Git ΡΠ΅ ΡΡΠ·Π΄Π°Π²Π° Docker ΠΎΠ±ΡΠ°Π·, Π² ΠΊΠΎΠΉΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ Π΅ ΡΠ°Π·ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΎ Ρ ΠΎΠ³Π»Π΅Π΄ Π½Π° ΡΡΠ»Π°ΡΠ° ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ° Π½Π° ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ°ΡΠ°. ΠΠΎ-ΠΏΡΠΎΡΡΠΎ ΠΊΠ°Π·Π°Π½ΠΎ, ΡΠΊΡΠΈΠΏΡΠΎΠ²Π΅ΡΠ΅ (ΠΏΡΠ°Π²ΠΈΠ»Π°ΡΠ°) Π·Π° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ Π½Π° ΠΎΠ±ΡΠ°Π·ΠΈ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ Π½Π°ΠΌΠΈΡΠ°Ρ Π² Π΅Π΄ΠΈΠ½ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ Ρ ΠΈΠ·Ρ ΠΎΠ΄Π½ΠΈΡ ΠΊΠΎΠ΄ ΠΈ Π·Π°Π΅Π΄Π½ΠΎ Π΄Π° ΡΠ΅ ΡΠ»ΠΈΠ²Π°Ρ.

Π ΡΠ»ΡΡΠ°ΠΉ Π½Π° ΠΌΠ½ΠΎΠ³ΠΎΡΡΠ΅ΠΏΠ΅Π½Π½Π° Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΠ° Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ β Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, nginx, ΠΊΠΎΠΉΡΠΎ ΡΡΠΎΠΈ ΠΏΡΠ΅Π΄ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ, Π²Π΅ΡΠ΅ ΡΡΠ°ΡΡΠΈΡΠ°Π½ΠΎ Π² Docker ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ β Docker ΠΎΠ±ΡΠ°Π·ΠΈΡΠ΅ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ ΡΡΠ·Π΄Π°Π²Π°Ρ ΠΎΡ ΠΊΠΎΠ΄Π° Π² Git Π·Π° Π²ΡΠ΅ΠΊΠΈ ΡΠ»ΠΎΠΉ. Π’ΠΎΠ³Π°Π²Π° Π² ΠΏΡΡΠ²ΠΈΡ ΠΎΠ±ΡΠ°Π· ΡΠ΅ Π±ΡΠ΄Π΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ Ρ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ ΠΈ Π΄ΡΡΠ³ΠΈ "Π±Π»ΠΈΠΆΠ°ΠΉΡΠΈ" Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ, Π° Π²ΡΠ² Π²ΡΠΎΡΠΈΡ β ΠΏΠΎ-Π³ΠΎΡΠ½ΠΈΡΡ nginx.
Docker ΠΎΠ±ΡΠ°Π·ΠΈ, ΡΠ²ΡΡΠ·Π°Π½ΠΈ Ρ Git
ΠΡΠΈΡΠΊΠΈ Docker ΠΎΠ±ΡΠ°Π·ΠΈ, ΡΡΠ±ΡΠ°Π½ΠΈ ΠΎΡ Git, ΡΠ°Π·Π΄Π΅Π»ΡΠΌΠ΅ Π½Π° Π΄Π²Π΅ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ: Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΈ ΠΈ ΡΠ΅Π»ΠΈΠΉΠ·Π½ΠΈ. ΠΡΠ΅ΠΌΠ΅Π½Π½ΠΈ ΠΎΠ±ΡΠ°Π·ΠΈ ΡΠ΅ Π΅ΡΠΈΠΊΠ΅ΡΠΈΡΠ°Ρ ΠΏΠΎ ΠΈΠΌΠ΅ΡΠΎ Π½Π° ΠΊΠ»ΠΎΠ½Π° Π² Git, ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ ΠΏΡΠ΅Π·Π°ΠΏΠΈΡΠ²Π°Π½ΠΈ Ρ Π²ΡΠ΅ΠΊΠΈ ΡΠ»Π΅Π΄Π²Π°Ρ ΠΊΠΎΠΌΠΈΡ ΠΈ ΡΠ΅ ΠΏΡΠΈΠ»Π°Π³Π°Ρ ΡΠ°ΠΌΠΎ Π·Π° ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»Π΅Π½ ΠΏΡΠ΅Π³Π»Π΅Π΄ (Π½Π΅ Π·Π° ΠΏΡΠΎΠ΄ΡΠΊΡΠΈΡ). Π ΡΠΎΠ²Π° Π΅ ΠΎΡΠ½ΠΎΠ²Π½Π°ΡΠ° ΠΈΠΌ ΡΠ°Π·Π»ΠΈΠΊΠ° ΠΎΡ ΡΠ΅Π»ΠΈΠΉΠ·Π½ΠΈΡΠ΅: Π½ΠΈΠΊΠΎΠ³Π° Π½Π΅ Π·Π½Π°Π΅ΡΠ΅ ΠΊΠΎΠΉ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ΅Π½ ΠΊΠΎΠΌΠΈΡ ΡΡΠ΄ΡΡΠΆΠ°Ρ.
ΠΠΌΠ° ΡΠΌΠΈΡΡΠ» Π΄Π° ΡΠ΅ ΡΡΠ±ΠΈΡΠ°Ρ Π²ΡΠ² Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΈ ΠΎΠ±ΡΠ°Π·ΠΈ: ΠΊΠ»ΠΎΠ½Π° master (ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΏΡΠΈΠ»Π°Π³Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ Π½Π° ΠΎΡΠ΄Π΅Π»Π½Π° ΠΏΠ»ΠΎΡΠ°Π΄ΠΊΠ°, Π·Π° Π΄Π° ΡΠ΅ Π²ΠΈΠΆΠ΄Π° ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ ΡΠ΅ΠΊΡΡΠ°ΡΠ° Π²Π΅ΡΡΠΈΡ Π½Π° master), ΠΊΠ»ΠΎΠ½ΠΈΡΠ΅ Ρ ΡΠ΅Π»ΠΈΠΉΠ·ΠΈ, ΠΊΠ»ΠΎΠ½ΠΈΡΠ΅ Π½Π° ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΈ Π½ΠΎΠ²ΠΎΠ²ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ.

Π‘Π»Π΅Π΄ ΠΊΠ°ΡΠΎ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»Π½ΠΈΡΡ ΠΏΡΠ΅Π³Π»Π΅Π΄ Π½Π° Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΈΡΠ΅ ΠΎΠ±ΡΠ°Π·ΠΈ Π΄ΠΎΡΡΠΈΠ³Π½Π΅ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΡΡΡΠ° ΠΎΡ ΠΏΡΠ΅Π²ΠΎΠ΄ Π² ΠΏΡΠΎΠ΄ΡΠΊΡΠΈΡ, ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅ ΠΏΠΎΡΡΠ°Π²ΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ Π΅ΡΠΈΠΊΠ΅Ρ. ΠΠ° Π±Π°Π·Π°ΡΠ° Π½Π° Π΅ΡΠΈΠΊΠ΅ΡΠ° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ ΡΠ΅ ΡΡΠ±ΠΈΡΠ° ΡΠ΅Π»ΠΈΠΉΠ·Π΅Π½ ΠΎΠ±ΡΠ°Π· (Π΅ΡΠΈΠΊΠ΅ΡΡΡ ΠΌΡ ΡΡΠΎΡΠ²Π΅ΡΡΡΠ²Π° Π½Π° Π΅ΡΠΈΠΊΠ΅Ρ ΠΎΡ Git) ΠΈ ΡΠ΅ ΠΏΡΠΈΠ»Π°Π³Π° Π½Π° staging. Π ΡΠ»ΡΡΠ°ΠΉ Π½Π° ΡΡΠΏΠ΅ΡΠ½Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° ΠΎΡ ΠΎΡΠ΄Π΅Π»Π° ΠΏΠΎ ΠΊΠ°ΡΠ΅ΡΡΠ²ΠΎ, ΡΠΎΠΉ ΠΏΡΠ΅ΠΌΠΈΠ½Π°Π²Π° Π² ΠΏΡΠΎΠ΄ΡΠΊΡΠΈΡ.
dapp
ΠΡΠΈΡΠΊΠΎ ΠΎΠΏΠΈΡΠ°Π½ΠΎ (ΠΏΡΠΈΠ»Π°Π³Π°Π½Π΅, ΡΡΠ±ΠΈΡΠ°Π½Π΅ Π½Π° ΠΎΠ±ΡΠ°Π·ΠΈ, ΠΏΠΎΡΠ»Π΅Π΄Π²Π°ΡΠ° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°) ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΎ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»Π½ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° Bash ΡΠΊΡΠΈΠΏΡΠΎΠ²Π΅ ΠΈ Π΄ΡΡΠ³ΠΈ "ΠΏΠΎΠ΄ΡΡΡΠ½ΠΈ" ΡΡΠ΅Π΄ΡΡΠ²Π°. ΠΠΎ Π°ΠΊΠΎ ΡΠ΅ ΠΏΡΠ°Π²ΠΈ ΡΠ°ΠΊΠ°, Π² ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ ΠΌΠΎΠΌΠ΅Π½Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡΡΠ° ΡΠ΅ Π΄ΠΎΠ²Π΅Π΄Π΅ Π΄ΠΎ Π³ΠΎΠ»ΡΠΌΠ° ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ ΠΈ Π»ΠΎΡΠ° ΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌΠΎΡΡ. Π Π°Π·Π±ΠΈΡΠ°ΠΉΠΊΠΈ ΡΠΎΠ²Π°, Π½ΠΈΠ΅ ΡΡΠ·Π΄Π°Π΄ΠΎΡ ΠΌΠ΅ ΡΠ²ΠΎΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½Π° Workflow ΡΡΠΈΠ»ΠΈΡΠ° Π·Π° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ Π½Π° CI/CD β dapp.
ΠΠ΅ΠΈΠ½ ΠΈΡΡ ΠΎΠ΄Π΅Π½ ΠΊΠΎΠ΄ Π΅ Π½Π°ΠΏΠΈΡΠ°Π½ Π½Π° Ruby, Π΅ ΠΎΡΠΊΡΠΈΡ ΠΈ ΠΏΡΠ±Π»ΠΈΠΊΡΠ²Π°Π½ Π½Π° . ΠΠ° ΡΡΠΆΠ°Π»Π΅Π½ΠΈΠ΅, Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡΡΠ° Π² ΠΌΠΎΠΌΠ΅Π½ΡΠ° Π΅ Π½Π°ΠΉ-ΡΠ»Π°Π±Π°ΡΠ° ΡΡΡΠ°Π½Π° Π½Π° ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°, Π½ΠΎ ΡΠ°Π±ΠΎΡΠΈΠΌ ΠΏΠΎ Π½Π΅Ρ. Π ΠΎΡΠ΅ Π½Π΅Π²Π΅Π΄Π½ΡΠΆ ΡΠ΅ Π½Π°ΠΏΠΈΡΠ΅ΠΌ ΠΈ ΡΠ°Π·ΠΊΠ°ΠΆΠ΅ΠΌ Π·Π° dapp, ΡΡΠΉ ΠΊΠ°ΡΠΎ ΠΈΡΠΊΡΠ΅Π½ΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΡΠ°ΠΊΠ°ΠΌΠ΅ Π΄Π° ΡΠΏΠΎΠ΄Π΅Π»ΠΈΠΌ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈΡΠ΅ ΠΌΡ ΡΡΡ Π·Π°ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠΎΠ²Π°Π½ΠΎΡΠΎ ΠΎΠ±ΡΠ΅ΡΡΠ²ΠΎ, Π° Π·Π°ΡΠ΅Π³Π° ΠΈΠ·ΠΏΡΠ°ΡΠ°ΠΉΡΠ΅ ΡΠ²ΠΎΠΈΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ ΠΈ pull requests ΠΈ/ΠΈΠ»ΠΈ ΡΠ»Π΅Π΄Π΅ΡΠ΅ ΡΠ°Π·Π²ΠΈΡΠΈΠ΅ΡΠΎ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ° Π½Π° GitHub.
ΠΠ±Π½ΠΎΠ²Π΅Π½ΠΎ Π½Π° 13 Π°Π²Π³ΡΡΡ 2019 Π³.: Π² ΠΌΠΎΠΌΠ΅Π½ΡΠ° ΠΏΡΠΎΠ΅ΠΊΡΡΡ dapp Π΅ ΠΏΡΠ΅ΠΈΠΌΠ΅Π½ΡΠ²Π°Π½ Π½Π° , Π½Π΅Π³ΠΎΠ²ΠΈΡΡ ΠΊΠΎΠ΄ Π΅ ΠΈΠ·ΡΡΠ»ΠΎ ΠΏΡΠ΅ΠΏΠΈΡΠ°Π½ Π½Π° Go, Π° Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡΡΠ° Π΅ Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΎ ΠΏΠΎΠ΄ΠΎΠ±ΡΠ΅Π½Π°.
Kubernetes
ΠΡΡΠ³ Π³ΠΎΡΠΎΠ² ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Ρ ΠΎΡΠΊΡΠΈΡ ΠΊΠΎΠ΄, ΠΊΠΎΠΉΡΠΎ Π²Π΅ΡΠ΅ Π΅ ΠΏΠΎΠ»ΡΡΠΈΠ» Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΎ ΠΏΡΠΈΠ·Π½Π°Π½ΠΈΠ΅ Π² ΠΏΡΠΎΡΠ΅ΡΠΈΠΎΠ½Π°Π»Π½Π°ΡΠ° ΡΡΠ΅Π΄Π°, Π΅ Kubernetes, ΠΊΠ»ΡΡΡΠ΅Ρ Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° Docker. Π’Π΅ΠΌΠ°ΡΠ° Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ ΠΌΡ Π² Π΅ΠΊΡΠΏΠ»ΠΎΠ°ΡΠ°ΡΠΈΡΡΠ° Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠΈ, ΠΈΠ·Π³ΡΠ°Π΄Π΅Π½ΠΈ Π½Π° Docker, Π½Π°Π΄Ρ Π²ΡΡΠ»Ρ ΠΊΡΡΠ³Π° Π½Π° ΠΈΠ·Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ, Π·Π°ΡΠΎΠ²Π° ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΡΠ½Π΅ΡΠΎ Π΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΎ Π΄ΠΎ ΠΏΡΠ΅Π³Π»Π΅Π΄ Π½Π° Π½ΡΠΊΠΎΠΈ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΈ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ.
ΠΠ° ΠΏΡΡΠΊΠ°Π½Π΅ΡΠΎ Kubernetes ΠΏΡΠ΅Π΄Π»Π°Π³Π°:
- readiness probe β ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° Π³ΠΎΡΠΎΠ²Π½ΠΎΡΡΡΠ° Π½Π° Π½ΠΎΠ²Π°ΡΠ° Π²Π΅ΡΡΠΈΡ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ (Π·Π° ΠΏΡΠ΅Π½Π°ΡΠΎΡΠ²Π°Π½Π΅ Π½Π° ΡΡΠ°ΡΠΈΠΊΠ° ΠΊΡΠΌ Π½Π΅Ρ);
- rolling update β ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π½ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΎΠ±ΡΠ°Π·Π° Π² ΠΊΠ»ΡΡΡΠ΅ΡΠ° ΠΎΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ (ΠΈΠ·ΠΊΠ»ΡΡΠ²Π°Π½Π΅, ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅, ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠ° Π·Π° ΠΏΡΡΠΊΠ°Π½Π΅, ΠΏΡΠ΅Π½Π°ΡΠΎΡΠ²Π°Π½Π΅ Π½Π° ΡΡΠ°ΡΠΈΠΊΠ°);
- synchronous update β ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΎΠ±ΡΠ°Π·Π° Π² ΠΊΠ»ΡΡΡΠ΅ΡΠ° Ρ Π΄ΡΡΠ³ ΠΏΠΎΠ΄Ρ ΠΎΠ΄: ΠΏΡΡΠ²ΠΎ Π½Π° ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Π°ΡΠ° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ, ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° Π½Π° ΠΎΡΡΠ°Π½Π°Π»ΠΈΡΠ΅;
- canary releases β ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π½Π° Π½ΠΎΠ² ΠΎΠ±ΡΠ°Π· Π½Π° ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ (ΠΌΠ°Π»ΡΠΊ) Π±ΡΠΎΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ Π·Π° Π½Π°Π±Π»ΡΠ΄Π΅Π½ΠΈΠ΅ Π½Π° Π°Π½ΠΎΠΌΠ°Π»ΠΈΠΈ.
Π’ΡΠΉ ΠΊΠ°ΡΠΎ Continuous Delivery Π½Π΅ Π΅ ΡΠ°ΠΌΠΎ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°Π²Π°Π½Π΅ Π½Π° Π½ΠΎΠ²Π° Π²Π΅ΡΡΠΈΡ, Π² Kubernetes ΠΈΠΌΠ° ΡΠ΅Π΄ΠΈΡΠ° Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π·Π° ΠΏΠΎΡΠ»Π΅Π΄Π²Π°ΡΠ° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ°ΡΠ°: Π²Π³ΡΠ°Π΄Π΅Π½Π° ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³ΠΎΠ²Π° ΡΠΈΡΡΠ΅ΠΌΠ° ΠΈ Π»ΠΎΠ³ΠΈΡΠ°Π½Π΅ Π·Π° Π²ΡΠΈΡΠΊΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ, Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ ΠΌΠ°ΡΠ°Π±ΠΈΡΠ°Π½Π΅ ΠΈ Π΄Ρ. ΠΡΠΈΡΠΊΠΎ ΡΠΎΠ²Π° Π²Π΅ΡΠ΅ ΡΠ°Π±ΠΎΡΠΈ ΠΈ ΠΏΡΠΎΡΡΠΎ ΠΎΡΠ°ΠΊΠ²Π° ΠΊΠΎΠΌΠΏΠ΅ΡΠ΅Π½ΡΠ½ΠΎ Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅ Π² Π²Π°ΡΠΈΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΠΈ.
ΠΡΠΎΠ³ΠΎΠ²ΠΈ ΠΏΡΠ΅ΠΏΠΎΡΡΠΊΠΈ
- ΠΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡΠ΅ Docker.
- Π‘ΡΠ·Π΄Π°Π²Π°ΠΉΡΠ΅ Docker ΠΎΠ±ΡΠ°Π·ΠΈ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ Π·Π° Π²ΡΠΈΡΠΊΠΈ Π½ΡΠΆΠ΄ΠΈ.
- Π‘Π»Π΅Π΄Π²Π°ΠΉΡΠ΅ ΠΏΡΠΈΠ½ΡΠΈΠΏΠ° "ΠΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ°ΡΠ° Π΅ ΠΊΠΎΠ΄".
- Π‘Π²ΡΡΠΆΠ΅ΡΠ΅ Git Ρ Docker.
- Π Π΅Π³Π»Π°ΠΌΠ΅Π½ΡΠΈΡΠ°ΠΉΡΠ΅ ΡΠ΅Π΄Π° Π½Π° ΠΏΡΡΠΊΠ°Π½Π΅.
- ΠΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡΠ΅ Π³ΠΎΡΠΎΠ²Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° (Kubernetes ΠΈΠ»ΠΈ Π΄ΡΡΠ³Π°).
ΠΠΈΠ΄Π΅ΠΎ ΠΈ ΡΠ»Π°ΠΉΠ΄ΠΎΠ²Π΅
ΠΠΈΠ΄Π΅ΠΎ ΠΎΡ ΠΈΠ·Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ (ΠΎΠΊΠΎΠ»ΠΎ ΡΠ°Ρ) (ΡΠ°ΠΌΠΎΡΠΎ ΠΈΠ·Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π·Π°ΠΏΠΎΡΠ²Π° ΠΎΡ 5-ΡΠ° ΠΌΠΈΠ½ΡΡΠ° β ΠΏΠΎ Π²ΡΡΠ·ΠΊΠ°ΡΠ° Π²ΡΠ·ΠΏΡΠΎΠΈΠ·Π²Π΅ΠΆΠ΄Π°Π½Π΅ ΠΎΡ ΡΠΎΠ·ΠΈ ΠΌΠΎΠΌΠ΅Π½Ρ).
ΠΡΠ΅Π·Π΅Π½ΡΠ°ΡΠΈΡ Π½Π° Π΄ΠΎΠΊΠ»Π°Π΄Π°:
P.S.
ΠΡΡΠ³ΠΈ ΠΈΠ·Π»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΏΠΎ ΡΠ΅ΠΌΠ°ΡΠ° Π² Π½Π°ΡΠΈΡ Π±Π»ΠΎΠ³:
- «» (ΠΠΌΠΈΡΡΠΈΠΉ Π‘ΡΠΎΠ»ΡΡΠΎΠ²; 27 ΠΌΠ°ΠΉ 2019 Π½Π° DevOpsConf);
- «» (ΠΠΌΠΈΡΡΠΈΠΉ Π‘ΡΠΎΠ»ΡΡΠΎΠ²; 8 Π½ΠΎΠ΅ΠΌΠ²ΡΠΈ 2018 Π½Π° HighLoad++);
- «» (ΠΠΌΠΈΡΡΠΈΠΉ Π‘ΡΠΎΠ»ΡΡΠΎΠ²; 7 Π½ΠΎΠ΅ΠΌΠ²ΡΠΈ 2017 Π½Π° HighLoad++);
- «» (ΠΠΌΠΈΡΡΠΈΠΉ Π‘ΡΠΎΠ»ΡΡΠΎΠ²; 6 ΡΠ½ΠΈ 2017 Π½Π° RootConf).
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: habr.com
