ΠΡΡΠ²Π°ΡΠ° ΡΡΡΠΏΠΊΠ° ΠΎΡ Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅ΡΠΎ Π² Kubernetes Π΅ ΠΏΠΎΡΡΠ°Π²ΡΠ½Π΅ΡΠΎ Π½Π° Π²Π°ΡΠ΅ΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ. Π ΡΠ°Π·ΠΈ ΠΏΠΎΡΠ΅Π΄ΠΈΡΠ° ΡΠ΅ ΡΠ°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΡΡΠ·Π΄Π°Π΄Π΅ΡΠ΅ ΠΌΠ°Π»ΠΊΠΎ, Π·Π°ΡΠΈΡΠ΅Π½ΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ.
ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΠ΅Π½ΠΈΠ΅ Π½Π° Docker ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ΡΠΎ Π½Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ Π½ΠΈΠΊΠΎΠ³Π° Π½Π΅ Π΅ Π±ΠΈΠ»ΠΎ ΠΏΠΎ-Π»Π΅ΡΠ½ΠΎ. ΠΠΎΡΠΎΡΠ΅ΡΠ΅ ΠΎΡΠ½ΠΎΠ²Π½ΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅, Π΄ΠΎΠ±Π°Π²Π΅ΡΠ΅ Π²Π°ΡΠΈΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ ΠΈ ΡΡΠ·Π΄Π°ΠΉΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ.
ΠΡΠΏΡΠ΅ΠΊΠΈ ΡΠ΅ ΡΠ°Π·ΠΈ ΡΠ΅Ρ
Π½ΠΈΠΊΠ° Π΅ ΡΡΠ΄Π΅ΡΠ½Π° Π·Π° Π·Π°ΠΏΠΎΡΠ²Π°Π½Π΅, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° Π±Π°Π·ΠΎΠ²ΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° Π΄ΠΎΠ²Π΅Π΄Π΅ Π΄ΠΎ ΠΎΠΏΠ°ΡΠ½Π° ΡΠ°Π±ΠΎΡΠ° Ρ Π³ΠΎΠ»Π΅ΠΌΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ, ΠΏΡΠ»Π½ΠΈ Ρ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ.
ΠΡΠ²Π΅Π½ ΡΠΎΠ²Π° ΠΏΠΎΠ²Π΅ΡΠ΅ΡΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π² Docker ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ Debian ΠΈΠ»ΠΈ Ubuntu Π·Π° Π±Π°Π·ΠΎΠ²ΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΈ Π΄ΠΎΠΊΠ°ΡΠΎ ΡΠΎΠ²Π° ΠΎΡΠΈΠ³ΡΡΡΠ²Π° ΠΎΡΠ»ΠΈΡΠ½Π° ΡΡΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡ ΠΈ Π»Π΅ΡΠ½Π° ΠΏΠ΅ΡΡΠΎΠ½Π°Π»ΠΈΠ·Π°ΡΠΈΡ (Π΄ΠΎΠΊΠ΅Ρ ΡΠ°ΠΉΠ» ΠΎΡΠ½Π΅ΠΌΠ° ΡΠ°ΠΌΠΎ Π΄Π²Π° ΡΠ΅Π΄Π° ΠΊΠΎΠ΄), Π±Π°Π·ΠΎΠ²ΠΈΡΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΌΠΎΠ³Π°Ρ Π΄Π° Π΄ΠΎΠ±Π°Π²ΡΡ ΡΡΠΎΡΠΈΡΠΈ ΠΌΠ΅Π³Π°Π±Π°ΠΉΡΠΈ Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΎ Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅ ΠΊΡΠΌ Π²Π°ΡΠΈΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅Π΄ΠΈΠ½ ΠΏΡΠΎΡΡ ΡΠ°ΠΉΠ» node.js Π·Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Go βhello-worldβ Π΅ ΠΎΠΊΠΎΠ»ΠΎ 700 ΠΌΠ΅Π³Π°Π±Π°ΠΉΡΠ°, Π΄ΠΎΠΊΠ°ΡΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»Π½ΠΎΡΠΎ Π²ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΅ Ρ ΡΠ°Π·ΠΌΠ΅Ρ ΡΠ°ΠΌΠΎ Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΌΠ΅Π³Π°Π±Π°ΠΉΡΠ°.
Π’Π°ΠΊΠ° ΡΠ΅ ΡΡΠ»Π°ΡΠ° ΡΠ°Π·ΠΈ Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½Π° ΡΠ°Π±ΠΎΡΠ° Π΅ Π·Π°Π³ΡΠ±Π° Π½Π° ΡΠΈΡΡΠΎΠ²ΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ ΠΈ ΡΡΠ΄Π΅ΡΠ½ΠΎ ΡΠΊΡΠΈΠ²Π°Π»ΠΈΡΠ΅ Π·Π° ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ ΠΈ Π³ΡΠ΅ΡΠΊΠΈ Π² ΡΠΈΠ³ΡΡΠ½ΠΎΡΡΡΠ°. Π’Π°ΠΊΠ° ΡΠ΅ Π½Π΅ΠΊΠ° Π΄Π° ΡΠ°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ Π΄Π²Π° Π½Π°ΡΠΈΠ½Π° Π·Π° Π½Π°ΠΌΠ°Π»ΡΠ²Π°Π½Π΅ Π½Π° ΡΠ°Π·ΠΌΠ΅ΡΠ° Π½Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ.
ΠΡΡΠ²ΠΈΡΡ Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° ΠΌΠ°Π»ΠΊΠΈ Π±Π°Π·ΠΎΠ²ΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ, Π²ΡΠΎΡΠΈΡΡ Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° ΠΌΠΎΠ΄Π΅Π»Π° Builder. ΠΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΈ ΠΎΡΠ½ΠΎΠ²Π½ΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π²Π΅ΡΠΎΡΡΠ½ΠΎ Π΅ Π½Π°ΠΉ-Π»Π΅ΡΠ½ΠΈΡΡ Π½Π°ΡΠΈΠ½ Π΄Π° Π½Π°ΠΌΠ°Π»ΠΈΡΠ΅ ΡΠ°Π·ΠΌΠ΅ΡΠ° Π½Π° Π²Π°ΡΠΈΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ. ΠΠ°ΠΉ-Π²Π΅ΡΠΎΡΡΠ½ΠΎ Π΅Π·ΠΈΠΊΡΡ ΠΈΠ»ΠΈ ΡΡΠ΅ΠΊΡΡ, ΠΊΠΎΠΉΡΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»Π½ΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΠ΅ΡΠΎ Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ ΠΎΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅. ΠΠ΅ΠΊΠ° Π΄Π° ΡΠ°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ Π½Π°ΡΠΈΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ node.js.
ΠΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ Π² Docker ΡΠ°Π·ΠΌΠ΅ΡΡΡ Π½Π° Π±Π°Π·ΠΎΠ²ΠΎΡΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ node:8 Π΅ 670 MB, Π° ΡΠ°Π·ΠΌΠ΅ΡΡΡ Π½Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ node: 8-alpine Π΅ ΡΠ°ΠΌΠΎ 65 MB, ΡΠΎΠ΅ΡΡ 10 ΠΏΡΡΠΈ ΠΏΠΎ-ΠΌΠ°Π»ΡΠΊ. ΠΠ°ΡΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎΡΠΎ Π±Π°Π·ΠΎΠ²ΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Alpine, Π²ΠΈΠ΅ Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΎ ΡΠ΅ Π½Π°ΠΌΠ°Π»ΠΈΡΠ΅ ΡΠ°Π·ΠΌΠ΅ΡΠ° Π½Π° Π²Π°ΡΠΈΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ. Alpine Π΅ ΠΌΠ°Π»ΠΊΠ° ΠΈ Π»Π΅ΠΊΠ° Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΡ Π½Π° Linux, ΠΊΠΎΡΡΠΎ Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠΏΡΠ»ΡΡΠ½Π° ΡΡΠ΅Π΄ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈΡΠ΅ Π½Π° Docker, Π·Π°ΡΠΎΡΠΎ Π΅ ΡΡΠ²ΠΌΠ΅ΡΡΠΈΠΌΠ° Ρ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΊΠ°ΡΠΎ ΡΡΡΠ΅Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° ΠΌΠ°Π»ΠΊΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ. ΠΠ° ΡΠ°Π·Π»ΠΈΠΊΠ° ΠΎΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΡΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Docker "node", "node:alpine" ΠΏΡΠ΅ΠΌΠ°Ρ
Π²Π° ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ΅ΡΠ²ΠΈΠ·Π½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈ, ΠΎΡΡΠ°Π²ΡΠΉΠΊΠΈ ΡΠ°ΠΌΠΎ ΡΠ΅Π·ΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΠ° Π΄ΠΎΡΡΠ°ΡΡΡΠ½ΠΈ Π·Π° ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π½Π° Π²Π°ΡΠ΅ΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.
ΠΠ° Π΄Π° ΠΏΡΠ΅ΠΌΠΈΠ½Π΅ΡΠ΅ ΠΊΡΠΌ ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ ΠΎΡΠ½ΠΎΠ²Π½ΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅, ΠΏΡΠΎΡΡΠΎ Π°ΠΊΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ°ΠΉΡΠ΅ Dockerfile, Π·Π° Π΄Π° Π·Π°ΠΏΠΎΡΠ½Π΅ΡΠ΅ Π΄Π° ΡΠ°Π±ΠΎΡΠΈΡΠ΅ Ρ Π½ΠΎΠ²ΠΎΡΠΎ ΠΎΡΠ½ΠΎΠ²Π½ΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅:
Π‘Π΅Π³Π°, Π·Π° ΡΠ°Π·Π»ΠΈΠΊΠ° ΠΎΡ ΡΡΠ°ΡΠΎΡΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π½Π° onbuild, ΡΡΡΠ±Π²Π° Π΄Π° ΠΊΠΎΠΏΠΈΡΠ°ΡΠ΅ ΠΊΠΎΠ΄Π° ΡΠΈ Π² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ° ΠΈ Π΄Π° ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°ΡΠ΅ Π²ΡΠΈΡΠΊΠΈ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ. Π Π½ΠΎΠ² Dockerfile ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡΡ Π·Π°ΠΏΠΎΡΠ²Π° Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ node:alpine, ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° ΡΡΠ·Π΄Π°Π²Π° Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ Π·Π° ΠΊΠΎΠ΄Π°, ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ° Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° ΠΌΠ΅Π½ΠΈΠ΄ΠΆΡΡΠ° Π½Π° ΠΏΠ°ΠΊΠ΅ΡΠΈ NPM ΠΈ Π½Π°ΠΊΡΠ°Ρ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π° server.js.
Π’ΠΎΠ²Π° Π½Π°Π΄Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ Π²ΠΎΠ΄ΠΈ Π΄ΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ, ΠΊΠΎΠΉΡΠΎ Π΅ 10 ΠΏΡΡΠΈ ΠΏΠΎ-ΠΌΠ°Π»ΡΠΊ ΠΏΠΎ ΡΠ°Π·ΠΌΠ΅Ρ. ΠΠΊΠΎ Π²Π°ΡΠΈΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ΅Π½ Π΅Π·ΠΈΠΊ ΠΈΠ»ΠΈ ΡΡΠ΅ΠΊ Π½ΡΠΌΠ° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡ Π·Π° Π½Π°ΠΌΠ°Π»ΡΠ²Π°Π½Π΅ Π½Π° Π±Π°Π·ΠΎΠ²ΠΎΡΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡΠ΅ Alpine Linux. Π’ΠΎΠΉ ΡΡΡΠΎ ΡΠ°ΠΊΠ° ΡΠ΅ ΠΎΡΠΈΠ³ΡΡΠΈ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° ΠΏΡΠ»Π½ΠΎ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΡΡΠ΄ΡΡΠΆΠ°Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°. ΠΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° ΠΌΠ°Π»ΠΊΠΈ ΠΎΡΠ½ΠΎΠ²Π½ΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π΅ ΡΡΠ΄Π΅ΡΠ΅Π½ Π½Π°ΡΠΈΠ½ Π·Π° Π±ΡΡΠ·ΠΎ ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΌΠ°Π»ΠΊΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ. ΠΠΎ ΠΎΡΠ΅ ΠΏΠΎ-Π³ΠΎΠ»ΡΠΌΠΎ Π½Π°ΠΌΠ°Π»Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΏΠΎΡΡΠΈΠ³Π½Π΅ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° Builder Pattern.
Π ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠΈΡΠ°Π½ΠΈΡΠ΅ Π΅Π·ΠΈΡΠΈ ΠΈΠ·Ρ
ΠΎΠ΄Π½ΠΈΡΡ ΠΊΠΎΠ΄ ΠΏΡΡΠ²ΠΎ ΡΠ΅ ΠΏΡΠ΅Π΄Π°Π²Π° Π½Π° ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΠ° ΠΈ ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ ΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°. Π ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°Π½ΠΈΡΠ΅ Π΅Π·ΠΈΡΠΈ ΠΈΠ·Ρ
ΠΎΠ΄Π½ΠΈΡΡ ΠΊΠΎΠ΄ ΠΏΡΡΠ²ΠΎ ΡΠ΅ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ²Π° Π² ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°Π½ ΠΊΠΎΠ΄. ΠΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°Π½Π΅ΡΠΎ ΠΎΠ±Π°ΡΠ΅ ΡΠ΅ΡΡΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ, ΠΊΠΎΠΈΡΠΎ Π²ΡΡΡΠ½ΠΎΡΡ Π½Π΅ ΡΠ° Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΈ Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° ΠΊΠΎΠ΄Π°. Π’ΠΎΠ²Π° ΠΎΠ·Π½Π°ΡΠ°Π²Π°, ΡΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΠΏΡΠ»Π½ΠΎ Π΄Π° ΠΏΡΠ΅ΠΌΠ°Ρ
Π½Π΅ΡΠ΅ ΡΠ΅Π·ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ ΠΎΡ ΠΊΡΠ°ΠΉΠ½ΠΈΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ. ΠΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ Builder Pattern Π·Π° ΡΠΎΠ²Π°.
ΠΠΎΠ΄ΡΡ ΡΠ΅ ΡΡΠ·Π΄Π°Π²Π° Π² ΠΏΡΡΠ²ΠΈΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ ΠΈ ΡΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°. Π‘Π»Π΅Π΄ ΡΠΎΠ²Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°Π½ΠΈΡΡ ΠΊΠΎΠ΄ ΡΠ΅ ΠΏΠ°ΠΊΠ΅ΡΠΈΡΠ° Π² ΠΎΠΊΠΎΠ½ΡΠ°ΡΠ΅Π»Π΅Π½ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ Π±Π΅Π· ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΎΡΠΈ ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ, Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΈ Π·Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°Π½Π΅ Π½Π° ΡΠΎΠ·ΠΈ ΠΊΠΎΠ΄. ΠΠ΅ΠΊΠ° ΡΡΠ°ΡΡΠΈΡΠ°ΠΌΠ΅ Go ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΡΠ΅Π· ΡΠΎΠ·ΠΈ ΠΏΡΠΎΡΠ΅Ρ. ΠΡΡΠ²ΠΎ, ΡΠ΅ ΠΏΡΠ΅ΠΌΠΈΠ½Π΅ΠΌ ΠΎΡ onbuild ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ ΠΊΡΠΌ Alpine Linux.
Π Π½ΠΎΠ²ΠΈΡ Dockerfile ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡΡ Π·Π°ΠΏΠΎΡΠ²Π° Ρ golang:alpine ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅. Π‘Π»Π΅Π΄ ΡΠΎΠ²Π° ΡΡΠ·Π΄Π°Π²Π° Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ Π·Π° ΠΊΠΎΠ΄Π°, ΠΊΠΎΠΏΠΈΡΠ° Π³ΠΎ Π² ΠΈΠ·Ρ
ΠΎΠ΄Π½ΠΈΡ ΠΊΠΎΠ΄, ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π° ΡΠΎΠ·ΠΈ ΠΈΠ·Ρ
ΠΎΠ΄Π΅Π½ ΠΊΠΎΠ΄ ΠΈ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ. Π’ΠΎΠ·ΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎ-ΠΌΠ°Π»ΡΠΊ ΠΎΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ° onbuild, Π½ΠΎ Π²ΡΠ΅ ΠΏΠ°ΠΊ ΡΡΠ΄ΡΡΠΆΠ° ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΎΡΠ° ΠΈ Π΄ΡΡΠ³ΠΈ Go ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ, ΠΊΠΎΠΈΡΠΎ Π²ΡΡΡΠ½ΠΎΡΡ Π½Π΅ ΡΠ° Π½ΠΈ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΈ. Π’Π°ΠΊΠ° ΡΠ΅ Π½Π΅ΠΊΠ° ΠΏΡΠΎΡΡΠΎ ΠΈΠ·Π²Π»Π΅ΡΠ΅ΠΌ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°Π½Π°ΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ° ΠΈ Ρ ΠΏΠΎΡΡΠ°Π²ΠΈΠΌ Π² Π½Π΅ΠΉΠ½ΠΈΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ.
ΠΠΎΠΆΠ΅ Π΄Π° Π·Π°Π±Π΅Π»Π΅ΠΆΠΈΡΠ΅ Π½Π΅ΡΠΎ ΡΡΡΠ°Π½Π½ΠΎ Π² ΡΠΎΠ·ΠΈ Docker ΡΠ°ΠΉΠ»: ΡΠΎΠΉ ΡΡΠ΄ΡΡΠΆΠ° Π΄Π²Π° ΡΠ΅Π΄Π° FROM. ΠΡΡΠ²ΠΈΡΡ ΡΠ°Π·Π΄Π΅Π» ΠΎΡ 4 ΡΠ΅Π΄Π° ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° Π°Π±ΡΠΎΠ»ΡΡΠ½ΠΎ ΡΡΡΠΈΡΡ ΠΊΠ°ΡΠΎ ΠΏΡΠ΅Π΄ΠΈΡΠ½ΠΈΡ Dockerfile, Ρ ΠΈΠ·ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π½Π° ΡΠΎΠ²Π°, ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΊΠ»ΡΡΠΎΠ²Π°ΡΠ° Π΄ΡΠΌΠ° AS Π·Π° ΠΈΠΌΠ΅ Π½Π° ΡΠΎΠ·ΠΈ Π΅ΡΠ°ΠΏ. Π‘Π»Π΅Π΄Π²Π°ΡΠΈΡΡ ΡΠ°Π·Π΄Π΅Π» ΠΈΠΌΠ° Π½ΠΎΠ² ΡΠ΅Π΄ FROM Π·Π° Π·Π°ΠΏΠΎΡΠ²Π°Π½Π΅ Π½Π° Π½ΠΎΠ²ΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅, ΠΊΡΠ΄Π΅ΡΠΎ Π²ΠΌΠ΅ΡΡΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ golang:alpine ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ Raw alpine ΠΊΠ°ΡΠΎ ΠΎΡΠ½ΠΎΠ²Π½ΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅.
Raw Alpine Linux Π½ΡΠΌΠ° ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½ΠΈ SSL ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΈ, ΠΊΠΎΠ΅ΡΠΎ ΡΠ΅ Π΄ΠΎΠ²Π΅Π΄Π΅ Π΄ΠΎ Π½Π΅ΡΡΠΏΠ΅Ρ Π½Π° ΠΏΠΎΠ²Π΅ΡΠ΅ΡΠΎ API ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½ΠΈΡ ΠΏΡΠ΅Π· HTTPS, ΡΠ°ΠΊΠ° ΡΠ΅ Π½Π΅ΠΊΠ° ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°ΠΌΠ΅ Π½ΡΠΊΠΎΠΈ Π³Π»Π°Π²Π½ΠΈ CA ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΈ.
Π‘Π΅Π³Π° ΠΈΠ΄Π²Π° Π·Π°Π±Π°Π²Π½Π°ΡΠ° ΡΠ°ΡΡ: Π·Π° Π΄Π° ΠΊΠΎΠΏΠΈΡΠ°ΡΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°Π½ΠΈΡ ΠΊΠΎΠ΄ ΠΎΡ ΠΏΡΡΠ²ΠΈΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ Π²ΡΠ² Π²ΡΠΎΡΠΈΡ, ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΎΡΡΠΎ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° COPY, ΡΠ°Π·ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Π° Π½Π° ΡΠ΅Π΄ 5 ΠΎΡ Π²ΡΠΎΡΠΈΡ ΡΠ°Π·Π΄Π΅Π». Π’ΠΎΠΉ ΡΠ΅ ΠΊΠΎΠΏΠΈΡΠ° ΡΠ°ΠΌΠΎ Π΅Π΄ΠΈΠ½ ΡΠ°ΠΉΠ» Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ ΠΈ Π½ΡΠΌΠ° Π΄Π° Π·Π°ΡΠ΅Π³Π½Π΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈΡΠ΅ Π½Π° ΠΏΠΎΠΌΠΎΡΠ½Π°ΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ° Go. ΠΠΎΠ²ΠΈΡΡ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ΡΠ°ΠΏΠ΅Π½ Docker ΡΠ°ΠΉΠ» ΡΠ΅ ΡΡΠ΄ΡΡΠΆΠ° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ Ρ ΡΠ°Π·ΠΌΠ΅Ρ ΡΠ°ΠΌΠΎ 12 ΠΌΠ΅Π³Π°Π±Π°ΠΉΡΠ°, Π² ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ Ρ ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»Π½ΠΎΡΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ, ΠΊΠΎΠ΅ΡΠΎ Π±Π΅ΡΠ΅ 700 ΠΌΠ΅Π³Π°Π±Π°ΠΉΡΠ°, ΠΊΠΎΠ΅ΡΠΎ Π΅ Π³ΠΎΠ»ΡΠΌΠ° ΡΠ°Π·Π»ΠΈΠΊΠ°!
Π’Π°ΠΊΠ° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° ΠΌΠ°Π»ΠΊΠΈ ΠΎΡΠ½ΠΎΠ²Π½ΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΈ Builder Pattern ΡΠ° ΡΡΡΠ°Ρ
ΠΎΡΠ½ΠΈ Π½Π°ΡΠΈΠ½ΠΈ Π·Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ Π±Π΅Π· ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ°Π±ΠΎΡΠ°.
ΠΡΠ·ΠΌΠΎΠΆΠ½ΠΎ Π΅ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ ΠΎΡ ΡΡΠ΅ΠΊΠ° Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ Π΄Π° ΠΈΠΌΠ° Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ Π½Π°ΡΠΈΠ½ΠΈ Π·Π° Π½Π°ΠΌΠ°Π»ΡΠ²Π°Π½Π΅ Π½Π° ΡΠ°Π·ΠΌΠ΅ΡΠ° Π½Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ ΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°, Π½ΠΎ Π½Π°ΠΈΡΡΠΈΠ½Π° Π»ΠΈ ΠΌΠ°Π»ΠΊΠΈΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ ΠΈΠΌΠ°Ρ ΠΈΠ·ΠΌΠ΅ΡΠΈΠΌΠ° ΠΏΠΎΠ»Π·Π°? ΠΠ΅ΠΊΠ° ΡΠ°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ Π΄Π²Π΅ ΠΎΠ±Π»Π°ΡΡΠΈ, Π² ΠΊΠΎΠΈΡΠΎ ΠΌΠ°Π»ΠΊΠΈΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ ΡΠ° ΠΈΠ·ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ Π΅ΡΠ΅ΠΊΡΠΈΠ²Π½ΠΈ β ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ ΠΈ ΡΠΈΠ³ΡΡΠ½ΠΎΡΡ.
ΠΠ° Π΄Π° ΠΎΡΠ΅Π½ΠΈΡΠ΅ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ°, ΠΏΠΎΠΌΠΈΡΠ»Π΅ΡΠ΅ Π·Π° ΠΏΡΠΎΠ΄ΡΠ»ΠΆΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° Π½Π° ΠΏΡΠΎΡΠ΅ΡΠ° Π½Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ, Π²ΠΌΡΠΊΠ²Π°Π½Π΅ΡΠΎ ΠΌΡ Π² ΡΠ΅Π³ΠΈΡΡΡΡΠ° (Π½Π°ΡΠΈΡΠΊΠ°Π½Π΅) ΠΈ ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° ΠΈΠ·Π²Π»ΠΈΡΠ°Π½Π΅ΡΠΎ ΠΌΡ ΠΎΡ ΡΠ°ΠΌ (ΠΈΠ·ΡΠ΅Π³Π»ΡΠ½Π΅). ΠΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π²ΠΈΠ΄ΠΈΡΠ΅, ΡΠ΅ ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΈΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ ΠΈΠΌΠ° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΎ ΠΏΡΠ΅Π΄ΠΈΠΌΡΡΠ²ΠΎ ΠΏΡΠ΅Π΄ ΠΏΠΎ-Π³ΠΎΠ»Π΅ΠΌΠΈΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ.
Docker ΡΠ΅ ΠΊΠ΅ΡΠΈΡΠ° ΡΠ»ΠΎΠ΅Π²Π΅ΡΠ΅, ΡΠ°ΠΊΠ° ΡΠ΅ ΡΠ»Π΅Π΄Π²Π°ΡΠΈΡΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΈΠΈ ΡΠ΅ Π±ΡΠ΄Π°Ρ ΠΌΠ½ΠΎΠ³ΠΎ Π±ΡΡΠ·ΠΈ. ΠΡΠΏΡΠ΅ΠΊΠΈ ΡΠΎΠ²Π°, ΠΌΠ½ΠΎΠ³ΠΎ CI ΡΠΈΡΡΠ΅ΠΌΠΈ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΈ Π·Π° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ ΠΈ ΡΠ΅ΡΡΠ²Π°Π½Π΅ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ, Π½Π΅ ΠΊΠ΅ΡΠΈΡΠ°Ρ ΡΠ»ΠΎΠ΅Π²Π΅, ΡΠ°ΠΊΠ° ΡΠ΅ ΠΈΠΌΠ° Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΈ ΡΠΏΠ΅ΡΡΡΠ²Π°Π½ΠΈΡ Π½Π° Π²ΡΠ΅ΠΌΠ΅. ΠΠ°ΠΊΡΠΎ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π²ΠΈΠ΄ΠΈΡΠ΅, Π²ΡΠ΅ΠΌΠ΅ΡΠΎ Π·Π° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ Π½Π° Π³ΠΎΠ»ΡΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ, Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ ΠΎΡ ΠΌΠΎΡΠ½ΠΎΡΡΡΠ° Π½Π° Π²Π°ΡΠ°ΡΠ° ΠΌΠ°ΡΠΈΠ½Π°, Π΅ ΠΎΡ 34 Π΄ΠΎ 54 ΡΠ΅ΠΊΡΠ½Π΄ΠΈ, Π° ΠΏΡΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ, Π½Π°ΠΌΠ°Π»Π΅Π½ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° Builder Pattern - ΠΎΡ 23 Π΄ΠΎ 28 ΡΠ΅ΠΊΡΠ½Π΄ΠΈ. ΠΡΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΎΡ ΡΠΎΠ·ΠΈ Π²ΠΈΠ΄ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° ΡΠ΅ Π±ΡΠ΄Π΅ 40-50%. Π’Π°ΠΊΠ° ΡΠ΅ ΠΏΡΠΎΡΡΠΎ ΠΏΠΎΠΌΠΈΡΠ»Π΅ΡΠ΅ ΠΊΠΎΠ»ΠΊΠΎ ΠΏΡΡΠΈ ΡΡΠ·Π΄Π°Π²Π°ΡΠ΅ ΠΈ ΡΠ΅ΡΡΠ²Π°ΡΠ΅ ΡΠ²ΠΎΡ ΠΊΠΎΠ΄.
Π‘Π»Π΅Π΄ ΠΊΠ°ΡΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡΡ Π΅ ΠΈΠ·Π³ΡΠ°Π΄Π΅Π½, ΡΡΡΠ±Π²Π° Π΄Π° ΠΈΠ·ΠΏΡΠ°ΡΠΈΡΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ ΠΌΡ (ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π½Π° push ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ) Π² ΡΠ΅Π³ΠΈΡΡΡΡΠ° Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°, ΡΠ°ΠΊΠ° ΡΠ΅ ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° Π΄Π° ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π³ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ Π²ΡΠ² Π²Π°ΡΠΈΡ ΠΊΠ»ΡΡΡΠ΅Ρ Kubernetes. ΠΡΠ΅ΠΏΠΎΡΡΡΠ²Π°ΠΌ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ Google Container Registry.
Π‘ Google Container Registry (GCR) ΠΏΠ»Π°ΡΠ°ΡΠ΅ ΡΠ°ΠΌΠΎ Π·Π° Π½Π΅ΠΎΠ±ΡΠ°Π±ΠΎΡΠ΅Π½ΠΎ ΡΡΡ
ΡΠ°Π½Π΅Π½ΠΈΠ΅ ΠΈ ΡΠ°Π±ΠΎΡΠ° Π² ΠΌΡΠ΅ΠΆΠ° ΠΈ Π½ΡΠΌΠ° Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ ΡΠ°ΠΊΡΠΈ Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ. Π’ΠΎΠΉ Π΅ ΡΠ°ΡΡΠ΅Π½, ΡΠΈΠ³ΡΡΠ΅Π½ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ Π±ΡΡΠ·. GCR ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΌΠ½ΠΎΠ³ΠΎ ΡΡΠΈΠΊΠΎΠ²Π΅, Π·Π° Π΄Π° ΡΡΠΊΠΎΡΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΡΠ° ΠΏΠΎ ΠΈΠ·ΡΠ΅Π³Π»ΡΠ½Π΅. ΠΠ°ΠΊΡΠΎ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π²ΠΈΠ΄ΠΈΡΠ΅, Π²ΠΌΡΠΊΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ Docker Container Image Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° go:onbuild ΡΠ΅ ΠΎΡΠ½Π΅ΠΌΠ΅ ΠΎΡ 15 Π΄ΠΎ 48 ΡΠ΅ΠΊΡΠ½Π΄ΠΈ, Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ ΠΎΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° Π½Π° ΠΊΠΎΠΌΠΏΡΡΡΡΠ°, Π° ΡΡΡΠ°ΡΠ° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ Ρ ΠΏΠΎ-ΠΌΠ°Π»ΡΠΊ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ ΡΠ΅ ΠΎΡΠ½Π΅ΠΌΠ΅ ΠΎΡ 14 Π΄ΠΎ 16 ΡΠ΅ΠΊΡΠ½Π΄ΠΈ ΠΈ Π·Π° ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ ΠΏΡΠΎΠ΄ΡΠΊΡΠΈΠ²Π½ΠΈ ΠΌΠ°ΡΠΈΠ½ΠΈ ΠΏΡΠ΅Π΄ΠΈΠΌΡΡΠ²ΠΎΡΠΎ Π² ΡΠΊΠΎΡΠΎΡΡΡΠ° Π½Π° ΡΠ°Π±ΠΎΡΠ° ΡΠ΅ ΡΠ²Π΅Π»ΠΈΡΠ°Π²Π° 3 ΠΏΡΡΠΈ. ΠΠ° ΠΏΠΎ-Π³ΠΎΠ»Π΅ΠΌΠΈ ΠΌΠ°ΡΠΈΠ½ΠΈ Π²ΡΠ΅ΠΌΠ΅ΡΠΎ Π΅ ΠΏΡΠΈΠ±Π»ΠΈΠ·ΠΈΡΠ΅Π»Π½ΠΎ ΡΡΡΠΎΡΠΎ, ΡΡΠΉ ΠΊΠ°ΡΠΎ GCR ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π³Π»ΠΎΠ±Π°Π»Π΅Π½ ΠΊΠ΅Ρ Π·Π° ΡΠΏΠΎΠ΄Π΅Π»Π΅Π½Π° Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ ΠΎΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ, ΠΊΠΎΠ΅ΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π²Π°, ΡΠ΅ ΠΈΠ·ΠΎΠ±ΡΠΎ Π½Π΅ Π΅ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° Π³ΠΈ Π·Π°ΡΠ΅ΠΆΠ΄Π°ΡΠ΅. Π ΠΊΠΎΠΌΠΏΡΡΡΡ Ρ Π½ΠΈΡΠΊΠ° ΠΌΠΎΡΠ½ΠΎΡΡ ΠΏΡΠΎΡΠ΅ΡΠΎΡΡΡ Π΅ ΡΡΡΠ½ΠΎΡΠΎ ΠΌΡΡΡΠΎ, ΡΠ°ΠΊΠ° ΡΠ΅ ΠΏΡΠ΅Π΄ΠΈΠΌΡΡΠ²ΠΎΡΠΎ ΠΎΡ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° ΠΌΠ°Π»ΠΊΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ ΡΡΠΊ Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎ-Π³ΠΎΠ»ΡΠΌΠΎ.
ΠΠΊΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ GCR, ΡΠΈΠ»Π½ΠΎ ΠΏΡΠ΅ΠΏΠΎΡΡΡΠ²Π°ΠΌ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ Google Container Builder (GCB) ΠΊΠ°ΡΠΎ ΡΠ°ΡΡ ΠΎΡ Π²Π°ΡΠ°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ° Π·Π° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅.
ΠΠ°ΠΊΡΠΎ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π²ΠΈΠ΄ΠΈΡΠ΅, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ ΠΌΡ Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΠΏΠΎΡΡΠΈΠ³Π½Π΅ΡΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎ-Π΄ΠΎΠ±ΡΠΈ ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠΈ ΠΏΡΠΈ Π½Π°ΠΌΠ°Π»ΡΠ²Π°Π½Π΅ Π½Π° ΠΏΡΠΎΠ΄ΡΠ»ΠΆΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΡΠ° Build+Push, ΠΎΡΠΊΠΎΠ»ΠΊΠΎΡΠΎ Π΄ΠΎΡΠΈ ΠΏΡΠΎΠ΄ΡΠΊΡΠΈΠ²Π½Π° ΠΌΠ°ΡΠΈΠ½Π° - Π² ΡΠΎΠ·ΠΈ ΡΠ»ΡΡΠ°ΠΉ ΠΏΡΠΎΡΠ΅ΡΡΡ Π½Π° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ ΠΈ ΠΈΠ·ΠΏΡΠ°ΡΠ°Π½Π΅ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ ΠΊΡΠΌ Ρ
ΠΎΡΡΠ° ΡΠ΅ ΡΡΠΊΠΎΡΡΠ²Π° ΠΏΠΎΡΡΠΈ 2 ΠΏΡΡΠΈ . ΠΡΠ²Π΅Π½ ΡΠΎΠ²Π° ΠΏΠΎΠ»ΡΡΠ°Π²Π°ΡΠ΅ 120 Π±Π΅Π·ΠΏΠ»Π°ΡΠ½ΠΈ ΠΌΠΈΠ½ΡΡΠΈ Π·Π° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ Π²ΡΠ΅ΠΊΠΈ Π΄Π΅Π½, ΠΊΠΎΠ΅ΡΠΎ ΠΏΠΎΠΊΡΠΈΠ²Π° Π½ΡΠΆΠ΄ΠΈΡΠ΅ Π²ΠΈ Π·Π° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ Π² ΠΏΠΎΠ²Π΅ΡΠ΅ΡΠΎ ΡΠ»ΡΡΠ°ΠΈ.
Π‘Π»Π΅Π΄Π²Π° Π½Π°ΠΉ-Π²Π°ΠΆΠ½ΠΈΡΡ ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π» Π·Π° Π΅ΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡ β ΡΠΊΠΎΡΠΎΡΡΡΠ° Π½Π° ΠΈΠ·Π²Π»ΠΈΡΠ°Π½Π΅ ΠΈΠ»ΠΈ ΠΈΠ·ΡΠ΅Π³Π»ΡΠ½Π΅ Π½Π° Pull ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ. Π Π°ΠΊΠΎ Π½Π΅ Π²ΠΈ ΠΏΡΠΊΠ° ΠΌΠ½ΠΎΠ³ΠΎ Π·Π° Π²ΡΠ΅ΠΌΠ΅ΡΠΎ, ΠΏΡΠ΅ΠΊΠ°ΡΠ°Π½ΠΎ Π² ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ Π·Π° ΠΈΠ·ΡΠ΅Π³Π»ΡΠ½Π΅, ΡΠΎΠ³Π°Π²Π° ΠΏΡΠΎΠ΄ΡΠ»ΠΆΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° Π½Π° ΠΏΡΠΎΡΠ΅ΡΠ° Π½Π° ΠΈΠ·ΡΠ΅Π³Π»ΡΠ½Π΅ ΠΎΠΊΠ°Π·Π²Π° ΡΠ΅ΡΠΈΠΎΠ·Π½ΠΎ Π²Π»ΠΈΡΠ½ΠΈΠ΅ Π²ΡΡΡ Ρ ΡΡΠ»ΠΎΡΡΠ½Π°ΡΠ° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ°. ΠΠ° ΠΏΡΠΈΠ΅ΠΌΠ΅ΠΌ, ΡΠ΅ ΠΈΠΌΠ°ΡΠ΅ ΠΊΠ»ΡΡΡΠ΅Ρ ΠΎΡ ΡΡΠΈ Π²ΡΠ·Π΅Π»Π° ΠΈ Π΅Π΄ΠΈΠ½ ΠΎΡ ΡΡΡ ΡΠ΅ ΠΏΡΠΎΠ²Π°Π»Ρ. ΠΠΊΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΠ° Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠ°ΡΠΎ Google Kubernetes Engine, ΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ ΡΠ΅ Π·Π°ΠΌΠ΅Π½ΠΈ ΠΌΡΡΡΠ²ΠΈΡ Π²ΡΠ·Π΅Π» Ρ Π½ΠΎΠ². Π’ΠΎΠ·ΠΈ Π½ΠΎΠ² Π²ΡΠ·Π΅Π» ΠΎΠ±Π°ΡΠ΅ ΡΠ΅ Π±ΡΠ΄Π΅ Π½Π°ΠΏΡΠ»Π½ΠΎ ΠΏΡΠ°Π·Π΅Π½ ΠΈ ΡΠ΅ ΡΡΡΠ±Π²Π° Π΄Π° ΠΏΠ»ΡΠ·Π½Π΅ΡΠ΅ Π²ΡΠΈΡΠΊΠΈΡΠ΅ ΡΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ Π² Π½Π΅Π³ΠΎ, Π·Π° Π΄Π° Π·Π°ΠΏΠΎΡΠ½Π΅ Π΄Π° ΡΠ°Π±ΠΎΡΠΈ. ΠΠΊΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΡΠ° ΠΏΠΎ ΠΈΠ·ΡΠ΅Π³Π»ΡΠ½Π΅ ΠΎΡΠ½Π΅ΠΌΠ΅ Π΄ΠΎΡΡΠ°ΡΡΡΠ½ΠΎ Π²ΡΠ΅ΠΌΠ΅, Π²Π°ΡΠΈΡΡ ΠΊΠ»ΡΡΡΠ΅Ρ ΡΠ΅ ΡΠ°Π±ΠΎΡΠΈ Ρ ΠΏΠΎ-Π½ΠΈΡΠΊΠ° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ ΠΏΡΠ΅Π· ΡΡΠ»ΠΎΡΠΎ Π²ΡΠ΅ΠΌΠ΅.
ΠΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ»ΡΡΠ°ΠΈ, Π² ΠΊΠΎΠΈΡΠΎ ΡΠΎΠ²Π° ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΡΠ»ΡΡΠΈ: Π΄ΠΎΠ±Π°Π²ΡΠ½Π΅ Π½Π° Π½ΠΎΠ² Π²ΡΠ·Π΅Π» ΠΊΡΠΌ ΠΊΠ»ΡΡΡΠ΅Ρ, Π½Π°Π΄Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ Π½Π° Π²ΡΠ·Π»ΠΈ ΠΈΠ»ΠΈ Π΄ΠΎΡΠΈ ΠΏΡΠ΅ΠΌΠΈΠ½Π°Π²Π°Π½Π΅ ΠΊΡΠΌ Π½ΠΎΠ² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ Π·Π° Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅. ΠΠΎ ΡΠΎΠ·ΠΈ Π½Π°ΡΠΈΠ½ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° Π²ΡΠ΅ΠΌΠ΅ΡΠΎ Π·Π° Π΅ΠΊΡΡΡΠ°ΠΊΡΠΈΡ Π½Π° ΠΈΠ·ΡΠ΅Π³Π»ΡΠ½Π΅ ΡΠ΅ ΠΏΡΠ΅Π²ΡΡΡΠ° Π² ΠΊΠ»ΡΡΠΎΠ² ΡΠ°ΠΊΡΠΎΡ. ΠΠ΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΎΡΡΠ΅ΡΠ΅, ΡΠ΅ ΠΌΠ°Π»ΡΠΊ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ ΡΠ΅ ΠΈΠ·ΡΠ΅Π³Π»Ρ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎ-Π±ΡΡΠ·ΠΎ ΠΎΡ Π³ΠΎΠ»ΡΠΌ. ΠΠΊΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ Π² ΠΊΠ»ΡΡΡΠ΅Ρ Π½Π° Kubernetes, ΡΠΏΠ΅ΡΡΡΠ²Π°Π½ΠΈΡΡΠ° Π½Π° Π²ΡΠ΅ΠΌΠ΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΈ.
ΠΠ±ΡΡΠ½Π΅ΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΡΠΎΠ²Π° ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅: ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ Π·Π° ΠΈΠ·ΡΠ΅Π³Π»ΡΠ½Π΅ Π½Π° ΠΌΠ°Π»ΠΊΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ ΠΎΡΠ½Π΅ΠΌΠ° 4-9 ΠΏΡΡΠΈ ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ Π²ΡΠ΅ΠΌΠ΅, Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ ΠΎΡ ΠΌΠΎΡΠ½ΠΎΡΡΡΠ° Π½Π° ΠΌΠ°ΡΠΈΠ½Π°ΡΠ°, ΠΎΡΠΊΠΎΠ»ΠΊΠΎΡΠΎ ΡΡΡΠ°ΡΠ° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ° go:onbuild. ΠΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° ΡΠΏΠΎΠ΄Π΅Π»Π΅Π½ΠΈ ΠΌΠ°Π»ΠΊΠΈ Π±Π°Π·ΠΎΠ²ΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΎ ΡΡΠΊΠΎΡΡΠ²Π° Π²ΡΠ΅ΠΌΠ΅ΡΠΎ ΠΈ ΡΠΊΠΎΡΠΎΡΡΡΠ°, Ρ ΠΊΠΎΡΡΠΎ Π½ΠΎΠ²ΠΈΡΠ΅ Π²ΡΠ·Π»ΠΈ Π½Π° Kubernetes ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ ΡΠ°Π·Π³ΡΡΠ½Π°ΡΠΈ ΠΈ Π΄Π° ΡΡΠ°Π½Π°Ρ ΠΎΠ½Π»Π°ΠΉΠ½.
ΠΠ΅ΠΊΠ° ΡΠ°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ Π²ΡΠΏΡΠΎΡΠ° Π·Π° ΡΠΈΠ³ΡΡΠ½ΠΎΡΡΡΠ°. ΠΠΎ-ΠΌΠ°Π»ΠΊΠΈΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ ΡΠ΅ ΡΡΠΈΡΠ°Ρ Π·Π° ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎ-Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΈ ΠΎΡ ΠΏΠΎ-Π³ΠΎΠ»Π΅ΠΌΠΈΡΠ΅, ΡΡΠΉ ΠΊΠ°ΡΠΎ ΠΈΠΌΠ°Ρ ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠ° ΠΏΠΎΠ²ΡΡΡ Π½ΠΎΡΡ Π·Π° Π½Π°ΠΏΠ°Π΄Π΅Π½ΠΈΠ΅. ΠΠ°ΠΈΡΡΠΈΠ½Π° Π»ΠΈ Π΅? ΠΠ΄Π½Π° ΠΎΡ Π½Π°ΠΉ-ΠΏΠΎΠ»Π΅Π·Π½ΠΈΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π½Π° Google Container Registry Π΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π·Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ ΡΠΊΠ°Π½ΠΈΡΠ°Π½Π΅ Π½Π° Π²Π°ΡΠΈΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ Π·Π° ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ. ΠΡΠ΅Π΄ΠΈ Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΌΠ΅ΡΠ΅ΡΠ° ΡΡΠ·Π΄Π°Π΄ΠΎΡ ΠΊΠ°ΠΊΡΠΎ onbuild, ΡΠ°ΠΊΠ° ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ΡΠ°ΠΏΠ½ΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ, ΡΠ°ΠΊΠ° ΡΠ΅ Π½Π΅ΠΊΠ° Π΄Π° Π²ΠΈΠ΄ΠΈΠΌ Π΄Π°Π»ΠΈ ΠΈΠΌΠ° Π½ΡΠΊΠ°ΠΊΠ²ΠΈ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ ΡΠ°ΠΌ.
Π Π΅Π·ΡΠ»ΡΠ°ΡΡΡ Π΅ Π½Π΅Π²Π΅ΡΠΎΡΡΠ΅Π½: ΡΠ°ΠΌΠΎ 3 ΡΡΠ΅Π΄Π½ΠΈ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ Π±ΡΡ
Π° ΠΎΡΠΊΡΠΈΡΠΈ Π² ΠΌΠ°Π»ΡΠΊ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ, Π° 16 ΠΊΡΠΈΡΠΈΡΠ½ΠΈ ΠΈ 376 Π΄ΡΡΠ³ΠΈ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ Π±ΡΡ
Π° ΠΎΡΠΊΡΠΈΡΠΈ Π² Π³ΠΎΠ»ΡΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ. ΠΠΊΠΎ ΠΏΠΎΠ³Π»Π΅Π΄Π½Π΅ΠΌ ΡΡΠ΄ΡΡΠΆΠ°Π½ΠΈΠ΅ΡΠΎ Π½Π° Π³ΠΎΠ»ΡΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ, ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Π²ΠΈΠ΄ΠΈΠΌ, ΡΠ΅ ΠΏΠΎΠ²Π΅ΡΠ΅ΡΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ ΡΡΡ ΡΠΈΠ³ΡΡΠ½ΠΎΡΡΡΠ° Π½ΡΠΌΠ°Ρ Π½ΠΈΡΠΎ ΠΎΠ±ΡΠΎ Ρ Π½Π°ΡΠ΅ΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π° ΡΠ° ΡΠ²ΡΡΠ·Π°Π½ΠΈ Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈ, ΠΊΠΎΠΈΡΠΎ Π΄ΠΎΡΠΈ Π½Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅. Π’Π°ΠΊΠ° ΡΠ΅, ΠΊΠΎΠ³Π°ΡΠΎ Ρ
ΠΎΡΠ°ΡΠ° Π³ΠΎΠ²ΠΎΡΡΡ Π·Π° Π³ΠΎΠ»ΡΠΌΠ° ΠΏΠΎΠ²ΡΡΡ
Π½ΠΎΡΡ Π·Π° Π°ΡΠ°ΠΊΠ°, ΡΠΎΠ²Π° ΠΈΠΌΠ°Ρ ΠΏΡΠ΅Π΄Π²ΠΈΠ΄.
ΠΠ·Π²ΠΎΠ΄ΡΡ Π΅ ΡΡΠ΅Π½: ΠΈΠ·Π³ΡΠ°Π΄Π΅ΡΠ΅ ΠΌΠ°Π»ΠΊΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ, Π·Π°ΡΠΎΡΠΎ ΡΠ΅ ΠΎΡΠΈΠ³ΡΡΡΠ²Π°Ρ ΡΠ΅Π°Π»Π½ΠΈ ΠΏΠΎΠ»Π·ΠΈ Π·Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ ΠΈ ΡΠΈΠ³ΡΡΠ½ΠΎΡΡ Π½Π° Π²Π°ΡΠ°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ°.
ΠΠ°Π»ΠΊΠΎ ΡΠ΅ΠΊΠ»Π°ΠΌΠΈ π
ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΠΈΠΌ Π²ΠΈ, ΡΠ΅ ΠΎΡΡΠ°Π½Π°Ρ
ΡΠ΅ Ρ Π½Π°Ρ. Π₯Π°ΡΠ΅ΡΠ²Π°ΡΠ΅ Π»ΠΈ Π½Π°ΡΠΈΡΠ΅ ΡΡΠ°ΡΠΈΠΈ? ΠΡΠΊΠ°ΡΠ΅ Π»ΠΈ Π΄Π° Π²ΠΈΠ΄ΠΈΡΠ΅ ΠΎΡΠ΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ ΡΡΠ΄ΡΡΠΆΠ°Π½ΠΈΠ΅? ΠΠΎΠ΄ΠΊΡΠ΅ΠΏΠ΅ΡΠ΅ Π½ΠΈ, ΠΊΠ°ΡΠΎ Π½Π°ΠΏΡΠ°Π²ΠΈΡΠ΅ ΠΏΠΎΡΡΡΠΊΠ° ΠΈΠ»ΠΈ ΠΏΡΠ΅ΠΏΠΎΡΡΡΠ°ΡΠ΅ Π½Π° ΠΏΡΠΈΡΡΠ΅Π»ΠΈ,
Dell R730xd 2 ΠΏΡΡΠΈ ΠΏΠΎ-Π΅Π²ΡΠΈΠ½ Π² ΡΠ΅Π½ΡΡΡΠ° Π·Π° Π΄Π°Π½Π½ΠΈ Equinix Tier IV Π² ΠΠΌΡΡΠ΅ΡΠ΄Π°ΠΌ? Π‘Π°ΠΌΠΎ ΡΡΠΊ
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: www.habr.com