ΠΡΠΈΠΌ. ΠΏΡΠ΅Π².: ΠΠ²ΡΠΎΡ Π½Π° ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»Π½Π°ΡΠ° ΡΡΠ°ΡΠΈΡ Π΅ ThΓ©o Chamley, Π°ΡΡ ΠΈΡΠ΅ΠΊΡ Π½Π° ΠΎΠ±Π»Π°ΡΠ½ΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π² Google. Π ΡΠ°Π·ΠΈ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΡ Π·Π° Π±Π»ΠΎΠ³Π° Π½Π° Google Cloud ΡΠΎΠΉ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Ρ ΠΊΡΠ°ΡΡΠΊ ΠΏΡΠ΅Π³Π»Π΅Π΄ Π½Π° ΠΏΠΎ-ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ Π½Π° Π½Π΅Π³ΠΎΠ²Π°ΡΠ° ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡ, Π½Π°ΡΠ΅ΡΠ΅Π½ΠΎ «». Π Π½Π΅Π³ΠΎ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΡΡΠΈ ΠΎΡ Google ΡΠ° ΡΡΠ±ΡΠ°Π»ΠΈ Π½Π°ΠΉ-Π΄ΠΎΠ±ΡΠΈΡΠ΅ ΠΏΡΠ°ΠΊΡΠΈΠΊΠΈ Π·Π° Π΅ΠΊΡΠΏΠ»ΠΎΠ°ΡΠ°ΡΠΈΡ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ Π² ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° Π½Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° Google Kubernetes Engine ΠΈ Π½Π΅ ΡΠ°ΠΌΠΎ, Π·Π°ΡΠ΅Π³Π½Π°Π»ΠΈ ΡΠΈΡΠΎΠΊ ΡΠΏΠ΅ΠΊΡΡΡ ΠΎΡ ΡΠ΅ΠΌΠΈ: ΠΎΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ Π΄ΠΎ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³ ΠΈ ΠΆΡΡΠ½Π°Π»ΠΈΡΠ°Π½Π΅. Π ΡΠ°ΠΊΠ°, ΠΊΠΎΠΈ ΠΏΡΠ°ΠΊΡΠΈΠΊΠΈ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ° Ρ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ ΡΠ° Π½Π°ΠΉ-Π²Π°ΠΆΠ½ΠΈ ΡΠΏΠΎΡΠ΅Π΄ Google?

(ΠΎΡΠ½ΠΎΠ²Π°Π²Π°Ρ ΡΠ΅ Π½Π° Kubernetes ΡΠ΅ΡΠ²ΠΈΡ Π·Π° ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈΠ·ΠΈΡΠ°Π½ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π² Google Cloud β Π±Π΅Π». ΠΏΡΠ΅Π².) β ΡΠΎΠ²Π° Π΅ Π΅Π΄ΠΈΠ½ ΠΎΡ Π½Π°ΠΉ-Π΄ΠΎΠ±ΡΠΈΡΠ΅ Π½Π°ΡΠΈΠ½ΠΈ Π·Π° ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π½Π° Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½ΠΈΡ, ΠΊΠΎΠΈΡΠΎ ΠΈΠ·ΠΈΡΠΊΠ²Π°Ρ ΠΌΠ°ΡΠ°Π±ΠΈΡΠ°Π½Π΅. ΠΎΡΠΈΠ³ΡΡΡΠ²Π° Π±Π΅Π·ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ½ΠΎ ΡΡΠ½ΠΊΡΠΈΠΎΠ½ΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΠΎΠ²Π΅ΡΠ΅ΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π°ΠΊΠΎ ΡΠ΅ ΡΠ° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈΠ·ΠΈΡΠ°Π½ΠΈ. ΠΠΎ Π°ΠΊΠΎ ΠΈΡΠΊΠ°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ Π΄Π° Π±ΡΠ΄Π΅ Π»Π΅ΡΠ½ΠΎ Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈ Π΄Π° ΡΠ΅ Π²ΡΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ ΠΎΡ Π²ΡΠΈΡΠΊΠΈΡΠ΅ ΠΏΡΠ΅Π΄ΠΈΠΌΡΡΠ²Π° Π½Π° Kubernetes, Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° ΡΠ»Π΅Π΄Π²Π°ΡΠ΅ Π½Π°ΠΉ-Π΄ΠΎΠ±ΡΠΈΡΠ΅ ΠΏΡΠ°ΠΊΡΠΈΠΊΠΈ. Π’Π΅ ΡΠ΅ ΡΠ»Π΅ΡΠ½ΡΡ Π΅ΠΊΡΠΏΠ»ΠΎΠ°ΡΠ°ΡΠΈΡΡΠ° Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ, Π½Π΅Π³ΠΎΠ²ΠΈΡ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³ ΠΈ ΠΎΡΡΡΡΠ°Π½ΡΠ²Π°Π½Π΅ Π½Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ, Π° ΡΡΡΠΎ ΡΠ°ΠΊΠ° ΡΠ΅ ΠΏΠΎΠ²ΠΈΡΠ°Ρ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡΠ°.
Π ΡΠ°Π·ΠΈ ΡΡΠ°ΡΠΈΡ ΡΠ΅ ΠΏΡΠ΅ΠΌΠΈΠ½Π΅ΠΌ ΠΏΡΠ΅Π· ΡΠΏΠΈΡΡΠΊ Π½Π° ΡΠΎΠ²Π°, ΠΊΠΎΠ΅ΡΠΎ Π΅ Π²Π°ΠΆΠ½ΠΎ Π΄Π° Π·Π½Π°Π΅ΡΠ΅ ΠΈ ΠΏΡΠ°Π²ΠΈΡΠ΅ Π·Π° Π΅ΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΠΎ ΡΡΠ½ΠΊΡΠΈΠΎΠ½ΠΈΡΠ°Π½Π΅ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈΡΠ΅ Π² Kubernetes. ΠΠ° ΡΠ΅Π·ΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΈΡΠΊΠ°Ρ Π΄Π° ΡΠ΅ Π·Π°Π΄ΡΠ»Π±ΠΎΡΠ°Ρ Π² Π΄Π΅ΡΠ°ΠΉΠ»ΠΈΡΠ΅, Π΅ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π΄Π° ΠΏΡΠΎΡΠ΅ΡΠ°Ρ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»Π° , Π° ΡΡΡΠΎ ΡΠ°ΠΊΠ° Π΄Π° ΠΎΠ±ΡΡΠ½Π°Ρ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Π½Π°ΡΠΈΡ Π·Π° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ΡΠΎ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ.
1. ΠΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡΠ΅ ΡΠΎΠ΄Π½ΠΈ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠΈ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈΡΠ΅ Π·Π° ΠΆΡΡΠ½Π°Π»ΠΈΡΠ°Π½Π΅
ΠΠΊΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ ΡΠ°Π±ΠΎΡΠΈ Π² ΠΊΠ»Π°ΡΡΠ΅Ρ Kubernetes, Π½Π΅ ΡΠ° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΈ ΠΌΠ½ΠΎΠ³ΠΎ Π½Π΅ΡΠ° Π·Π° Π»ΠΎΠ³ΠΎΠ²Π΅ΡΠ΅. Π¦Π΅Π½ΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ° Π·Π° ΠΆΡΡΠ½Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π΅ Π²Π΅ΡΠΎΡΡΠ½ΠΎ Π²Π΅ΡΠ΅ Π΅ Π²Π³ΡΠ°Π΄Π΅Π½Π° Π² ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΈΡ ΠΊΠ»Π°ΡΡΠ΅Ρ. Π ΡΠ»ΡΡΠ°ΠΉ Π½Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° Kubernetes Engine, Π·Π° ΡΠΎΠ²Π° ΠΎΡΠ³ΠΎΠ²Π°ΡΡ . (ΠΡΠΈΠΌ. ΠΏΡΠ΅Π².: Π ΠΏΡΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΡΠΎΠ±ΡΡΠ²Π΅Π½Π° ΠΈΠ½ΡΡΠ°Π»Π°ΡΠΈΡ Π½Π° Kubernetes, Π²ΠΈ ΠΏΡΠ΅ΠΏΠΎΡΡΡΠ²Π°ΠΌΠ΅ Π΄Π° ΡΠ΅ Π·Π°ΠΏΠΎΠ·Π½Π°Π΅ΡΠ΅ Ρ Π½Π°ΡΠ΅ΡΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Ρ ΠΎΡΠ²ΠΎΡΠ΅Π½ ΠΊΠΎΠ΄ β .) ΠΠ΅ ΡΡΠ»ΠΎΠΆΠ½ΡΠ²Π°ΠΉΡΠ΅ ΠΆΠΈΠ²ΠΎΡΠ° ΡΠΈ ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡΠ΅ ΡΠΎΠ΄Π½ΠΈΡΠ΅ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠΈ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈΡΠ΅ Π·Π° ΠΆΡΡΠ½Π°Π»ΠΈΡΠ°Π½Π΅. ΠΠΈΡΠ΅ΡΠ΅ Π»ΠΎΠ³ΠΎΠ²Π΅ΡΠ΅ Π² stdout ΠΈ stderr β ΡΠ΅ ΡΠ΅ Π±ΡΠ΄Π°Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈ, Π·Π°ΠΏΠ°Π·Π΅Π½ΠΈ ΠΈ ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠ°Π½ΠΈ.
ΠΡΠΈ ΠΆΠ΅Π»Π°Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΡΡΠΎ ΡΠ°ΠΊΠ° Π΄Π° ΠΏΠΈΡΠ΅ΡΠ΅ Π»ΠΎΠ³ΠΎΠ²Π΅ Π² . Π’ΠΎΠ·ΠΈ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΡΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈ Π»Π΅ΡΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΡΠ½Π΅ Π½Π° ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΠΈ. Π Π·Π°Π΅Π΄Π½ΠΎ Ρ ΡΡΡ Π² Stackdriver Logging ΡΠ΅ ΡΠ΅ ΠΏΠΎΡΠ²ΠΈ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π·Π° ΡΡΡΡΠ΅Π½Π΅ Π² Π»ΠΎΠ³ΠΎΠ²Π΅ΡΠ΅ Ρ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΡΠ΅Π·ΠΈ ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΠΈ.
2. Π£Π±Π΅Π΄Π΅ΡΠ΅ ΡΠ΅, ΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈΡΠ΅ ΡΠ° stateless ΠΈ immutable
ΠΠ° ΠΏΡΠ°Π²ΠΈΠ»Π½ΠΎΡΠΎ ΡΡΠ½ΠΊΡΠΈΠΎΠ½ΠΈΡΠ°Π½Π΅ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈΡΠ΅ Π² Kubernetes ΠΊΠ»ΡΡΡΠ΅Ρ, ΡΠ΅ ΡΡΡΠ±Π²Π° Π΄Π° Π±ΡΠ΄Π°Ρ stateless ΠΈ immutable. ΠΠΎΠ³Π°ΡΠΎ ΡΠ΅Π·ΠΈ ΡΡΠ»ΠΎΠ²ΠΈΡ ΡΠ° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈ, Kubernetes ΡΠ΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π° ΡΠ²ΠΎΡΡΠ° ΡΠ°Π±ΠΎΡΠ°, ΡΡΠ·Π΄Π°Π²Π°ΠΉΠΊΠΈ ΠΈ ΡΠ½ΠΈΡΠΎΠΆΠ°Π²Π°ΠΉΠΊΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΊΠΎΠ³Π°ΡΠΎ ΠΈ ΠΊΡΠ΄Π΅ΡΠΎ Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ.
Stateless ΠΎΠ·Π½Π°ΡΠ°Π²Π°, ΡΠ΅ Π²ΡΡΠΊΠΎ ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ (ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΈ Π΄Π°Π½Π½ΠΈ ΠΎΡ Π²ΡΡΠΊΠ°ΠΊΡΠ² Π²ΠΈΠ΄) ΡΠ΅ ΡΡΡ ΡΠ°Π½ΡΠ²Π° ΠΈΠ·Π²ΡΠ½ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°. ΠΠ° ΡΠΎΠ²Π°, Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ ΠΎΡ Π½ΡΠΆΠ΄ΠΈΡΠ΅, ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π²ΠΈΠ΄ΠΎΠ²Π΅ Π²ΡΠ½ΡΠ½ΠΈ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ°: , , , ΠΈΠ»ΠΈ Π΄ΡΡΠ³ΠΈ ΡΠΏΡΠ°Π²Π»ΡΠ²Π°Π½ΠΈ Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ. (ΠΡΠΈΠΌ. ΠΏΡΠ΅Π².: ΠΠ° ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΏΡΠΎΡΠ΅ΡΠ΅ΡΠ΅ ΡΡΡΠΎ Π² Π½Π°ΡΠ°ΡΠ° ΡΡΠ°ΡΠΈΡ βΒ».)
Immutable ΠΎΠ·Π½Π°ΡΠ°Π²Π°, ΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡΡ Π½ΡΠΌΠ° Π΄Π° Π±ΡΠ΄Π΅ ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΠ°Π½ ΠΏΡΠ΅Π· ΡΠ²ΠΎΡ ΠΆΠΈΠ²ΠΎΡ: Π½ΠΈΠΊΠ°ΠΊΠ²ΠΈ ΡΠΏΠ΄Π΅ΠΉΡΠΈ, ΠΏΠ°ΡΠΎΠ²Π΅, ΠΏΡΠΎΠΌΠ΅Π½ΠΈ Π² ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΡΠ°. ΠΠΊΠΎ Π½ΡΠΆΠ½ΠΎ Π΅ Π΄Π° ΠΎΠ±Π½ΠΎΠ²ΠΈΡΠ΅ ΠΊΠΎΠ΄ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ ΠΈΠ»ΠΈ Π΄Π° ΠΏΡΠΈΠ»ΠΎΠΆΠΈΡΠ΅ ΠΏΠ°Ρ, ΡΡΠ·Π΄Π°ΠΉΡΠ΅ Π½ΠΎΠ² ΠΎΠ±ΡΠ°Π· ΠΈ Π³ΠΎ Π΄Π΅ΠΏΠ»ΠΎΠΉΡΠ΅. ΠΡΠ΅ΠΏΠΎΡΡΡΠ²Π°ΠΌΠ΅ Π΄Π° ΠΈΠ·Π½Π°ΡΡΡΠ΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΡΠ° Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ° (ΠΏΠΎΡΡ Π·Π° ΡΠ»ΡΡΠ°Π½Π΅, ΠΎΠΏΡΠΈΠΈ Π½Π° ΠΈΠ·ΠΏΠ»Π½ΠΈΡΠ΅Π»Π½Π°ΡΠ° ΡΡΠ΅Π΄Π° ΠΈ Ρ.Π½.) Π½Π°Π²ΡΠ½ β Π² ΠΈ . Π’Π΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ ΠΎΠ±Π½ΠΎΠ²ΡΠ²Π°Π½ΠΈ Π±Π΅Π· Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡ ΠΎΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°Π½Π΅ Π½Π° Π½ΠΎΠ² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ΅Π½ ΠΎΠ±ΡΠ°Π·. ΠΠ° Π»Π΅ΡΠ½ΠΎ ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½ΠΈ Π·Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°Π½Π΅ Π½Π° ΠΎΠ±ΡΠ°Π·ΠΈ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ . (ΠΡΠΈΠΌ. ΠΏΡΠ΅Π².: ΠΠΈΠ΅ Π·Π° ΡΠ΅Π·ΠΈ Π½ΡΠΆΠ΄ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ Open Source ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ .)

ΠΡΠΈΠΌΠ΅Ρ Π·Π° ΠΎΠ±Π½ΠΎΠ²ΡΠ²Π°Π½Π΅ Π½Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΡΠ° Π½Π° Deployment Π² Kubernetes Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° ConfigMap, ΠΌΠΎΠ½ΡΠΈΡΠ°Π½ Π² ΠΏΠΎΠ΄ΠΎΠ²Π΅ΡΠ΅ ΠΊΠ°ΡΠΎ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ.
3. ΠΠ·Π±ΡΠ³Π²Π°ΠΉΡΠ΅ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡΠΎΠ²Π°Π½ΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ.
ΠΠ΅ Π½Π°Π»ΠΈΠ²Π°Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΏΠΎΠ΄ root Π½Π° ΡΠ²ΠΎΠΈΡΠ΅ ΡΡΡΠ²ΡΡΠΈ, Π½Π°Π»ΠΈ? ΠΠΊΠΎ Π·Π»ΠΎΠ½Π°ΠΌΠ΅ΡΠ΅Π½ΠΎΡΠΎ Π»ΠΈΡΠ΅ ΠΏΡΠΎΠ½ΠΈΠΊΠ½Π΅ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ, ΡΠΎ ΠΏΠΎΠ»ΡΡΠ°Π²Π° Π΄ΠΎΡΡΡΠΏ Ρ ΠΏΡΠ°Π²Π° root. Π‘ΡΡΠΈΡΠ΅ ΡΠ°Π·ΡΡΠΆΠ΄Π΅Π½ΠΈΡ Π²Π°ΠΆΠ°Ρ ΠΈ Π·Π° Π½Π΅Π΄ΠΎΠΏΡΡΠΊΠ°Π½Π΅ Π½Π° ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡΠΎΠ²Π°Π½ΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ. ΠΠΊΠΎ Π΅ Π½ΡΠΆΠ½ΠΎ Π΄Π° ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π½Π° Ρ ΠΎΡΡΠ°, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΡΠ΅ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ° ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΈ capabilities ΡΡΠ΅Π· ΠΎΠΏΡΠΈΡ Π² Kubernetes. ΠΠΊΠΎ Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅ sysctls, Kubernetes ΠΈΠΌΠ° Π·Π° ΡΠΎΠ²Π°. Π Π²ΡΡΡΠ½ΠΎΡΡ, ΠΎΠΏΠΈΡΠ°ΠΉΡΠ΅ ΡΠ΅ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»Π½ΠΎ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ ΠΈ sidecar ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ Π·Π° ΠΈΠ·Π²ΡΡΡΠ²Π°Π½Π΅ Π½Π° ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡΠΎΠ²Π°Π½ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ. Π’Π΅ Π½Π΅ ΠΈΠ·ΠΈΡΠΊΠ²Π°Ρ Π΄ΠΎΡΡΡΠΏΠ½ΠΎΡΡ Π½ΠΈΡΠΎ Π·Π° Π²ΡΡΡΠ΅ΡΠ΅Π½, Π½ΠΈΡΠΎ Π·Π° Π²ΡΠ½ΡΠ΅Π½ ΡΡΠ°ΡΠΈΠΊ.
ΠΠΊΠΎ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠΈΡΠ°ΡΠ΅ ΠΊΠ»ΡΡΡΠ΅ΡΠ°, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΡΠ΅ Π²ΡΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ ΠΎΡ Π·Π° ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ ΠΏΡΠΈ ΠΏΡΠΈΠ»Π°Π³Π°Π½Π΅ΡΠΎ Π½Π° ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡΠΎΠ²Π°Π½ΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ.
4. ΠΠ·Π±ΡΠ³Π²Π°ΠΉΡΠ΅ ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ ΠΏΠΎΠ΄ root.
ΠΠ·ΠΊΠ°Π·Π²Π°Π»ΠΎΡΡ Π΅ Π·Π° ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡΠΎΠ²Π°Π½ΠΈΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ, Π½ΠΎ ΡΠ΅ Π±ΡΠ΄Π΅ ΠΎΡΠ΅ ΠΏΠΎ-Π΄ΠΎΠ±ΡΠ΅, Π°ΠΊΠΎ Π² Π΄ΠΎΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΡΠΌ ΡΠΎΠ²Π° Π½Π΅ ΡΡΠ°ΡΡΠΈΡΠ°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΏΠΎΠ΄ root Π² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°. ΠΠΊΠΎ Π°ΡΠ°ΠΊΡΠ²Π°ΡΠΈΡΡ ΠΎΡΠΊΡΠΈΠ΅ ΠΎΡΠ΄Π°Π»Π΅ΡΠ΅Π½Π° ΡΡΠ·Π²ΠΈΠΌΠΎΡΡ Ρ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° ΠΊΠΎΠ΄ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ ΠΏΡΠ°Π²Π° root, ΡΠ»Π΅Π΄ ΠΊΠΎΠ΅ΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠ·Π»Π΅Π·Π΅ ΠΈΠ·Π²ΡΠ½ Π³ΡΠ°Π½ΠΈΡΠΈΡΠ΅ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ° ΡΡΠ΅Π· Π²ΡΠ΅ ΠΎΡΠ΅ Π½Π΅ΠΈΠ·Π²Π΅ΡΡΠ½Π° ΡΡΠ·Π²ΠΈΠΌΠΎΡΡ, ΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈ root Π½Π° Ρ ΠΎΡΡΠ°.
ΠΠ°ΠΉ-Π΄ΠΎΠ±ΡΠΈΡΡ Π½Π°ΡΠΈΠ½ Π΄Π° ΠΈΠ·Π±Π΅Π³Π½Π΅ΡΠ΅ ΡΠΎΠ²Π° Π΅ ΠΏΡΡΠ²ΠΎ Π΄Π° Π½Π΅ ΡΡΠ°ΡΡΠΈΡΠ°ΡΠ΅ Π½ΠΈΡΠΎ ΠΏΠΎΠ΄ root. ΠΠ° ΡΠ΅Π»ΡΠ° ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Π°ΡΠ° USER Π² Dockerfile ΠΈΠ»ΠΈ runAsUser Π² Kubernetes. ΠΠ΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΡΡ Π½Π° ΠΊΠ»Π°ΡΡΠ΅ΡΠ° ΠΌΠΎΠΆΠ΅ ΡΡΡΠΎ Π΄Π° Π½Π°ΡΡΡΠΎΠΈ ΠΏΡΠΈΠ½ΡΠ΄ΠΈΡΠ΅Π»Π½ΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° .
5. ΠΠ°ΠΏΡΠ°Π²Π΅ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ Π»Π΅ΡΠ½ΠΎ Π·Π° ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³
ΠΠ°ΠΊΡΠΎ Π»ΠΎΠ³Π²Π°Π½Π΅ΡΠΎ, ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³ΡΡ Π΅ Π½Π΅ΠΎΡΠΌΠ΅Π½ΠΈΠΌΠ° ΡΠ°ΡΡ ΠΎΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ. ΠΠΎΠΏΡΠ»ΡΡΠ½ΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π·Π° ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³ Π² ΠΎΠ±ΡΠ½ΠΎΡΡΡΠ° Π½Π° Kubernetes Π΅ β ΡΠΈΡΡΠ΅ΠΌΠ°, ΠΊΠΎΡΡΠΎ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ ΠΎΡΠΊΡΠΈΠ²Π° ΠΏΠΎΠ΄ΠΎΠ²Π΅ ΠΈ ΡΡΠ»ΡΠ³ΠΈ, ΠΈΠ·ΠΈΡΠΊΠ²Π°ΡΠΈ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³. (ΠΡΠΈΠΌ. ΠΏΡΠ΅Π².: ΠΠΈΠΆΡΠ΅ ΡΡΡΠΎ Π½Π°ΡΠΈΡ ΠΏΠΎ ΡΠ΅ΠΌΠ°ΡΠ° Π·Π° ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³ Ρ Prometheus ΠΈ Kubernetes.) Π΅ ΡΠΏΠΎΡΠΎΠ±Π΅Π½ Π΄Π° ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΡΠ° Kubernetes ΠΊΠ»ΡΡΡΠ΅ΡΠΈ ΠΈ Π²ΠΊΠ»ΡΡΠ²Π° ΡΠ²ΠΎΡ Π²Π΅ΡΡΠΈΡ Π½Π° Prometheus Π·Π° ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.

ΠΠΎΠ½ΡΡΠΎΠ»Π½ΠΈΡΡ ΠΏΠ°Π½Π΅Π» Π½Π° Kubernetes Π² Stackdriver
Prometheus ΠΎΡΠ°ΠΊΠ²Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ Π΄Π° ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈ ΠΌΠ΅ΡΡΠΈΠΊΠΈ Π½Π° HTTP endpoint. ΠΠ° ΡΠ΅Π»ΡΠ° ΡΠ° Π½Π°Π»ΠΈΡΠ½ΠΈ . Π‘ΡΡΠΈΡΡ ΡΠΎΡΠΌΠ°Ρ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΠΈ Π΄ΡΡΠ³ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ ΠΊΠ°ΡΠΎ ΠΈ .
6. ΠΠ°ΠΏΡΠ°Π²Π΅ΡΠ΅ ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ΡΠΎ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ Π΄ΠΎΡΡΡΠΏΠ½ΠΎ
Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ Π² production ΠΏΠΎΠΌΠ°Π³Π° Π·Π° ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΡΠ° ΠΌΡ Π΄Π° ΠΈΠ½ΡΠΎΡΠΌΠΈΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° Π·Π° ΡΠ²ΠΎΠ΅ΡΠΎ ΡΡΡΡΠΎΡΠ½ΠΈΠ΅. ΠΠ°ΠΏΠΎΡΠ½Π°ΡΠΎ Π»ΠΈ Π΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ? Π ΡΠ΅Π΄ Π»ΠΈ Π΅? ΠΠΎΡΠΎΠ²ΠΎ Π»ΠΈ Π΅ Π΄Π° ΠΏΡΠΈΠ΅ΠΌΠ° ΡΡΠ°ΡΠΈΠΊ? ΠΠ°ΠΊ ΡΠ΅ Π΄ΡΡΠΆΠΈ? ΠΠ°ΠΉ-ΡΠ°Π·ΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½ΠΈΡΡ Π½Π°ΡΠΈΠ½ Π·Π° ΡΠ΅ΡΠ°Π²Π°Π½Π΅ Π½Π° ΡΠΎΠ·ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌ Π΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π·Π° Π·Π΄ΡΠ°Π²ΠΎΡΠ»ΠΎΠ²Π½ΠΎ ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ (health checks). Π Kubernetes ΠΈΠΌΠ° Π΄Π²Π° ΡΠ΅Ρ Π½ΠΈ ΡΠΈΠΏΠ°: .
ΠΠ° liveness probe (ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° ΠΆΠΈΠ·Π½Π΅ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ) ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ ΡΡΡΠ±Π²Π° Π΄Π° ΠΈΠΌΠ° HTTP endpoint, ΠΊΠΎΠΉΡΠΎ Π΄Π° Π²ΡΡΡΠ° ΠΎΡΠ³ΠΎΠ²ΠΎΡ Β«200 OKΒ», Π°ΠΊΠΎ ΡΡΠ½ΠΊΡΠΈΠΎΠ½ΠΈΡΠ° ΠΈ ΠΎΡΠ½ΠΎΠ²Π½ΠΈΡΠ΅ ΠΌΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΡΠ° ΡΠ΄ΠΎΠ²Π»Π΅ΡΠ²ΠΎΡΠ΅Π½ΠΈ. ΠΠ° readiness probe (ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° Π³ΠΎΡΠΎΠ²Π½ΠΎΡΡ Π·Π° ΠΎΠ±ΡΠ»ΡΠΆΠ²Π°Π½Π΅) ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ ΡΡΡΠ±Π²Π° Π΄Π° ΠΈΠΌΠ° Π΄ΡΡΠ³ HTTP endpoint, ΠΊΠΎΠΉΡΠΎ Π²ΡΡΡΠ° ΠΎΡΠ³ΠΎΠ²ΠΎΡ Β«200 OKΒ», Π°ΠΊΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ Π΅ Π² Π·Π΄ΡΠ°Π²ΠΎ ΡΡΡΡΠΎΡΠ½ΠΈΠ΅, ΡΡΡΠΏΠΊΠΈΡΠ΅ Π·Π° ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΠ° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈ ΠΈ Π²ΡΡΠΊΠΎ Π²Π°Π»ΠΈΠ΄Π½ΠΎ Π·Π°ΠΏΠΈΡΠ²Π°Π½Π΅ Π½Π΅ Π²ΠΎΠ΄ΠΈ Π΄ΠΎ Π³ΡΠ΅ΡΠΊΠ°. Kubernetes ΡΠ΅ Π½Π°ΡΠΎΡΠ²Π° ΡΡΠ°ΡΠΈΠΊΠ° ΠΊΡΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ° ΡΠ°ΠΌΠΎ ΠΏΡΠΈ Π³ΠΎΡΠΎΠ²Π½ΠΎΡΡ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ Π² ΡΡΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ Ρ ΡΠ΅Π·ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ. ΠΠ²Π°ΡΠ° endpoint-Π° ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ ΠΎΠ±Π΅Π΄ΠΈΠ½Π΅Π½ΠΈ, Π°ΠΊΠΎ ΡΠ°Π·Π»ΠΈΠΊΠ°ΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ ΡΡΡΡΠΎΡΠ½ΠΈΡΡΠ° Π½Π° ΠΆΠΈΠ·Π½Π΅ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ (liveness) ΠΈ Π³ΠΎΡΠΎΠ²Π½ΠΎΡΡ (readiness) Π½ΡΠΌΠ°.
ΠΠΎ-ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ Π·Π° ΡΠΎΠ²Π° ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΏΡΠΎΡΠ΅ΡΠ΅ΡΠ΅ Π² ΡΡΠΎΡΠ²Π΅ΡΠ½Π°ΡΠ° ΡΡΠ°ΡΠΈΡ Π½Π° Sandeep Dinesh, Developer Advocate ΠΎΡ Google: «».
7. ΠΠ½ΠΈΠΌΠ°ΡΠ΅Π»Π½ΠΎ ΠΈΠ·Π±Π΅ΡΠ΅ΡΠ΅ Π²Π΅ΡΡΠΈΡΡΠ° Π½Π° ΠΎΠ±ΡΠ°Π·Π°
ΠΠΎΠ²Π΅ΡΠ΅ΡΠΎ ΠΏΡΠ±Π»ΠΈΡΠ½ΠΈ ΠΈ ΡΠ°ΡΡΠ½ΠΈ ΠΎΠ±ΡΠ°Π·ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° Π·Π° Π΅ΡΠΈΠΊΠ΅ΡΠΈΡΠ°Π½Π΅, ΠΏΠΎΠ΄ΠΎΠ±Π½Π° Π½Π° ΠΎΠΏΠΈΡΠ°Π½Π°ΡΠ° Π² . ΠΠΊΠΎ ΠΎΠ±ΡΠ°Π·ΡΡ ΠΏΡΠΈΠ»Π°Π³Π° ΡΠΈΡΡΠ΅ΠΌΠ°, Π±Π»ΠΈΠ·ΠΊΠ° Π΄ΠΎ , Π΅ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° ΡΠ΅ Π²Π·Π΅ΠΌΠ΅ ΠΏΡΠ΅Π΄Π²ΠΈΠ΄ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠ° Π½Π° Π΅ΡΠΈΠΊΠ΅ΡΠΈΡΠ°Π½Π΅ΡΠΎ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠΈΠΊΠ΅ΡΡΡ latest ΠΌΠΎΠΆΠ΅ ΡΠ΅ΡΡΠΎ Π΄Π° ΡΠ΅ ΠΏΡΠ΅Ρ
Π²ΡΡΠ»Ρ ΠΎΡ ΠΎΠ±ΡΠ°Π· Π½Π° ΠΎΠ±ΡΠ°Π· β Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΡΠ°Π·ΡΠΈΡΠ° Π½Π° Π½Π΅Π³ΠΎ, Π°ΠΊΠΎ ΠΈΠΌΠ°ΡΠ΅ Π½ΡΠΆΠ΄Π° ΠΎΡ ΠΏΡΠ΅Π΄ΡΠΊΠ°Π·ΡΠ΅ΠΌΠΈ ΠΈ Π²ΡΠ·ΠΏΡΠΎΠΈΠ·Π²Π΅ΠΆΠ΄Π°Π΅ΠΌΠΈ ΡΠ±ΠΎΡΠΊΠΈ ΠΈ ΠΈΠ½ΡΡΠ°Π»Π°ΡΠΈΠΈ.
ΠΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ Π΅ΡΠΈΠΊΠ΅ΡΠ° X.Y.Z (ΡΠ΅ ΠΏΠΎΡΡΠΈ Π²ΠΈΠ½Π°Π³ΠΈ ΠΎΡΡΠ°Π²Π°Ρ Π½Π΅ΠΏΡΠΎΠΌΠ΅Π½Π΅Π½ΠΈ), ΠΎΠ±Π°ΡΠ΅ Π² ΡΠΎΠ·ΠΈ ΡΠ»ΡΡΠ°ΠΉ ΠΏΡΠΎΡΠ»Π΅Π΄ΡΠ²Π°ΠΉΡΠ΅ Π²ΡΠΈΡΠΊΠΈ ΠΏΠ°ΡΠΎΠ²Π΅ ΠΈ Π°ΠΊΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π½Π° ΠΎΠ±ΡΠ°Π·Π°. ΠΠΊΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΈΡΡ ΠΎΠ±ΡΠ°Π· ΠΈΠΌΠ° Π΅ΡΠΈΠΊΠ΅Ρ X.Y, ΡΠΎΠ²Π° Π΅ Π΄ΠΎΠ±ΡΡ Π²Π°ΡΠΈΠ°Π½Ρ Π½Π° ΡΡΠ΅Π΄Π½ΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅. ΠΠ·Π±ΠΈΡΠ°ΠΉΠΊΠΈ Π³ΠΎ, Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠ°Π²Π°ΡΠ΅ ΠΏΠ°ΡΠΎΠ²Π΅ ΠΈ Π² ΡΡΡΠΎΡΠΎ Π²ΡΠ΅ΠΌΠ΅ ΡΠ°Π·ΡΠΈΡΠ°ΡΠ΅ Π½Π° ΡΡΠ°Π±ΠΈΠ»Π½Π° Π²Π΅ΡΡΠΈΡ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ.
P.S. ΠΎΡ ΠΏΡΠ΅Π²ΠΎΠ΄Π°ΡΠ°
ΠΡΠΎΡΠ΅ΡΠ΅ΡΠ΅ ΡΡΡΠΎ Π² Π½Π°ΡΠΈΡ Π±Π»ΠΎΠ³:
- «»;
- «»;
- «»;
- «» (ΠΎΠ±Π·ΠΎΡ ΠΈ Π²ΠΈΠ΄Π΅ΠΎ Π½Π° Π΄ΠΎΠΊΠ»Π°Π΄Π°);
- «» (ΠΎΠ±Π·ΠΎΡ ΠΈ Π²ΠΈΠ΄Π΅ΠΎ Π½Π° Π΄ΠΎΠΊΠ»Π°Π΄Π°);
- «» (ΠΎΠ±Π·ΠΎΡ ΠΈ Π²ΠΈΠ΄Π΅ΠΎ Π½Π° Π΄ΠΎΠΊΠ»Π°Π΄Π°);
- «» (ΠΎΠ±Π·ΠΎΡ ΠΈ Π²ΠΈΠ΄Π΅ΠΎ Π½Π° Π΄ΠΎΠΊΠ»Π°Π΄Π°);
- «».
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: habr.com
