
ΠΡΡΠ²Π°ΡΠ° ΡΡΡΠΏΠΊΠ° ΠΏΡΠΈ ΡΠ°Π·Π³ΡΡΡΠ°Π½Π΅ΡΠΎ Π² Kubernetes Π΅ ΠΏΠΎΡΡΠ°Π²ΡΠ½Π΅ΡΠΎ Π½Π° Π²Π°ΡΠ΅ΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ. Π ΡΠ°Π·ΠΈ ΡΠ΅ΡΠΈΡ ΡΠ΅ ΡΠ°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ ΠΊΠ°ΠΊ Π΄Π° ΡΡΠ·Π΄Π°Π΄Π΅ΠΌ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π½Π° ΠΌΠ°Π»ΡΠΊ ΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ΅Π½ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ.
ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΠ΅Π½ΠΈΠ΅ Π½Π° Docker, ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ΡΠΎ Π½Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ Π½ΠΈΠΊΠΎΠ³Π° Π½Π΅ Π΅ Π±ΠΈΠ»ΠΎ ΡΠΎΠ»ΠΊΠΎΠ²Π° Π»Π΅ΡΠ½ΠΎ. ΠΡΠΎΡΡΠΎ ΠΏΠΎΡΠΎΡΠ΅ΡΠ΅ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΡΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅, Π΄ΠΎΠ±Π°Π²Π΅ΡΠ΅ ΡΠ²ΠΎΠΈΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ ΠΈ Π³Π΅Π½Π΅ΡΠΈΡΠ°ΠΉΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ.

ΠΡΠΏΡΠ΅ΠΊΠΈ ΡΠ΅ ΡΠΎΠ·ΠΈ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ Π΅ ΠΎΡΠ»ΠΈΡΠ΅Π½ Π·Π° Π½Π°ΡΠ°Π»ΠΎ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° ΠΎΡΠ½ΠΎΠ²Π½ΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° Π΄ΠΎΠ²Π΅Π΄Π΅ Π΄ΠΎ Π½Π΅Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½Π° ΡΠ°Π±ΠΎΡΠ° Ρ Π³ΠΎΠ»Π΅ΠΌΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ, ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈ Ρ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ.
ΠΡΠ²Π΅Π½ ΡΠΎΠ²Π°, ΠΏΠΎΠ²Π΅ΡΠ΅ΡΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π² Docker ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ Debian ΠΈΠ»ΠΈ Ubuntu ΠΊΠ°ΡΠΎ ΠΎΡΠ½ΠΎΠ²Π½ΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅, ΠΈ ΠΌΠ°ΠΊΠ°Ρ ΡΠΎΠ²Π° Π΄Π° ΠΎΡΠΈΠ³ΡΡΡΠ²Π° ΠΎΡΠ»ΠΈΡΠ½Π° ΡΡΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡ ΠΈ Π»Π΅ΡΠ½Π° Π°Π΄Π°ΠΏΡΠ°ΡΠΈΡ (ΡΠ°ΠΉΠ»ΡΡ Docker Π·Π°Π΅ΠΌΠ° ΡΠ°ΠΌΠΎ Π΄Π²Π΅ ΡΠ΅Π΄Π° ΠΊΠΎΠ΄), ΠΎΡΠ½ΠΎΠ²Π½ΠΈΡΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΌΠΎΠ³Π°Ρ Π΄Π° Π΄ΠΎΠ±Π°Π²ΡΡ ΡΡΠΎΡΠΈΡΠΈ ΠΌΠ΅Π³Π°Π±Π°ΠΉΡΠΈ Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½Π° Π½Π°ΡΠΎΠ²Π°ΡΠ΅Π½ΠΎΡΡ Π² Π²Π°ΡΠΈΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠΎΡΡΠΈΡΡ ΡΠ°ΠΉΠ» Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ node.js 'hello-world' Π·Π°Π΅ΠΌΠ° ΠΎΠΊΠΎΠ»ΠΎ 700 ΠΌΠ΅Π³Π°Π±Π°ΠΉΡΠ°, Π΄ΠΎΠΊΠ°ΡΠΎ ΡΠ°Π·ΠΌΠ΅ΡΡΡ Π½Π° ΡΠ°ΠΌΠΎΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΅ ΡΠ°ΠΌΠΎ Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΌΠ΅Π³Π°Π±Π°ΠΉΡΠ°.

Π’Π°ΠΊΠ° ΡΠ΅, ΡΡΠ»Π°ΡΠ° ΡΠ°Π·ΠΈ Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½Π° Π½Π°ΡΠΎΠ²Π°ΡΠ΅Π½ΠΎΡΡ Π΅ ΠΈΠ·Π»ΠΈΡΠ½Π° Π·Π°Π³ΡΠ±Π° Π½Π° ΡΠΈΡΡΠΎΠ²ΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ ΠΈ ΠΎΡΠ»ΠΈΡΠ΅Π½ ΡΠΊΡΠΈΡΠΈΠ΅ Π·Π° ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ ΠΈ Π³ΡΠ΅ΡΠΊΠΈ Π² ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° Π·Π° ΡΠΈΠ³ΡΡΠ½ΠΎΡΡ. ΠΠ°ΡΠΎΠ²Π° Π΄Π° ΡΠ°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ Π΄Π²Π° Π½Π°ΡΠΈΠ½Π° Π·Π° Π½Π°ΠΌΠ°Π»ΡΠ²Π°Π½Π΅ Π½Π° ΡΠ°Π·ΠΌΠ΅ΡΠ° Π½Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°.
ΠΡΡΠ²ΠΈΡΡ ΠΌΠ΅ΡΠΎΠ΄ Π΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ ΠΎΡΠ½ΠΎΠ²Π½ΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Ρ ΠΌΠ°Π»ΡΠΊ ΡΠ°Π·ΠΌΠ΅Ρ, Π²ΡΠΎΡΠΈΡΡ Π΅ Π΄Π° ΠΏΡΠΈΠ»ΠΎΠΆΠΈΡΠ΅ ΡΠ°Π±Π»ΠΎΠ½Π° Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠ°Π½Π΅ Builder Pattern. ΠΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΈ ΠΎΡΠ½ΠΎΠ²Π½ΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π²Π΅ΡΠΎΡΡΠ½ΠΎ Π΅ Π½Π°ΠΉ-ΠΏΡΠΎΡΡΠΈΡΡ Π½Π°ΡΠΈΠ½ Π·Π° Π½Π°ΠΌΠ°Π»ΡΠ²Π°Π½Π΅ Π½Π° ΡΠ°Π·ΠΌΠ΅ΡΠ° Π½Π° Π²Π°ΡΠΈΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ. ΠΠ΅ΡΠΎΡΡΠ½ΠΎ Π΅Π·ΠΈΠΊΡΡ ΠΈΠ»ΠΈ ΡΡΠ΅ΠΊΡΡ, ΠΊΠΎΠΉΡΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅, ΠΏΡΠ΅Π΄Π»Π°Π³Π° ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»Π½ΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ Ρ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎ-ΠΌΠ°Π»ΡΠΊ ΡΠ°Π·ΠΌΠ΅Ρ, ΠΎΡΠΊΠΎΠ»ΠΊΠΎΡΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΡΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅. ΠΠ΅ΠΊΠ° Π΄Π° ΠΏΠΎΠ³Π»Π΅Π΄Π½Π΅ΠΌ Π½Π°ΡΠΈΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ node.js.

ΠΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ ΡΠ°Π·ΠΌΠ΅Ρ ΠΎΡΠ½ΠΎΠ²Π½ΠΈΡ ΠΎΠ±ΡΠ°Π· node:8 Π² Docker Π΅ 670 ΠΠ, Π΄ΠΎΠΊΠ°ΡΠΎ ΡΠ°Π·ΠΌΠ΅ΡΡΡ Π½Π° node:8-alpine Π΅ ΡΠ°ΠΌΠΎ 65 ΠΠ, Ρ.Π΅. Π΄Π΅ΡΠ΅Ρ ΠΏΡΡΠΈ ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ. ΠΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΈΡ ΠΎΡΠ½ΠΎΠ²Π΅Π½ ΠΎΠ±ΡΠ°Π· Alpine, Π²ΠΈΠ΅ Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΎ ΡΠ΅ Π½Π°ΠΌΠ°Π»ΠΈΡΠ΅ ΡΠ°Π·ΠΌΠ΅ΡΠ° Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ° ΡΠΈ. Alpine Π΅ ΠΌΠ°Π»ΡΠΊ ΠΈ Π»Π΅ΠΊ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ² Π½Π° Linux, ΠΊΠΎΠΉΡΠΎ Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠΏΡΠ»ΡΡΠ΅Π½ ΡΡΠ΅Π΄ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈΡΠ΅ Π½Π° Docker, Π·Π°ΡΠΎΡΠΎ Π΅ ΡΡΠ²ΠΌΠ΅ΡΡΠΈΠΌ Ρ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π·Π°ΠΏΠ°Π·Π²Π°ΠΉΠΊΠΈ ΠΌΠ°Π»ΠΊΠΈΡ ΡΠ°Π·ΠΌΠ΅Ρ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈΡΠ΅. Π ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ Ρ ΠΎΡΠ½ΠΎΠ²Π½ΠΈΡ ΠΎΠ±ΡΠ°Π· Docker βnodeβ, βnode:alpineβ ΠΏΡΠ΅ΠΌΠ°Ρ
Π²Π° ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΠ»ΡΠΆΠ΅Π±Π½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈ, ΠΎΡΡΠ°Π²ΡΠΉΠΊΠΈ ΡΠ°ΠΌΠΎ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΈΡΠ΅ Π·Π° ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ Π²ΠΈ.
ΠΠ° Π΄Π° ΠΏΡΠ΅ΠΌΠΈΠ½Π΅ΡΠ΅ ΠΊΡΠΌ ΠΏΠΎ-ΠΌΠ°Π»ΡΠΊ ΠΎΡΠ½ΠΎΠ²Π΅Π½ ΠΎΠ±ΡΠ°Π·, ΠΏΡΠΎΡΡΠΎ ΠΎΠ±Π½ΠΎΠ²Π΅ΡΠ΅ Docker-ΡΠ°ΠΉΠ»Π°, Π·Π° Π΄Π° Π·Π°ΠΏΠΎΡΠ½Π΅ΡΠ΅ ΡΠ°Π±ΠΎΡΠ° Ρ Π½ΠΎΠ²ΠΈΡ ΠΎΡΠ½ΠΎΠ²Π΅Π½ ΠΎΠ±ΡΠ°Π·:

Π‘Π΅Π³Π°, Π·Π° ΡΠ°Π·Π»ΠΈΠΊΠ° ΠΎΡ ΡΡΠ°ΡΠΈΡ ΠΎΠ±ΡΠ°Π· onbuild, ΡΡΡΠ±Π²Π° Π΄Π° ΠΊΠΎΠΏΠΈΡΠ°ΡΠ΅ ΠΊΠΎΠ΄Π° ΡΠΈ Π² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ° ΠΈ Π΄Π° ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°ΡΠ΅ Π²ΡΠΈΡΠΊΠΈ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ. Π Π½ΠΎΠ²ΠΈΡ Docker-ΡΠ°ΠΉΠ» ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡΡ Π·Π°ΠΏΠΎΡΠ²Π° Ρ ΠΎΠ±ΡΠ°Π·Π° node:alpine, ΡΠ»Π΅Π΄ ΠΊΠΎΠ΅ΡΠΎ ΡΡΠ·Π΄Π°Π²Π° Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ Π·Π° ΠΊΠΎΠ΄Π°, ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ° Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈΡΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° ΠΏΠ°ΠΊΠ΅ΡΠ° NPM ΠΈ Π½Π°ΠΊΡΠ°Ρ ΡΡΠ°ΡΡΠΈΡΠ° server.js.

Π‘ ΡΠΎΠ²Π° ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡΡΠ°Π²Π°ΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ Ρ Π΄Π΅ΡΠ΅Ρ ΠΏΡΡΠΈ ΠΏΠΎ-ΠΌΠ°Π»ΡΠΊ ΡΠ°Π·ΠΌΠ΅Ρ. ΠΠΊΠΎ Π²Π°ΡΠΈΡΡ Π΅Π·ΠΈΠΊ Π·Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΠ°Π½Π΅ ΠΈΠ»ΠΈ ΡΡΠ΅ΠΊ Π½Π΅ ΠΏΡΠ΅Π΄Π»Π°Π³Π° ΡΡΠ½ΠΊΡΠΈΡ Π·Π° Π½Π°ΠΌΠ°Π»ΡΠ²Π°Π½Π΅ Π½Π° ΠΎΡΠ½ΠΎΠ²Π½ΠΈΡ ΠΎΠ±ΡΠ°Π·, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡΠ΅ Alpine Linux. Π’ΠΎΠΉ ΡΡΡΠΎ ΡΠ΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° ΠΏΡΠ»Π΅Π½ ΠΊΠΎΠ½ΡΡΠΎΠ» Π½Π°Π΄ ΡΡΠ΄ΡΡΠΆΠ°Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°. ΠΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° ΠΎΡΠ½ΠΎΠ²Π½ΠΈ ΠΎΠ±ΡΠ°Π·ΠΈ Ρ ΠΌΠ°Π»ΡΠΊ ΡΠ°Π·ΠΌΠ΅Ρ Π΅ ΠΎΡΠ»ΠΈΡΠ΅Π½ Π½Π°ΡΠΈΠ½ Π·Π° Π±ΡΡΠ·ΠΎ ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΌΠ°Π»ΠΊΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ. ΠΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΏΠΎΡΡΠΈΠ³Π½Π΅ΡΠ΅ ΠΎΡΠ΅ ΠΏΠΎ-Π³ΠΎΠ»ΡΠΌΠΎ Π½Π°ΠΌΠ°Π»Π΅Π½ΠΈΠ΅, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ Builder Pattern.

Π ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠΈΡΡΠ΅ΠΌΠΈΡΠ΅ Π΅Π·ΠΈΡΠΈ ΠΈΡΡ
ΠΎΠ΄Π½ΠΈΡΡ ΠΊΠΎΠ΄ ΠΏΡΡΠ²ΠΎ ΡΠ΅ ΠΏΡΠ΅Π΄Π°Π²Π° Π½Π° ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΠ°, ΡΠ»Π΅Π΄ ΠΊΠΎΠ΅ΡΠΎ ΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°. Π ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°ΡΠΈΡΠ΅ Π΅Π·ΠΈΡΠΈ ΠΈΡΡ
ΠΎΠ΄Π½ΠΈΡΡ ΠΊΠΎΠ΄ ΠΏΡΡΠ²ΠΎ ΡΠ΅ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ²Π° Π² ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°Π½ ΠΊΠΎΠ΄. ΠΡΠΈ ΡΠΎΠ²Π° ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΈΡΡΠ° ΡΠ΅ΡΡΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ, ΠΊΠΎΠΈΡΠΎ Π²ΡΡΡΠ½ΠΎΡΡ Π½Π΅ ΡΠ° Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΈ Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΊΠΎΠ΄Π°. Π’ΠΎΠ²Π° ΠΎΠ·Π½Π°ΡΠ°Π²Π°, ΡΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΠΏΡΠ»Π½ΠΎ Π΄Π° ΠΏΡΠ΅ΠΌΠ°Ρ
Π½Π΅ΡΠ΅ ΡΠ΅Π·ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ ΠΎΡ ΡΠΈΠ½Π°Π»Π½ΠΈΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ. ΠΠ° ΡΠΎΠ²Π° ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ Builder Pattern.

ΠΠΎΠ΄ΡΡ ΡΠ΅ ΡΡΠ·Π΄Π°Π²Π° Π² ΠΏΡΡΠ²ΠΈΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ ΠΈ ΡΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°. Π‘Π»Π΅Π΄ ΡΠΎΠ²Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°Π½ΠΈΡΡ ΠΊΠΎΠ΄ ΡΠ΅ ΠΎΠΏΠ°ΠΊΠΎΠ²Π° Π² ΠΊΡΠ°ΠΉΠ½ΠΈΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ Π±Π΅Π· ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΎΡΠΈ ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ, Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΈ Π·Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΡΠΎΠ·ΠΈ ΠΊΠΎΠ΄. ΠΠ΅ΠΊΠ° ΠΌΠΈΠ½Π΅ΠΌ ΠΏΡΠ΅Π· ΡΠΎΠ·ΠΈ ΠΏΡΠΎΡΠ΅Ρ Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ Go. ΠΡΡΠ²ΠΎ, ΡΠ΅ ΠΏΡΠ΅ΠΌΠΈΠ½Π΅ΠΌ ΠΎΡ ΠΎΠ±ΡΠ°Π·Π° onbuild ΠΊΡΠΌ Alpine Linux.

Π Π½ΠΎΠ²ΠΈΡ Docker ΡΠ°ΠΉΠ» ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡΡ Π·Π°ΠΏΠΎΡΠ²Π° Ρ ΠΎΠ±ΡΠ°Π·Π° golang:alpine. Π‘Π»Π΅Π΄ ΡΠΎΠ²Π° ΡΠ΅ ΡΡΠ·Π΄Π°Π²Π° ΠΊΠ°ΡΠ°Π»ΠΎΠ³ Π·Π° ΠΊΠΎΠ΄Π°, ΠΊΠΎΠΏΠΈΡΠ° ΡΠ΅ ΠΈΠ·Ρ
ΠΎΠ΄Π½ΠΈΡ ΠΊΠΎΠ΄, ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ° ΡΠ΅ ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ ΡΠ΅ ΡΡΠ°ΡΡΠΈΡΠ°. Π’ΠΎΠ·ΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ Π΅ Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΎ ΠΏΠΎ-ΠΌΠ°Π»ΡΠΊ ΠΎΡ onbuild ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°, Π½ΠΎ Π²ΡΠ΅ ΠΎΡΠ΅ ΡΡΠ΄ΡΡΠΆΠ° ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΎΡ ΠΈ Π΄ΡΡΠ³ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ Π½Π° Go, ΠΊΠΎΠΈΡΠΎ Π²ΡΡΡΠ½ΠΎΡΡ Π½Π΅ ΡΠ° Π½ΠΈ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΈ. ΠΠ°ΡΠΎΠ²Π° Π΄Π° ΠΈΠ·Π²Π»Π΅ΡΠ΅ΠΌ ΡΠ°ΠΌΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°Π½Π°ΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ° ΠΈ Π΄Π° Ρ ΠΏΠΎΡΡΠ°Π²ΠΈΠΌ Π² Π½Π°Ρ ΡΠΎΠ±ΡΡΠ²Π΅Π½ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ.

ΠΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π·Π°Π±Π΅Π»Π΅ΠΆΠΈΡΠ΅ Π½Π΅ΡΠΎ ΡΡΡΠ°Π½Π½ΠΎ Π² ΡΠΎΠ·ΠΈ Docker ΡΠ°ΠΉΠ»: ΡΠΎΠΉ ΡΡΠ΄ΡΡΠΆΠ° Π΄Π²Π΅ ΡΠ΅Π΄Π° FROM. ΠΡΡΠ²ΠΈΡΡ ΡΠ°Π·Π΄Π΅Π» ΠΎΡ 4 ΡΠ΅Π΄Π° ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° ΡΠΎΡΠ½ΠΎ ΡΠ°ΠΊΠ°, ΠΊΠ°ΠΊΡΠΎ ΠΏΡΠ΅Π΄ΠΈΡΠ½ΠΈΡ Docker ΡΠ°ΠΉΠ», Ρ ΠΈΠ·ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π½Π° ΡΠΎΠ²Π°, ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΊΠ»ΡΡΠΎΠ²Π°ΡΠ° Π΄ΡΠΌΠ° AS, Π·Π° Π΄Π° Π΄Π°Π΄Π΅ ΠΈΠΌΠ΅ Π½Π° ΡΠΎΠ·ΠΈ Π΅ΡΠ°ΠΏ. Π ΡΠ»Π΅Π΄Π²Π°ΡΠΈΡ ΡΠ°Π·Π΄Π΅Π» ΠΈΠΌΠ° Π½ΠΎΠ² ΡΠ΅Π΄ FROM, ΠΊΠΎΠΉΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° Π·Π°ΠΏΠΎΡΠ½Π΅ΠΌ Π½ΠΎΠ² ΠΎΠ±ΡΠ°Π·, ΠΊΠ°ΡΠΎ Π²ΠΌΠ΅ΡΡΠΎ ΠΎΠ±ΡΠ°Π·Π° golang:alpine Π·Π° Π±Π°Π·ΠΎΠ² ΠΎΠ±ΡΠ°Π· ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ Raw alpine.
Raw Alpine Linux Π½ΡΠΌΠ° ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½ΠΈ SSL ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΈ, ΠΊΠΎΠ΅ΡΠΎ ΡΠ΅ Π΄ΠΎΠ²Π΅Π΄Π΅ Π΄ΠΎ Π½Π΅ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΠΎΠ²Π΅ΡΠ΅ΡΠΎ API ΠΏΠΎΠ²ΠΈΠΊΠ²Π°Π½ΠΈΡ ΠΏΠΎ HTTPS, Π·Π°ΡΠΎΠ²Π° Π½Π΅ΠΊΠ° Π΄Π° ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°ΠΌΠ΅ Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΊΠΎΡΠ΅Π½ΠΎΠ²ΠΈ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ° CA.
Π ΡΠ΅Π³Π° Π½Π°ΠΉ-ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎΡΠΎ: Π·Π° ΠΊΠΎΠΏΠΈΡΠ°Π½Π΅ Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°Π½ΠΈΡ ΠΊΠΎΠ΄ ΠΎΡ ΠΏΡΡΠ²ΠΈΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ Π²ΡΠ² Π²ΡΠΎΡΠΈΡ ΠΌΠΎΠΆΠ΅ ΠΏΡΠΎΡΡΠΎ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° COPY, ΡΠ°Π·ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Π° Π² 5-ΠΈΡ ΡΠ΅Π΄ Π½Π° Π²ΡΠΎΡΠΈΡ ΡΠ°Π·Π΄Π΅Π». Π’Ρ ΡΠ΅ ΠΊΠΎΠΏΠΈΡΠ° ΡΠ°ΠΌΠΎ Π΅Π΄ΠΈΠ½ ΡΠ°ΠΉΠ» Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ ΠΈ Π½ΡΠΌΠ° Π΄Π° Π·Π°ΡΠ΅Π³Π½Π΅ ΡΠ»ΡΠΆΠ΅Π±Π½ΠΈΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ Π½Π° Go. ΠΠΎΠ²ΠΈΡΡ ΠΌΠ½ΠΎΠ³ΠΎΡΡΠ΅ΠΏΠ΅Π½Π΅Π½ Docker ΡΠ°ΠΉΠ» ΡΠ΅ ΡΡΠ΄ΡΡΠΆΠ° ΠΎΠ±ΡΠ°Π· Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ Ρ ΡΠ°Π·ΠΌΠ΅Ρ ΡΠ°ΠΌΠΎ 12 ΠΌΠ΅Π³Π°Π±Π°ΠΉΡΠ°, Π΄ΠΎΠΊΠ°ΡΠΎ ΠΈΠ·Ρ
ΠΎΠ΄Π½ΠΈΡΡ ΠΎΠ±ΡΠ°Π· Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ° Π±Π΅ΡΠ΅ 700 ΠΌΠ΅Π³Π°Π±Π°ΠΉΡΠ°, ΠΊΠΎΠ΅ΡΠΎ Π΅ Π³ΠΎΠ»ΡΠΌΠ° ΡΠ°Π·Π»ΠΈΠΊΠ°!
Π‘Π»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π½ΠΎ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° ΠΌΠ°Π»ΠΊΠΈ Π±Π°Π·ΠΎΠ²ΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΈ Builder Pattern Π΅ ΠΎΡΠ»ΠΈΡΠ΅Π½ Π½Π°ΡΠΈΠ½ Π·Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ Ρ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΈ ΡΠ°Π·ΠΌΠ΅ΡΠΈ Π±Π΅Π· Π³ΠΎΠ»ΡΠΌΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ°Π±ΠΎΡΠ°.
ΠΡΠ·ΠΌΠΎΠΆΠ½ΠΎ Π΅, Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ ΠΎΡ ΡΡΠ΅ΠΊΠ° Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ, Π΄Π° ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°Ρ Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ Π½Π°ΡΠΈΠ½ΠΈ Π·Π° Π½Π°ΠΌΠ°Π»ΡΠ²Π°Π½Π΅ Π½Π° ΡΠ°Π·ΠΌΠ΅ΡΠ° Π½Π° ΠΎΠ±ΡΠ°Π·Π° ΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°, Π½ΠΎ Π½Π°ΠΈΡΡΠΈΠ½Π° Π»ΠΈ ΠΌΠ°Π»ΠΊΠΈΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ ΠΈΠΌΠ°Ρ ΠΈΠ·ΠΌΠ΅ΡΠΈΠΌΠΎ ΠΏΡΠ΅Π΄ΠΈΠΌΡΡΠ²ΠΎ? ΠΠ΅ΠΊΠ° ΡΠ°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ Π΄Π²Π° Π°ΡΠΏΠ΅ΠΊΡΠ°, ΠΊΡΠ΄Π΅ΡΠΎ ΠΌΠ°Π»ΠΊΠΈΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ ΡΠ° ΠΈΠ·ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ Π΅ΡΠ΅ΠΊΡΠΈΠ²Π½ΠΈ β ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ ΠΈ ΡΠΈΠ³ΡΡΠ½ΠΎΡΡ.
ΠΠ° Π΄Π° ΠΎΡΠ΅Π½ΠΈΠΌ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ°, Π½Π΅ΠΊΠ° ΡΠ°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ Π²ΡΠ΅ΠΌΠ΅ΡΠΎ Π·Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ, Π½Π°ΡΠΈΡΠΊΠ°Π½Π΅ΡΠΎ ΠΌΡ Π² ΡΠ΅Π³ΠΈΡΡΡΡΠ° (push) ΠΈ ΠΏΠΎΡΠ»Π΅Π΄Π²Π°ΡΠΎΡΠΎ ΠΈΠ·ΡΠ΅Π³Π»ΡΠ½Π΅ ΠΎΡ ΡΠ°ΠΌ (pull). ΠΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π²ΠΈΠ΄ΠΈΡΠ΅, ΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡΡ Ρ ΠΏΠΎ-ΠΌΠ°Π»ΡΠΊ ΡΠ°Π·ΠΌΠ΅Ρ ΠΈΠΌΠ° Π½Π΅ΠΎΡΠΏΠΎΡΠΈΠΌΠΎ ΠΏΡΠ΅Π΄ΠΈΠΌΡΡΠ²ΠΎ ΡΠΏΡΡΠΌΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ° Ρ ΠΏΠΎ-Π³ΠΎΠ»ΡΠΌ ΡΠ°Π·ΠΌΠ΅Ρ.

Docker ΡΠ΅ ΠΊΠ΅ΡΠΈΡΠ° ΡΠ»ΠΎΠ΅Π²Π΅ΡΠ΅, ΡΠ°ΠΊΠ° ΡΠ΅ ΠΏΠΎΡΠ»Π΅Π΄Π²Π°ΡΠΈΡΠ΅ ΡΠ±ΠΎΡΠΊΠΈ ΡΠ΅ ΡΠ΅ ΠΈΠ·Π²ΡΡΡΠ²Π°Ρ ΠΌΠ½ΠΎΠ³ΠΎ Π±ΡΡΠ·ΠΎ. ΠΡΠΏΡΠ΅ΠΊΠΈ ΡΠΎΠ²Π°, Π² ΠΌΠ½ΠΎΠ³ΠΎ CI ΡΠΈΡΡΠ΅ΠΌΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ Π·Π° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ ΠΈ ΡΠ΅ΡΡΠ²Π°Π½Π΅ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ, ΡΠ»ΠΎΠ΅Π²Π΅ΡΠ΅ Π½Π΅ ΡΠ΅ ΠΊΠ΅ΡΠΈΡΠ°Ρ, ΡΠ°ΠΊΠ° ΡΠ΅ ΡΡΠΊ ΠΈΠΌΠ° Π·Π½Π°ΡΠΈΡΠ΅Π»Π½Π° ΠΈΠΊΠΎΠ½ΠΎΠΌΠΈΡ Π½Π° Π²ΡΠ΅ΠΌΠ΅. ΠΠ°ΠΊΡΠΎ ΡΠ΅ Π²ΠΈΠΆΠ΄Π°, Π²ΡΠ΅ΠΌΠ΅ΡΠΎ Π·Π° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ Π½Π° Π³ΠΎΠ»ΡΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ, Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ ΠΎΡ ΠΌΠΎΡΠ½ΠΎΡΡΡΠ° Π½Π° Π²Π°ΡΠ°ΡΠ° ΠΌΠ°ΡΠΈΠ½Π°, Π΅ ΠΎΡ 34 Π΄ΠΎ 54 ΡΠ΅ΠΊΡΠ½Π΄ΠΈ, Π° ΠΏΡΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ, Π½Π°ΠΌΠ°Π»Π΅Π½ ΡΡΠ΅Π· Builder Pattern β ΠΎΡ 23 Π΄ΠΎ 28 ΡΠ΅ΠΊΡΠ½Π΄ΠΈ. ΠΠ° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΎΡ ΡΠΎΠ·ΠΈ Π²ΠΈΠ΄, ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° ΡΠ΅ Π±ΡΠ΄Π΅ 40-50%. ΠΡΠΎΡΡΠΎ ΠΏΠΎΠΌΠΈΡΠ»Π΅ΡΠ΅ ΠΊΠΎΠ»ΠΊΠΎ ΡΠ΅ΡΡΠΎ ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°ΡΠ΅ ΠΈ ΡΠ΅ΡΡΠ²Π°ΡΠ΅ ΠΊΠΎΠ΄Π° ΡΠΈ.
Π‘Π»Π΅Π΄ ΠΊΠ°ΡΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡΡ Π΅ ΠΏΠΎΡΡΡΠΎΠ΅Π½, ΡΡΡΠ±Π²Π° Π΄Π° Π½Π°ΡΠΈΡΠ½Π΅ΡΠ΅ ΠΎΠ±ΡΠ°Π·Π° ΠΌΡ (push container image) Π² ΡΠ΅Π³ΠΈΡΡΡΡΠ° Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈΡΠ΅, Π·Π° Π΄Π° ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° Π΄Π° Π³ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ Π² ΡΠ²ΠΎΡ Kubernetes ΠΊΠ»Π°ΡΡΠ΅Ρ. ΠΡΠ΅ΠΏΠΎΡΡΡΠ²Π°ΠΌ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ Google Container Registry.

ΠΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ Google Container Registry (GCR), ΠΏΠ»Π°ΡΠ°ΡΠ΅ ΡΠ°ΠΌΠΎ Π·Π° βΡΡΡΠΎΠ²ΠΎΡΠΎβ Ρ
ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ ΠΈ ΠΌΡΠ΅ΠΆΠ°ΡΠ°, Π° Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½Π° ΡΠ°ΠΊΡΠ° Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈΡΠ΅ Π½Π΅ ΡΠ΅ Π½Π°ΡΠΈΡΠ»ΡΠ²Π°. Π’ΠΎΠ²Π° Π΅ ΠΊΠΎΠ½ΡΠΈΠ΄Π΅Π½ΡΠΈΠ°Π»Π½ΠΎ, Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ Π±ΡΡΠ·ΠΎ. GCR ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΌΠ½ΠΎΠ³ΠΎ ΡΡΠΈΠΊΠΎΠ²Π΅, Π·Π° Π΄Π° ΡΡΠΊΠΎΡΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΡΠ° pull. ΠΠ°ΠΊΡΠΎ Π²ΠΈΠΆΠ΄Π°ΡΠ΅, Π½Π°ΡΠΈΡΠΊΠ°Π½Π΅ΡΠΎ Π½Π° ΠΎΠ±ΡΠ°Π·Π° Π½Π° Docker Container Image ΠΏΡΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° go:onbuild Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ ΠΎΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° Π½Π° ΠΊΠΎΠΌΠΏΡΡΡΡΠ° ΡΠ΅ ΠΎΡΠ½Π΅ΠΌΠ΅ ΠΎΡ 15 Π΄ΠΎ 48 ΡΠ΅ΠΊΡΠ½Π΄ΠΈ, Π° ΡΡΡΠ°ΡΠ° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ Ρ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ Ρ ΠΏΠΎ-ΠΌΠ°Π»ΡΠΊ ΡΠ°Π·ΠΌΠ΅Ρ β ΠΎΡ 14 Π΄ΠΎ 16 ΡΠ΅ΠΊΡΠ½Π΄ΠΈ, ΠΊΠ°ΡΠΎ Π·Π° ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ ΠΌΠΎΡΠ½ΠΈ ΠΌΠ°ΡΠΈΠ½ΠΈ ΠΏΡΠ΅Π΄ΠΈΠΌΡΡΠ²ΠΎΡΠΎ Π² ΡΠΊΠΎΡΠΎΡΡΡΠ° Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΡΠ° Π½Π°ΡΠ°ΡΡΠ²Π° 3 ΠΏΡΡΠΈ. ΠΠ° ΠΏΠΎ-Π³ΠΎΠ»Π΅ΠΌΠΈ ΠΌΠ°ΡΠΈΠ½ΠΈ Π²ΡΠ΅ΠΌΠ΅ΡΠΎ Π΅ ΠΏΡΠΈΠ±Π»ΠΈΠ·ΠΈΡΠ΅Π»Π½ΠΎ Π΅Π΄Π½Π°ΠΊΠ²ΠΎ, ΡΡΠΉ ΠΊΠ°ΡΠΎ GCR ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π³Π»ΠΎΠ±Π°Π»Π΅Π½ ΠΊΠ΅Ρ Π·Π° ΠΎΠ±ΡΠ°ΡΠ° Π±Π°Π·Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ, ΡΠΎΠ΅ΡΡ ΠΈΠ·ΠΎΠ±ΡΠΎ Π½Π΅ Π΅ Π½ΡΠΆΠ½ΠΎ Π΄Π° Π³ΠΈ ΠΈΠ·ΡΠ΅Π³Π»ΡΡΠ΅. Π ΠΊΠΎΠΌΠΏΡΡΡΡΠ° Ρ Π½ΠΈΡΠΊΠ° ΠΌΠΎΡΠ½ΠΎΡΡ CPU Π΅ ΡΠ΅ΡΠ΅Π½ Π·Π²Π΅Π½ΠΎ, ΡΠ°ΠΊΠ° ΡΠ΅ ΠΏΡΠ΅Π΄ΠΈΠΌΡΡΠ²ΠΎΡΠΎ ΠΎΡ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° ΠΌΠ°Π»ΠΊΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ ΡΡΠΊ Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΡΠ΅Π·Π°Π΅ΠΌΠΎ.
ΠΠΊΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ GCR, Π½Π°ΡΡΠΎΡΡΠ΅Π»Π½ΠΎ ΠΏΡΠ΅ΠΏΠΎΡΡΡΠ²Π°ΠΌ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ Google Container Builder (GCB) ΠΊΠ°ΡΠΎ ΡΠ°ΡΡ ΠΎΡ Π²Π°ΡΠ°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ° Π·Π° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅.

ΠΠ°ΠΊ Π²ΠΈΠ΄ΠΈΡΠ΅, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ ΠΌΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΠΏΠΎΡΡΠΈΠ³Π½Π΅ΡΠ΅ Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΎ ΠΏΠΎ-Π΄ΠΎΠ±ΡΠΈ ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠΈ Π² Π½Π°ΠΌΠ°Π»ΡΠ²Π°Π½Π΅ Π½Π° Π²ΡΠ΅ΠΌΠ΅ΡΠΎ Π·Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΡΠ° Build+Push, ΠΎΡΠΊΠΎΠ»ΠΊΠΎΡΠΎ Π΄ΠΎΡΠΈ ΠΏΡΠΈ ΠΏΡΠΎΠ΄ΡΠΊΡΠΈΠ²Π½Π° ΠΌΠ°ΡΠΈΠ½Π° β Π² ΡΠΎΠ·ΠΈ ΡΠ»ΡΡΠ°ΠΉ ΠΏΡΠΎΡΠ΅ΡΡΡ Π½Π° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ ΠΈ ΠΈΠ·ΠΏΡΠ°ΡΠ°Π½Π΅ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ ΠΊΡΠΌ Ρ
ΠΎΡΡ ΡΠ΅ ΡΡΠΊΠΎΡΡΠ²Π° ΠΏΠΎΡΡΠΈ Π΄Π²Π° ΠΏΡΡΠΈ. ΠΡΠ²Π΅Π½ ΡΠΎΠ²Π°, Π²ΡΠ΅ΠΊΠΈ Π΄Π΅Π½ ΠΏΠΎΠ»ΡΡΠ°Π²Π°ΡΠ΅ 120 ΠΌΠΈΠ½ΡΡΠΈ Π±Π΅Π·ΠΏΠ»Π°ΡΠ½ΠΎ ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅, ΠΊΠΎΠ΅ΡΠΎ Π² ΠΏΠΎΠ²Π΅ΡΠ΅ΡΠΎ ΡΠ»ΡΡΠ°ΠΈ ΡΠ΄ΠΎΠ²Π»Π΅ΡΠ²ΠΎΡΡΠ²Π° Π½ΡΠΆΠ΄ΠΈΡΠ΅ Π·Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ.
Π‘Π»Π΅Π΄Π²Π° Π½Π°ΠΉ-Π²Π°ΠΆΠ½Π°ΡΠ° ΠΌΠ΅ΡΡΠΈΠΊΠ° Π·Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ β ΡΠΊΠΎΡΠΎΡΡΡΠ° Π½Π° ΠΈΠ·Π²Π»ΠΈΡΠ°Π½Π΅, ΠΈΠ»ΠΈ ΠΈΠ·ΡΠ΅Π³Π»ΡΠ½Π΅ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ Pull. Π Π°ΠΊΠΎ Π½Π΅ Π²ΠΈ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡΠ²Π° ΡΠΎΠ»ΠΊΠΎΠ²Π° Π²ΡΠ΅ΠΌΠ΅ΡΠΎ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π·Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΡΠ° push, ΡΠΎ Π²ΡΠ΅ΠΌΠ΅ΡΠΎ Π·Π° ΠΏΡΠΎΡΠ΅ΡΠ° pull ΡΠ΅ΡΠΈΠΎΠ·Π½ΠΎ Π²Π»ΠΈΡΠ΅ Π½Π° ΠΎΠ±ΡΠ°ΡΠ° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ°. ΠΠ° ΠΏΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, ΡΠ΅ ΠΈΠΌΠ°ΡΠ΅ ΠΊΠ»ΡΡΡΠ΅Ρ ΠΎΡ ΡΡΠΈ Π²ΡΠ·Π΅Π»Π° ΠΈ Π΅Π΄ΠΈΠ½ ΠΎΡ ΡΡΡ ΡΠ΅ ΠΏΠΎΠ²ΡΠ΅Π΄ΠΈ. ΠΠΊΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΠ° Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Google Kubernetes Engine, ΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ ΡΠ΅ Π·Π°ΠΌΠ΅ΡΡΠΈ Π½Π΅ΡΠ°Π±ΠΎΡΠ΅ΡΠΈΡ Π²ΡΠ·Π΅Π» Ρ Π½ΠΎΠ². ΠΠ±Π°ΡΠ΅, Π½ΠΎΠ²ΠΈΡΡ Π²ΡΠ·Π΅Π» ΡΠ΅ Π±ΡΠ΄Π΅ Π½Π°ΠΏΡΠ»Π½ΠΎ ΠΏΡΠ°Π·Π΅Π½, ΠΈ ΡΠ΅ ΡΡΡΠ±Π²Π° Π΄Π° ΠΏΡΠ΅Ρ Π²ΡΡΠ»ΠΈΡΠ΅ Π²ΡΠΈΡΠΊΠΈ Π²Π°ΡΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ Π² Π½Π΅Π³ΠΎ, Π·Π° Π΄Π° Π·Π°ΡΠ°Π±ΠΎΡΠΈ. ΠΠΊΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΡΠ° pull ΠΎΡΠ½Π΅ΠΌΠ΅ Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΎ Π²ΡΠ΅ΠΌΠ΅, ΡΠ΅Π»ΠΈΡΡ ΡΠΎΠ·ΠΈ ΠΏΠ΅ΡΠΈΠΎΠ΄ Π²Π°ΡΠΈΡΡ ΠΊΠ»ΡΡΡΠ΅Ρ ΡΠ΅ ΡΠ°Π±ΠΎΡΠΈ Ρ ΠΏΠΎ-Π½ΠΈΡΠΊΠ° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ.
ΠΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ»ΡΡΠ°ΠΈ, Π² ΠΊΠΎΠΈΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΡΠ»ΡΡΠΈ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ: Π΄ΠΎΠ±Π°Π²ΡΠ½Π΅ Π½Π° Π½ΠΎΠ² Π²ΡΠ·Π΅Π» Π² ΠΊΠ»ΡΡΡΠ΅ΡΠ°, ΠΎΠ±Π½ΠΎΠ²ΡΠ²Π°Π½Π΅ Π½Π° Π²ΡΠ·Π»ΠΈ ΠΈΠ»ΠΈ Π΄ΠΎΡΠΈ ΠΏΡΠ΅Π²ΠΊΠ»ΡΡΠ²Π°Π½Π΅ Π½Π° Π½ΠΎΠ² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ Π·Π° ΡΠ°Π·Π³ΡΡΡΠ°Π½Π΅. Π’Π°ΠΊΠ° ΡΠ΅ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° Π²ΡΠ΅ΠΌΠ΅ΡΠΎ Π·Π° ΠΈΠ·Π²Π»ΠΈΡΠ°Π½Π΅ pull ΡΡΠ°Π²Π° ΠΊΠ»ΡΡΠΎΠ² ΡΠ°ΠΊΡΠΎΡ. ΠΠ΅Π·ΡΠΏΠΎΡΠ½ΠΎ Π΅, ΡΠ΅ ΠΌΠ°Π»ΡΠΊ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ ΡΠ΅ ΠΈΠ·ΡΠ΅Π³Π»Ρ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎ-Π±ΡΡΠ·ΠΎ ΠΎΡ Π³ΠΎΠ»ΡΠΌ. ΠΠΊΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ° Π² ΠΊΠ»ΡΡΡΠ΅Ρ Kubernetes, ΡΠΏΠ΅ΡΡΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° Π²ΡΠ΅ΠΌΠ΅ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΠΌΠ½ΠΎΠ³ΠΎ Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΎ.

ΠΠΈΠΆΡΠ΅ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ΡΠΎ: ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΡΠ° pull ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ° Ρ ΠΌΠ°Π»ΠΊΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ ΠΎΡΠ½Π΅ΠΌΠ° ΠΎΡ 4 Π΄ΠΎ 9 ΠΏΡΡΠΈ ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ Π²ΡΠ΅ΠΌΠ΅ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ ΠΎΡ ΠΌΠΎΡΠ½ΠΎΡΡΡΠ° Π½Π° ΠΌΠ°ΡΠΈΠ½Π°ΡΠ°, ΠΎΡΠΊΠΎΠ»ΠΊΠΎΡΠΎ ΡΡΡΠ°ΡΠ° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ Ρ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° go:onbuild. ΠΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° ΠΎΠ±ΡΠΈ ΠΎΡΠ½ΠΎΠ²Π½ΠΈ ΠΎΠ±ΡΠ°Π·ΠΈ Π½Π° ΠΌΠ°Π»ΠΊΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΎ ΡΡΠΊΠΎΡΡΠ²Π° Π²ΡΠ΅ΠΌΠ΅ΡΠΎ ΠΈ ΡΠΊΠΎΡΠΎΡΡΡΠ°, Ρ ΠΊΠΎΠΈΡΠΎ Π½ΠΎΠ²ΠΈΡΠ΅ Π²ΡΠ·Π»ΠΈ Kubernetes ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ΅ ΡΠ°Π·Π³ΡΡΡΠ°Ρ ΠΈ Π΄Π° ΠΈΠ·Π»ΠΈΠ·Π°Ρ Π² ΠΈΠ½ΡΠ΅ΡΠ½Π΅Ρ.
ΠΠ΅ΠΊΠ° ΡΠ°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ Π²ΡΠΏΡΠΎΡΠ° Π·Π° ΡΠΈΠ³ΡΡΠ½ΠΎΡΡΡΠ°. Π‘ΡΠΈΡΠ° ΡΠ΅, ΡΠ΅ ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΈΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ ΡΠ° ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎ-ΡΠΈΠ³ΡΡΠ½ΠΈ ΠΎΡ Π³ΠΎΠ»Π΅ΠΌΠΈΡΠ΅, ΡΡΠΉ ΠΊΠ°ΡΠΎ ΠΈΠΌΠ°Ρ ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠ° ΠΏΠΎΠ²ΡΡΡ Π½ΠΎΡΡ Π·Π° Π°ΡΠ°ΠΊΠ°. ΠΡΡΠ½ΠΎ Π»ΠΈ Π΅ ΡΠΎΠ²Π°? ΠΠ΄Π½Π° ΠΎΡ Π½Π°ΠΉ-ΠΏΠΎΠ»Π΅Π·Π½ΠΈΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π½Π° Google Container Registry Π΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ Π΄Π° ΡΠΊΠ°Π½ΠΈΡΠ° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈΡΠ΅ Π²ΠΈ Π·Π° ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ. ΠΡΠ΅Π΄ΠΈ Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΌΠ΅ΡΠ΅ΡΠ° ΡΡΠ·Π΄Π°Π΄ΠΎΡ ΠΊΠ°ΠΊΡΠΎ onbuild, ΡΠ°ΠΊΠ° ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΡΡΠ΅ΠΏΠ΅Π½Π½ΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ, ΡΠ°ΠΊΠ° ΡΠ΅ Π½Π΅ΠΊΠ° Π²ΠΈΠ΄ΠΈΠΌ Π΄Π°Π»ΠΈ ΠΈΠΌΠ° Π½ΡΠΊΠ°ΠΊΠ²ΠΈ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ ΡΠ°ΠΌ.

Π Π΅Π·ΡΠ»ΡΠ°ΡΡΡ Π΅ Π·Π°ΡΠ΅ΠΌΠ΅ΡΡΠ²Π°Ρ: Π² ΠΌΠ°Π»ΠΊΠΈΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ ΡΠ° ΠΎΡΠΊΡΠΈΡΠΈ ΡΠ°ΠΌΠΎ 3 ΡΡΠ΅Π΄Π½ΠΈ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ, Π° Π² Π³ΠΎΠ»ΡΠΌΠΈΡ β 16 ΠΊΡΠΈΡΠΈΡΠ½ΠΈ ΠΈ 376 Π΄ΡΡΠ³ΠΈ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ. ΠΠΎΠ³Π°ΡΠΎ ΡΠ°Π·Π³Π»Π΅Π΄Π°ΡΠ΅ ΡΡΠ΄ΡΡΠΆΠ°Π½ΠΈΠ΅ΡΠΎ Π½Π° Π³ΠΎΠ»ΡΠΌΠΈΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ, ΡΡΠ°Π²Π° ΡΡΠ½ΠΎ, ΡΠ΅ ΠΏΠΎΠ²Π΅ΡΠ΅ΡΠΎ ΠΎΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈΡΠ΅ ΡΡΡ ΡΠΈΠ³ΡΡΠ½ΠΎΡΡΡΠ° Π½ΡΠΌΠ°Ρ Π½ΠΈΡΠΎ ΠΎΠ±ΡΠΎ Ρ Π½Π°ΡΠ΅ΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π° ΡΠ° ΡΠ²ΡΡΠ·Π°Π½ΠΈ Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈ, ΠΊΠΎΠΈΡΠΎ Π΄ΠΎΡΠΈ Π½Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅. ΠΠ°ΡΠΎΠ²Π°, ΠΊΠΎΠ³Π°ΡΠΎ Ρ
ΠΎΡΠ°ΡΠ° Π³ΠΎΠ²ΠΎΡΡΡ Π·Π° Π³ΠΎΠ»ΡΠΌΠ° ΠΏΠΎΠ²ΡΡΡ
Π½ΠΎΡΡ Π·Π° Π°ΡΠ°ΠΊΠΈ, ΡΠ΅ ΡΠΎΡΠ½ΠΎ ΡΠΎΠ²Π° ΠΈΠΌΠ°Ρ ΠΏΡΠ΅Π΄Π²ΠΈΠ΄.

ΠΠ·Π²ΠΎΠ΄ΡΡ Π΅ ΠΎΡΠ΅Π²ΠΈΠ΄Π΅Π½: ΡΡΠ·Π΄Π°Π²Π°ΠΉΡΠ΅ ΠΌΠ°Π»ΠΊΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ, ΡΡΠΉ ΠΊΠ°ΡΠΎ ΡΠ΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΡΡ ΡΠ΅Π°Π»Π½ΠΈ ΠΏΡΠ΅Π΄ΠΈΠΌΡΡΠ²Π° Π² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° ΠΈ ΡΠΈΠ³ΡΡΠ½ΠΎΡΡΡΠ° Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° Π²ΠΈ.

ΠΠ°Π»ΠΊΠΎ ΡΠ΅ΠΊΠ»Π°ΠΌΠ° π
ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΠΈΠΌ Π²ΠΈ, ΡΠ΅ ΠΎΡΡΠ°Π²Π°ΡΠ΅ Ρ Π½Π°Ρ. Π₯Π°ΡΠ΅ΡΠ²Π°ΡΠ΅ Π»ΠΈ Π½Π°ΡΠΈΡΠ΅ ΡΡΠ°ΡΠΈΠΈ? ΠΡΠΊΠ°ΡΠ΅ Π»ΠΈ Π΄Π° Π²ΠΈΠΆΠ΄Π°ΡΠ΅ ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΈ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»ΠΈ? ΠΠΎΠ΄ΠΊΡΠ΅ΠΏΠ΅ΡΠ΅ Π½ΠΈ, ΠΊΠ°ΡΠΎ Π½Π°ΠΏΡΠ°Π²ΠΈΡΠ΅ ΠΏΠΎΡΡΡΠΊΠ° ΠΈΠ»ΠΈ ΠΏΡΠ΅ΠΏΠΎΡΡΡΠ°ΡΠ΅ Π½Π° ΠΏΠΎΠ·Π½Π°ΡΠΈ, , ΡΠ½ΠΈΠΊΠ°Π»Π΅Π½ Π°Π½Π°Π»ΠΎΠ³ Π½Π° entry-level ΡΡΡΠ²ΡΡΠΈ, ΠΊΠΎΠΉΡΠΎ Π΅ ΡΡΠ·Π΄Π°Π΄Π΅Π½ ΠΎΡ Π½Π°Ρ Π·Π° Π²Π°Ρ: (Ρ Π½Π°Π»ΠΈΡΠ½ΠΈ ΠΎΠΏΡΠΈΠΈ Π·Π° RAID1 ΠΈ RAID10, Π΄ΠΎ 24 ΡΠ΄ΡΠ° ΠΈ Π΄ΠΎ 40GB DDR4).
Dell R730xd Π½Π° ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½ ΡΠ΅Π½Π° Π² Π΄Π°ΡΠ° ΡΠ΅Π½ΡΡΡΠ° Equinix Tier IV Π² ΠΠΌΡΡΠ΅ΡΠ΄Π°ΠΌ? ΠΡΠΈΡΠΊΠΎ ΡΠΎΠ²Π° ΡΠ°ΠΌΠΎ ΠΏΡΠΈ Π½Π°Ρ Π² ΠΠΈΠ΄Π΅ΡΠ»Π°Π½Π΄ΠΈΡ! Dell R420 β 2x E5-2430 2.2GHz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB β ΠΎΡ 99 $! Π§Π΅ΡΠ΅ ΡΠ΅ Π·Π° ΡΠΎΠ²Π°
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: habr.com
