ΠΊΠ½ΠΈΠ³Π° docker Π½Π° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅ pdf
ΠΠ½ΠΈΠ³Π° docker Π½Π° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅ pdf
Physics.Math.Code Π·Π°ΠΏΠΈΡΡ Π·Π°ΠΊΡΠ΅ΠΏΠ»Π΅Π½Π°
Docker Π½Π° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅ [2020] ΠΠΉΠ΄Π°Π½ Π₯ΠΎΠ±ΡΠΎΠ½ Π‘Π΅ΠΉΠ΅ΡΡ, ΠΠ°Π½ ΠΠΈΠ»Π»
ΠΡΠΎΡΡΠ°Ρ ΠΈΠ΄Π΅Ρ Docker β ΡΠΏΠ°ΠΊΠΎΠ²ΠΊΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈ Π΅Π³ΠΎ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ Π² Π΅Π΄ΠΈΠ½ΡΠΉ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π΅ΠΌΡΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ β ΠΏΠΎΡΠΎΠ΄ΠΈΠ»ΠΎ Π°ΠΆΠΈΠΎΡΠ°ΠΆ Π² ΠΈΠ½Π΄ΡΡΡΡΠΈΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ. Π’Π΅ΠΏΠ΅ΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ ΡΠ²Π»ΡΡΡΡΡ ΠΊΡΠ°ΠΉΠ½Π΅ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΡΠΌΠΈ Π΄Π»Ρ ΠΊΠΎΡΠΏΠΎΡΠ°ΡΠΈΠ²Π½ΠΎΠΉ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΡ, Π° Docker ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ Π±Π΅ΡΡΠΏΠΎΡΠ½ΡΠΉ ΠΎΡΡΠ°ΡΠ»Π΅Π²ΠΎΠΉ ΡΡΠ°Π½Π΄Π°ΡΡ.
ΠΡΠ°ΠΊ, ΡΡΠΎ Π²Ρ Π±ΡΠ΄Π΅ΡΠ΅ Π΄Π΅Π»Π°ΡΡ ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΎΡΠ²ΠΎΠΈΠ»ΠΈ ΠΎΡΠ½ΠΎΠ²Ρ? ΠΠ»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΏΠΎ-Π½Π°ΡΡΠΎΡΡΠ΅ΠΌΡ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΡΠ²ΠΎΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈ ΡΡΠ°Π½ΡΡΠΎΡΠΌΠΈΡΠΎΠ²Π°ΡΡ ΠΏΡΠΎΡΠ΅ΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ, Π½ΡΠΆΠ½Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΡ ΠΈ ΡΠΊΡΠΏΠ΅ΡΡΡ.
ΠΠ°Π½Π½Π°Ρ ΠΊΠ½ΠΈΠ³Π° Π½Π°ΡΡΠΈΡ Π²Π°Ρ Π½Π°Π΄Π΅ΠΆΠ½ΡΠΌ, ΠΏΡΠΎΠ²Π΅ΡΠ΅Π½Π½ΡΠΌ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΌ Docker, ΡΠ°ΠΊΠΈΠΌ ΠΊΠ°ΠΊ Π·Π°ΠΌΠ΅Π½Π° Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΡ ΠΌΠ°ΡΠΈΠ½, ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠΎΠ², ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ΅ΡΠΈ, ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π² Π°Π²ΡΠΎΠ½ΠΎΠΌΠ½ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠ° Π½Π΅ΠΏΡΠ΅ΡΡΠ²Π½ΠΎΠΉ Π΄ΠΎΡΡΠ°Π²ΠΊΠΈ Π½Π° Π±Π°Π·Π΅ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ². Π‘Π»Π΅Π΄ΡΡ ΡΠΎΡΠΌΠ°ΡΡ Β«ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°/ΡΠ΅ΡΠ΅Π½ΠΈΠ΅Β» Π² ΡΡΠΈΠ»Π΅ ΠΏΠΎΠ²Π°ΡΠ΅Π½Π½ΠΎΠΉ ΠΊΠ½ΠΈΠ³ΠΈ, Π²Ρ ΠΈΠ·ΡΡΠΈΡΠ΅ ΡΠ΅Π°Π»ΡΠ½ΡΠ΅ Π²Π°ΡΠΈΠ°Π½ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Docker ΠΈ ΡΠ·Π½Π°Π΅ΡΠ΅, ΠΊΠ°ΠΊ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ ΠΈΡ ΠΊ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ°ΠΌ.
ΠΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΠΌ Docker Π² ΡΠ²ΠΎΠ΅ΠΌ ΡΠ°Π±ΠΎΡΠ΅ΠΌ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠΈ.
ΠΠ½ΠΈΠ³Π° docker Π½Π° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅ pdf
ΠΠΎΠ΄Π±ΠΎΡΠΊΠ° ΠΊΠ½ΠΈΠ³ ΠΏΠΎ Docker
Practical Docker with Python (2018)
ΠΠ²ΡΠΎΡ: Sathyajith Bhat
ΠΠ°Π½Π½Π°Ρ ΠΊΠ½ΠΈΠ³Π° Π΄Π°ΡΡ Π²Π°ΠΌ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΏΠΎΠ½ΡΡΠΈΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ ΠΈ Π΅Ρ ΡΠ°Π·Π»ΠΈΡΠΈΡ ΠΈ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° Π½Π°Π΄ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠΌΠΈ ΠΌΠ°ΡΠΈΠ½Π°ΠΌΠΈ. Π’Π°ΠΊΠΆΠ΅ Π²Ρ Π½Π°ΠΏΠΈΡΠΈΡΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΡΠ΅ΠΊ Python-Docker.
Docker Cookbook (2015)
ΠΠ²ΡΠΎΡ: Sebastien Goasguen
Π ΠΊΠ½ΠΈΠ³Π΅ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΠ΅ΠΌΡ:
— ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Docker Π½Π° Linux ΠΈ OS X;
— ΡΠΏΠ°ΠΊΠΎΠ²ΡΠ²Π°Π΅ΠΌ Π²Π°Ρ ΠΏΡΠΎΠ΅ΠΊΡ Π½Π° WordPress Π² ΠΎΠ΄ΠΈΠ½ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ;
— ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΎΠ±ΡΠ°Π·ΠΎΠ²;
— ΡΠ°Π±ΠΎΡΠ° Ρ ΡΠ΅ΡΡΡ Π² Docker;
— Kubernetes;
— ΡΠΊΠΎΡΠΈΡΡΠ΅ΠΌΠ° Docker ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄ΡΡΠ³ΠΎΠ΅.
Docker for Developers (2017)
ΠΠ²ΡΠΎΡ: Rafael Gomes
Using Docker: Developing and Deploying Software with Containers (2015)
ΠΠ²ΡΠΎΡ: ΠΠ΄ΡΠΈΠ΅Π½ ΠΠΎΡΡΡ
ΠΠΎΠΊΠ΅Ρ β ΡΡΠΎ ΠΎΡΠΊΡΡΡΠ°Ρ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈ ΡΠΊΡΠΏΠ»ΡΠ°ΡΠ°ΡΠΈΠΈ Π²Π°ΡΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π΄ΠΎΠΊΠ΅ΡΠ° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ Π²Π°ΠΌ Π±ΡΡΡΡΠ΅Π΅ ΠΏΠΈΡΠ°ΡΡ ΠΊΠΎΠ΄, Π±ΡΡΡΡΠ΅Π΅ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ, Π±ΡΡΡΡΠ΅Π΅ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΠΈ Π±ΡΡΡΡΠ΅Π΅ Π²ΡΠΊΠ»Π°Π΄ΡΠ²Π°ΡΡ Π²Π°ΡΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠ²ΡΠΎΡ ΠΊΠ½ΠΈΠ³ΠΈ, ΠΊΠΎΡΠΎΡΡΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΡΠ½ΠΎΠ²Π°ΡΠ΅Π»Ρ Π΄ΠΎΠΊΠ΅ΡΠ° ΠΠ΄ΡΠΈΠ΅Π½ ΠΠΎΡΡΡ, ΠΎΠΏΠΈΡΠ΅Ρ Π°ΡΠΏΠ΅ΠΊΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π΄ΠΎΠΊΠ΅Ρ, ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° Π΄Π°Π½Π½ΠΎΠΉ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΎΡΠ½ΠΎΠ²Ρ Π·Π°ΠΏΡΡΠΊΠ° ΠΈ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ².
Docker: Build. Ship. Run (2017)
ΠΠ²ΡΠΎΡ: Dennis Hutten
Π ΠΊΠ½ΠΈΠ³Π΅ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΠ΅ΠΌΡ:
— ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Docker Π½Π° Linux;
— ΠΎΠ±ΡΠ°Π·Ρ;
— ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ;
— ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ ΠΈ Ρ
ΠΎΡΡΡ;
— Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΠ°;
— ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ²;
— ΡΠΏΠΈΡΠΎΠΊ Π²Π°ΠΆΠ½ΡΡ
ΠΊΠΎΠΌΠ°Π½Π΄ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄ΡΡΠ³ΠΎΠ΅.
ΠΠΎΠ»Π½ΠΎΠ΅ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΠΎ Docker: Ρ Π½ΡΠ»Ρ Π΄ΠΎ ΠΊΠ»Π°ΡΡΠ΅ΡΠ° Π½Π° AWS
Π‘ΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅
ΠΠΎΠΏΡΠΎΡΡ ΠΈ ΠΎΡΠ²Π΅ΡΡ
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΠΠΎΠΊΠ΅Ρ?
ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΠΎΠΊΠ΅ΡΠ° Π² ΠΠΈΠΊΠΈΠΏΠ΅Π΄ΠΈΠΈ Π·Π²ΡΡΠΈΡ ΡΠ°ΠΊ:
ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΠΈ ΡΠ°Π·Π²ΡΡΡΡΠ²Π°Π½ΠΈΡ ΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌΠΈ Π² ΡΡΠ΅Π΄Π΅ Π²ΠΈΡΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π½Π° ΡΡΠΎΠ²Π½Π΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ; ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Β«ΡΠΏΠ°ΠΊΠΎΠ²Π°ΡΡΒ» ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠΎ Π²ΡΠ΅ΠΌ Π΅Π³ΠΎ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΠΈ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡΠΌΠΈ Π² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΡΠ΅Π΄Ρ ΠΏΠΎ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°ΠΌΠΈ.
ΠΠ³ΠΎ! ΠΠ°ΠΊ ΠΌΠ½ΠΎΠ³ΠΎ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ. ΠΡΠΎΡΡΡΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ, ΠΠΎΠΊΠ΅Ρ ΡΡΠΎ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ, ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠΌΠΈ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠ°ΠΌ ΠΈ Π΄ΡΡΠ³ΠΈΠΌ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΡΡΠ°ΠΌ Π΄Π΅ΠΏΠ»ΠΎΠΈΡΡ ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π² ΠΏΠ΅ΡΠΎΡΠ½ΠΈΡΠ΅ (ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π°Π·ΡΠ²Π°ΡΡΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°ΠΌΠΈ), Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ° Π½Π° ΡΠ΅Π»Π΅Π²ΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Linux. ΠΠ»ΡΡΠ΅Π²ΠΎΠ΅ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²ΠΎ ΠΠΎΠΊΠ΅ΡΠ° Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΎΠ½ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌ ΡΠΏΠ°ΠΊΠΎΠ²Π°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠΎ Π²ΡΠ΅ΠΌΠΈ Π΅Π³ΠΎ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡΠΌΠΈ Π² ΡΡΠ°Π½Π΄Π°ΡΡΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ. Π ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΡ ΠΌΠ°ΡΠΈΠ½, ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ Π½Π΅ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ°ΠΊΠΎΠΉ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ Π½Π°Π³ΡΡΠ·ΠΊΠΈ, ΠΏΠΎΡΡΠΎΠΌΡ Ρ Π½ΠΈΠΌΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΈΡΡΠ΅ΠΌΡ ΠΈ ΡΠ΅ΡΡΡΡΡ Π±ΠΎΠ»Π΅Π΅ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ.
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ?
Π‘ΡΠ°Π½Π΄Π°ΡΡ Π² ΠΈΠ½Π΄ΡΡΡΡΠΈΠΈ Π½Π° ΡΠ΅Π³ΠΎΠ΄Π½ΡΡΠ½ΠΈΠΉ Π΄Π΅Π½Ρ β ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠ΅ ΠΌΠ°ΡΠΈΠ½Ρ Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠΠΈΡΡΡΠ°Π»ΡΠ½ΡΠ΅ ΠΌΠ°ΡΠΈΠ½Ρ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π²Π½ΡΡΡΠΈ Π³ΠΎΡΡΠ΅Π²ΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π½Π° Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΌ ΠΆΠ΅Π»Π΅Π·Π΅ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ ΡΠ΅ΡΠ²Π΅ΡΠ°.
ΠΠΈΡΡΡΠ°Π»ΡΠ½ΡΠ΅ ΠΌΠ°ΡΠΈΠ½Ρ ΠΎΡΠ»ΠΈΡΠ½ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡ Π΄Π»Ρ ΠΏΠΎΠ»Π½ΠΎΠΉ ΠΈΠ·ΠΎΠ»ΡΡΠΈΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠ° Π΄Π»Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ: ΠΏΠΎΡΡΠΈ Π½ΠΈΠΊΠ°ΠΊΠΈΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ Π½Π΅ ΠΌΠΎΠ³ΡΡ ΠΏΠΎΠ²Π»ΠΈΡΡΡ Π½Π° ΡΠΎΡΡ Π³ΠΎΡΡΠ΅Π²ΠΎΠΉ ΠΠ‘, ΠΈ Π½Π°ΠΎΠ±ΠΎΡΠΎΡ. ΠΠΎ Π·Π° ΡΠ°ΠΊΡΡ ΠΈΠ·ΠΎΠ»ΡΡΠΈΡ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ ΠΏΠ»Π°ΡΠΈΡΡ. Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½Π°Ρ Π²ΡΡΠΈΡΠ»ΠΈΡΠ΅Π»ΡΠ½Π°Ρ Π½Π°Π³ΡΡΠ·ΠΊΠ°, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠ°Ρ Π΄Π»Ρ Π²ΠΈΡΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΆΠ΅Π»Π΅Π·Π° Π³ΠΎΡΡΠ΅Π²ΠΎΠΉ ΠΠ‘.
ΠΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ Π΄ΡΡΠ³ΠΎΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄: ΠΎΠ½ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ ΡΡ ΠΎΠΆΠΈΠΉ Ρ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠΌΠΈ ΠΌΠ°ΡΠΈΠ½Π°ΠΌΠΈ ΡΡΠΎΠ²Π΅Π½Ρ ΠΈΠ·ΠΎΠ»ΡΡΠΈΠΈ, Π½ΠΎ Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠΌΡ Π·Π°Π΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°Π½ΠΈΡ Π½ΠΈΠ·ΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΡΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠΎΠ² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ Π΄Π΅Π»Π°ΡΡ ΡΡΠΎ Ρ Π² ΡΠ°Π·Ρ ΠΌΠ΅Π½ΡΡΠ΅ΠΉ Π½Π°Π³ΡΡΠ·ΠΊΠΎΠΉ.
ΠΠΎΡΠ΅ΠΌΡ Ρ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈΡ ?
ΠΠ·Π»Π΅Ρ ΠΠΎΠΊΠ΅ΡΠ° Π±ΡΠ» ΠΏΠΎ-Π½Π°ΡΡΠΎΡΡΠ΅ΠΌΡ ΡΠΏΠΈΡΠ½ΡΠΌ. ΠΠ΅ ΡΠΌΠΎΡΡΡ Π½Π° ΡΠΎ, ΡΡΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ ΡΠ°ΠΌΠΈ ΠΏΠΎ ΡΠ΅Π±Π΅ β Π½Π΅ Π½ΠΎΠ²Π°Ρ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡ, Π΄ΠΎ ΠΠΎΠΊΠ΅ΡΠ° ΠΎΠ½ΠΈ Π½Π΅ Π±ΡΠ»ΠΈ ΡΠ°ΠΊ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Ρ ΠΈ ΠΏΠΎΠΏΡΠ»ΡΡΠ½Ρ. ΠΠΎΠΊΠ΅Ρ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ» ΡΠΈΡΡΠ°ΡΠΈΡ, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΠ² ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ API, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΈΠ»ΡΠ½ΠΎ ΡΠΏΡΠΎΡΡΠΈΠ» ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ², ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ» ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²Ρ Π²ΠΌΠ΅ΡΡΠ΅ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π°Π΄ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΠΌΠΈ ΠΏΠΎ ΡΠ°Π±ΠΎΡΠ΅ Ρ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°ΠΌΠΈ. Π ΡΡΠ°ΡΡΠ΅, ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Π½ΠΎΠΉ Π² The Register Π² ΡΠ΅ΡΠ΅Π΄ΠΈΠ½Π΅ 2014 Π³ΠΎΠ²ΠΎΡΠΈΡΡΡ, ΡΡΠΎ ΠΡΠ³Π» ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π±ΠΎΠ»ΡΡΠ΅ Π΄Π²ΡΡ ΠΌΠΈΠ»Π»ΠΈΠ°ΡΠ΄ΠΎΠ² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ² Π² Π½Π΅Π΄Π΅Π»Ρ.
Google Trends Π΄Π»Ρ ΡΠ»ΠΎΠ²Π° ‘Docker’
Π Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΡΠ΅Π»ΡΠ½ΠΎΠΌΡ ΡΠΎΡΡΡ ΠΠΎΠΊΠ΅ΡΠ°, ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡ-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ Docker Inc. Π±ΡΠ»Π° ΠΎΡΠ΅Π½Π΅Π½Π° Π² Π΄Π²Π° Ρ Π»ΠΈΡΠ½ΠΈΠΌ ΠΌΠΈΠ»Π»ΠΈΠ°ΡΠ΄Π° Π΄ΠΎΠ»Π»Π°ΡΠΎΠ²! ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π°ΠΌ Π² ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡΠΈ ΠΈ ΠΏΠΎΡΡΠ°ΡΠΈΠ²Π½ΠΎΡΡΠΈ, ΠΠΎΠΊΠ΅Ρ Π½Π°ΡΠ°Π» ΠΏΠΎΠ»ΡΡΠ°ΡΡ Π²ΡΠ΅ Π±ΠΎΠ»ΡΡΠ΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ, ΠΈ ΡΠ΅ΠΉΡΠ°Ρ ΡΡΠΎΠΈΡ Π²ΠΎ Π³Π»Π°Π²Π΅ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΡ ΠΏΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈΠ·Π°ΡΠΈΠΈ (containerization). ΠΠ°ΠΊ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ, ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΠΎΠ½ΡΡΡ ΡΡΠΎΡ ΡΡΠ΅Π½Π΄ ΠΈ Π²ΡΡΡΠ½ΠΈΡΡ, ΠΊΠ°ΠΊΡΡ ΠΏΠΎΠ»ΡΠ·Ρ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΈΠ· Π½Π΅Π³ΠΎ.
Π§Π΅ΠΌΡ ΠΌΠ΅Π½Ρ Π½Π°ΡΡΠΈΡ ΡΡΠΎ ΠΏΠΎΡΠΎΠ±ΠΈΠ΅?
ΠΡΠΎ Π΅Π΄ΠΈΠ½ΠΎΠ΅ ΠΈ ΠΏΠΎΠ»Π½ΠΎΠ΅ ΠΏΠΎΡΠΎΠ±ΠΈΠ΅ ΠΏΠΎ Π²ΡΠ΅ΠΌ Π°ΡΠΏΠ΅ΠΊΡΠ°ΠΌ ΡΠ°Π±ΠΎΡΡ Ρ ΠΠΎΠΊΠ΅ΡΠΎΠΌ. ΠΡΠΎΠΌΠ΅ ΡΠ°Π·ΡΡΡΠ½Π΅Π½ΠΈΡ ΠΌΠΈΡΠΎΠ² ΠΎ ΠΠΎΠΊΠ΅ΡΠ΅ ΠΈ Π΅Π³ΠΎ ΡΠΊΠΎΡΠΈΡΡΠ΅ΠΌΠ΅, ΠΎΠ½ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ Π²Π°ΠΌ ΠΏΠΎΠ»ΡΡΠΈΡ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΎΠΏΡΡ ΠΏΠΎ ΡΠ±ΠΎΡΠΊΠ΅ ΠΈ Π΄Π΅ΠΏΠ»ΠΎΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π² ΠΎΠ±Π»Π°ΠΊΠ΅. ΠΡ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Amazon Web Services Π΄Π»Ρ Π΄Π΅ΠΏΠ»ΠΎΡ ΡΡΠ°ΡΠΈΡΠ½ΡΡ ΡΠ°ΠΉΡΠΎΠ², ΠΈ Π΄Π²Π° Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΡ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π·Π°Π΄Π΅ΠΏΠ»ΠΎΠΈΠΌ Π½Π° EC2 Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Elastic Beanstalk ΠΈ Elastic Container Service. ΠΠ°ΠΆΠ΅ Π΅ΡΠ»ΠΈ Π²Ρ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ Π΄Π΅ΠΏΠ»ΠΎΠΈΠ»ΠΈ, ΡΡΠΎ ΠΏΠΎΡΠΎΠ±ΠΈΠ΅ Π΄Π°ΡΡ Π²Π°ΠΌ Π²ΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΠ΅.
ΠΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠΎΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ
ΠΡΠΎΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π·Π΄Π΅Π»ΠΎΠ², ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ ΠΏΠΎΡΠ²ΡΡΠ΅Π½ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌΡ Π°ΡΠΏΠ΅ΠΊΡΡ ΠΠΎΠΊΠ΅ΡΠ°. Π ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΡΠ°Π·Π΄Π΅Π»Π΅ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ Π²Π²ΠΎΠ΄ΠΈΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΈΠ»ΠΈ ΠΏΠΈΡΠ°ΡΡ ΠΊΠΎΠ΄. ΠΠ΅ΡΡ ΠΊΠΎΠ΄ Π΄ΠΎΡΡΡΠΏΠ΅Π½ Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ Π½Π° ΠΠΈΡΡ Π°Π±Π΅.
ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅
ΠΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅: Π ΡΡΠΎΠΌ ΠΏΠΎΡΠΎΠ±ΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π²Π΅ΡΡΠΈΡ ΠΠΎΠΊΠ΅ΡΠ° 1.12.0-rc2. ΠΡΠ»ΠΈ Π²Ρ ΡΡΠΎΠ»ΠΊΠ½ΡΠ»ΠΈΡΡ Ρ Π½Π΅ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΡΡ, ΠΏΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, ΠΎΡΠΏΡΠ°Π²ΡΡΠ΅ issue. Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ!
ΠΡΠ΅-ΡΠ΅ΠΊΠ²ΠΈΠ·ΠΈΡΡ
ΠΡΠ΅, ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ Π΄Π»Ρ ΠΏΡΠΎΡ ΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΡΡΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠ±ΠΈΡ β ΡΡΠΎ Π±Π°Π·ΠΎΠ²ΡΠ΅ Π½Π°Π²ΡΠΊΠΈ Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΎΠΉ ΠΈ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΌ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠΎΠΌ. ΠΠΏΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ»Π΅Π·Π΅Π½, Π½ΠΎ Π½Π΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»Π΅Π½. Π ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΠ°Π±ΠΎΡΡ ΠΌΡ ΡΡΠΎΠ»ΠΊΠ½Π΅ΠΌΡΡ Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ ΠΎΠ±Π»Π°ΡΠ½ΡΠΌΠΈ ΡΠ΅ΡΠ²ΠΈΡΠ°ΠΌΠΈ. ΠΠ°ΠΌ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ ΡΠΎΠ·Π΄Π°ΡΡ Π°ΠΊΠΊΠ°ΡΠ½Ρ Π½Π° ΡΡΠΈΡ ΡΠ°ΠΉΡΠ°Ρ :
ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ°
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠ° Π²ΡΠ΅Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΡΠΆΠ΅Π»ΠΎΠΉ Π·Π°Π΄Π°ΡΠ΅ΠΉ, Π½ΠΎ, ΠΊ ΡΡΠ°ΡΡΡΡ, ΠΠΎΠΊΠ΅Ρ ΡΡΠ°Π» Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΡΠΌ, ΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΠΈ Π·Π°ΠΏΡΡΠΊ Π΅Π³ΠΎ Π½Π° Π»ΡΠ±ΠΎΠΉ ΠΠ‘ ΡΡΠ°Π»ΠΎ ΠΎΡΠ΅Π½Ρ ΠΏΡΠΎΡΡΠΎΠΉ Π·Π°Π΄Π°ΡΠ΅ΠΉ. ΠΡΠ°ΠΊ, ΡΡΡΠ°Π½ΠΎΠ²ΠΈΠΌ ΠΠΎΠΊΠ΅Ρ.
ΠΠΎΠΊΠ΅Ρ
ΠΡΠΎΠ²Π΅ΡΠΈΠΌ, Π²ΡΠ΅ Π»ΠΈ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΎ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎ:
Python
Python ΠΎΠ±ΡΡΠ½ΠΎ ΠΏΡΠ΅Π΄ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ Π½Π° OS X ΠΈ Π½Π° Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²ΠΎΠ² Linux. ΠΡΠ»ΠΈ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΠΈΡΠΎΠ½, ΡΠΎ ΡΠΊΠ°ΡΠ°ΠΉΡΠ΅ ΡΡΡΠ°Π½ΠΎΠ²ΡΠΈΠΊ Π·Π΄Π΅ΡΡ.
ΠΡ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ pip Π΄Π»Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² Π΄Π»Ρ Π½Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΡΠ»ΠΈ pip Π½Π΅ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½, ΡΠΎ ΡΠΊΠ°ΡΠ°ΠΉΡΠ΅ Π²Π΅ΡΡΠΈΡ Π΄Π»Ρ ΡΠ²ΠΎΠ΅ΠΉ ΡΠΈΡΡΠ΅ΠΌΡ.
ΠΠ»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π·Π°ΠΏΡΡΡΠΈΡΠ΅ ΡΠ°ΠΊΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
Java (Π½Π΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ)
1.0 ΠΠ³ΡΠ°Π΅ΠΌ Ρ Busybox
ΠΠ»Ρ Π½Π°ΡΠ°Π»Π°, Π·Π°ΠΏΡΡΡΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
1.1 Docker Run
ΠΡΠ»ΠΈΡΠ½ΠΎ! Π’Π΅ΠΏΠ΅ΡΡ Π΄Π°Π²Π°ΠΉΡΠ΅ Π·Π°ΠΏΡΡΡΠΈΠΌ ΠΠΎΠΊΠ΅Ρ-ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ Ρ ΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ Π²ΠΎΠ»ΡΠ΅Π±Π½ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ docker run :
Π£ΡΠ°, Π½Π°ΠΊΠΎΠ½Π΅Ρ-ΡΠΎ ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ Π²ΡΠ²ΠΎΠ΄. Π Π½Π°ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΊΠ»ΠΈΠ΅Π½Ρ ΠΠΎΠΊΠ΅ΡΠ° ΠΏΠΎΡΠ»ΡΡΠ½ΠΎ Π·Π°ΠΏΡΡΡΠΈΠ» ΠΊΠΎΠΌΠ°Π½Π΄Ρ echo Π²Π½ΡΡΡΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°, Π° ΠΏΠΎΡΠΎΠΌ Π²ΡΡΠ΅Π» ΠΈΠ· Π½Π΅Π³ΠΎ. ΠΡ, Π½Π°Π²Π΅ΡΠ½ΠΎΠ΅, Π·Π°ΠΌΠ΅ΡΠΈΠ»ΠΈ, ΡΡΠΎ Π²ΡΠ΅ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»ΠΎ ΠΎΡΠ΅Π½Ρ Π±ΡΡΡΡΠΎ. Π ΡΠ΅ΠΏΠ΅ΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΡΡΠ΅ ΡΠ΅Π±Π΅, ΠΊΠ°ΠΊ Π½ΡΠΆΠ½ΠΎ Π·Π°Π³ΡΡΠΆΠ°ΡΡ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΡ ΠΌΠ°ΡΠΈΠ½Ρ, Π·Π°ΠΏΡΡΠΊΠ°ΡΡ Π² Π½Π΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΈ Π²ΡΠΊΠ»ΡΡΠ°ΡΡ Π΅Π΅. Π’Π΅ΠΏΠ΅ΡΡ ΡΡΠ½ΠΎ, ΠΏΠΎΡΠ΅ΠΌΡ Π³ΠΎΠ²ΠΎΡΡΡ, ΡΡΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ Π±ΡΡΡΡΡΠ΅!
Π’Π΅ΠΏΠ΅ΡΡ Π²ΠΈΠ΄Π΅Π½ ΡΠΏΠΈΡΠΎΠΊ Π²ΡΠ΅Ρ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΡ Π·Π°ΠΏΡΡΠΊΠ°Π»ΠΈ. Π ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ΅ STATUS ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ Π·Π°Π²Π΅ΡΡΠΈΠ»ΠΈ ΡΠ²ΠΎΡ ΡΠ°Π±ΠΎΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΌΠΈΠ½ΡΡ Π½Π°Π·Π°Π΄.
ΠΠ°ΠΌ, Π½Π°Π²Π΅ΡΠ½ΠΎΠ΅, ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ, ΠΊΠ°ΠΊ Π·Π°ΠΏΡΡΡΠΈΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ΅. ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΠΏΡΠΎΠ±ΡΠ΅ΠΌ:
ΠΡΠΈ ΡΠ΄Π°Π»Π΅Π½ΠΈΠΈ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ Π±ΡΠ΄ΡΡ ΡΠ½ΠΎΠ²Π° Π²ΡΠ²Π΅Π΄Π΅Π½Ρ Π½Π° ΡΠΊΡΠ°Π½. ΠΡΠ»ΠΈ Π½ΡΠΆΠ½ΠΎ ΡΠ΄Π°Π»ΠΈΡΡ ΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ², ΡΠΎ Π²ΠΌΠ΅ΡΡΠΎ ΡΡΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ Π²ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠ°ΠΊ:
1.2 Π’Π΅ΡΠΌΠΈΠ½ΠΎΠ»ΠΎΠ³ΠΈΡ
Π ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΌ ΡΠ°Π·Π΄Π΅Π»Π΅ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΠΎΠ³ΠΎ Π΄Π»Ρ ΠΠΎΠΊΠ΅ΡΠ° ΠΆΠ°ΡΠ³ΠΎΠ½Π°, ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΡ ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π·Π°ΠΏΡΡΠ°ΡΡ. ΠΠ΅ΡΠ΅Π΄ ΡΠ΅ΠΌ, ΠΊΠ°ΠΊ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡΡ, Π΄Π°Π²Π°ΠΉΡΠ΅ ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ΅ΡΠΌΠΈΠ½Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π² ΡΠΊΠΎΡΠΈΡΡΠ΅ΠΌΠ΅ ΠΠΎΠΊΠ΅ΡΠ°.
2.0 ΠΠ΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈ ΠΠΎΠΊΠ΅Ρ
2.1 Π‘ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠ°ΠΉΡΡ
ΠΠ°Π²Π°ΠΉΡΠ΅ Π½Π°ΡΠ½Π΅ΠΌ Ρ ΠΌΠ°Π»ΠΎΠ³ΠΎ. ΠΠ½Π°ΡΠ°Π»Π΅ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΠ°ΠΌΡΠΉ ΠΏΡΠΎΡΡΠΎΠΉ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π²Π΅Π±-ΡΠ°ΠΉΡ. Π‘ΠΊΠ°ΡΠ°Π΅ΠΌ ΠΎΠ±ΡΠ°Π· ΠΈΠ· Docker Hub, Π·Π°ΠΏΡΡΡΠΈΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ ΠΈ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ, Π½Π°ΡΠΊΠΎΠ»ΡΠΊΠΎ Π»Π΅Π³ΠΊΠΎ Π±ΡΠ΄Π΅Ρ Π·Π°ΠΏΡΡΡΠΈΡΡ Π²Π΅Π±-ΡΠ΅ΡΠ²Π΅Ρ.
Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ±ΡΠ°Π·Π° Π½Π΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎ, ΠΊΠ»ΠΈΠ΅Π½Ρ ΡΠ½Π°ΡΠ°Π»Π° ΡΠΊΠ°ΡΠ°Π΅Ρ ΠΎΠ±ΡΠ°Π· ΠΈΠ· ΡΠ΅Π³ΠΈΡΡΡΠ°, Π° ΠΏΠΎΡΠΎΠΌ Π·Π°ΠΏΡΡΡΠΈΡ Π΅Π³ΠΎ. ΠΡΠ»ΠΈ Π²ΡΠ΅ Π±Π΅Π· ΠΏΡΠΎΠ±Π»Π΅ΠΌ, ΡΠΎ Π²Ρ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Nginx is running. Π² ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π΅. Π’Π΅ΠΏΠ΅ΡΡ ΡΠ΅ΡΠ²Π΅Ρ Π·Π°ΠΏΡΡΠ΅Π½. ΠΠ°ΠΊ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΡΠ°ΠΉΡ Π² Π΄Π΅ΠΉΡΡΠ²ΠΈΠΈ? ΠΠ° ΠΊΠ°ΠΊΠΎΠΌ ΠΏΠΎΡΡΡ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΠ΅ΡΠ²Π΅Ρ? Π, ΡΡΠΎ ΡΠ°ΠΌΠΎΠ΅ Π²Π°ΠΆΠ½ΠΎΠ΅, ΠΊΠ°ΠΊ Π½Π°ΠΏΡΡΠΌΡΡ Π΄ΠΎΡΡΡΡΠ°ΡΡΡΡ Π΄ΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ° ΠΈΠ· Ρ ΠΎΡΡ-ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°?
Π Π½Π°ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΊΠ»ΠΈΠ΅Π½Ρ Π½Π΅ ΠΎΡΠΊΡΡΠ²Π°Π΅Ρ Π½ΠΈΠΊΠ°ΠΊΠΈΠ΅ ΠΏΠΎΡΡΡ, ΡΠ°ΠΊ ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΡΡΡΠΈΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ docker run ΡΡΠΎΠ±Ρ ΡΠ΄Π΅Π»Π°ΡΡ ΠΏΠΎΡΡΡ ΠΏΡΠ±Π»ΠΈΡΠ½ΡΠΌΠΈ. ΠΠ°ΠΎΠ΄Π½ΠΎ Π΄Π°Π²Π°ΠΉΡΠ΅ ΡΠ΄Π΅Π»Π°Π΅ΠΌ ΡΠ°ΠΊ, ΡΡΠΎΠ±Ρ ΡΠ΅ΡΠΌΠΈΠ½Π°Π» Π½Π΅ Π±ΡΠ» ΠΏΡΠΈΠΊΡΠ΅ΠΏΠ»Π΅Π½ ΠΊ Π·Π°ΠΏΡΡΠ΅Π½Π½ΠΎΠΌΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ. Π ΡΠ°ΠΊΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ ΡΠΏΠΎΠΊΠΎΠΉΠ½ΠΎ Π·Π°ΠΊΡΡΡΡ ΡΠ΅ΡΠΌΠΈΠ½Π°Π», Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ ΡΠ°Π±ΠΎΡΡ. ΠΡΠΎ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ detached mode.
ΠΡΠΊΡΠΎΠΉΡΠ΅ http://localhost:32769 Π² ΡΠ²ΠΎΠ΅ΠΌ Π±ΡΠ°ΡΠ·Π΅ΡΠ΅.
ΠΠ°ΠΌΠ΅ΡΠ°Π½ΠΈΠ΅: ΠΡΠ»ΠΈ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ docker-toolbox, ΡΠΎ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π½ΡΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ docker-machine ip default ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ IP-Π°Π΄ΡΠ΅Ρ.
Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠΈΡΡ ΡΠ²ΠΎΠΉ ΠΏΠΎΡΡ. ΠΠ»ΠΈΠ΅Π½Ρ Π±ΡΠ΄Π΅Ρ ΠΏΠ΅ΡΠ΅Π½Π°ΠΏΡΠ°Π²Π»ΡΡΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ Π½Π° Π½Π΅Π³ΠΎ.
Π§ΡΠΎΠ±Ρ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ Π·Π°ΠΏΡΡΡΠΈΡΠ΅ docker stop ΠΈ ΡΠΊΠ°ΠΆΠΈΡΠ΅ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ (ID) ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°.
Π‘ΠΎΠ³Π»Π°ΡΠΈΡΠ΅ΡΡ, Π²ΡΠ΅ Π±ΡΠ»ΠΎ ΠΎΡΠ΅Π½Ρ ΠΏΡΠΎΡΡΠΎ. Π§ΡΠΎΠ±Ρ Π·Π°Π΄Π΅ΠΏΠ»ΠΎΠΈΡΡ ΡΡΠΎ Π½Π° ΡΠ΅Π°Π»ΡΠ½ΡΠΉ ΡΠ΅ΡΠ²Π΅Ρ, Π½ΡΠΆΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΠΎΠΊΠ΅Ρ ΠΈ Π·Π°ΠΏΡΡΡΠΈΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π²ΡΡΠ΅. Π’Π΅ΠΏΠ΅ΡΡ, ΠΊΠΎΠ³Π΄Π° Π²Ρ ΡΠ²ΠΈΠ΄Π΅Π»ΠΈ, ΠΊΠ°ΠΊ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ Π²Π΅Π±-ΡΠ΅ΡΠ²Π΅Ρ Π²Π½ΡΡΡΠΈ ΠΎΠ±ΡΠ°Π·Π°, Π²Π°ΠΌ, Π½Π°Π²Π΅ΡΠ½ΠΎΠ΅, ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ β Π° ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ²ΠΎΠΉ ΠΠΎΠΊΠ΅Ρ-ΠΎΠ±ΡΠ°Π·? ΠΡ Π±ΡΠ΄Π΅ΠΌ ΠΈΠ·ΡΡΠ°ΡΡ ΡΡΡ ΡΠ΅ΠΌΡ Π² ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΡΠ°Π·Π΄Π΅Π»Π΅.
2.2 ΠΠ±ΡΠ°Π·Ρ
ΠΡ ΠΊΠ°ΡΠ°Π»ΠΈΡΡ ΠΎΠ±ΡΠ°Π·ΠΎΠ² ΡΠ°Π½Π΅Π΅, Π½ΠΎ Π² ΡΡΠΎΠΌ ΡΠ°Π·Π΄Π΅Π»Π΅ ΠΌΡ Π·Π°Π³Π»ΡΠ½Π΅ΠΌ Π³Π»ΡΠ±ΠΆΠ΅: ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΠΠΎΠΊΠ΅Ρ-ΠΎΠ±ΡΠ°Π·Ρ ΠΈ ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΠΎΠ±ΡΠ°Π·Ρ. ΠΠ°ΠΊΠΎΠ½Π΅Ρ, ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ ΠΎΠ±ΡΠ°Π· ΡΡΠΎΠ±Ρ Π·Π°ΠΏΡΡΡΠΈΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎ, Π° ΠΏΠΎΡΠΎΠΌ Π·Π°Π΄Π΅ΠΏΠ»ΠΎΠΈΠΌ Π΅Π³ΠΎ Π½Π° AWS, ΡΡΠΎΠ±Ρ ΠΏΠΎΠΊΠ°Π·Π°ΡΡ Π΄ΡΡΠ·ΡΡΠΌ. ΠΡΡΡΠΎ? ΠΡΡΡΠΎ! ΠΠ°Π²Π°ΠΉΡΠ΅ Π½Π°ΡΠ½Π΅ΠΌ.
ΠΡΠΎ ΡΠΏΠΈΡΠΎΠΊ ΠΎΠ±ΡΠ°Π·ΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Ρ ΡΠΊΠ°ΡΠ°Π» ΠΈΠ· ΡΠ΅Π³ΠΈΡΡΡΠ°, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠ΅Ρ , ΡΡΠΎ Ρ ΡΠ΄Π΅Π»Π°Π» ΡΠ°ΠΌ (ΡΠΊΠΎΡΠΎ ΡΠ²ΠΈΠ΄ΠΈΠΌ, ΠΊΠ°ΠΊ ΡΡΠΎ Π΄Π΅Π»Π°ΡΡ). TAG β ΡΡΠΎ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΉ ΡΠ½ΠΈΠΌΠΎΠΊ ΠΈΠ»ΠΈ ΡΠ½ΡΠΏΡΠΎΡ (snapshot) ΠΎΠ±ΡΠ°Π·Π°, Π° IMAGE ID β ΡΡΠΎ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΉ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΠΎΠ±ΡΠ°Π·Π°.
ΠΠ°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ ΡΠ°Π·Π½ΠΈΡΡ ΠΌΠ΅ΠΆΠ΄Ρ Π±Π°Π·ΠΎΠ²ΡΠΌΠΈ ΠΈ Π΄ΠΎΡΠ΅ΡΠ½ΠΈΠΌΠΈ ΠΎΠ±ΡΠ°Π·Π°ΠΌΠΈ:
Π‘ΡΡΠ΅ΡΡΠ²ΡΡΡ ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΡΠ΅ ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠ΅ ΠΎΠ±ΡΠ°Π·Ρ, ΠΈ Π»ΡΠ±ΡΠ΅ ΠΈΠ· Π½ΠΈΡ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π±Π°Π·ΠΎΠ²ΡΠΌΠΈ ΠΈ Π΄ΠΎΡΠ΅ΡΠ½ΠΈΠΌΠΈ.
2.3 ΠΠ°Ρ ΠΏΠ΅ΡΠ²ΡΠΉ ΠΎΠ±ΡΠ°Π·
Π’Π΅ΠΏΠ΅ΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΌΡ Π»ΡΡΡΠ΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅ΠΌ, ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΠΎΠ±ΡΠ°Π·Ρ ΠΈ ΠΊΠ°ΠΊΠΈΠ΅ ΠΎΠ½ΠΈ Π±ΡΠ²Π°ΡΡ, ΡΠ°ΠΌΠΎΠ΅ Π²ΡΠ΅ΠΌΡ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ ΠΎΠ±ΡΠ°Π·. Π¦Π΅Π»Ρ ΡΡΠΎΠ³ΠΎ ΡΠ°Π·Π΄Π΅Π»Π° β ΡΠΎΠ·Π΄Π°ΡΡ ΠΎΠ±ΡΠ°Π· Ρ ΠΏΡΠΎΡΡΡΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ Π½Π° Flask. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠ±ΠΈΡ Ρ ΡΠ΄Π΅Π»Π°Π» ΠΌΠ°Π»Π΅Π½ΡΠΊΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π²ΡΠ²ΠΎΠ΄ΠΈΡ ΡΠ»ΡΡΠ°ΠΉΠ½ΡΡ Π³ΠΈΡΠΊΡ Ρ ΠΊΠΎΡΠΊΠΎΠΉ. ΠΡ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ, ΠΊΡΠΎ Π½Π΅ Π»ΡΠ±ΠΈΡ ΠΊΠΎΡΠ΅ΠΊ? Π‘ΠΊΠ»ΠΎΠ½ΠΈΡΡΠΉΡΠ΅ ΡΡΠΎΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ ΠΊ ΡΠ΅Π±Π΅ Π½Π° Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ ΠΌΠ°ΡΠΈΠ½Ρ.
ΠΠ½Π°ΡΠ°Π»Π΅ Π΄Π°Π²Π°ΠΉΡΠ΅ ΠΏΡΠΎΠ²Π΅ΡΠΈΠΌ, ΡΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎ. ΠΠΎΠΉΠ΄ΠΈΡΠ΅ Π² Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ flask-app ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ cd ΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ.
ΠΡΠ»ΠΈ Π²ΡΠ΅ Ρ ΠΎΡΠΎΡΠΎ, ΡΠΎ Π²Ρ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅ Π²ΡΠ²ΠΎΠ΄ ΠΊΠ°ΠΊ Π² ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π²ΡΡΠ΅. ΠΠ°ΠΉΠ΄ΠΈΡΠ΅ Π½Π° http://localhost:5000 ΡΡΠΎΠ±Ρ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² Π΄Π΅ΠΉΡΡΠ²ΠΈΠΈ.
ΠΡΠ³Π»ΡΠ΄ΠΈΡ ΠΎΡΠ»ΠΈΡΠ½ΠΎ, ΠΏΡΠ°Π²Π΄Π°? Π’Π΅ΠΏΠ΅ΡΡ Π½ΡΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΠΎΠ±ΡΠ°Π· Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ. ΠΠ°ΠΊ Π³ΠΎΠ²ΠΎΡΠΈΠ»ΠΎΡΡ Π²ΡΡΠ΅, Π²ΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠ΅ ΠΎΠ±ΡΠ°Π·Ρ ΠΎΡΠ½ΠΎΠ²Π°Π½Ρ Π½Π° Π±Π°Π·ΠΎΠ²ΠΎΠΌ ΠΎΠ±ΡΠ°Π·Π΅. Π’Π°ΠΊ ΠΊΠ°ΠΊ Π½Π°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π°ΠΏΠΈΡΠ°Π½ΠΎ Π½Π° ΠΠΈΡΠΎΠ½Π΅, Π½Π°ΠΌ Π½ΡΠΆΠ΅Π½ Π±Π°Π·ΠΎΠ²ΡΠΉ ΠΎΠ±ΡΠ°Π· Python 3. Π ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ, Π½Π°ΠΌ Π½ΡΠΆΠ½Π° Π²Π΅ΡΡΠΈΡ python:3-onbuild Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ°Π·Π° Ρ ΠΠΈΡΠΎΠ½ΠΎΠΌ.
ΠΡΡΠ³ΠΈΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ, Π²Π΅ΡΡΠΈΡ onbuild Π²ΠΊΠ»ΡΡΠ°Π΅Ρ Ρ Π΅Π»ΠΏΠ΅ΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΡΡΡ ΡΠΊΡΡΠ½ΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΡ Π·Π°ΠΏΡΡΠΊΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠΌΠ΅ΡΡΠΎ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ Π²ΡΡΡΠ½ΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΡΡΠΈ Π·Π°Π΄Π°ΡΠΈ (ΠΈΠ»ΠΈ ΠΏΠΈΡΠ°ΡΡ ΡΠΊΡΠΈΠΏΡΡ), ΠΎΠ±ΡΠ°Π·Ρ Π΄Π΅Π»Π°ΡΡ Π²ΡΠ΅ Π·Π° Π²Π°Ρ. Π’Π΅ΠΏΠ΅ΡΡ Ρ Π½Π°Ρ Π΅ΡΡΡ Π²ΡΠ΅ ΠΈΠ½Π³ΡΠ΅Π΄ΠΈΠ΅Π½ΡΡ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠ²ΠΎΠ΅Π³ΠΎ ΠΎΠ±ΡΠ°Π·Π°: ΡΠ°Π±ΠΎΡΠ°ΡΡΠ΅Π΅ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ Π±Π°Π·ΠΎΠ²ΡΠΉ ΠΎΠ±ΡΠ°Π·. ΠΠ°ΠΊ ΡΡΠΎ ΡΠ΄Π΅Π»Π°ΡΡ? ΠΡΠ²Π΅Ρ: ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Dockerfile.
2.4 Dockerfile
Dockerfile β ΡΡΠΎ ΠΏΡΠΎΡΡΠΎΠΉ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΉ ΡΠ°ΠΉΠ», Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡΡΡ ΡΠΏΠΈΡΠΎΠΊ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΠΎΠΊΠ΅Ρ-ΠΊΠ»ΠΈΠ΅Π½ΡΠ°. ΠΡΠΎ ΠΏΡΠΎΡΡΠΎΠΉ ΡΠΏΠΎΡΠΎΠ± Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΏΡΠΎΡΠ΅ΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΎΠ±ΡΠ°Π·Π°. Π‘Π°ΠΌΠΎΠ΅ ΠΊΠ»Π°ΡΡΠ½ΠΎΠ΅, ΡΡΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π² Dockerfile ΠΏΠΎΡΡΠΈ ΠΈΠ΄Π΅Π½ΡΠΈΡΠ½Ρ ΡΠ²ΠΎΠΈΠΌ Π°Π½Π°Π»ΠΎΠ³Π°ΠΌ Π² Linux. ΠΡΠΎ Π·Π½Π°ΡΠΈΡ, ΡΡΠΎ Π² ΠΏΡΠΈΠ½ΡΠΈΠΏΠ΅ Π½Π΅ Π½ΡΠΆΠ½ΠΎ ΠΈΠ·ΡΡΠ°ΡΡ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ Π½ΠΎΠ²ΡΠΉ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ ΡΡΠΎΠ±Ρ Π½Π°ΡΠ°ΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ Π΄ΠΎΠΊΠ΅ΡΡΠ°ΠΉΠ»Π°ΠΌΠΈ.
ΠΠ»Π°Π²Π½ΠΎΠ΅ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ CMD β ΡΡΠΎ ΡΠΎΠΎΠ±ΡΠΈΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ ΠΊΠ°ΠΊΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π½ΡΠΆΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΏΡΠΈ ΡΡΠ°ΡΡΠ΅. Π’Π΅ΠΏΠ΅ΡΡ Π½Π°Ρ Dockerfile Π³ΠΎΡΠΎΠ². ΠΠΎΡ ΠΊΠ°ΠΊ ΠΎΠ½ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ:
ΠΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΡΠ°Π³ β Π·Π°ΠΏΡΡΡΠΈΡΡ ΠΎΠ±ΡΠ°Π· ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ Π΅Π³ΠΎ ΡΠ°Π±ΠΎΡΠΎΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΡ (Π·Π°ΠΌΠ΅Π½ΠΈΡΠ΅ username Π½Π° ΡΠ²ΠΎΠΉ):
ΠΠ°ΠΉΠ΄ΠΈΡΠ΅ Π½Π° ΡΠΊΠ°Π·Π°Π½Π½ΡΠΉ URL ΠΈ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² ΡΠ°Π±ΠΎΡΠ΅.
ΠΠΎΠ·Π΄ΡΠ°Π²Π»ΡΡ! ΠΡ ΡΡΠΏΠ΅ΡΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π»ΠΈ ΡΠ²ΠΎΠΉ ΠΏΠ΅ΡΠ²ΡΠΉ ΠΎΠ±ΡΠ°Π· ΠΠΎΠΊΠ΅ΡΠ°!
2.5 Docker Π½Π° AWS
Π§ΡΠΎ Ρ ΠΎΡΠΎΡΠ΅Π³ΠΎ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π½Π΅Π»ΡΠ·Ρ ΠΏΠΎΠΊΠ°Π·Π°ΡΡ Π΄ΡΡΠ·ΡΡΠΌ, ΠΏΡΠ°Π²Π΄Π°? Π’Π°ΠΊ ΡΡΠΎ Π² ΡΡΠΎΠΌ ΡΠ°Π·Π΄Π΅Π»Π΅ ΠΌΡ Π½Π°ΡΡΠΈΠΌΡΡ Π΄Π΅ΠΏΠ»ΠΎΠΈΡΡ Π½Π°ΡΠ΅ ΠΎΡΠΈΠ³Π΅Π½Π½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² ΠΎΠ±Π»Π°ΠΊΠΎ. ΠΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ AWS Elastic Beanstalk ΡΡΠΎΠ±Ρ ΡΠ΅ΡΠΈΡΡ ΡΡΡ Π·Π°Π΄Π°ΡΡ Π·Π° ΠΏΠ°ΡΡ ΠΊΠ»ΠΈΠΊΠΎΠ². ΠΡ ΡΠ²ΠΈΠ΄ΠΈΠΌ, ΠΊΠ°ΠΊ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Beanstalk Π»Π΅Π³ΠΊΠΎ ΡΠΏΡΠ°Π²Π»ΡΡΡ ΠΈ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°ΡΡ Π½Π°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.
Docker push
ΠΠ΅ΡΠ²ΠΎΠ΅, ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΠΏΠ΅ΡΠ΅Π΄ Π΄Π΅ΠΏΠ»ΠΎΠ΅ΠΌ Π½Π° AWS ΡΡΠΎ ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°ΡΡ Π½Π°Ρ ΠΎΠ±ΡΠ°Π· Π² ΡΠ΅Π³ΠΈΡΡΡΠ΅, ΡΡΠΎΠ±Ρ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ ΡΠΊΠ°ΡΠΈΠ²Π°ΡΡ Π΅Π³ΠΎ ΠΈΠ· AWS. ΠΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Docker-ΡΠ΅Π³ΠΈΡΡΡΠΎΠ² (ΠΈΠ»ΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ). ΠΠ»Ρ Π½Π°ΡΠ°Π»Π°, Π΄Π°Π²Π°ΠΉΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ Docker Hub. ΠΡΠΎΡΡΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅:
ΠΡΠ»ΠΈ ΡΡΠΎ Π²Π°ΡΠ° ΠΏΠ΅ΡΠ²Π°Ρ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΡ, ΡΠΎ ΠΊΠ»ΠΈΠ΅Π½Ρ ΠΏΠΎΠΏΡΠΎΡΠΈΡ Π²Π°Ρ Π·Π°Π»ΠΎΠ³ΠΈΠ½ΠΈΡΡΡΡ. ΠΠ²Π΅Π΄ΠΈΡΠ΅ ΡΠ΅ ΠΆΠ΅ Π΄Π°Π½Π½ΡΠ΅, ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ Π΄Π»Ρ Π²Ρ ΠΎΠ΄Π° Π² Docker Hub.
ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ Π½Π° ΡΠ²ΠΎΠΉ ΠΎΠ±ΡΠ°Π· Π½Π° Docker Hub. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π²ΠΎΡ ΡΡΡΠ°Π½ΠΈΡΠ° ΠΌΠΎΠ΅Π³ΠΎ ΠΎΠ±ΡΠ°Π·Π°.
ΠΠ°ΠΌΠ΅ΡΠ°Π½ΠΈΠ΅: ΠΎΠ΄ΠΈΠ½ Π²Π°ΠΆΠ½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΡΠΎΠΈΡ ΠΏΡΠΎΡΡΠ½ΠΈΡΡ ΠΏΠ΅ΡΠ΅Π΄ ΡΠ΅ΠΌ, ΠΊΠ°ΠΊ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΡΡ β Π½Π΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ Ρ ΡΠ°Π½ΠΈΡΡ ΠΎΠ±ΡΠ°Π· Π² ΠΏΡΠ±Π»ΠΈΡΠ½ΠΎΠΌ ΡΠ΅Π³ΠΈΡΡΡΠ΅ (ΠΈΠ»ΠΈ Π² Π»ΡΠ±ΠΎΠΌ Π΄ΡΡΠ³ΠΎΠΌ ΡΠ΅Π³ΠΈΡΡΡΠ΅ Π²ΠΎΠΎΠ±ΡΠ΅) ΡΡΠΎΠ±Ρ Π΄Π΅ΠΏΠ»ΠΎΠΈΡΡ Π½Π° AWS. ΠΡΠ»ΠΈ Π²Ρ ΠΏΠΈΡΠ΅ΡΠ΅ ΠΊΠΎΠ΄ Π΄Π»Ρ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π³ΠΎ ΠΌΠ½ΠΎΠ³ΠΎΠΌΠΈΠ»Π»ΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ ΡΡΠ°ΡΡΠ°ΠΏΠ°-Π΅Π΄ΠΈΠ½ΠΎΡΠΎΠ³Π°, ΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΠΏΡΡΡΠΈΡΡ ΡΡΠΎΡ ΡΠ°Π³. ΠΡ ΠΏΡΠ±Π»ΠΈΠΊΡΠ΅ΠΌ ΡΠ²ΠΎΠΉ ΠΎΠ±ΡΠ°Π· ΡΡΠΎΠ±Ρ ΡΠΏΡΠΎΡΡΠΈΡΡ Π΄Π΅ΠΏΠ»ΠΎΠΉ, ΠΏΡΠΎΠΏΡΡΡΠΈΠ² Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠ°Π³ΠΎΠ².
Π’Π΅ΠΏΠ΅ΡΡ Π½Π°Ρ ΠΎΠ±ΡΠ°Π· ΠΎΠ½Π»Π°ΠΉΠ½, ΠΈ Π»ΡΠ±ΠΎΠΉ Π΄ΠΎΠΊΠ΅Ρ-ΠΊΠ»ΠΈΠ΅Π½Ρ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΈΠ³ΡΠ°ΡΡΡΡ Ρ Π½ΠΈΠΌ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΡΠΎΡΡΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
ΠΡΠ»ΠΈ Π² ΠΏΡΠΎΡΠ»ΠΎΠΌ Π²Ρ ΠΌΡΡΠ°Π»ΠΈΡΡ Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΎΠΉ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ°Π±ΠΎΡΠ΅Π³ΠΎ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ ΠΈ ΠΏΠΎΠΏΡΡΠΊΠ°ΠΌΠΈ ΠΏΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ ΡΠ²ΠΎΠ΅ΠΉ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠ΅ΠΉ Ρ ΠΊΠΎΠ»Π»Π΅Π³Π°ΠΌΠΈ, ΡΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅ΡΠ΅, ΠΊΠ°ΠΊ ΠΊΡΡΡΠΎ ΡΡΠΎ Π·Π²ΡΡΠΈΡ. ΠΠΎΡ ΠΏΠΎΡΠ΅ΠΌΡ ΠΠΎΠΊΠ΅Ρ β ΡΡΠΎ ΡΠΈΠ»Π°!
Beanstalk
AWS Elastic Beanstalk (EB) ΡΡΠΎ PaaS (Platform as a Service β ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° ΠΊΠ°ΠΊ ΡΠ΅ΡΠ²ΠΈΡ) ΠΎΡ Amazon Web Services. ΠΡΠ»ΠΈ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ Heroku, Google App Engine ΠΈ Ρ.Π΄., ΡΠΎ Π²ΡΠ΅ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΈΠ²ΡΡΠ½ΠΎ. ΠΠ°ΠΊ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ, Π²Ρ ΡΠΎΠΎΠ±ΡΠ°Π΅ΡΠ΅ EB ΠΊΠ°ΠΊ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ Π²Π°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π° EB Π·Π°Π½ΠΈΠΌΠ°Π΅ΡΡΡ Π²ΡΠ΅ΠΌ ΠΎΡΡΠ°Π»ΡΠ½ΡΠΌ, Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ, ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³ΠΎΠΌ ΠΈ Π΄Π°ΠΆΠ΅ Π°ΠΏΠ΄Π΅ΠΉΡΠ°ΠΌΠΈ. Π Π°ΠΏΡΠ΅Π»Π΅ 2014 Π² EB Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΠΠΎΠΊΠ΅Ρ-ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ, ΠΈ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π΄Π»Ρ Π΄Π΅ΠΏΠ»ΠΎΡ. Π£ EB ΠΎΡΠ΅Π½Ρ ΠΏΠΎΠ½ΡΡΠ½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ, Π½ΠΎ ΠΎΠ½ ΡΡΠ΅Π±ΡΠ΅Ρ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ, ΠΏΠΎΡΡΠΎΠΌΡ Π΄Π»Ρ ΠΏΡΠΎΡΡΠΎΡΡ Π΄Π°Π²Π°ΠΉΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ Π²Π΅Π±-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ° Π½Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
Π§ΡΠΎΠ±Ρ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡΡ, Π²Π°ΠΌ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΠΉ Π°ΠΊΠΊΠ°ΡΠ½Ρ Π½Π° AWS. ΠΡΠ»ΠΈ Ρ Π²Π°Ρ Π΅Π³ΠΎ Π½Π΅Ρ, ΡΠΎ ΡΠΎΠ·Π΄Π°ΠΉΡΠ΅ Π΅Π³ΠΎ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π²Π²Π΅ΡΡΠΈ Π΄Π°Π½Π½ΡΠ΅ ΠΊΡΠ΅Π΄ΠΈΡΠ½ΠΎΠΉ ΠΊΠ°ΡΡΡ. ΠΠΎ Π½Π΅ Π²ΠΎΠ»Π½ΡΠΉΡΠ΅ΡΡ, ΡΡΠ° ΡΡΠ»ΡΠ³Π° Π±Π΅ΡΠΏΠ»Π°ΡΠ½Π°, ΠΈ Π²ΡΠ΅, ΡΡΠΎ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡΡ Π² ΡΠ°ΠΌΠΊΠ°Ρ ΡΡΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠ±ΠΈΡ ΡΠΎΠΆΠ΅ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΠΎ.
Π€Π°ΠΉΠ» Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΏΠΎΠ½ΡΡΠ½ΡΠΉ, Π½ΠΎ Π²ΡΠ΅Π³Π΄Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡΠ°ΡΠΈΡΡΡΡ ΠΊ ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎΠΉ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ. ΠΡ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΠΌ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΎΠ±ΡΠ°Π·Π°, ΠΈ EB Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ Π·Π°ΠΎΠ΄Π½ΠΎ Ρ ΠΏΠΎΡΡΠΎΠΌ.
Π ΡΡΠΎΠΌΡ ΠΌΠΎΠΌΠ΅Π½ΡΡ ΠΈΠ½ΡΡΠ°Π½Ρ ΡΠΆΠ΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ Π³ΠΎΡΠΎΠ². ΠΠ°ΠΉΠ΄ΠΈΡΠ΅ Π½Π° ΡΡΡΠ°Π½ΠΈΡΡ EB ΠΈ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅ Π·Π΅Π»Π΅Π½ΡΠΉ ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡ ΡΡΠΏΠ΅ΡΠ½ΠΎΠ³ΠΎ Π·Π°ΠΏΡΡΠΊΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
ΠΠ°ΠΉΠ΄ΠΈΡΠ΅ Π½Π° ΡΠΊΠ°Π·Π°Π½Π½ΡΠΉ URL Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅ ΠΈ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π²ΠΎ Π²ΡΠ΅ ΠΊΡΠ°ΡΠ΅. ΠΠΎΡΠ»ΠΈΡΠ΅ Π°Π΄ΡΠ΅Ρ ΡΠ²ΠΎΠΈΠΌ Π΄ΡΡΠ·ΡΡΠΌ, ΡΡΠΎΠ±Ρ Π²ΡΠ΅ ΠΌΠΎΠ³Π»ΠΈ Π½Π°ΡΠ»Π°Π΄ΠΈΡΡΡΡ Π³ΠΈΡΠΊΠ°ΠΌΠΈ Ρ ΠΊΠΎΡΠΊΠ°ΠΌΠΈ.
ΠΠΎΠ·Π΄ΡΠ°Π²Π»ΡΡ! ΠΡ Π·Π°Π΄Π΅ΠΏΠ»ΠΎΠΈΠ»ΠΈ ΡΠ²ΠΎΠ΅ ΠΏΠ΅ΡΠ²ΠΎΠ΅ ΠΠΎΠΊΠ΅Ρ-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅! ΠΠΎΠΆΠ΅Ρ ΠΏΠΎΠΊΠ°Π·Π°ΡΡΡΡ, ΡΡΠΎ Π±ΡΠ»ΠΎ ΠΎΡΠ΅Π½Ρ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ°Π³ΠΎΠ², Π½ΠΎ Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΠΈΠ»ΠΈΡΠΎΠΉ EB ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠΌΠΈΡΠΈΡΠΎΠ²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ Π₯Π΅ΡΠΎΠΊΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ Π½Π°ΠΆΠ°ΡΠΈΡΠΌΠΈ ΠΊΠ»Π°Π²ΠΈΡ. ΠΠ°Π΄Π΅ΡΡΡ, Π²Ρ ΡΠΎΠ³Π»Π°ΡΠΈΡΠ΅ΡΡ, ΡΡΠΎ ΠΠΎΠΊΠ΅Ρ ΡΠΈΠ»ΡΠ½ΠΎ ΡΠΏΡΠΎΡΠ°Π΅Ρ ΠΏΡΠΎΡΠ΅ΡΡ ΠΈ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡΡΠ΅Ρ Π±ΠΎΠ»Π΅Π·Π½Π΅Π½Π½ΡΠ΅ ΠΌΠΎΠΌΠ΅Π½ΡΡ Π΄Π΅ΠΏΠ»ΠΎΡ Π² ΠΎΠ±Π»Π°ΠΊΠΎ. Π― ΡΠΎΠ²Π΅ΡΡΡ Π²Π°ΠΌ ΠΏΠΎΡΠΈΡΠ°ΡΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ AWS ΠΏΡΠΎ single-container Docker environment ΡΡΠΎΠ±Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ, ΠΊΠ°ΠΊΠΈΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π² EB.
Π ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ, ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ ΡΠ°ΡΡΠΈ ΠΏΠΎΡΠΎΠ±ΠΈΡ, ΠΌΡ ΠΏΠΎΠΉΠ΄Π΅ΠΌ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π΄Π°Π»ΡΡΠ΅ ΠΈ Π·Π°Π΄Π΅ΠΏΠ»ΠΎΠΈΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΏΡΠΈΠ±Π»ΠΈΠΆΠ΅Π½Π½ΠΎΠ΅ ΠΊ ΡΠ΅Π°Π»ΡΠ½ΠΎΠΌΡ ΠΌΠΈΡΡ. Π Π½Π΅ΠΌ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎΠ΅ Π±ΡΠΊΡΠ½Π΄-Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅. ΠΠΎΠ΅Ρ Π°Π»ΠΈ!
3.0 ΠΠ½ΠΎΠ³ΠΎΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ½ΡΠ΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ
Π ΠΏΡΠΎΡΠ»ΠΎΠΌ ΡΠ°Π·Π΄Π΅Π»Π΅ ΠΌΡ ΡΠ²ΠΈΠ΄Π΅Π»ΠΈ, ΠΊΠ°ΠΊ Π»Π΅Π³ΠΊΠΎ ΠΈ ΠΏΡΠΎΡΡΠΎ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΠΎΠΊΠ΅ΡΠ°. ΠΡ Π½Π°ΡΠ°Π»ΠΈ Ρ ΠΏΡΠΎΡΡΠΎΠ³ΠΎ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠ°ΠΉΡΠ°, Π° ΠΏΠΎΡΠΎΠΌ Π·Π°ΠΏΡΡΡΠΈΠ»ΠΈ Flask-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠΠ±Π° Π²Π°ΡΠΈΠ°Π½ΡΠ° ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎ ΠΈΠ»ΠΈ Π² ΠΎΠ±Π»Π°ΠΊΠ΅, Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ. ΠΠ±ΡΠ°Ρ ΡΠ΅ΡΡΠ° ΡΡΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ: ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΠΈΠ· Π½ΠΈΡ ΡΠ°Π±ΠΎΡΠ°Π»ΠΎ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ΅.
ΠΡΠ»ΠΈ Ρ Π²Π°Ρ Π΅ΡΡΡ ΠΎΠΏΡΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠ΅ΡΠ²ΠΈΡΠ°ΠΌΠΈ Π² ΠΏΡΠΎΠ΄Π°ΠΊΡΠ΅Π½Π΅, ΡΠΎ Π²Ρ Π·Π½Π°Π΅ΡΠ΅, ΡΡΠΎ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΎΠ±ΡΡΠ½ΠΎ Π½Π΅ ΡΠ°ΠΊΠΈΠ΅ ΠΏΡΠΎΡΡΡΠ΅. ΠΠΎΡΡΠΈ Π²ΡΠ΅Π³Π΄Π° Π΅ΡΡΡ Π±Π°Π·Π° Π΄Π°Π½Π½ΡΡ (ΠΈΠ»ΠΈ Π΄ΡΡΠ³ΠΎΠΉ ΡΠΈΠΏ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎΠ³ΠΎ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ°). Π‘ΠΈΡΡΠ΅ΠΌΡ Π²ΡΠΎΠ΄Π΅ Redis ΠΈ Memcached ΡΡΠ°Π»ΠΈ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎΠΉ ΡΠ°ΡΡΡΡ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠΠΎΡΡΠΎΠΌΡ, Π² ΡΡΠΎΠΌ ΡΠ°Π·Π΄Π΅Π»Π΅ ΠΌΡ Π½Π°ΡΡΠΈΠΌΡΡ «Π΄ΠΎΠΊΠ΅ΡΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ» ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠΌ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π·Π°ΠΏΡΡΠ΅Π½Π½ΡΡ ΡΠ΅ΡΠ²ΠΈΡΠΎΠ².
Π ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ, ΠΌΡ ΡΠ²ΠΈΠ΄ΠΈΠΌ, ΠΊΠ°ΠΊ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΠΈ ΡΠΏΡΠ°Π²Π»ΡΡΡ ΠΌΠ½ΠΎΠ³ΠΎΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ½ΡΠΌΠΈ ΠΠΎΠΊΠ΅Ρ-ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡΠΌΠΈ. ΠΠΎΡΠ΅ΠΌΡ Π½ΡΠΆΠ½ΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ², ΡΠΏΡΠΎΡΠΈΡΠ΅ Π²Ρ? ΠΡ, ΠΎΠ΄Π½Π° ΠΈΠ· Π³Π»Π°Π²Π½ΡΡ ΠΈΠ΄Π΅ΠΉ ΠΠΎΠΊΠ΅ΡΠ° Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΎΠ½ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΈΠ·ΠΎΠ»ΡΡΠΈΡ. ΠΠ΄Π΅Ρ ΡΠΎΠ²ΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΠΈ Π΅Π³ΠΎ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ Π² ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠ΅ΡΠΎΡΠ½ΠΈΡΠ΅ (Π½Π°Π·ΡΠ²Π°Π΅ΠΌΠΎΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠΌ) ΠΈ Π΄Π΅Π»Π°Π΅Ρ ΠΠΎΠΊΠ΅Ρ ΠΌΠΎΡΠ½ΡΠΌ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠΌ.
ΠΠ½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ ΡΠΎΠΌΡ, ΠΊΠ°ΠΊ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠ°Π·Π±ΠΈΠ²Π°ΡΡ Π½Π° ΡΠ°ΡΡΠΈ, ΡΡΠΎΠΈΡ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠ΅ ΡΠ΅ΡΠ²ΠΈΡΡ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°Ρ . Π Π°Π·Π½ΡΠΌ ΡΠ°ΡΡΡΠΌ ΡΠΊΠΎΡΠ΅Π΅ Π²ΡΠ΅Π³ΠΎ ΡΡΠ΅Π±ΡΡΡΡΡ ΡΠ°Π·Π½ΡΠ΅ ΡΠ΅ΡΡΡΡΡ, ΠΈ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ ΠΌΠΎΠ³ΡΡ ΡΠ°ΡΡΠΈ Ρ ΡΠ°Π·Π½ΠΎΠΉ ΡΠΊΠΎΡΠΎΡΡΡΡ. ΠΡΠ»ΠΈ ΠΌΡ ΡΠ°Π·Π΄Π΅Π»ΠΈΠΌ ΡΡΠΈ ΡΠ°ΡΡΠΈ ΠΈ ΠΏΠΎΠΌΠ΅ΡΡΠΈΠΌ Π² ΡΠ°Π·Π½ΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ, ΡΠΎ ΠΊΠ°ΠΆΠ΄ΡΡ ΡΠ°ΡΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΡΡΠΎΠΈΡΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠΈΠΉ ΡΠΈΠΏ ΡΠ΅ΡΡΡΡΠΎΠ². ΠΡΠΎ ΡΠ°ΠΊΠΆΠ΅ Ρ ΠΎΡΠΎΡΠΎ ΡΠΎΠ²ΠΌΠ΅ΡΠ°Π΅ΡΡΡ Ρ ΠΈΠ΄Π΅Π΅ΠΉ ΠΌΠΈΠΊΡΠΎ ΡΠ΅ΡΠ²ΠΈΡΠΎΠ². ΠΡΠΎ ΠΎΠ΄Π½Π° ΠΈΠ· ΠΏΡΠΈΡΠΈΠ½, ΠΏΠΎ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΠΎΠΊΠ΅Ρ (ΠΈ Π»ΡΠ±Π°Ρ Π΄ΡΡΠ³Π°Ρ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈΠ·Π°ΡΠΈΠΈ) Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π½Π° ΠΏΠ΅ΡΠ΅Π΄ΠΎΠ²ΠΎΠΉ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΌΠΈΠΊΡΠΎ ΡΠ΅ΡΠ²ΠΈΡΠ½ΡΡ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡ.
3.1 SF Food Trucks
ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΌΡ ΠΏΠ΅ΡΠ΅Π²Π΅Π΄Π΅ΠΌ Π² ΠΠΎΠΊΠ΅Ρ, Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ SF Food Trucks (ΠΊ ΡΠΎΠΆΠ°Π»Π΅Π½ΠΈΡ, ΡΠ΅ΠΉΡΠ°Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠΆΠ΅ Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΏΡΠ±Π»ΠΈΡΠ½ΠΎ β ΠΏΡΠΈΠΌ. ΠΏΠ΅Ρ.). ΠΠΎΡ ΡΠ΅Π»Ρ Π±ΡΠ»Π° ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎ-ΡΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠ΅ (ΠΈ ΠΏΠΎΡ ΠΎΠΆΠ΅Π΅ Π½Π° Π½Π°ΡΡΠΎΡΡΠ΅Π΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ· ΡΠ΅Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΌΠΈΡΠ°), ΡΡΠΎ-ΡΠΎ, ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡΠΌ ΠΎΠ΄ΠΈΠ½ ΡΠ΅ΡΠ²ΠΈΡ, Π½ΠΎ Π½Π΅ ΡΠ»ΠΈΡΠΊΠΎΠΌ ΡΠ»ΠΎΠΆΠ½ΠΎΠ΅ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠ±ΠΈΡ. ΠΠΎΡ ΡΡΠΎ Ρ ΠΏΡΠΈΠ΄ΡΠΌΠ°Π».
ΠΡΠΊΡΠ½Π΄ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π°ΠΏΠΈΡΠ°Π½ΠΎ Π½Π° ΠΠΈΡΠΎΠ½Π΅ (Flask), Π° Π΄Π»Ρ ΠΏΠΎΠΈΡΠΊΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Elasticsearch. ΠΠ°ΠΊ ΠΈ Π²ΡΠ΅ ΠΎΡΡΠ°Π»ΡΠ½ΠΎΠ΅ Π² ΡΡΠΎΠΌ ΠΏΠΎΡΠΎΠ±ΠΈΠΈ, ΠΊΠΎΠ΄ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π½Π° Github. ΠΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΡΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΡΡΠΎΠ±Ρ Π½Π°ΡΡΠΈΡΡΡΡ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΠΈ Π΄Π΅ΠΏΠ»ΠΎΠΈΡΡ ΠΌΠ½ΠΎΠ³ΠΎ-ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ½ΠΎΠ΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅.
Π’Π΅ΠΏΠ΅ΡΡ, ΠΊΠΎΠ³Π΄Π° Π²Ρ Π·Π°Π²Π΅Π»ΠΈΡΡ (Π½Π°Π΄Π΅ΡΡΡ), Π΄Π°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΠ΄ΡΠΌΠ°Π΅ΠΌ, ΠΊΠ°ΠΊ Π±ΡΠ΄Π΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΡΡΠΎΡ ΠΏΡΠΎΡΠ΅ΡΡ. Π Π½Π°ΡΠ΅ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Π΅ΡΡΡ Π±ΡΠΊΡΠ½Π΄ Π½Π° Flask ΠΈ ΡΠ΅ΡΠ²ΠΈΡ Elasticsearch. ΠΡΠ΅Π²ΠΈΠ΄Π½ΠΎ, ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄Π΅Π»ΠΈΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Π΄Π²Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°: ΠΎΠ΄ΠΈΠ½ Π΄Π»Ρ Flask, Π΄ΡΡΠ³ΠΎΠΉ Π΄Π»Ρ Elasticsearch (ES). ΠΡΠ»ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΡΠ°Π½Π΅Ρ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΠΌ, ΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ Π½ΠΎΠ²ΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ Π² Π½ΡΠΆΠ½ΠΎΠΌ ΠΌΠ΅ΡΡΠ΅, ΡΠΌΠΎΡΡΡ Π³Π΄Π΅ Π±ΡΠ΄Π΅Ρ ΡΠ·ΠΊΠΎΠ΅ ΠΌΠ΅ΡΡΠΎ.
ΠΡΠ»ΠΈΡΠ½ΠΎ, Π·Π½Π°ΡΠΈΡ Π½ΡΠΆΠ½ΠΎ Π΄Π²Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°. ΠΡΠΎ Π½Π΅ ΡΠ»ΠΎΠΆΠ½ΠΎ, ΠΏΡΠ°Π²Π΄Π°? ΠΡ ΡΠΆΠ΅ ΡΠΎΠ·Π΄Π°Π²Π°Π»ΠΈ Flask-ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ Π² ΠΏΡΠΎΡΠ»ΠΎΠΌ ΡΠ°Π·Π΄Π΅Π»Π΅. Π Π΄Π»Ρ Elasticsearchβ¦ Π΄Π°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ, Π΅ΡΡΡ Π»ΠΈ ΡΡΠΎ-Π½ΠΈΠ±ΡΠ΄Ρ Π² Ρ Π°Π±Π΅:
ΠΠ°ΠΌΠ΅ΡΠ°Π½ΠΈΠ΅: Π΅ΡΠ»ΠΈ ΠΎΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ, ΡΡΠΎ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠΉ ΠΎΠ±ΡΠ°Π· Π½Π΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ Π΄Π»Ρ Π²Π°ΡΠ΅ΠΉ Π·Π°Π΄Π°ΡΠΈ, ΡΠΎ ΡΠΏΠΎΠΊΠΎΠΉΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°ΠΉΡΠ΅ ΡΠ²ΠΎΠΉ ΠΎΠ±ΡΠ°Π· Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Π΄ΡΡΠ³ΠΎΠ³ΠΎ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ°Π·Π°. Π Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΡΠ»ΡΡΠ°Π΅ΠΌ, Π΄Π»Ρ ΠΎΠ±ΡΠ°Π·ΠΎΠ² Π½Π° Docker Hub ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ Dockerfile Π½Π° Github. ΠΠΎΡΠΈΡΠ°ΠΉΡΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠΉ ΠΠΎΠΊΠ΅ΡΡΠ°ΠΉΠ»Ρ β ΡΡΠΎ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π»ΡΡΡΠΈΡ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² Π½Π°ΡΡΠΈΡΡΡΡ Π΄Π΅Π»Π°ΡΡ ΡΠ²ΠΎΠΈ ΠΎΠ±ΡΠ°Π·Ρ.
ΠΠ°Ρ Dockerfile Π΄Π»Ρ Flask-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
Π’ΡΡ ΠΌΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅Π³ΠΎ Π½ΠΎΠ²ΠΎΠ³ΠΎ. ΠΠ½Π°ΡΠ°Π»Π΅ ΡΠΊΠ°Π·Π°Π½ Π±Π°Π·ΠΎΠ²ΡΠΉ ΠΎΠ±ΡΠ°Π· Ubuntu LTS, ΠΏΠΎΡΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΏΠ°ΠΊΠ΅ΡΠ½ΡΠΉ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ apt-get Π΄Π»Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ, Π² ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ β Python ΠΈ Node. Π€Π»Π°Π³ yqq Π½ΡΠΆΠ΅Π½ Π΄Π»Ρ ΠΈΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π²ΡΠ²ΠΎΠ΄Π° ΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π²ΡΠ±ΠΎΡΠ° «Yes» Π²ΠΎ Π²ΡΠ΅Ρ ΠΌΠ΅ΡΡΠ°Ρ . Π’Π°ΠΊΠΆΠ΅ ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΈΡΠ΅ΡΠΊΠ°Ρ ΡΡΡΠ»ΠΊΠ° Π΄Π»Ρ Π±ΠΈΠ½Π°ΡΠ½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° node. ΠΡΠΎ Π½ΡΠΆΠ½ΠΎ Π΄Π»Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΉ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΠΈ.
ΠΠ°ΠΊΠΎΠ½Π΅Ρ, ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ±ΡΠ°ΡΡ ΠΎΠ±ΡΠ°Π· ΠΈ Π·Π°ΠΏΡΡΡΠΈΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ (Π·Π°ΠΌΠ΅Π½ΠΈΡΠ΅ prakhar1989 Π½Π° ΡΠ²ΠΎΠΉ username Π½ΠΈΠΆΠ΅).
ΠΡΠΈ ΠΏΠ΅ΡΠ²ΠΎΠΌ Π·Π°ΠΏΡΡΠΊΠ΅ Π½ΡΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ Π±ΠΎΠ»ΡΡΠ΅ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΊΠ»ΠΈΠ΅Π½Ρ ΠΠΎΠΊΠ΅ΡΠ° Π±ΡΠ΄Π΅Ρ ΡΠΊΠ°ΡΠΈΠ²Π°ΡΡ ΠΎΠ±ΡΠ°Π· ubuntu, Π·Π°ΠΏΡΡΠΊΠ°ΡΡ Π²ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΈ Π³ΠΎΡΠΎΠ²ΠΈΡΡ ΠΎΠ±ΡΠ°Π·. ΠΠΎΠ²ΡΠΎΡΠ½ΡΠΉ Π·Π°ΠΏΡΡΠΊ docker build ΠΏΠΎΡΠ»Π΅ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π±ΡΠ΄Π΅Ρ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΠΌΠΎΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΡΠΌ. ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΠΏΡΠΎΠ±ΡΠ΅ΠΌ Π·Π°ΠΏΡΡΡΠΈΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅
Π£ΠΏΡ! ΠΠ°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π΅ ΡΠΌΠΎΠ³Π»ΠΎ Π·Π°ΠΏΡΡΡΠΈΡΡΡΡ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΎΠ½ΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡΡΡ ΠΊ Elasticsearch. ΠΠ°ΠΊ ΡΠΎΠΎΠ±ΡΠΈΡΡ ΠΎΠ΄Π½ΠΎΠΌΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ ΠΎ Π΄ΡΡΠ³ΠΎΠΌ ΠΈ ΠΊΠ°ΠΊ Π·Π°ΡΡΠ°Π²ΠΈΡΡ ΠΈΡ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ Π΄ΡΡΠ³ Ρ Π΄ΡΡΠ³ΠΎΠΌ? ΠΡΠ²Π΅Ρ β Π² ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΡΠ΅ΠΊΡΠΈΠΈ.
3.2 Π‘Π΅ΡΠΈ Docker
ΠΠ΅ΡΠ΅Π΄ ΡΠ΅ΠΌ, ΠΊΠ°ΠΊ ΠΎΠ±ΡΡΠ΄ΠΈΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΠΎΠΊΠ΅ΡΠ° Π΄Π»Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΎΠΏΠΈΡΠ°Π½Π½ΠΎΠΉ Π·Π°Π΄Π°ΡΠΈ, Π΄Π°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠ΅ Π²Π°ΡΠΈΠ°Π½ΡΡ ΠΎΠ±Ρ ΠΎΠ΄Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ. ΠΡΠΌΠ°Ρ, ΡΡΠΎ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ Π½Π°ΠΌ ΠΎΡΠ΅Π½ΠΈΡΡ ΡΠ΄ΠΎΠ±ΡΡΠ²ΠΎ ΡΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΠΈ, ΠΊΠΎΡΠΎΡΡΡ ΠΌΡ Π²ΡΠΊΠΎΡΠ΅ ΠΈΠ·ΡΡΠΈΠΌ.
ΠΡΠΆΠ½ΠΎ ΡΠΎΠΎΠ±ΡΠΈΡΡ Flask-ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ, ΡΡΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ ES Π·Π°ΠΏΡΡΠ΅Π½ Π½Π° Ρ ΠΎΡΡΠ΅ 0.0.0.0 (ΠΏΠΎΡΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ 9200 ), ΠΈ Π²ΡΠ΅ Π·Π°ΡΠ°Π±ΠΎΡΠ°Π΅Ρ, Π΄Π°? Π ΡΠΎΠΆΠ°Π»Π΅Π½ΠΈΡ, Π½Π΅Ρ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ IP 0.0.0.0 ΡΡΠΎ Π°Π΄ΡΠ΅Ρ Π΄Π»Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ Ρ Ρ ΠΎΡΡ-ΠΌΠ°ΡΠΈΠ½Ρ, ΡΠΎ Π΅ΡΡΡ Ρ ΠΌΠΎΠ΅Π³ΠΎ ΠΠ°ΠΊΠ°. ΠΡΡΠ³ΠΎΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ Π½Π΅ ΡΠΌΠΎΠΆΠ΅Ρ ΠΎΠ±ΡΠ°ΡΠΈΡΡΡΡ ΠΏΠΎ ΡΡΠΎΠΌΡ Π°Π΄ΡΠ΅ΡΡ. ΠΠ°Π΄Π½ΠΎ, Π΅ΡΠ»ΠΈ Π½Π΅ ΡΡΠΎΡ Π°Π΄ΡΠ΅Ρ, ΡΠΎ ΠΊΠ°ΠΊΠΎΠΉ Π΄ΡΡΠ³ΠΎΠΉ Π°Π΄ΡΠ΅Ρ Π½ΡΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠΌ ES? Π Π°Π΄, ΡΡΠΎ Π²Ρ ΡΠΏΡΠΎΡΠΈΠ»ΠΈ.
ΠΡΠΎ Ρ ΠΎΡΠΎΡΠΈΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ, ΡΡΠΎΠ±Ρ ΠΈΠ·ΡΡΠΈΡΡ ΡΠ°Π±ΠΎΡΡ ΡΠ΅ΡΠΈ Π² ΠΠΎΠΊΠ΅ΡΠ΅. ΠΠΎΡΠ»Π΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ, ΠΠΎΠΊΠ΅Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠΎΠ·Π΄Π°Π΅Ρ ΡΡΠΈ ΡΠ΅ΡΠΈ:
Π‘Π΅ΡΡ bridge β ΡΡΠΎ ΡΠ΅ΡΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ Π·Π°ΠΏΡΡΠ΅Π½Ρ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ. ΠΡΠΎ Π·Π½Π°ΡΠΈΡ, ΡΡΠΎ ΠΊΠΎΠ³Π΄Π° Ρ Π·Π°ΠΏΡΡΠΊΠ°Ρ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ ES, ΠΎΠ½ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π² ΡΡΠΎΠΉ ΡΠ΅ΡΠΈ bridge. Π§ΡΠΎΠ±Ρ ΡΠ΄ΠΎΡΡΠΎΠ²Π΅ΡΠΈΡΡΡΡ, Π΄Π°Π²Π°ΠΉΡΠ΅ ΠΏΡΠΎΠ²Π΅ΡΠΈΠΌ:
ΠΠ΅ ΡΠΌΠΎΡΡΡ Π½Π° ΡΠΎ, ΡΡΠΎ ΠΌΡ Π½Π°ΡΠ»ΠΈ ΡΠΏΠΎΡΠΎΠ± Π½Π°Π»Π°Π΄ΠΈΡΡ ΡΠ²ΡΠ·Ρ ΠΌΠ΅ΠΆΠ΄Ρ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°ΠΌΠΈ, ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌ Ρ ΡΡΠΈΠΌ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΎΠΌ:
ΠΠΎ-ΠΏΠ΅ΡΠ²ΡΡ , Π΄Π°Π²Π°ΠΉΡΠ΅ ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΡΠ²ΠΎΡ ΡΠ΅ΡΡ:
ΠΠΎΠΌΠ°Π½Π΄Π° network create ΡΠΎΠ·Π΄Π°Π΅Ρ Π½ΠΎΠ²ΡΡ ΡΠ΅ΡΡ bridge. ΠΠ°ΠΌ ΡΠ΅ΠΉΡΠ°Ρ Π½ΡΠΆΠ΅Π½ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΠ°ΠΊΠΎΠΉ ΡΠΈΠΏ. Π‘ΡΡΠ΅ΡΡΠ²ΡΡΡ Π΄ΡΡΠ³ΠΈΠ΅ ΡΠΈΠΏΡ ΡΠ΅ΡΠ΅ΠΉ, ΠΈ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΡΠΈΡΠ°ΡΡ ΠΎ Π½ΠΈΡ Π² ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎΠΉ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ.
ΠΠ°ΠΉΠ΄ΠΈΡΠ΅ Π½Π° http://0.0.0.0:5000, ΠΈ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² ΡΠ°Π±ΠΎΡΠ΅. ΠΠΏΡΡΡ ΠΆΠ΅, ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΊΠ°Π·Π°ΡΡΡΡ, ΡΡΠΎ Π±ΡΠ»ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ°Π±ΠΎΡΡ, Π½ΠΎ Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΠΌΡ Π²Π²Π΅Π»ΠΈ Π²ΡΠ΅Π³ΠΎ 4 ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΡΡΠΎΠ±Ρ Ρ Π½ΡΠ»Ρ Π΄ΠΎΠΉΡΠΈ Π΄ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. Π― ΡΠΎΠ±ΡΠ°Π» ΡΡΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π² bash-ΡΠΊΡΠΈΠΏΡ.
Π’Π΅ΠΏΠ΅ΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΡΡΠ΅, ΡΡΠΎ Ρ ΠΎΡΠΈΡΠ΅ ΠΏΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ Ρ Π΄ΡΡΠ³ΠΎΠΌ. ΠΠ»ΠΈ Ρ ΠΎΡΠΈΡΠ΅ Π·Π°ΠΏΡΡΡΠΈΡΡ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅, Π³Π΄Π΅ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ ΠΠΎΠΊΠ΅Ρ. ΠΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡΡΡΠΈΡΡ Π²ΡΡ ΡΠΈΡΡΠ΅ΠΌΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ!
ΠΠΎΡ ΠΈ Π²ΡΠ΅! ΠΠΎ-ΠΌΠΎΠ΅ΠΌΡ, ΡΡΠΎ Π½Π΅Π²Π΅ΡΠΎΡΡΠ½ΠΎ ΠΊΡΡΡΠΎΠΉ ΠΈ ΠΌΠΎΡΠ½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΡΡ ΠΈ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ!
Docker Links
3.3 Docker Compose
ΠΠΎ ΡΡΠΎΠ³ΠΎ ΠΌΠΎΠΌΠ΅Π½ΡΠ° ΠΌΡ ΠΈΠ·ΡΡΠ°Π»ΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ ΠΠΎΠΊΠ΅ΡΠ°. ΠΠΎ Π² ΡΠΊΠΎΡΠΈΡΡΠ΅ΠΌΠ΅ ΠΠΎΠΊΠ΅ΡΠ° Π΅ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π΄ΡΡΠ³ΠΈΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² Ρ ΠΎΡΠΊΡΡΡΡΠΌ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ, ΠΊΠΎΡΠΎΡΡΠ΅ Ρ ΠΎΡΠΎΡΠΎ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΡΡΡ Ρ ΠΠΎΠΊΠ΅ΡΠΎΠΌ. ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ· Π½ΠΈΡ ΡΡΠΎ:
Π ΡΡΠΎΠΌ ΡΠ°Π·Π΄Π΅Π»Π΅ ΠΌΡ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡΠΈΠΌ ΠΎΠ± ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· ΡΡΠΈΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² β Docker Compose, ΠΈ ΡΠ·Π½Π°Π΅ΠΌ, ΠΊΠ°ΠΊ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ ΡΠΏΡΠΎΡΡΠΈΡΡ ΡΠ°Π±ΠΎΡΡ Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°ΠΌΠΈ.
ΠΠ΅ΡΠ²ΡΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ Π½Π΅ΠΏΠ»ΠΎΡ ΠΎ ΠΎΠ±ΡΡΡΠ½ΡΠ΅Ρ, Π·Π°ΡΠ΅ΠΌ Π½ΡΠΆΠ΅Π½ Fig ΠΈ ΡΡΠΎ ΠΎΠ½ Π΄Π΅Π»Π°Π΅Ρ:
ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅, ΡΠΌΡΡΠ» ΠΠΎΠΊΠ΅ΡΠ° Π² ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ: Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΠΏΡΠΎΡΠ΅ΡΡΡ. Π‘Π΅Π³ΠΎΠ΄Π½Ρ Ρ ΠΠΎΠΊΠ΅ΡΠ° Π΅ΡΡΡ Π½Π΅ΠΏΠ»ΠΎΡ ΠΎΠ΅ API Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ° ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ²: ΡΠ°ΡΡΠ°ΡΠ΅Π½Π½ΡΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°ΠΌΠΈ (ΠΈΠ½ΡΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ, Π·Π°ΠΏΡΡΠ΅Π½Π½ΡΠΌΠΈ ΠΎΠ±ΡΠ°Π·Π°ΠΌΠΈ) ΡΠ°Π·Π΄Π΅Π»Ρ ΠΈΠ»ΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ (shared volumes), ΠΏΠ΅ΡΠ΅Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΡΡΠΎΠ² Ρ Ρ ΠΎΡΡ-ΠΌΠ°ΡΠΈΠ½Ρ Π² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ, Π²ΡΠ²ΠΎΠ΄ Π»ΠΎΠ³ΠΎΠ², ΠΈ ΡΠ°ΠΊ Π΄Π°Π»Π΅Π΅. ΠΠΎ Π±ΠΎΠ»ΡΡΠ΅ Π½ΠΈΡΠ΅Π³ΠΎ: ΠΠΎΠΊΠ΅Ρ ΡΠ΅ΠΉΡΠ°Ρ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ Π½Π° ΡΡΠΎΠ²Π½Π΅ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ².
ΠΠ΅ ΡΠΌΠΎΡΡΡ Π½Π° ΡΠΎ, ΡΡΠΎ Π² Π½Π΅ΠΌ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΎΡΠΊΠ΅ΡΡΡΠ°ΡΠΈΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ² Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π΅Π΄ΠΈΠ½ΠΎΠ³ΠΎ «ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ», Π² ΠΠΎΠΊΠ΅ΡΠ΅ Π½Π΅Ρ Π½ΠΈΡΠ΅Π³ΠΎ, ΡΡΠΎ ΠΏΠΎΠΌΠΎΠ³Π°Π»ΠΎ Π±Ρ Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ ΡΠ°ΠΊΠΈΠΌΠΈ Π³ΡΡΠΏΠΏΠ°ΠΌΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ² ΠΊΠ°ΠΊ ΠΎΠ΄Π½ΠΎΠΉ ΡΡΡΠ½ΠΎΡΡΡΡ. Π Π²ΠΎΡ Π·Π°ΡΠ΅ΠΌ Π½ΡΠΆΠ΅Π½ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π²ΡΠΎΠ΄Π΅ Fig: ΡΡΠΎΠ±Ρ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ Ρ Π³ΡΡΠΏΠΏΠΎΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ² ΠΊΠ°ΠΊ Ρ Π΅Π΄ΠΈΠ½ΠΎΠΉ ΡΡΡΠ½ΠΎΡΡΡΡ. Π§ΡΠΎΠ±Ρ Π΄ΡΠΌΠ°ΡΡ ΠΎ «Π·Π°ΠΏΡΡΠΊΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ» (ΠΈΠ½ΡΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ, «Π·Π°ΠΏΡΡΠΊΠ΅ ΠΎΡΠΊΠ΅ΡΡΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ΅ΡΠ° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ²») Π²ΠΌΠ΅ΡΡΠΎ «Π·Π°ΠΏΡΡΠΊΠ° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ²».
ΠΠΊΠ°Π·Π°Π»ΠΎΡΡ, ΡΡΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ ΠΠΎΠΊΠ΅ΡΠ° ΡΠΎΠ³Π»Π°ΡΠ½Ρ Ρ ΡΠ°ΠΊΠΈΠΌΠΈ ΠΌΡΡΠ»ΡΠΌΠΈ. ΠΠΎΡΡΠ΅ΠΏΠ΅Π½Π½ΠΎ, Fig Π½Π°Π±ΡΠ°Π» ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΎΡΡΡ, Docker Inc. Π·Π°ΠΌΠ΅ΡΠΈΠ»ΠΈ, ΠΊΡΠΏΠΈΠ»ΠΈ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡ ΠΈ Π½Π°Π·Π²Π°Π»ΠΈ ΠΏΡΠΎΠ΅ΠΊΡ Docker Compose.
ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ, ΡΠΌΠΎΠΆΠ΅ΠΌ Π»ΠΈ ΠΌΡ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ°ΠΉΠ» docker-compose.yml Π΄Π»Ρ Π½Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ SF-Foodtrucks ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΈΠΌ, ΡΠΏΠΎΡΠΎΠ±Π΅Π½ Π»ΠΈ ΠΎΠ½ Π½Π° ΡΠΎ, ΡΡΠΎ ΠΎΠ±Π΅ΡΠ°Π΅Ρ.
ΠΠ°ΠΌΠ΅ΡΠ°Π½ΠΈΠ΅: ΠΡΠΆΠ½ΠΎ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡΡ Π² Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ Ρ ΡΠ°ΠΉΠ»ΠΎΠΌ docker-compose.yml ΡΡΠΎΠ±Ρ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ Π±ΠΎΠ»ΡΡΡΡ ΡΠ°ΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ Compose.
ΠΡΠ»ΠΈΡΠ½ΠΎ! Π€Π°ΠΉΠ» Π³ΠΎΡΠΎΠ², Π΄Π°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ Π½Π° docker-compose Π² Π΄Π΅ΠΉΡΡΠ²ΠΈΠΈ. ΠΠΎ Π²Π½Π°ΡΠ°Π»Π΅ Π½ΡΠΆΠ½ΠΎ ΡΠ΄ΠΎΡΡΠΎΠ²Π΅ΡΠΈΡΡΡΡ, ΡΡΠΎ ΠΏΠΎΡΡΡ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½Ρ. Π’Π°ΠΊ ΡΡΠΎ Π΅ΡΠ»ΠΈ Ρ Π²Π°Ρ Π·Π°ΠΏΡΡΠ΅Π½Ρ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ Flask ΠΈ ES, ΡΠΎ ΠΏΠΎΡΠ° ΠΈΡ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ:
ΠΠ΅ΡΠ΅ΠΉΠ΄ΠΈΡΠ΅ ΠΏΠΎ IP ΡΡΠΎΠ±Ρ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠΡΡΡΠΎ, Π΄Π°? ΠΡΠ΅Π³ΠΎ Π»ΠΈΡΡ ΠΏΠ°ΡΠ° ΡΡΡΠΎΠΊ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΠΎΠΊΠ΅Ρ-ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ² ΡΠ°Π±ΠΎΡΠ°ΡΡ Π² ΡΠ½ΠΈΡΠΎΠ½. ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΠΌ ΡΠ΅ΡΠ²ΠΈΡΡ ΠΈ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΡΡΡΠΈΠΌ Π² detached mode:
ΠΠ΅ ΡΠ΄ΠΈΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ, Π½ΠΎ ΠΎΠ±Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ° ΡΡΠΏΠ΅ΡΠ½ΠΎ Π·Π°ΠΏΡΡΠ΅Π½Ρ. ΠΡΠΊΡΠ΄Π° Π±Π΅ΡΡΡΡΡ ΠΈΠΌΠ΅Π½Π°? ΠΡ Compose ΠΏΡΠΈΠ΄ΡΠΌΠ°Π» ΡΠ°ΠΌ. ΠΠΎ ΡΡΠΎ Π½Π°ΡΡΠ΅Ρ ΡΠ΅ΡΠΈ? ΠΠ³ΠΎ Compose ΡΠΎΠΆΠ΅ Π΄Π΅Π»Π°Π΅ΠΌ ΡΠ°ΠΌ? Π₯ΠΎΡΠΎΡΠΈΠΉ Π²ΠΎΠΏΡΠΎΡ, Π΄Π°Π²Π°ΠΉΡΠ΅ Π²ΡΡΡΠ½ΠΈΠΌ.
ΠΠ»Ρ Π½Π°ΡΠ°Π»Π°, ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΠΌ Π·Π°ΠΏΡΡΠ΅Π½Π½ΡΠ΅ ΡΠ΅ΡΠ²ΠΈΡΡ. ΠΡ Π²ΡΠ΅Π³Π΄Π° ΠΌΠΎΠΆΠ½ΠΎ Π²Π΅ΡΠ½ΡΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ:
ΠΠ»Π°ΡΡ! Π’Π΅ΠΏΠ΅ΡΡ Π² ΡΡΠΎΠΌ ΡΠΈΡΡΠΎΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ, ΡΠΏΠΎΡΠΎΠ±Π΅Π½ Π»ΠΈ Compose Π½Π° Π²ΠΎΠ»ΡΠ΅Π±ΡΡΠ²ΠΎ.
ΠΠΎΠΊΠ° Π²ΡΠ΅ Ρ ΠΎΡΠΎΡΠΎ. ΠΡΠΎΠ²Π΅ΡΠΈΠΌ, ΡΠΎΠ·Π΄Π°Π»ΠΈΡΡ Π»ΠΈ ΠΊΠ°ΠΊΠΈΠ΅-Π½ΠΈΠ±ΡΠ΄Ρ ΡΠ΅ΡΠΈ:
ΠΠ° ΡΡΠΎΠΌ Π½Π°Ρ ΡΡΡ ΠΏΠΎ Docker Compose Π·Π°Π²Π΅ΡΡΠ΅Π½. Π‘ ΡΡΠΈΠΌ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΡΡΠ°Π²ΠΈΡΡ ΡΠ΅ΡΠ²ΠΈΡΡ Π½Π° ΠΏΠ°ΡΠ·Ρ, Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ΅ ΠΈ Π΄Π°ΠΆΠ΅ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°ΡΡ ΡΠΈΡΡΠ΅ΠΌΡ, ΡΠΎ Π΅ΡΡΡ ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°ΡΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ². Π’Π°ΠΊΠΆΠ΅ ΡΠΎΠ²Π΅ΡΡΡ ΠΈΠ·ΡΡΠ°ΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π΄ΡΡΠ³ΠΈΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Docker Compose.
ΠΠ°Π΄Π΅ΡΡΡ, Ρ ΠΏΡΠΎΠ΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΠΎΠ²Π°Π» ΠΊΠ°ΠΊ Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΠΏΡΠΎΡΡΠΎ ΡΠΏΡΠ°Π²Π»ΡΡΡ ΠΌΠ½ΠΎΠ³ΠΎΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ½ΠΎΠΉ ΡΡΠ΅Π΄ΠΎΠΉ Ρ Compose. Π ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΌ ΡΠ°Π·Π΄Π΅Π»Π΅ ΠΌΡ Π·Π°Π΄Π΅ΠΏΠ»ΠΎΠΈΠΌ Π²ΡΠ΅ Π½Π° AWS!
3.4 AWS Elastic Container Service
ΠΡΠ»ΠΈ Π²Ρ Π΄ΠΎΡΠΈΡΠ°Π»ΠΈ Π΄ΠΎ ΡΡΠΎΠ³ΠΎ ΠΌΠ΅ΡΡΠ°, ΡΠΎ ΡΠΊΠΎΡΠ΅Π΅ Π²ΡΠ΅Π³ΠΎ ΡΠ±Π΅Π΄ΠΈΠ»ΠΈΡΡ, ΡΡΠΎ Docker β Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΊΡΡΡΠ°Ρ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡ. Π Π²Ρ Π½Π΅ ΠΎΠ΄ΠΈΠ½ΠΎΠΊΠΈ. ΠΠ±Π»Π°ΡΠ½ΡΠ΅ ΠΏΡΠΎΠ²Π°ΠΉΠ΄Π΅ΡΡ Π·Π°ΠΌΠ΅ΡΠΈΠ»ΠΈ Π²Π·ΡΡΠ²Π½ΠΎΠΉ ΡΠΎΡΡ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΎΡΡΠΈ ΠΠΎΠΊΠ΅ΡΠ° ΠΈ ΡΡΠ°Π»ΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ Π² ΡΠ²ΠΎΠΈ ΡΠ΅ΡΠ²ΠΈΡΡ. Π‘Π΅Π³ΠΎΠ΄Π½Ρ, ΠΠΎΠΊΠ΅Ρ-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ Π΄Π΅ΠΏΠ»ΠΎΠΈΡΡ Π½Π° AWS, Azure,Rackspace, DigitalOcean ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΡΡΠ³ΠΈΡ . ΠΡ ΡΠΆΠ΅ ΡΠΌΠ΅Π΅ΠΌ Π΄Π΅ΠΏΠ»ΠΎΠΈΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ ΠΎΠ΄Π½ΠΈΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠΌ Π½Π° Elastic Beanstalk, Π° Π² ΡΡΠΎΠΌ ΡΠ°Π·Π΄Π΅Π»Π΅ ΠΌΡ ΠΈΠ·ΡΡΠΈΠΌ AWS Elastic Container Service (ΠΈΠ»ΠΈ ECS).
AWS ECS β ΡΡΠΎ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΡΠ΅ΠΌΡΠΉ ΠΈ Π³ΠΈΠ±ΠΊΠΈΠΉ ΡΠ΅ΡΠ²ΠΈΡ ΠΏΠΎ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°ΠΌΠΈ, ΠΈ ΠΎΠ½ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΠΠΎΠΊΠ΅Ρ. Π‘ Π΅Π³ΠΎ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΏΡΠ°Π²Π»ΡΡΡ ΠΊΠ»Π°ΡΡΠ΅ΡΠΎΠΌ Π½Π° EC2 ΡΠ΅ΡΠ΅Π· ΠΏΡΠΎΡΡΠΎΠΉ API. Π Beanstalk Π±ΡΠ»ΠΈ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΡΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, Π½ΠΎ ECS ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π½Π°ΡΡΡΠΎΠΈΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ Π°ΡΠΏΠ΅ΠΊΡ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ ΠΏΠΎ Π²Π°ΡΠΈΠΌ ΠΏΠΎΡΡΠ΅Π±Π½ΠΎΡΡΡΠΌ. ΠΠΎ ΡΡΠΎΠΉ ΠΏΡΠΈΡΠΈΠ½Π΅ ECS β Π½Π΅ ΡΠ°ΠΌΡΠΉ ΠΏΡΠΎΡΡΠΎΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π² Π½Π°ΡΠ°Π»Π΅ ΠΏΡΡΠΈ.
ΠΠ½Π°ΡΠ°Π»Π΅ Π½ΡΠΆΠ½ΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ CLI. ΠΠ° ΠΌΠΎΠΌΠ΅Π½Ρ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΡΡΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠ±ΠΈΡ CLI-ΡΡΠΈΠ»ΠΈΡΠ° Π½Π΅ Π΄ΠΎΡΡΡΠΏΠ½Π° Π½Π° Windows. ΠΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΠΏΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅ CLI Π½Π° Mac ΠΈ Linux Ρ ΠΎΡΠΎΡΠΎ ΠΎΠΏΠΈΡΠ°Π½Ρ Π½Π° ΡΠ°ΠΉΡΠ΅ Ρ ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎΠΉ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅ΠΉ. Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ ΡΡΠΈΠ»ΠΈΡΡ, Π° ΠΏΠΎΡΠΎΠΌ ΠΏΡΠΎΠ²Π΅ΡΡΡΠ΅ Π΅Π΅ ΡΠ°Π±ΠΎΡΠΎΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΡ ΡΠ°ΠΊ:
Π’Π΅ΠΏΠ΅ΡΡ Π½Π°ΡΡΡΠΎΠΉΡΠ΅ CLI:
ΠΠΎΠΌΠ°Π½Π΄Π° configure Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΡΠ΅Π³ΠΈΠΎΠ½Π°, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Ρ ΠΎΡΠΈΠΌ ΡΠ°Π·ΠΌΠ΅ΡΡΠΈΡΡ Π½Π°Ρ ΠΊΠ»Π°ΡΡΠ΅Ρ, ΠΈ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΊΠ»Π°ΡΡΠ΅ΡΠ°. ΠΡΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ ΡΠΎΡ ΠΆΠ΅ ΡΠ΅Π³ΠΈΠΎΠ½, ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΡΡ ΠΏΡΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΠΊΠ»ΡΡΠ΅ΠΉ. ΠΡΠ»ΠΈ Ρ Π²Π°Ρ Π½Π΅ Π½Π°ΡΡΡΠΎΠ΅Π½ AWS CLI, ΡΠΎ ΡΠ»Π΅Π΄ΡΠΉΡΠ΅ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Ρ, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΠΎΠΏΠΈΡΡΠ²Π°Π΅Ρ Π²ΡΠ΅ ΡΠ°Π³ΠΈ.
Π‘Π»Π΅Π΄ΡΡΡΠΈΠΉ ΡΠ°Π³ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΡΠΈΠ»ΠΈΡΠ΅ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΡΠ°Π±Π»ΠΎΠ½ CloudFormation.
ΠΠ΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΠΎΡΠ»ΠΈΡΠΈΡ ΠΎΡ ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° docker-compose.yml ΡΡΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ mem_limit ΠΈ cpu_shares Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°.
ΠΡΠ°ΡΠΎΡΠ°! ΠΠ°Π²Π°ΠΉΡΠ΅ Π·Π°ΠΏΡΡΡΠΈΠΌ ΡΠΈΠ½Π°Π»ΡΠ½ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Ρ Π΄Π΅ΠΏΠ»ΠΎΠΉ Π½Π° ECS!
ΠΡΡΡΠΎ! Π’Π΅ΠΏΠ΅ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π·Π°ΠΏΡΡΠ΅Π½ΠΎ. ΠΠ°ΠΊ ΠΊ Π½Π΅ΠΌΡ ΠΎΠ±ΡΠ°ΡΠΈΡΡΡΡ?
ΠΡΠΊΡΠΎΠΉΡΠ΅ http://54.86.14.14 Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅, ΠΈ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅ Food Trucks Π²ΠΎ Π²ΡΠ΅ΠΉ ΡΠ²ΠΎΠ΅ΠΉ ΠΆΠ΅Π»ΡΠΎ-ΡΠ΅ΡΠ½ΠΎΠΉ ΠΊΡΠ°ΡΠ΅! ΠΠ°ΠΎΠ΄Π½ΠΎ, Π΄Π°Π²Π°ΠΉΡΠ΅ Π²Π·Π³Π»ΡΠ½Π΅ΠΌ Π½Π° ΠΊΠΎΠ½ΡΠΎΠ»Ρ AWS ECS.
ΠΠΈΠ΄Π½ΠΎ, ΡΡΠΎ Π±ΡΠ» ΡΠΎΠ·Π΄Π°Π½ ECS-ΠΊΠ»Π°ΡΡΠ΅Ρ ‘foodtrucks’, ΠΈ Π² Π½Π΅ΠΌ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΎΠ΄Π½Π° Π·Π°Π΄Π°ΡΠ° Ρ Π΄Π²ΡΠΌΡ ΠΈΠ½ΡΡΠ°Π½ΡΠ°ΠΌΠΈ. Π‘ΠΎΠ²Π΅ΡΡΡ ΠΏΠΎΠΊΠΎΠ²ΡΡΡΡΡΡΡ Π² ΡΡΠΎΠΉ ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ ΠΈ ΠΈΠ·ΡΡΠΈΡΡ ΡΠ°Π·Π½ΡΠ΅ Π΅Π΅ ΡΠ°ΡΡΠΈ ΠΈ ΠΎΠΏΡΠΈΠΈ.
ΠΠΎΡ ΠΈ Π²ΡΠ΅. ΠΡΠ΅Π³ΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΊΠΎΠΌΠ°Π½Π΄ β ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π½Π° AWS!
4.0 ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
ΠΡ ΠΏΠΎΠ΄ΠΎΡΠ»ΠΈ ΠΊ ΠΊΠΎΠ½ΡΡ. ΠΠΎΡΠ»Π΅ Π΄Π»ΠΈΠ½Π½ΠΎΠ³ΠΎ, ΠΈΠ·ΠΌΠ°ΡΡΠ²Π°ΡΡΠ΅Π³ΠΎ, Π½ΠΎ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠ±ΠΈΡ Π²Ρ Π³ΠΎΡΠΎΠ²Ρ Π·Π°Ρ Π²Π°ΡΠΈΡΡ ΠΌΠΈΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ²! ΠΡΠ»ΠΈ Π²Ρ ΡΠ»Π΅Π΄ΠΎΠ²Π°Π»ΠΈ ΠΏΠΎΡΠΎΠ±ΠΈΡ Π΄ΠΎ ΡΠ°ΠΌΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΠ°, ΡΠΎ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°ΡΠ»ΡΠΆΠ΅Π½Π½ΠΎ Π³ΠΎΡΠ΄ΠΈΡΡΡΡ ΡΠΎΠ±ΠΎΠΉ. ΠΡ Π½Π°ΡΡΠΈΠ»ΠΈΡΡ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ ΠΠΎΠΊΠ΅Ρ, Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΡΠ²ΠΎΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ, Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π²Π΅Π±-ΡΠ°ΠΉΡΡ ΠΈ, ΡΠ°ΠΌΠΎΠ΅ Π³Π»Π°Π²Π½ΠΎΠ΅, ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΈ ΠΎΠΏΡΡ Π΄Π΅ΠΏΠ»ΠΎΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π² ΠΎΠ±Π»Π°ΠΊΠΎ.
ΠΠ°Π΄Π΅ΡΡΡ, ΠΏΡΠΎΡ ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ ΡΡΠΎΠ³ΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π° ΠΏΠΎΠΌΠΎΠ³Π»ΠΎ Π²Π°ΠΌ ΡΡΠ°ΡΡ ΡΠ²Π΅ΡΠ΅Π½Π½Π΅Π΅ Π² ΡΠ²ΠΎΠΈΡ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΡΡ ΡΠΏΡΠ°Π²Π»ΡΡΡΡΡ Ρ ΡΠ΅ΡΠ²Π΅ΡΠ°ΠΌΠΈ. ΠΠΎΠ³Π΄Π° Ρ Π²Π°Ρ ΠΏΠΎΡΠ²ΠΈΡΡΡ Π½ΠΎΠ²Π°Ρ ΠΈΠ΄Π΅Ρ Π΄Π»Ρ ΡΠ°ΠΉΡΠ° ΠΈΠ»ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π±ΡΡΡ ΡΠ²Π΅ΡΠ΅Π½Ρ, ΡΡΠΎ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠΊΠ°Π·Π°ΡΡ Π΅Π³ΠΎ Π»ΡΠ΄ΡΠΌ Ρ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΠΌΠΈ ΡΡΠΈΠ»ΠΈΡΠΌΠΈ.
4.1 Π‘Π»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΠ°Π³ΠΈ
ΠΠ°ΡΠ΅ ΠΏΡΡΠ΅ΡΠ΅ΡΡΠ²ΠΈΠ΅ Π² ΠΌΠΈΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ² ΡΠΎΠ»ΡΠΊΠΎ Π½Π°ΡΠ°Π»ΠΎΡΡ. ΠΠΎΠ΅ΠΉ ΡΠ΅Π»ΡΡ Π² ΡΡΠΎΠΌ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π΅ Π±ΡΠ»ΠΎ Π½Π°Π³ΡΠ»ΡΡΡ Π²Π°Ρ Π°ΠΏΠΏΠ΅ΡΠΈΡ ΠΈ ΠΏΠΎΠΊΠ°Π·Π°ΡΡ ΠΌΠΎΡΡ ΠΠΎΠΊΠ΅ΡΠ°. Π ΠΌΠΈΡΠ΅ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ ΠΈΠ½ΠΎΠ³Π΄Π° Π±ΡΠ²Π°Π΅Ρ ΡΠ»ΠΎΠΆΠ½ΠΎ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡΡΡ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ, ΠΈ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π° Π²ΡΠΎΠ΄Π΅ ΡΡΠΎΠ³ΠΎ ΠΏΡΠΈΠ·Π²Π°Π½Ρ ΠΏΠΎΠΌΠΎΠ³Π°ΡΡ Π²Π°ΠΌ. ΠΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΠΏΠΎΡΠΎΠ±ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΌΠ½Π΅ Ρ ΠΎΡΠ΅Π»ΠΎΡΡ Π±Ρ ΠΈΠΌΠ΅ΡΡ, ΠΊΠΎΠ³Π΄Π° Ρ ΡΠΎΠ»ΡΠΊΠΎ Π·Π½Π°ΠΊΠΎΠΌΠΈΠ»ΡΡ Ρ ΠΠΎΠΊΠ΅ΡΠΎΠΌ ΡΠ°ΠΌ. ΠΠ°Π΄Π΅ΡΡΡ, Π΅ΠΌΡ ΡΠ΄Π°Π»ΠΎΡΡ Π·Π°ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠΎΠ²Π°ΡΡ Π²Π°Ρ, ΡΠ°ΠΊ ΡΡΠΎ ΡΠ΅ΠΏΠ΅ΡΡ Π²Ρ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ»Π΅Π΄ΠΈΡΡ Π·Π° ΠΏΡΠΎΠ³ΡΠ΅ΡΡΠΎΠΌ Π² ΡΡΠΎΠΌ ΠΎΠ±Π»Π°ΡΡΠΈ Π½Π΅ ΡΠΎ ΡΡΠΎΡΠΎΠ½Ρ, Π° Ρ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ Π·Π½Π°ΡΡΠ΅Π³ΠΎ ΡΠ΅Π»ΠΎΠ²Π΅ΠΊΠ°.
ΠΠΈΠΆΠ΅ β ΡΠΏΠΈΡΠΎΠΊ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΏΠΎΠ»Π΅Π·Π½ΡΡ ΡΠ΅ΡΡΡΡΠΎΠ². Π‘ΠΎΠ²Π΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΠΎΠΊΠ΅Ρ Π² Π²Π°ΡΠ΅ΠΌ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ΅. Π Π½Π΅ Π·Π°Π±ΡΠ²Π°ΠΉΡΠ΅ β ΠΏΡΠ°ΠΊΡΠΈΠΊΠ° ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΡΠΎΠ²Π΅ΡΡΠ΅Π½ΡΡΠ²Ρ.
ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠ΅ΡΡΡΡΡ
Π£Π΄Π°ΡΠΈ, ΡΠ½ΡΠΉ ΠΏΠ°Π΄Π°Π²Π°Π½!
4.2 Π€ΠΈΠ΄Π±Π΅ΠΊ Π°Π²ΡΠΎΡΡ
Π’Π΅ΠΏΠ΅ΡΡ ΠΌΠΎΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ Π·Π°Π΄Π°Π²Π°ΡΡ Π²ΠΎΠΏΡΠΎΡΡ. ΠΠ°ΠΌ ΠΏΠΎΠ½ΡΠ°Π²ΠΈΠ»ΠΎΡΡ ΠΏΠΎΡΠΎΠ±ΠΈΠ΅? ΠΠ½ΠΎ ΠΏΠΎΠΊΠ°Π·Π°Π»ΠΎΡΡ Π²Π°ΠΌ Π·Π°ΠΏΡΡΠ°Π½Π½ΡΠΌ, ΠΈΠ»ΠΈ Π²Π°ΠΌ ΡΠ΄Π°Π»ΠΎΡΡ Π½Π°ΡΡΠΈΡΡΡΡ ΡΠ΅ΠΌΡ-ΡΠΎ?
ΠΠ°ΠΏΠΈΡΠΈΡΠ΅ ΠΌΠ½Π΅ (Π°Π²ΡΠΎΡΡ ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠ±ΠΈΡ, β ΠΏΡΠΈΠΌ. ΠΏΠ΅Ρ.) Π½Π°ΠΏΡΡΠΌΡΡ Π½Π° prakhar@prakhar.me ΠΈΠ»ΠΈ ΠΏΡΠΎΡΡΠΎ ΡΠΎΠ·Π΄Π°ΠΉΡΠ΅ issue. Π― Π΅ΡΡΡ Π² Π’Π²ΠΈΡΡΠ΅ΡΠ΅, ΡΠ°ΠΊ ΡΡΠΎ Π΅ΡΠ»ΠΈ Ρ ΠΎΡΠΈΡΠ΅, ΡΠΎ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΈΡΠ°ΡΡ ΡΡΠ΄Π°.
(ΠΠ²ΡΠΎΡ ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠ±ΠΈΡ Π³ΠΎΠ²ΠΎΡΠΈΡ ΠΏΠΎ-Π°Π½Π³Π»ΠΈΠΉΡΠΊΠΈ, β ΠΏΡΠΈΠΌ. ΠΏΠ΅Ρ.).
ΠΡΠ΄Ρ ΡΠ°Π΄ ΡΡΠ»ΡΡΠ°ΡΡ Π²Π°ΡΠΈ ΠΎΡΠ·ΡΠ²Ρ. ΠΠ΅ ΡΡΠ΅ΡΠ½ΡΠΉΡΠ΅ΡΡ ΠΏΡΠ΅Π΄Π»Π°Π³Π°ΡΡ ΡΠ»ΡΡΡΠ΅Π½ΠΈΡ ΠΈΠ»ΠΈ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ Π½Π° ΠΌΠΎΠΈ ΠΎΡΠΈΠ±ΠΊΠΈ. Π― Ρ ΠΎΡΡ, ΡΡΠΎΠ±Ρ ΡΡΠΎ ΠΏΠΎΡΠΎΠ±ΠΈΠ΅ ΡΡΠ°Π»ΠΎ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· Π»ΡΡΡΠΈΡ ΡΡΠ°ΡΡΠΎΠ²ΡΡ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ² Π² ΠΈΠ½ΡΠ΅ΡΠ½Π΅ΡΠ΅. Π£ ΠΌΠ΅Π½Ρ Π½Π΅ ΠΏΠΎΠ»ΡΡΠΈΡΡΡ ΡΡΠΎ Π±Π΅Π· Π²Π°ΡΠ΅ΠΉ ΠΏΠΎΠΌΠΎΡΠΈ.