Π©Π°ΡΡΠ»ΠΈΠ²ΠΈ ΡΠΌΠ΅ Π΄Π° ΡΠΏΠΎΠ΄Π΅Π»ΠΈΠΌ Π½ΠΎΠ²ΠΈΠ½Π°ΡΠ°, ΡΠ΅ Contour ΡΠ΅ Ρ ΠΎΡΡΠ²Π° Π² ΠΈΠ½ΠΊΡΠ±Π°ΡΠΎΡΠ° Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠΈ ΠΎΡ Cloud Native Computing Foundation (CNCF).
ΠΠΊΠΎ Π²ΡΠ΅ ΠΎΡΠ΅ Π½Π΅ ΡΡΠ΅ ΡΡΠ²Π°Π»ΠΈ Π·Π° Contour, ΡΠΎΠ²Π° Π΅ ΠΏΡΠΎΡΡ ΠΈ ΠΌΠ°ΡΠ°Π±ΠΈΡΡΠ΅ΠΌ Π²Ρ ΠΎΠ΄Π΅Π½ ΠΊΠΎΠ½ΡΡΠΎΠ»Π΅Ρ Ρ ΠΎΡΠ²ΠΎΡΠ΅Π½ ΠΊΠΎΠ΄ Π·Π° ΠΌΠ°ΡΡΡΡΡΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° ΡΡΠ°ΡΠΈΠΊ ΠΊΡΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΡΠ°Π±ΠΎΡΠ΅ΡΠΈ Π½Π° Kubernetes.
Π©Π΅ ΡΠ°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠΈ ΠΈ ΡΠ΅ ΠΏΠΎΠΊΠ°ΠΆΠ΅ΠΌ ΠΏΡΡΠ½Π°ΡΠ° ΠΊΠ°ΡΡΠ° Π·Π° ΡΠ°Π·Π²ΠΈΡΠΈΠ΅ Π½Π° ΠΏΡΠ΅Π΄ΡΡΠΎΡΡΠΈ ΠΊΠΎΠ½ΡΠ΅ΡΠ΅Π½ΡΠΈΠΈ
Π Π² ΡΠ°Π·ΠΈ ΡΡΠ°ΡΠΈΡ Π²ΠΈ ΠΏΡΠ΅Π΄Π»Π°Π³Π°ΠΌΠ΅ Π΄Π° ΡΠ΅ Π·Π°ΠΏΠΎΠ·Π½Π°Π΅ΡΠ΅ Ρ ΡΠ°Π±ΠΎΡΠ°ΡΠ° Π½Π° Contour. ΠΠ΅ΠΊΠ° ΠΎΠ±ΡΡΠ½ΠΈΠΌ ΠΊΠ°ΠΊΠ²ΠΎ ΠΎΠ·Π½Π°ΡΠ°Π²Π° ΠΏΡΠΈΠ΅ΠΌΠ°Π½Π΅ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΎΡ CNCF. Π©Π΅ ΡΠΏΠΎΠ΄Π΅Π»ΠΈΠΌ ΠΈ Π½Π°ΡΠΈΡΠ΅ ΠΏΠ»Π°Π½ΠΎΠ²Π΅ Π·Π° Π±ΡΠ΄Π΅ΡΠΎΡΠΎ ΡΠ°Π·Π²ΠΈΡΠΈΠ΅ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ°.
KubeCon ΠΈ CloudNativeCon ΠΎΠ±Π΅Π΄ΠΈΠ½ΡΠ²Π°Ρ Π½Π°ΠΏΡΠ΅Π΄Π½Π°Π»ΠΈ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡΠ½ΠΈ Π΅Π½ΡΡΡΠΈΠ°ΡΡΠΈ ΠΈ ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΠ΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡΠ²Π°Ρ Π½Π΅ ΡΠ°ΠΌΠΎ ΠΎΡ Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΎ ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅, Π½ΠΎ ΠΈ ΠΎΡ Π½Π°ΠΏΡΠ΅Π΄ΡΠΊΠ° Π½Π° ΠΎΠ±Π»Π°ΡΠ½ΠΈΡΠ΅ ΠΈΠ·ΡΠΈΡΠ»Π΅Π½ΠΈΡ. Π‘ΡΠ±ΠΈΡΠΈΡΡΠ° Π²ΠΊΠ»ΡΡΠ²Π°Ρ Π΅ΠΊΡΠΏΠ΅ΡΡΠΈ ΠΏΡΠ°ΠΊΡΠΈΡΠΈ ΠΈ ΠΊΠ»ΡΡΠΎΠ²ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈ Π½Π° ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠΈ ΠΊΠ°ΡΠΎ Kubernetes, Prometheus, gRPC, Envoy, OpenTracing ΠΈ Π΄ΡΡΠ³ΠΈ.
ΠΡΠΈΡΠΊΠΈ ΠΏΠΎΠ³Π»Π΅Π΄ΠΈ ΠΊΡΠΌ Ingress
ΠΡΡΠ²ΠΎ, ΡΠ²ΠΎΠ΄Π½Π°. ΠΠ±ΡΠ½ΠΎΡΡΡΠ° Π½Π° Kubernetes Π²Π΅ΡΠ΅ Π΅ ΠΈΠ·ΠΌΠΈΡΠ»ΠΈΠ»Π° ΠΊΠ°ΠΊ Π΄Π° ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈ ΠΊΡΠΌ ΠΏΡΠ΅Π΄ΠΈΠ·Π²ΠΈΠΊΠ°ΡΠ΅Π»ΡΡΠ²Π°ΡΠ° Π½Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΡΠ°Π±ΠΎΡΠ½ΠΈΡΠ΅ Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½ΠΈΡ ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΡΠ½Π΅ΡΠΎ Π½Π° Π΄ΠΎΡΡΡΠΏ ΠΎΡ ΡΠ°Π±ΠΎΡΠ½ΠΈΡΠ΅ Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½ΠΈΡ Π΄ΠΎ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ΡΠΎ. ΠΠΎ Π²ΡΠ΅ ΠΎΡΠ΅ ΠΈΠΌΠ° ΠΌΡΡΡΠΎ Π·Π° ΠΈΠ½ΠΎΠ²Π°ΡΠΈΠΈ, ΠΊΠΎΠ³Π°ΡΠΎ ΡΡΠ°Π²Π° Π²ΡΠΏΡΠΎΡ Π·Π° ΡΠ°Π±ΠΎΡΠ° Π² ΠΌΡΠ΅ΠΆΠ° ΠΈ ΡΠ²ΡΡΠ·Π°Π½ΠΎΡΡ. ΠΡΠ½ΠΎΠ²Π½Π°ΡΠ° ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ Π²Π°ΠΆΠ½Π° Π·Π°Π΄Π°ΡΠ° Π΅ Π΄ΠΎΡΡΠ°Π²ΠΊΠ°ΡΠ° Π½Π° Π²ΡΠ½ΡΠ΅Π½ ΡΡΠ°ΡΠΈΠΊ Π²ΡΡΡΠ΅ Π² ΠΊΠ»ΡΡΡΠ΅ΡΠ°. Π Kubernetes ΡΠΎΠ²Π° ΡΠ΅ Π½Π°ΡΠΈΡΠ° Ingress, ΠΊΠΎΠ΅ΡΠΎ Π΅ ΡΠΎΡΠ½ΠΎ ΡΠΎΠ²Π°, ΠΊΠΎΠ΅ΡΠΎ Contour ΠΏΡΠ°Π²ΠΈ. Π’ΠΎΠ²Π° Π΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ, ΠΊΠΎΠΉΡΠΎ Π»Π΅ΡΠ½ΠΎ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ Π² ΠΊΠ»ΡΡΡΠ΅Ρ, Π·Π° Π΄Π° Π΄ΠΎΡΡΠ°Π²ΡΡΠ΅ ΡΡΠ°ΡΠΈΠΊ ΡΠΏΠΎΡΠ΅Π΄ Π½ΡΠΆΠ΄ΠΈΡΠ΅, Π½ΠΎ Ρ Π²Π³ΡΠ°Π΄Π΅Π½Π° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡ Π·Π° Π±ΡΠ΄Π΅ΡΠ΅ΡΠΎ, ΠΊΠΎΠ³Π°ΡΠΎ Π²Π°ΡΠΈΡΡ Kubernetes ΠΊΠ»ΡΡΡΠ΅Ρ ΡΠ°ΡΡΠ΅.
Π’Π΅Ρ
Π½ΠΈΡΠ΅ΡΠΊΠΈ, Contour ΡΠ°Π±ΠΎΡΠΈ ΡΡΠ΅Π· ΡΠ°Π·Π³ΡΠ²Π°Π½Π΅
ΠΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎ Π°Π»ΡΠ΅ΡΠ½Π°ΡΠΈΠ²ΠΈ Π·Π° ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π½Π° Ingress Controller Π½Π° Kubernetes, Π½ΠΎ Contour Π΅ ΡΠ½ΠΈΠΊΠ°Π»Π΅Π½ Ρ ΡΠΎΠ²Π°, ΡΠ΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ ΡΠΎΡΠ½ΠΎ ΡΠ°Π·ΠΈ Π·Π°Π΄Π°ΡΠ°, ΠΊΠ°ΡΠΎ ΡΡΡΠ΅Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ Ρ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π° Π½Π° Π²ΠΈΡΠΎΠΊΠΎ Π½ΠΈΠ²ΠΎ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ, ΠΊΠ°ΡΠΎ ΡΡΡΠ΅Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΠΈΠΌΠ° ΠΏΡΠ΅Π΄Π²ΠΈΠ΄ ΡΠΈΠ³ΡΡΠ½ΠΎΡΡΡΠ° ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ½Π°Π΅ΠΌΠ½ΠΎΡΡΡΠ°.
ΠΡΠΏΡΠ΅ΠΊΠΈ ΡΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΡΠ°Π·ΡΠΈΡΠΈΡΠ΅
Π‘ΠΈΠ»Π° Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°ΡΠ° Π½Π° CNCF
Π‘ΡΠ·Π΄Π°Π΄Π΅Π½ Π² ΠΊΡΠ°Ρ Π½Π° 2017 Π³. ΠΎΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈ Π½Π° Heption, Contour Π΄ΠΎΡΡΠΈΠ³Π½Π° Π²Π΅ΡΡΠΈΡ 1.0 ΠΏΡΠ΅Π· Π½ΠΎΠ΅ΠΌΠ²ΡΠΈ 2019 Π³. ΠΈ ΡΠ΅Π³Π° ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΏΠΎΡ Π²Π°Π»ΠΈ Ρ ΠΎΠ±ΡΠ½ΠΎΡΡ ΠΎΡ 600 ΡΠ»Π΅Π½ΠΎΠ²Π΅ Π½Π° Slack, 300 ΡΠ»Π΅Π½ΠΎΠ²Π΅ Π² ΠΏΡΠΎΡΠ΅Ρ Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°, ΠΊΠ°ΠΊΡΠΎ ΠΈ 90 ΠΊΠΎΠΌΠΈΡΠ΅ΡΠΈ ΠΈ 5 ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°ΡΠΈ. ΠΠ΄ΠΈΠ½ ΠΎΡ Π·Π½Π°ΡΠΈΠΌΠΈΡΠ΅ ΡΠ°ΠΊΡΠΈ Π΅, ΡΠ΅ ΡΠ΅ ΠΏΡΠΈΠ»Π°Π³Π° ΠΎΡ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ ΠΈ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ, Π²ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ Adobe, Kinvolk, Kintone, PhishLabs ΠΈ Replicated. Π‘Π»Π΅Π΄ ΠΊΠ°ΡΠΎ Π²ΠΈΠ΄ΡΡ Π°, ΡΠ΅ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈΡΠ΅ ΠΏΡΠΈΠ΅ΠΌΠ°Ρ Contour Π² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²ΠΎΡΠΎ ΠΈ Π·Π½Π°Π΅ΠΉΠΊΠΈ, ΡΠ΅ ΠΈΠΌΠ°ΠΌΠ΅ ΡΠΈΠ»Π½Π° ΠΎΠ±ΡΠ½ΠΎΡΡ, CNCF ΡΠ΅ΡΠΈ, ΡΠ΅ Contour ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΎΡΠΈΠ΄Π΅ Π½Π°ΠΏΡΠ°Π²ΠΎ Π² ΠΈΠ½ΠΊΡΠ±Π°ΡΠΎΡΠ°, Π·Π°ΠΎΠ±ΠΈΠΊΠ°Π»ΡΠΉΠΊΠΈ ΡΠ»ΠΎΡ ΠΏΡΡΡΡΠ½ΠΈΠΊ.
Π’ΠΎΠ²Π° Π΅ ΠΌΠ½ΠΎΠ³ΠΎ Π²Π°ΠΆΠ½ΠΎ Π·Π° Π½Π°Ρ, ΡΡΠΉ ΠΊΠ°ΡΠΎ ΡΠ°Π·Π³Π»Π΅ΠΆΠ΄Π°ΠΌΠ΅ ΡΠ°Π·ΠΈ ΠΏΠΎΠΊΠ°Π½Π° ΠΊΠ°ΡΠΎ ΠΏΠΎΡΠ²ΡΡΠΆΠ΄Π΅Π½ΠΈΠ΅, ΡΠ΅ ΡΠΌΠ΅ ΡΡΡΠΎΠΉΡΠΈΠ²Π°, Π³ΠΎΡΡΠΎΠΏΡΠΈΠ΅ΠΌΠ½Π° ΠΈ ΠΎΡΠ²ΠΎΡΠ΅Π½Π° ΠΎΠ±ΡΠ½ΠΎΡΡ, ΠΊΠΎΡΡΠΎ Π΅ Π² ΡΡΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ Ρ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈΡΠ΅ ΡΠ΅Π»ΠΈ Π½Π° CNCF, Π° Contour ΡΡΡΠΎ ΡΠ°Π±ΠΎΡΠΈ Π΄ΠΎΠ±ΡΠ΅ Π² Π΅ΠΊΠΎΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° Ρ Π΄ΡΡΠ³ΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠΈ ΠΊΠ°ΡΠΎ Kubernetes ΠΈ Envoy.
ΠΠ°Π΄ΡΠ²Π°ΠΌΠ΅ ΡΠ΅, ΡΠ΅ ΠΊΠΎΠ»ΠΊΠΎΡΠΎ ΠΏΠΎΠ²Π΅ΡΠ΅ Ρ ΠΎΡΠ° ΠΈΠ΄Π²Π°Ρ ΠΏΡΠΈ Π½Π°Ρ, ΡΠΎΠ»ΠΊΠΎΠ²Π° ΠΏΠΎΠ²Π΅ΡΠ΅ ΡΠ΅ ΡΠ΅ ΡΠ²Π΅Π»ΠΈΡΠ°Π²Π° ΡΠ°Π·Π½ΠΎΠΎΠ±ΡΠ°Π·ΠΈΠ΅ΡΠΎ ΠΈ ΡΠΊΠΎΡΠΎΡΡΡΠ° Π½Π° Π΄ΠΎΠ±Π°Π²ΡΠ½Π΅ Π½Π° Π½ΠΎΠ²ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ. Π©Π΅ ΠΏΡΠΎΠ΄ΡΠ»ΠΆΠΈΠΌ Π΄Π° ΠΏΡΡΠΊΠ°ΠΌΠ΅ Π²Π΅ΡΡΠΈΠΈ Π΅ΠΆΠ΅ΠΌΠ΅ΡΠ΅ΡΠ½ΠΎ, ΡΠ°ΠΊΠ° ΡΠ΅ Π½ΡΠΌΠ° Π΄Π° ΠΊΠ°ΡΠ°ΠΌΠ΅ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈΡΠ΅ Π΄Π° ΡΠ°ΠΊΠ°Ρ Π΄ΡΠ»Π³ΠΎ Π·Π° Π½ΠΎΠ²ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠΎΡΠ΅ΠΊΡΠΈΠΈ Π½Π° Π³ΡΠ΅ΡΠΊΠΈ ΠΈ ΠΏΠΎΠ΄ΠΎΠ±ΡΠ΅Π½ΠΈΡ Π² ΡΠΈΠ³ΡΡΠ½ΠΎΡΡΡΠ°.
ΠΡΠΈΠ½ΠΎΡ ΠΊΡΠΌ Π΅ΠΊΠΎΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° Kubernetes
Π Π±Π»ΠΈΠ·ΠΊΠΎ Π±ΡΠ΄Π΅ΡΠ΅ Π½ΠΈΠ΅
ΠΡΡΠ³ΠΈ Π½Π΅ΡΠ°, ΠΊΠΎΠΈΡΠΎ ΠΏΠ»Π°Π½ΠΈΡΠ°ΠΌΠ΅ Π΄Π° ΠΏΡΠΈΠ»ΠΎΠΆΠΈΠΌ Π² Π±Π»ΠΈΠ·ΠΊΠΎ Π±ΡΠ΄Π΅ΡΠ΅:
Π°ΠΊΡΠΈΠ²ΠΈΡΠ°ΠΉΡΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠ°ΡΠ° Envoy ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ Π½Π° ΡΠΊΠΎΡΠΎΡΡΡΠ° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΎΡΠΈΡΠΈΠ°Π»Π½Π° Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠ° Π½Π° ΠΊΠΎΡΠΌΠΈΠ»ΠΎΡΠΎ
ΠΠ°ΠΏΠΎΡΠ½Π°Ρ
ΠΌΠ΅ Π΄Π° ΠΌΠΈΡΠ»ΠΈΠΌ ΠΈ Π·Π° ΠΏΠΎΠ΄ΠΊΡΠ΅ΠΏΠ°
ΠΠΈΠ΅
ΠΠ°ΡΡΠ΅ΡΠ΅ ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΈ ΡΠ΅ ΠΏΡΠΈΡΡΠ΅Π΄ΠΈΠ½Π΅ΡΠ΅ ΠΊΡΠΌ Π½Π°Ρ!
ΠΡΠΊΠ°ΡΠ΅ Π»ΠΈ Π΄Π° Π½Π°ΡΡΠΈΡΠ΅ ΠΏΠΎΠ²Π΅ΡΠ΅ Π·Π° Contour, Π²ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ ΡΡΠ½ΠΎ ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ Π·Π° ΡΠΎΠ²Π° ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠΈ ΠΏΡΠΎΠ΅ΠΊΡΡΡ ΠΈ ΠΊΠ°ΠΊΠ²ΠΎ ΡΠ΅ Π½Π°Π΄ΡΠ²Π° Π΅ΠΊΠΈΠΏΡΡ Π΄Π° ΠΏΠΎΡΡΠΈΠ³Π½Π΅, ΠΊΠΎΠ³Π°ΡΠΎ ΡΠ΅ ΠΏΡΠΈΡΡΠ΅Π΄ΠΈΠ½ΠΈΠΌ ΠΊΡΠΌ CNCF - ΠΏΠΎΡΠ΅ΡΠ΅ΡΠ΅
ΠΠΊΠΎ ΡΠΎΠ²Π° Π½Π΅ Π΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π²ΠΈ ΠΊΠ°Π½ΠΈΠΌ Π΄Π° ΡΠ΅ ΠΏΡΠΈΡΡΠ΅Π΄ΠΈΠ½ΠΈΡΠ΅ ΠΊΡΠΌ Π½ΡΠΊΠΎΠΉ ΠΎΡ
Π Π½Π°ΠΊΡΠ°Ρ, Π°ΠΊΠΎ ΠΈΡΠΊΠ°ΡΠ΅ Π΄Π° Π΄ΠΎΠΏΡΠΈΠ½Π΅ΡΠ΅ΡΠ΅, ΡΠ΅ ΡΠ΅ ΡΠ°Π΄Π²Π°ΠΌΠ΅ Π΄Π° Π²ΠΈ ΠΏΡΠΈΠ²Π΅ΡΡΡΠ²Π°ΠΌΠ΅ Π² Π½Π°ΡΠΈΡΠ΅ ΡΠ΅Π΄ΠΈΡΠΈ. Π Π°Π·Π³Π»Π΅Π΄Π°ΠΉΡΠ΅ Π½Π°ΡΠΈΡΠ΅
ΠΠ° Π΄Π° Π½Π°ΡΡΠΈΡΠ΅ ΠΏΠΎΠ²Π΅ΡΠ΅ Π·Π° Contour ΠΈ Π΄ΡΡΠ³ΠΈ ΠΎΠ±Π»Π°ΡΠ½ΠΈ ΡΠ΅Ρ
Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ, ΠΏΠΎΠΌΠΈΡΠ»Π΅ΡΠ΅ Π·Π° Π΄ΠΈΡΡΠ°Π½ΡΠΈΠΎΠ½Π½ΠΎ ΡΡΠ°ΡΡΠΈΠ΅
Π Π°Π½ΠΊΠ΅ΡΠ°ΡΠ° ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΡΠ°ΡΡΠ²Π°Ρ ΡΠ°ΠΌΠΎ ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠ°Π½ΠΈ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ.
ΠΠ½ΡΠ΅ΡΠ΅ΡΡΠ²Π°ΡΠ΅ Π»ΠΈ ΡΠ΅ ΠΎΡ Contour?
-
25,0%ΠΠ΅ ΡΠΎΡΠ½ΠΎ. ΠΠΈΡΠΎ Π½ΠΎΠ²ΠΎ4
-
25,0%ΠΠ°, ΠΎΠ±Π΅ΡΠ°Π²Π°ΡΠΎ Π½Π΅ΡΠΎ4
-
43,8%ΠΠ° Π²ΠΈΠ΄ΠΈΠΌ ΠΊΠ°ΠΊΠ²ΠΈ ΡΠ΅Π°Π»Π½ΠΈ Π΄Π΅Π»Π° ΡΠ΅ ΠΏΠΎΡΠ»Π΅Π΄Π²Π°Ρ ΠΎΠ±Π΅ΡΠ°Π½ΠΈΡΡΠ°7
-
6,2%Π‘Π°ΠΌΠΎ ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ, ΡΠ°ΠΌΠΎ Ρ Π°ΡΠ΄ΠΊΠΎΡ1
16 ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ Π³Π»Π°ΡΡΠ²Π°Ρ
Π°. 3 ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ ΡΠ΅ Π²ΡΠ·Π΄ΡΡΠΆΠ°Ρ
Π°.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: www.habr.com