ΠΠ΄ΡΠ°ΡΡΠΈ! ΠΠ· ΡΡΠΌ ΠΠ°Π΄ΠΈΠΌ ΠΠ°Π΄ΠΈΡΠΎΠ½ ΠΈ ΡΡΠΊΠΎΠ²ΠΎΠ΄Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°ΡΠ° Π½Π° System Platform Π½Π° ΠΠ²ΠΈΡΠΎ. ΠΠ΅ Π²Π΅Π΄Π½ΡΠΆ Π΅ ΡΠΏΠΎΠΌΠ΅Π½Π°Π²Π°Π½ΠΎ ΠΊΠ°ΠΊ Π² ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡΡΠ° ΠΏΡΠ΅ΠΌΠΈΠ½Π°Π²Π°ΠΌΠ΅ ΠΎΡ ΠΌΠΎΠ½ΠΎΠ»ΠΈΡΠ½Π° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° ΠΊΡΠΌ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΠ·Π½Π°. ΠΡΠ΅ΠΌΠ΅ Π΅ Π΄Π° ΡΠΏΠΎΠ΄Π΅Π»ΠΈΠΌ ΠΊΠ°ΠΊ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ²Π°Ρ ΠΌΠ΅ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ°ΡΠ° ΡΠΈ, Π·Π° Π΄Π° ΠΈΠ·Π²Π»Π΅ΡΠ΅ΠΌ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»Π½Π° ΠΏΠΎΠ»Π·Π° ΠΎΡ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠΈΡΠ΅ ΠΈ Π΄Π° Π½Π΅ Π·Π°Π³ΡΠ±ΠΈΠΌ ΠΏΠΎΡΠΎΠΊΠ° Π² ΡΡΡ . ΠΠ°ΠΊ Π½ΠΈ ΠΏΠΎΠΌΠ°Π³Π° PaaS ΡΡΠΊ, ΠΊΠ°ΠΊ ΠΎΠΏΡΠΎΡΡΠΈΡ ΠΌΠ΅ Π΄Π΅ΠΏΠ»ΠΎΠΉΠ²Π°Π½Π΅ΡΠΎ ΠΈ ΡΠ²Π΅Π΄ΠΎΡ ΠΌΠ΅ ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ΡΠΎ Π½Π° ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡ Π΄ΠΎ Π΅Π΄ΠΈΠ½ ΠΊΠ»ΠΈΠΊ β ΡΠ΅ΡΠ΅ΡΠ΅ Π½Π°ΡΠ°ΡΡΠΊ. ΠΠ΅ Π²ΡΠΈΡΠΊΠΎ, Π·Π° ΠΊΠΎΠ΅ΡΠΎ ΠΏΠΈΡΠ° ΠΏΠΎ-Π΄ΠΎΠ»Ρ, Π΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΎ ΠΈΠ·ΡΡΠ»ΠΎ Π² ΠΠ²ΠΈΡΠΎ, ΡΠ°ΡΡ ΠΎΡ Π½Π΅Π³ΠΎ Π΅ Π½Π°ΡΠΈΠ½ΡΡ, ΠΏΠΎ ΠΊΠΎΠΉΡΠΎ ΡΠ°Π·Π²ΠΈΠ²Π°ΠΌΠ΅ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°ΡΠ° ΡΠΈ.
(Π Π² ΠΊΡΠ°Ρ Π½Π° ΡΠ°Π·ΠΈ ΡΡΠ°ΡΠΈΡ ΡΠ΅ ΡΠ°Π·ΠΊΠ°ΠΆΠ° Π·Π° Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π΄Π° ΡΠ΅ Π·Π°ΠΏΠΈΡΠ΅ΡΠ΅ Π½Π° ΡΡΠΈ Π΄Π½Π΅Π²Π΅Π½ ΡΠ΅ΠΌΠΈΠ½Π°Ρ ΠΎΡ Π΅ΠΊΡΠΏΠ΅ΡΡΠ° ΠΏΠΎ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΠ·Π½Π° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° ΠΡΠΈΡ Π ΠΈΡΠ°ΡΠ΄ΡΡΠ½).

ΠΠ°ΠΊ ΡΡΠΈΠ³Π½Π°Ρ ΠΌΠ΅ Π΄ΠΎ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΠ·ΠΈΡΠ΅
ΠΠ²ΠΈΡΠΎ Π΅ Π΅Π΄ΠΈΠ½ ΠΎΡ Π½Π°ΠΉ-Π³ΠΎΠ»Π΅ΠΌΠΈΡΠ΅ ΠΊΠ»Π°ΡΠΈΡΠΈΡΠΈΡΠ°Π½ΠΈ ΡΠ°ΠΉΡΠΎΠ²Π΅ Π² ΡΠ²Π΅ΡΠ°, Π² ΠΊΠΎΠΉΡΠΎ Π΅ΠΆΠ΅Π΄Π½Π΅Π²Π½ΠΎ ΡΠ΅ ΠΏΡΠ±Π»ΠΈΠΊΡΠ²Π°Ρ Π½Π°Π΄ 15 ΠΌΠΈΠ»ΠΈΠΎΠ½Π° Π½ΠΎΠ²ΠΈ ΠΎΠ±ΡΠ²ΠΈ. ΠΠ°ΡΠΈΡΡ Π±Π΅ΠΊΠ΅Π½Π΄ ΠΏΡΠΈΠ΅ΠΌΠ° Π½Π°Π΄ 20 Ρ ΠΈΠ»ΡΠ΄ΠΈ Π·Π°ΡΠ²ΠΊΠΈ Π² ΡΠ΅ΠΊΡΠ½Π΄Π°. Π ΠΌΠΎΠΌΠ΅Π½ΡΠ° ΠΈΠΌΠ°ΠΌΠ΅ Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΡΡΠΎΡΠΈΠ½ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΠ·Π°.
ΠΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠ½Π°ΡΠ° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°ΠΌΠ΅ Π½Π΅ ΠΎΡ Π²ΡΠ΅ΡΠ°. ΠΠ°ΠΊ ΡΠΎΡΠ½ΠΎ β Π½Π°ΡΠΈΡΠ΅ ΠΊΠΎΠ»Π΅Π³ΠΈ Π² Π΄Π΅ΡΠ°ΠΉΠ»ΠΈ Π² Π½Π°ΡΠ°ΡΠ° ΡΠ΅ΡΠΈΡ Π½Π° Π ΠΠ’++ 2017. ΠΠ° CodeFest 2017 (Π²ΠΈΠΆ. ), Π‘Π΅ΡΠ³Π΅ΠΉ ΠΡΠ»ΠΎΠ² ΠΈ ΠΠΈΡ Π°ΠΈΠ» ΠΡΠΎΠΊΠΎΠΏΡΡΠΊ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΠΎΠ±ΡΡΠ½ΠΈΡ Π° Π·Π°ΡΠΎ ΠΈΠ·ΠΎΠ±ΡΠΎ Π½ΠΈ Π΅ Π½ΡΠΆΠ΅Π½ ΠΏΡΠ΅Ρ ΠΎΠ΄ ΠΊΡΠΌ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΠ·ΠΈ ΠΈ ΠΊΠ°ΠΊΠ²Π° ΡΠΎΠ»Ρ ΠΈΠ³ΡΠ°Π΅ Kubernetes Π² ΡΠΎΠ·ΠΈ ΠΏΡΠΎΡΠ΅Ρ. Π ΡΠ΅Π³Π° ΠΏΡΠ°Π²ΠΈΠΌ Π²ΡΠΈΡΠΊΠΎ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π·Π° Π΄Π° ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡΠ°ΠΌΠ΅ ΡΠ°Π·Ρ ΠΎΠ΄ΠΈΡΠ΅ Π·Π° ΠΌΠ°ΡΠ°Π±ΠΈΡΠ°Π½Π΅, ΠΊΠΎΠΈΡΠΎ ΡΠ°ΠΊΠ°Π²Π° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°.
ΠΡΡΠ²ΠΎΠ½Π°ΡΠ°Π»Π½ΠΎ Π½Π΅ ΡΡΠ·Π΄Π°Π²Π°Ρ ΠΌΠ΅ Π΅ΠΊΠΎΡΠΈΡΡΠ΅ΠΌΠ°, ΠΊΠΎΡΡΠΎ Π΄Π° Π½ΠΈ ΠΏΠΎΠΌΠ°Π³Π° ΠΏΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ²Π°Π½Π΅ΡΠΎ ΠΈ ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΠ·ΠΈ. ΠΡΠΎΡΡΠΎ ΡΡΠ±ΠΈΡΠ°Ρ ΠΌΠ΅ ΠΏΠΎΠ»Π΅Π·Π½ΠΈ ΠΎΠΏΠ΅Π½ΡΠΎΡΡ ΡΠ΅ΡΠ΅Π½ΠΈΡ, ΡΡΠ°ΡΡΠΈΡΠ°Ρ ΠΌΠ΅ Π³ΠΈ Ρ Π½Π°Ρ ΠΈ ΠΏΡΠ΅Π΄Π»Π°Π³Π°ΠΌΠ΅ Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅ Π΄Π° ΡΠ΅ Π·Π°ΠΏΠΎΠ·Π½Π°ΡΡ Ρ ΡΡΡ . Π ΠΊΡΠ°ΠΉΠ½Π° ΡΠΌΠ΅ΡΠΊΠ° ΡΠ΅ ΡΠ΅ Π½Π°Π»Π°Π³Π°ΡΠ΅ Π΄Π° ΠΎΠ±ΠΈΠΊΠ°Π»ΡΡ Π½Π° Π΄Π΅ΡΠ΅ΡΠΊΠΈ ΠΌΠ΅ΡΡΠ° (ΡΠ°Π±Π»Π° Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅, Π²ΡΡΡΠ΅ΡΠ½ΠΈ ΡΡΠ»ΡΠ³ΠΈ), ΡΠ»Π΅Π΄ ΠΊΠΎΠ΅ΡΠΎ ΡΠ΅ ΡΠΊΡΠ΅ΠΏΠ²Π°ΡΠ΅ Π² ΠΆΠ΅Π»Π°Π½ΠΈΠ΅ΡΠΎ ΡΠΈ Π΄Π° ΠΏΠΈΡΠ΅ ΠΊΠΎΠ΄ ΠΏΠΎ ΡΡΠ°ΡΠΎΠΌΡ, Π² ΠΌΠΎΠ½ΠΎΠ»ΠΈΡΠ°. Π ΡΡ Π΅ΠΌΠΈΡΠ΅ ΠΏΠΎ-Π΄ΠΎΠ»Ρ ΡΡΡ Π·Π΅Π»Π΅Π½ ΡΠ²ΡΡ Π΅ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ΅Π½ΠΎ ΡΠΎΠ²Π°, ΠΊΠΎΠ΅ΡΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΡΡ ΠΏΡΠ°Π²ΠΈ ΠΏΠΎ Π΅Π΄ΠΈΠ½ ΠΈΠ»ΠΈ Π΄ΡΡΠ³ Π½Π°ΡΠΈΠ½ ΡΠ°ΠΌ, Π° Ρ ΠΆΡΠ»Ρ ΡΠ²ΡΡ β Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΡΡΠ°.

Π‘Π΅Π³Π° Π² CLI ΡΡΠΈΠ»ΠΈΡΠ°ΡΠ° PaaS Ρ Π΅Π΄Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° ΡΠ΅ ΡΡΠ·Π΄Π°Π²Π° Π½ΠΎΠ² ΡΠ΅ΡΠ²ΠΈΠ·, Π° Ρ ΠΎΡΠ΅ Π΄Π²Π΅ ΡΠ΅ Π΄ΠΎΠ±Π°Π²Ρ Π½ΠΎΠ²Π° Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ ΠΈ ΠΏΠΎΠ΄Π³ΠΎΡΠ²Ρ Π·Π° Π΄Π΅ΠΏΠ»ΠΎΠΉ Π² Stage.

ΠΠ°ΠΊ Π΄Π° ΠΏΡΠ΅ΠΎΠ΄ΠΎΠ»Π΅Π΅ΠΌ Π΅ΡΠ°ΡΠ° Π½Π° βΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠ½Π°ΡΠ° ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ°ΡΠΈΡβ
ΠΡΠΈ ΠΌΠΎΠ½ΠΎΠ»ΠΈΡΠ½Π° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°, Π·Π° Π΄Π° ΡΠ΅ ΠΏΠΎΡΡΠΈΠ³Π½Π΅ ΠΊΠΎΠ½ΡΠΈΡΡΠ΅Π½ΡΠ½ΠΎΡΡ Π² ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅ Π½Π° ΠΏΡΠΎΠ΄ΡΠΊΡΠ°, ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅ Π±ΡΡ Π° ΠΏΡΠΈΠ½ΡΠ΄Π΅Π½ΠΈ Π΄Π° Π²Π½ΠΈΠΊΠ²Π°Ρ ΠΊΠ°ΠΊΠ²ΠΎ ΡΠ΅ ΡΠ»ΡΡΠ²Π° ΠΏΡΠΈ ΡΡΡΠ΅Π΄ΠΈΡΠ΅. ΠΡΠΈ ΡΠ°Π±ΠΎΡΠ° Ρ Π½ΠΎΠ²Π°ΡΠ° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°, ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠΈΡΠ΅ Π½Π° ΡΡΠ»ΡΠ³ΠΈΡΠ΅ ΡΠΏΡΡΡ Π° Π΄Π° Π·Π°Π²ΠΈΡΡΡ Π΅Π΄ΠΈΠ½ ΠΎΡ Π΄ΡΡΠ³.
ΠΡΠ²Π΅Π½ ΡΠΎΠ²Π°, Π·Π° Π΄Π° Π±ΡΠ΄Π΅ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠ½Π°ΡΠ° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° Π΅ΡΠ΅ΠΊΡΠΈΠ²Π½Π°, Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° ΡΠ΅ Π½Π°Π»ΠΎΠΆΠ°Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΏΡΠΎΡΠ΅ΡΠΈ, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ:
β’ Π»ΠΎΠ³Π²Π°Π½Π΅;
β’ ΡΡΠ°ΡΠΈΡΠΎΠ²ΠΊΠ° Π½Π° Π·Π°ΡΠ²ΠΊΠΈ (Jaeger);
β’ Π°Π³ΡΠ΅Π³Π°ΡΠΈΡ Π½Π° Π³ΡΠ΅ΡΠΊΠΈ (Sentry);
β’ ΡΡΠ°ΡΡΡΠΈ, ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΡ, ΡΡΠ±ΠΈΡΠΈΡ ΠΎΡ Kubernetes (Event Stream Processing);
β’ race limit / circuit breaker (ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Hystrix);
β’ ΠΊΠΎΠ½ΡΡΠΎΠ» Π½Π° ΡΠ²ΡΡΠ·Π°Π½ΠΎΡΡΡΠ° Π½Π° ΡΡΠ»ΡΠ³ΠΈΡΠ΅ (ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ Netramesh);
β’ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³ (Grafana);
β’ ΡΡΠ±ΠΈΡΠ°Π½Π΅ (TeamCity);
β’ ΠΊΠΎΠΌΡΠ½ΠΈΠΊΠ°ΡΠΈΡ ΠΈ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ (Slack, ΠΈΠΌΠ΅ΠΉΠ»);
β’ ΠΏΡΠΎΡΠ»Π΅Π΄ΡΠ²Π°Π½Π΅ Π½Π° Π·Π°Π΄Π°ΡΠΈ; (Jira)
β’ ΡΡΡΡΠ°Π²ΡΠ½Π΅ Π½Π° Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ.
ΠΠ° Π΄Π° Π½Π΅ ΠΈΠ·Π³ΡΠ±ΠΈ ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° ΡΠ΅Π»ΠΎΡΡΡΠ° ΡΠΈ ΠΏΡΠΈ ΠΌΠ°ΡΠ°Π±ΠΈΡΠ°Π½Π΅ ΠΈ Π΄Π° ΠΎΡΡΠ°Π½Π΅ Π΅ΡΠ΅ΠΊΡΠΈΠ²Π½Π°, Π½ΠΈΠ΅ ΠΏΡΠ΅ΠΎΡΠΌΠΈΡΠ»ΠΈΡ ΠΌΠ΅ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΡΡΠ° Π½Π° ΡΠ°Π±ΠΎΡΠ°ΡΠ° Π½Π° ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠΈΡΠ΅ Π² ΠΠ²ΠΈΡΠΎ.
ΠΠ°ΠΊ ΡΠΏΡΠ°Π²Π»ΡΠ²Π°ΠΌΠ΅ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠΈΡΠ΅
ΠΡΠΎΠ²Π΅ΠΆΠ΄Π°Π½Π΅ΡΠΎ Π½Π° Π΅Π΄ΠΈΠ½Π½Π° βΠΏΠ°ΡΡΠΈΠΉΠ½Π° ΠΏΠΎΠ»ΠΈΡΠΈΠΊΠ°β ΡΡΠ΅Π΄ ΠΌΠ½ΠΎΠ³ΠΎΡΠΎ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΠ·ΠΈ Π½Π° ΠΠ²ΠΈΡΠΎ Π΅ ΡΠ»Π΅ΡΠ½Π΅Π½ΠΎ ΠΎΡ:
- ΡΠ°Π·Π΄Π΅Π»ΡΠ½Π΅ Π½Π° ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ°ΡΠ° Π½Π° ΡΠ»ΠΎΠ΅Π²Π΅;
- ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡΡΠ° Platform as a Service (PaaS);
- ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³ Π½Π° Π²ΡΠΈΡΠΊΠΎ, ΠΊΠΎΠ΅ΡΠΎ ΡΠ΅ ΡΠ»ΡΡΠ²Π° Ρ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠΈΡΠ΅.
ΠΠΈΠ²Π°ΡΠ° Π½Π° Π°Π±ΡΡΡΠ°ΠΊΡΠΈΡ Π½Π° ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ°ΡΠ° Π²ΠΊΠ»ΡΡΠ²Π°Ρ ΡΡΠΈ ΡΠ»ΠΎΡ. ΠΠ΅ΠΊΠ° ΠΏΡΠ΅ΠΌΠΈΠ½Π΅ΠΌ ΠΎΡ Π³ΠΎΡΠ½ΠΈΡ ΠΊΡΠΌ Π΄ΠΎΠ»Π½ΠΈΡ.
A. ΠΠΎΡΠ΅Π½ β service mesh. ΠΡΡΠ²ΠΎΠ½Π°ΡΠ°Π»Π½ΠΎ ΠΏΡΠΎΠ±Π²Π°Ρ
ΠΌΠ΅ Istio, Π½ΠΎ ΡΠ΅ ΠΎΠΊΠ°Π·Π°, ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΡΠ²ΡΡΠ΄Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ΅ΡΡΡΡΠΈ, ΠΊΠΎΠ΅ΡΠΎ ΠΏΡΠΈ Π½Π°ΡΠΈΡΠ΅ ΠΎΠ±Π΅ΠΌΠΈ Π΅ ΠΈΠ·ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ ΡΠΊΡΠΏΠΎ. ΠΠ°ΡΠΎΠ²Π° ΡΡΠ°ΡΡΠΈ ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΡΡ Π² Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΠ½ΠΈΡ Π΅ΠΊΠΈΠΏ ΠΠ»Π΅ΠΊΡΠ°Π½Π΄ΡΡ ΠΡΠΊΡΡΠ½ΡΠ΅Π½ΠΊΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΈ ΡΠΎΠ±ΡΡΠ²Π΅Π½ΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ β (Π΄ΠΎΡΡΡΠΏΠ½ΠΎ Π² Open Source), ΠΊΠΎΠ΅ΡΠΎ Π² ΠΌΠΎΠΌΠ΅Π½ΡΠ° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ Π² ΠΏΡΠΎΠ΄ΡΠΊΡΠΈΡΡΠ° ΠΈ ΠΊΠΎΠ΅ΡΠΎ ΠΊΠΎΠ½ΡΡΠΌΠΈΡΠ° ΠΌΠ½ΠΎΠ³ΠΎΠΊΡΠ°ΡΠ½ΠΎ ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ ΡΠ΅ΡΡΡΡΠΈ, ΠΎΡΠΊΠΎΠ»ΠΊΠΎΡΠΎ Istio (Π½ΠΎ Π½Π΅ ΠΏΡΠ°Π²ΠΈ Π²ΡΠΈΡΠΊΠΎ, Ρ ΠΊΠΎΠ΅ΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΏΠΎΡ
Π²Π°Π»ΠΈ Istio).
B. Π‘ΡΠ΅Π΄Π΅Π½ β Kubernetes. ΠΠ° Π½Π΅Π³ΠΎ ΡΠ°Π·Π³ΡΡΡΠ°ΠΌΠ΅ ΠΈ Π΅ΠΊΡΠΏΠ»ΠΎΠ°ΡΠΈΡΠ°ΠΌΠ΅ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΠ·ΠΈΡΠ΅.
C. ΠΠΎΠ»Π΅Π½ β bare metal. ΠΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ ΠΎΠ±Π»Π°ΡΠΈ ΠΈ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΡ, Π° ΡΠ°Π±ΠΎΡΠΈΠΌ ΠΈΠ·ΡΡΠ»ΠΎ Π½Π° bare metal.
ΠΡΠΈΡΠΊΠΈ ΡΠ»ΠΎΠ΅Π²Π΅ ΡΠ΅ ΠΎΠ±Π΅Π΄ΠΈΠ½ΡΠ²Π°Ρ Π² PaaS. Π ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°ΡΠ°, ΠΎΡ ΡΠ²ΠΎΡ ΡΡΡΠ°Π½Π°, ΡΠ΅ ΡΡΡΡΠΎΠΈ ΠΎΡ ΡΡΠΈ ΡΠ°ΡΡΠΈ.
I. ΠΠ΅Π½Π΅ΡΠ°ΡΠΎΡΠΈ, ΡΠΏΡΠ°Π²Π»ΡΠ²Π°Π½ΠΈ ΡΡΠ΅Π· CLI ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ. ΠΠΌΠ΅Π½Π½ΠΎ ΡΠΎΠΉ ΠΏΠΎΠΌΠ°Π³Π° Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° Π΄Π° ΡΡΠ·Π΄Π°Π΄Π΅ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΠ· ΠΏΡΠ°Π²ΠΈΠ»Π½ΠΎ ΠΈ Ρ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»Π½ΠΈ ΡΡΠΈΠ»ΠΈΡ.
II. ΠΠ±ΠΎΠ±ΡΠ°Π²Π°Ρ ΠΊΠΎΠ»Π΅ΠΊΡΠΎΡ Ρ ΠΊΠΎΠ½ΡΡΠΎΠ» Π½Π° Π²ΡΠΈΡΠΊΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ ΡΡΠ΅Π· ΠΎΠ±ΡΠΎ ΡΠ°Π±Π»ΠΎ.
III. Π₯ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅.. Π‘ΡΠ΅Π΄ΠΈΠ½ΡΠ²Π° ΡΠ΅ Ρ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΡΠΈ, ΠΊΠΎΠΈΡΠΎ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ Π·Π°Π΄Π°Π²Π°Ρ ΡΡΠΈΠ³Π΅ΡΠΈ Π·Π° Π·Π½Π°ΡΠΈΠΌΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ. ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΠ΅Π½ΠΈΠ΅ Π½Π° ΡΠ°Π·ΠΈ ΡΠΈΡΡΠ΅ΠΌΠ° Π½ΠΈΡΠΎ Π΅Π΄Π½Π° Π·Π°Π΄Π°ΡΠ° Π½Π΅ ΠΎΡΡΠ°Π²Π° ΠΏΡΠΎΠΏΡΡΠ½Π°ΡΠ° ΡΠ°ΠΌΠΎ Π·Π°ΡΠΎΡΠΎ Π½ΡΠΊΠΎΠΉ Π΅ Π·Π°Π±ΡΠ°Π²ΠΈΠ» Π΄Π° ΡΠΈ ΡΡΠ·Π΄Π°Π΄Π΅ Π·Π°Π΄Π°ΡΠ° Π² Jira. ΠΠ° ΡΠΎΠ²Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ Π²ΡΡΡΠ΅ΡΠ΅Π½ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ, Π½Π°ΡΠ΅ΡΠ΅Π½ Atlas.

Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡΡΠ° Π½Π° ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΠ·ΠΈ Π² ΠΠ²ΠΈΡΠΎ ΡΡΡΠΎ ΡΠ΅ ΠΈΠ·Π²ΡΡΡΠ²Π° ΠΏΠΎ Π΅Π΄ΠΈΠ½Π½Π° ΡΡ Π΅ΠΌΠ°, ΠΊΠΎΠ΅ΡΠΎ ΡΠ»Π΅ΡΠ½ΡΠ²Π° ΠΊΠΎΠ½ΡΡΠΎΠ»Π° Π½Π°Π΄ ΡΡΡ Π½Π° Π²ΡΡΠΊΠ° ΡΠ°Π·Π° Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΠΈ ΠΏΡΡΠΊΠ°Π½Π΅.
ΠΠ°ΠΊ Π΅ ΡΡΡΡΠΎΠ΅Π½ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΈΡΡ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ Π·Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΠ·.
Π ΠΎΠ±ΡΠΈΡ Π²ΠΈΠ΄ Π²Π΅ΡΠΈΠ³Π°ΡΠ° Π·Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΠ· ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° ΠΏΠΎ ΡΠ»Π΅Π΄Π½ΠΈΡ Π½Π°ΡΠΈΠ½:
CLI-push β ΠΠ΅ΠΏΡΠ΅ΠΊΡΡΠ½Π°ΡΠ° ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ β ΠΠ΅ΡΠ΅Π½Π΅ β ΠΠ΅ΠΏΠ»ΠΎΠΉ β ΠΠ·ΠΊΡΡΡΠ²Π΅Π½ΠΈ ΡΠ΅ΡΡΠΎΠ²Π΅ β ΠΠ°Π½Π°ΡΠ΅Π½ΠΈ ΡΠ΅ΡΡΠΎΠ²Π΅ β Squeeze Testing β ΠΡΠΎΠ΄ΡΠΊΡΠΈΡ β ΠΠ±ΡΠ»ΡΠΆΠ²Π°Π½Π΅.
ΠΠ΅ΠΊΠ° ΠΏΡΠ΅ΠΌΠΈΠ½Π΅ΠΌ ΠΏΡΠ΅Π· Π½Π΅Ρ ΡΠΎΡΠ½ΠΎ Π² ΡΠ°Π·ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π½ΠΎΡΡ.
CLI-push
β’ Π‘ΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΠ·.
ΠΡΠ»Π³ΠΎ Π²ΡΠ΅ΠΌΠ΅ ΡΠ°Π±ΠΎΡΠΈΡ
ΠΌΠ΅, Π·Π° Π΄Π° Π½Π°ΡΡΠΈΠΌ Π²ΡΠ΅ΠΊΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ Π΄Π° ΠΏΡΠ°Π²ΠΈ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΠ·ΠΈ. ΠΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ
ΠΌΠ΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΈ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ Π² Confluence. ΠΠΎ ΡΡ
Π΅ΠΌΠΈΡΠ΅ ΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½ΡΡ
Π° ΠΈ Π΄ΠΎΠΏΡΠ»Π²Π°Ρ
Π°. Π Π΅Π·ΡΠ»ΡΠ°ΡΡΡ β ΠΎΠ±ΡΠ°Π·ΡΠ²Π° ΡΠ΅ Π±ΡΡΠΈΠ»ΡΠ½ΠΎ Π³ΡΡΠ»ΠΎ Π² Π½Π°ΡΠ°Π»ΠΎΡΠΎ Π½Π° ΠΏΡΡΡ: Π·Π° ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΠ·ΠΈ ΡΠ΅ ΠΊΠΎΠ½ΡΡΠΌΡΠΈΡΠ°ΡΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ²Π΅ΡΠ΅ Π²ΡΠ΅ΠΌΠ΅, ΠΎΡΠΊΠΎΠ»ΠΊΠΎΡΠΎ Π΅ Π΄ΠΎΠΏΡΡΡΠΈΠΌΠΎ, ΠΈ Π²ΡΠ΅ ΠΏΠ°ΠΊ ΠΏΡΠΈ ΡΡΡ
Π½ΠΎΡΠΎ ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ ΡΠ΅ΡΡΠΎ Π²ΡΠ·Π½ΠΈΠΊΠ²Π°Ρ
Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ.
Π ΠΊΡΠ°ΠΉΠ½Π° ΡΠΌΠ΅ΡΠΊΠ° ΡΡΠ·Π΄Π°Π΄ΠΎΡ ΠΌΠ΅ ΠΏΡΠΎΡΡΠ° CLI-ΡΡΠΈΠ»ΠΈΡΠ°, ΠΊΠΎΡΡΠΎ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠ° ΠΎΡΠ½ΠΎΠ²Π½ΠΈΡΠ΅ ΡΡΡΠΏΠΊΠΈ ΠΏΡΠΈ ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ΡΠΎ Π½Π° ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΠ·. ΠΡΡΡΠ½ΠΎΡΡ ΡΡ Π·Π°ΠΌΠ΅ΡΡΠ²Π° ΠΏΡΡΠ²ΠΈΡ git push. ΠΡΠΎ ΠΊΠ°ΠΊΠ²ΠΎ ΡΠΎΡΠ½ΠΎ ΠΏΡΠ°Π²ΠΈ ΡΡ.
β Π‘ΡΠ·Π΄Π°Π²Π° ΡΡΠ»ΡΠ³Π° ΠΏΠΎ ΡΠ°Π±Π»ΠΎΠ½ β ΡΡΡΠΏΠΊΠ° ΠΏΠΎ ΡΡΡΠΏΠΊΠ°, Π² ΡΠ΅ΠΆΠΈΠΌ Π½Π° "wizard". ΠΠΌΠ°ΠΌΠ΅ ΡΠ°Π±Π»ΠΎΠ½ΠΈ Π·Π° ΠΎΡΠ½ΠΎΠ²Π½ΠΈΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ½ΠΈ Π΅Π·ΠΈΡΠΈ Π² Π±Π΅ΠΊΠ΅Π½Π΄Π° Π½Π° ΠΠ²ΠΈΡΠΎ: PHP, Golang ΠΈ Python.
β Π‘ Π΅Π΄Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° ΡΠ°Π·Π³ΡΡΡΠ° ΡΡΠ΅Π΄Π° Π·Π° Π»ΠΎΠΊΠ°Π»Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½Π° ΠΌΠ°ΡΠΈΠ½Π° β ΡΡΠ°ΡΡΠΈΡΠ° ΡΠ΅ Minikube, Helm-ΡΠ°ΡΡΠΎΠ²Π΅ ΡΠ΅ Π³Π΅Π½Π΅ΡΠΈΡΠ°Ρ ΠΈ ΡΡΠ°ΡΡΠΈΡΠ°Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ Π² Π»ΠΎΠΊΠ°Π»Π½ΠΈΡ kubernetes.
β Π‘Π²ΡΡΠ·Π²Π° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠ°ΡΠ° Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ. ΠΠ° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° Π½Π΅ ΠΌΡ Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° Π·Π½Π°Π΅ IP, Π»ΠΎΠ³ΠΈΠ½ ΠΈ ΠΏΠ°ΡΠΎΠ»Π°, Π·Π° Π΄Π° ΠΏΠΎΠ»ΡΡΠΈ Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ Π½ΡΠΆΠ½Π°ΡΠ° ΠΌΡ ΠΠ β Π±ΠΈΠ»ΠΎ ΡΠΎ Π»ΠΎΠΊΠ°Π»Π½ΠΎ, Π² Stage ΠΈΠ»ΠΈ Π½Π° ΠΏΡΠΎΠ΄ΡΠΊΡΠΈΡ. ΠΡΠ²Π΅Π½ ΡΠΎΠ²Π°, Π±Π°Π·Π°ΡΠ° Π΄Π°Π½Π½ΠΈ ΡΠ΅ ΡΠ°Π·Π³ΡΡΡΠ° Π²Π΅Π΄Π½Π°Π³Π° Π² ΠΎΡΠΊΠ°Π·ΠΎΡΡΡΠΎΠΉΡΠΈΠ²Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ ΠΈ Ρ Π±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²ΠΊΠ°.
β ΠΠ·Π²ΡΡΡΠ²Π° ΡΠ°ΠΌΠ° live-ΡΠ±ΠΎΡΠΊΠ°. ΠΠ° ΠΏΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, ΡΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΡΡ Π΅ Π½Π°ΠΏΡΠ°Π²ΠΈΠ» ΠΏΡΠΎΠΌΡΠ½Π° Π² ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΠ·Π° ΡΡΠ΅Π· ΡΠ²ΠΎΡΡΠ° IDE. Π£ΡΠΈΠ»ΠΈΡΠ°ΡΠ° Π²ΠΈΠΆΠ΄Π° ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅ Π² ΡΠ°ΠΉΠ»ΠΎΠ²Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ° ΠΈ Π½Π° Π±Π°Π·Π°ΡΠ° Π½Π° ΡΠΎΠ²Π° ΠΏΡΠ΅Π·Π°ΡΠ΅ΠΆΠ΄Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ (Π·Π° Golang) ΠΈ ΡΠ΅ΡΡΠ°ΡΡΠΈΡΠ°. ΠΠ° PHP ΠΏΡΠΎΡΡΠΎ ΠΏΡΠΎΠ±ΠΈΠ²Π°ΠΌΠ΅ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡΡΠ° Π²ΡΡΡΠ΅ Π² ΠΊΡΠ±Π° ΠΈ ΡΠ°ΠΌ live-reload ΡΡΠ°Π²Π° "Π°Π²ΡΠΎΠΌΠ°ΡΠΎΠΌ".
β ΠΠ΅Π½Π΅ΡΠΈΡΠ° Π°Π²ΡΠΎΡΠ΅ΡΡΠΎΠ²Π΅. ΠΠΎΠ΄ ΡΠΎΡΠΌΠ°ΡΠ° Π½Π° ΡΠ°Π±Π»ΠΎΠ½ΠΈ, Π½ΠΎ Π½Π°ΠΏΡΠ»Π½ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠΈ Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅.
β’ ΠΠ΅ΠΏΠ»ΠΎΠΉ Π½Π° ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡ..
ΠΡΠ΅Π΄ΠΈ, ΡΠ°Π·Π²ΡΡΡΠ°Π½Π΅ΡΠΎ Π½Π° ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡ Π±Π΅ΡΠ΅ ΠΌΠ°Π»ΠΊΠΎ Π΄ΠΎΡΠ°Π΄Π½ΠΎ. ΠΠ°Π΄ΡΠ»ΠΆΠΈΡΠ΅Π»Π½ΠΎ Π±ΡΡ Π° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΈ:
I. Dockerfile.
II. ΠΠΎΠ½ΡΠΈΠ³.
III. Helm-ΡΠ°ΡΡ, ΠΊΠΎΠΉΡΠΎ ΡΠ°ΠΌ ΠΏΠΎ ΡΠ΅Π±Π΅ ΡΠΈ Π΅ ΠΎΠ±Π΅ΠΌΠ΅Π½ ΠΈ Π²ΠΊΠ»ΡΡΠ²Π°:
β ΡΠ°ΠΌΠΈΡΠ΅ ΡΠ°ΡΡΠΎΠ²Π΅;
β ΡΠ°Π±Π»ΠΎΠ½ΠΈ;
β ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΈ ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ, Π²Π·Π΅ΠΌΠ°ΡΠΈ ΠΏΡΠ΅Π΄Π²ΠΈΠ΄ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΡΡΠ΅Π΄ΠΈ.
ΠΡΠ²ΠΎΠ±ΠΎΠ΄ΠΈΡ ΠΌΠ΅ ΡΠ΅ ΠΎΡ Π±ΠΎΠ»ΠΊΠ°ΡΠ° ΠΏΡΠΈ ΠΏΡΠ΅Π½Π°ΠΏΠΈΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΠΌΠ°Π½ΠΈΡΠ΅ΡΡΠΈΡΠ΅ Π½Π° Kubernetes ΠΈ ΡΠ΅Π³Π° ΡΠ΅ ΡΠ΅ Π³Π΅Π½Π΅ΡΠΈΡΠ°Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ. ΠΠΎ Π½Π°ΠΉ-Π²Π°ΠΆΠ½ΠΎΡΠΎ, ΠΎΠΏΡΠΎΡΡΠΈΡ ΠΌΠ΅ Π΄Π΅ΠΏΠ»ΠΎΠΉ ΠΏΡΠΎΡΠ΅ΡΠ° Π΄ΠΎ ΠΊΡΠ°ΠΉΠ½ΠΎΡΡ. Π‘Π΅Π³Π° ΠΈΠΌΠ°ΠΌΠ΅ Dockerfile, Π° ΡΠ΅Π»ΠΈΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΡΡ Π·Π°ΠΏΠΈΡΠ²Π° Π² Π΅Π΄ΠΈΠ½-Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½ ΠΊΡΠ°ΡΡΠΊ ΡΠ°ΠΉΠ» app.toml.

ΠΠ°, ΠΈ Π² ΡΠ°ΠΌΠΈΡ app.toml ΡΠ΅Π³Π° Π²ΡΠΈΡΠΊΠΎ ΠΎΡΠ½Π΅ΠΌΠ° ΠΌΠΈΠ½ΡΡΠΊΠ°. ΠΠ°ΠΏΠΈΡΠ²Π°ΠΌΠ΅, ΠΊΡΠ΄Π΅ ΠΈ ΠΊΠΎΠ»ΠΊΠΎ ΠΊΠΎΠΏΠΈΡ Π½Π° ΡΡΠ»ΡΠ³Π°ΡΠ° ΡΡΡΠ±Π²Π° Π΄Π° ΠΏΡΡΠ½Π΅ΠΌ (Π½Π° dev ΡΡΡΠ²ΡΡΠ°, Π² staging, Π² ΠΏΡΠΎΠ΄Π°ΠΊΡΡΠ½Π°), ΠΏΠΎΡΠΎΡΠ²Π°ΠΌΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈΡΠ΅ ΠΌΡ. ΠΠ±ΡΡΠ½Π΅ΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΡΠ΅Π΄Π° size = "small" Π² Π±Π»ΠΎΠΊΠ° [engine]. Π’ΠΎΠ²Π° Π΅ Π»ΠΈΠΌΠΈΡΡΡ, ΠΊΠΎΠΉΡΠΎ ΡΠ΅ Π±ΡΠ΄Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ Π½Π° ΡΡΠ»ΡΠ³Π°ΡΠ° ΡΡΠ΅Π· Kubernetes.
ΠΠ°ΡΠ°ΡΡΠΊ Π½Π° Π±Π°Π·Π°ΡΠ° Π½Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΡΠ° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ ΡΠ΅ Π³Π΅Π½Π΅ΡΠΈΡΠ°Ρ Π²ΡΠΈΡΠΊΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΈ Helm-ΡΠ°ΡΡΠΈ ΠΈ ΡΠ΅ ΡΡΠ·Π΄Π°Π²Π°Ρ Π²ΡΡΠ·ΠΊΠΈ Ρ Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ.
β’ ΠΡΠ½ΠΎΠ²Π½Π° Π²Π°Π»ΠΈΠ΄Π°ΡΠΈΡ. Π’Π°ΠΊΠΈΠ²Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΡΡΠΎ ΡΠ° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠ°Π½ΠΈ.
Π’ΡΡΠ±Π²Π° Π΄Π° ΠΏΡΠΎΡΠ»Π΅Π΄ΠΈΠΌ:
β ΠΈΠΌΠ° Π»ΠΈ Dockerfile;
β ΠΈΠΌΠ° Π»ΠΈ app.toml;
β Π½Π°Π»ΠΈΡΠ½Π° Π»ΠΈ Π΅ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ;
β Π½Π°ΡΠ΅Π΄Π΅Π½ΠΈ Π»ΠΈ ΡΠ° Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈΡΠ΅;
β Π·Π°Π΄Π°Π΄Π΅Π½ΠΈ Π»ΠΈ ΡΠ° ΠΏΡΠ°Π²ΠΈΠ»Π° Π·Π° Π°Π»Π΅ΡΡΠΈ.
ΠΠΎ ΠΏΠΎΡΠ»Π΅Π΄Π½Π°ΡΠ° ΡΠΎΡΠΊΠ°: ΡΠΎΠ±ΡΡΠ²Π΅Π½ΠΈΠΊΡΡ Π½Π° ΡΡΠ»ΡΠ³Π°ΡΠ° ΡΠ°ΠΌ ΡΠΊΠ°Π·Π²Π°, ΠΊΠ°ΠΊΠ²ΠΈ ΠΌΠ΅ΡΡΠΈΠΊΠΈ Π·Π° ΠΏΡΠΎΠ΄ΡΠΊΡΠ° Π΄Π° Π±ΡΠ΄Π°Ρ Π½Π°Π±Π»ΡΠ΄Π°Π²Π°Π½ΠΈ.
β’ ΠΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠ° Π½Π° Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ.
ΠΡΠ΅ ΠΎΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ½ΠΎ ΠΌΡΡΡΠΎ. ΠΠ·Π³Π»Π΅ΠΆΠ΄Π° ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΠΎ, Π½ΠΎ Π²ΡΠΏΡΠ΅ΠΊΠΈ ΡΠΎΠ²Π° Π΅ ΡΠ΅ΠΊΠΎΡΠ΄Π½ΠΎ βΡΠ΅ΡΡΠΎ Π·Π°Π±ΡΠ°Π²ΡΠ΅ΠΌΠΎβ, Π° ΠΎΡΡΠ°ΠΌ ΠΈ ΡΡΠ·Π²ΠΈΠΌΠΎ Π·Π²Π΅Π½ΠΎ Π² Π²Π΅ΡΠΈΠ³Π°ΡΠ°.
ΠΠ΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ Π΅ Π΄Π° ΠΈΠΌΠ° Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ Π·Π° Π²ΡΠ΅ΠΊΠΈ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡ. ΠΠΊΠ»ΡΡΠ²Π° ΡΠ»Π΅Π΄Π½ΠΈΡΠ΅ Π±Π»ΠΎΠΊΠΎΠ²Π΅.
I. ΠΡΠ°ΡΠΊΠΎ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π½Π° ΡΡΠ»ΡΠ³Π°ΡΠ°. ΠΡΠΊΠ²Π°Π»Π½ΠΎ Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΈΠ·ΡΠ΅ΡΠ΅Π½ΠΈΡ Π·Π° ΡΠΎΠ²Π°, ΠΊΠ°ΠΊΠ²ΠΎ ΠΏΡΠ°Π²ΠΈ ΠΈ Π·Π° ΠΊΠ°ΠΊΠ²ΠΎ ΡΠ»ΡΠΆΠΈ.
II. ΠΡΡΠ·ΠΊΠ° ΠΊΡΠΌ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠ°ΡΠ° Π½Π° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°ΡΠ°. ΠΠ°ΠΆΠ½ΠΎ Π΅, Π·Π° Π΄Π° ΠΌΠΎΠΆΠ΅ ΠΏΡΠΈ Π±ΡΡΠ· ΠΏΠΎΠ³Π»Π΅Π΄ Π΄Π° ΡΠ΅ ΡΠ°Π·Π±Π΅ΡΠ΅, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ Π»ΠΈ Redis Π·Π° ΠΊΠ΅ΡΠΈΡΠ°Π½Π΅ ΠΈΠ»ΠΈ ΠΊΠ°ΡΠΎ ΠΎΡΠ½ΠΎΠ²Π½ΠΎ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ Π½Π° Π΄Π°Π½Π½ΠΈ Π² ΠΏΠΎΡΡΠΎΡΠ½Π΅Π½ ΡΠ΅ΠΆΠΈΠΌ. Π ΠΠ²ΠΈΡΠΎ Π² ΠΌΠΎΠΌΠ΅Π½ΡΠ° ΡΠΎΠ²Π° Π΅ Π²ΡΡΠ·ΠΊΠ° ΠΊΡΠΌ Confluence.
III. Runbook. ΠΡΠ°ΡΠΊΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ Π·Π° ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΡΡΠ»ΡΠ³Π°ΡΠ° ΠΈ ΠΎΡΠΎΠ±Π΅Π½ΠΎΡΡΠΈΡΠ΅ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ° Ρ Π½Π΅Ρ.
IV. FAQ, ΠΊΡΠ΄Π΅ΡΠΎ Π±ΠΈ Π±ΠΈΠ»ΠΎ Π΄ΠΎΠ±ΡΠ΅ Π΄Π° ΠΏΡΠ΅Π΄Π²ΠΈΠ΄ΠΈΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈΡΠ΅, Ρ ΠΊΠΎΠΈΡΠΎ Π²Π°ΡΠΈΡΠ΅ ΠΊΠΎΠ»Π΅Π³ΠΈ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ΅ ΡΠ±Π»ΡΡΠΊΠ°Ρ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ° Ρ ΡΡΠ»ΡΠ³Π°ΡΠ°.
V. ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π½Π° endpoints Π·Π° API. ΠΠΊΠΎ ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎ Π½Π΅ ΡΡΠ΅ ΠΏΠΎΡΠΎΡΠΈΠ»ΠΈ Π΄Π΅ΡΡΠΈΠ½Π°ΡΠΈΠΈ, Π²Π΅ΡΠΎΡΡΠ½ΠΎ Π²Π°ΡΠΈΡΠ΅ ΠΊΠΎΠ»Π΅Π³ΠΈ, ΡΠΈΠΈΡΠΎ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΠ·ΠΈ ΡΠ° ΡΠ²ΡΡΠ·Π°Π½ΠΈ Ρ Π²Π°ΡΠΈΡ, ΡΠ΅ ΠΏΠ»Π°ΡΠ°Ρ Π·Π° ΡΠΎΠ²Π°. Π ΠΌΠΎΠΌΠ΅Π½ΡΠ° Π·Π° ΡΠΎΠ²Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ Swagger ΠΈ Π½Π°ΡΠ΅ΡΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅, Π½Π°ΡΠ΅ΡΠ΅Π½ΠΎ brief.
VI. ΠΡΠΈΠΊΠ΅ΡΠΈ. ΠΠ»ΠΈ ΠΌΠ°ΡΠΊΠ΅ΡΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΏΠΎΠΊΠ°Π·Π²Π°Ρ ΠΊΡΠΌ ΠΊΠΎΠΉ ΠΏΡΠΎΠ΄ΡΠΊΡ, ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡ ΠΈΠ»ΠΈ ΡΡΡΡΠΊΡΡΡΠ½ΠΎ Π·Π²Π΅Π½ΠΎ Π½Π° ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡΡΠ° ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈ ΡΡΠ»ΡΠ³Π°ΡΠ°. ΠΠΎΠΌΠ°Π³Π°Ρ Π΄Π° ΡΠ°Π·Π±Π΅ΡΠ΅ΡΠ΅ Π±ΡΡΠ·ΠΎ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π°Π»ΠΈ Π½Π΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ²Π°ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡ, ΠΊΠΎΡΡΠΎ Π²Π°ΡΠΈΡΠ΅ ΠΊΠΎΠ»Π΅Π³ΠΈ ΡΠ° ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΠ»ΠΈ ΠΏΡΠ΅Π΄ΠΈ ΡΠ΅Π΄ΠΌΠΈΡΠ° Π·Π° ΡΡΡΠΈΡ Π±ΠΈΠ·Π½Π΅Ρ ΡΠ½ΠΈΡ.
VII. Π‘ΠΎΠ±ΡΡΠ²Π΅Π½ΠΈΠΊ ΠΈΠ»ΠΈ ΡΠΎΠ±ΡΡΠ²Π΅Π½ΠΈΡΠΈ Π½Π° ΡΡΠ»ΡΠ³Π°ΡΠ°. Π ΠΏΠΎΠ²Π΅ΡΠ΅ΡΠΎ ΡΠ»ΡΡΠ°ΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° PaaS ΡΠΎΠΉ β ΠΈΠ»ΠΈ ΡΠ΅ β ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ, Π½ΠΎ Π·Π° ΡΠΈΠ³ΡΡΠ½ΠΎΡΡ ΠΈΠ·ΠΈΡΠΊΠ²Π°ΠΌΠ΅ ΠΎΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° Π΄Π° Π³ΠΈ ΠΏΠΎΡΠΎΡΠΈ ΠΈ ΡΡΡΠ½ΠΎ.
ΠΠ°ΠΊΡΠ°Ρ, Π΄ΠΎΠ±ΡΠ° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ° Π΅ Π΄Π° ΡΠ΅ ΠΏΡΠ°Π²ΠΈ ΠΏΡΠ΅Π³Π»Π΅Π΄ Π½Π° Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡΡΠ°, ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ Π½Π° ΠΏΡΠ΅Π³Π»Π΅Π΄Π° Π½Π° ΠΊΠΎΠ΄Π°.
Continuous Integration
- ΠΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠ° Π½Π° ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈΡΠ΅.
- Π‘ΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½ Π² TeamCity.
- ΠΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π΅ Π½Π° ΠΏΡΠ°Π²Π°.
- ΠΠ°ΠΌΠΈΡΠ°Π½Π΅ Π½Π° ΡΠΎΠ±ΡΡΠ²Π΅Π½ΠΈΡΠΈΡΠ΅ Π½Π° ΡΡΠ»ΡΠ³Π°ΡΠ°. Π’ΡΠΊ Π΅ Ρ ΠΈΠ±ΡΠΈΠ΄Π½Π° ΡΡ Π΅ΠΌΠ° β ΡΡΡΠ½ΠΎ ΠΌΠ°ΡΠΊΠΈΡΠ°Π½Π΅ ΠΈ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»Π½Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΡ ΠΎΡ PaaS. ΠΡΠ»Π½Π°ΡΠ° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΡ Π΄Π°Π²Π° Π³ΡΠ΅ΡΠΊΠΈ ΠΏΡΠΈ ΠΏΡΠ΅Ρ Π²ΡΡΠ»ΡΠ½Π΅ Π½Π° ΡΡΠ»ΡΠ³ΠΈΡΠ΅ Π·Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° Π΄ΡΡΠ³ Π΅ΠΊΠΈΠΏ Π·Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΠΈΠ»ΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π°ΠΊΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΡΡ Π½Π° ΡΡΠ»ΡΠ³Π°ΡΠ° ΡΠ΅ Π΅ ΡΠ²ΠΎΠ»Π½ΠΈΠ».
- Π Π΅Π³ΠΈΡΡΡΠ°ΡΠΈΡ Π½Π° ΡΡΠ»ΡΠ³Π°ΡΠ° Π² Atlas (Π²ΠΆ. ΠΏΠΎ-Π³ΠΎΡΠ΅). Π‘ Π²ΡΠΈΡΠΊΠΈ Π½Π΅Π³ΠΎΠ²ΠΈ ΡΠΎΠ±ΡΡΠ²Π΅Π½ΠΈΡΠΈ ΠΈ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ.
- ΠΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈΡΠ΅. ΠΡΠΎΠ²Π΅ΡΡΠ²Π°ΠΌΠ΅ Π΄Π°Π»ΠΈ ΡΡΠ΅Π΄ ΡΡΡ Π½ΡΠΌΠ° ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»Π½ΠΎ ΠΎΠΏΠ°ΡΠ½ΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π² Π΅Π΄Π½Π° ΠΎΡ ΡΡΡ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΏΠΎΡΠ²ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π° alter table ΠΈΠ»ΠΈ Π½Π΅ΡΠΎ Π΄ΡΡΠ³ΠΎ, ΡΠΏΠΎΡΠΎΠ±Π½ΠΎ Π΄Π° Π½Π°ΡΡΡΠΈ ΡΡΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΡΠ° Π½Π° ΡΡ Π΅ΠΌΠ°ΡΠ° Π½Π° Π΄Π°Π½Π½ΠΈΡΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π²Π΅ΡΡΠΈΠΈ Π½Π° ΡΡΠ»ΡΠ³Π°ΡΠ°. Π’ΠΎΠ³Π°Π²Π° ΠΌΠΈΠ³ΡΠ°ΡΠΈΡΡΠ° Π½Π΅ ΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°, Π° ΡΠ΅ ΠΏΠΎΡΡΠ°Π²Ρ Π² Π°Π±ΠΎΠ½Π°ΠΌΠ΅Π½Ρ β PaaS ΡΡΡΠ±Π²Π° Π΄Π° ΡΠΈΠ³Π½Π°Π»ΠΈΠ·ΠΈΡΠ° Π½Π° ΡΠΎΠ±ΡΡΠ²Π΅Π½ΠΈΠΊΠ° Π½Π° ΡΡΠ»ΡΠ³Π°ΡΠ°, ΠΊΠΎΠ³Π°ΡΠΎ ΡΡΠ°Π½Π΅ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎ Π΄Π° ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠΈ.
Bake
Π‘Π»Π΅Π΄Π²Π°ΡΠΈΡΡ Π΅ΡΠ°ΠΏ Π΅ ΠΎΠΏΠ°ΠΊΠΎΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΡΡΠ»ΡΠ³ΠΈΡΠ΅ ΠΏΡΠ΅Π΄ΠΈ Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅.
- Π‘Π³Π»ΠΎΠ±ΡΠ²Π°Π½Π΅ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ. ΠΠΎ ΠΊΠ»Π°ΡΠΈΡΠ΅ΡΠΊΠΈΡ Π½Π°ΡΠΈΠ½ β Π² Docker ΠΎΠ±ΡΠ°Π·.
- ΠΠ΅Π½Π΅ΡΠΈΡΠ°Π½Π΅ Π½Π° Helm ΡΠ°ΡΡΠΎΠ²Π΅ Π·Π° ΡΠ°ΠΌΠ°ΡΠ° ΡΡΠ»ΡΠ³Π° ΠΈ ΡΠ²ΡΡΠ·Π°Π½ΠΈΡΠ΅ Ρ Π½Π΅Ρ ΡΠ΅ΡΡΡΡΠΈ. ΠΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ Π·Π° Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ ΠΈ ΠΊΠ΅Ρ. Π’Π΅ ΡΠ΅ ΡΡΠ·Π΄Π°Π²Π°Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ Π² ΡΡΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΡΠ° app.toml, ΠΊΠΎΡΡΠΎ Π΅ Π±ΠΈΠ»Π° Π³Π΅Π½Π΅ΡΠΈΡΠ°Π½Π° Π½Π° Π΅ΡΠ°ΠΏΠ° Π½Π° CLI-push.
- Π‘ΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° Π±ΠΈΠ»Π΅ΡΠΈ Π·Π° Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠΈΡΠ΅ Π·Π° ΠΎΡΠ²Π°ΡΡΠ½Π΅ Π½Π° ΠΏΠΎΡΡΠΎΠ²Π΅ (ΠΊΠΎΠ³Π°ΡΠΎ ΡΠΎΠ²Π° Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ).
- ΠΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° ΠΌΠΎΠ΄ΡΠ»Π½ΠΈ ΡΠ΅ΡΡΠΎΠ²Π΅ ΠΈ ΠΈΠ·ΡΠΈΡΠ»ΡΠ²Π°Π½Π΅ Π½Π° code coverage.. ΠΠΊΠΎ ΠΏΠΎΠΊΡΠΈΡΠΈΠ΅ΡΠΎ Π½Π° ΠΊΠΎΠ΄Π° Π΅ ΠΏΠΎΠ΄ Π·Π°Π΄Π°Π΄Π΅Π½ΠΎΡΠΎ ΠΏΡΠ°Π³ΠΎΠ²ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, Π²Π΅ΡΠΎΡΡΠ½ΠΎ ΡΡΠ»ΡΠ³Π°ΡΠ° Π½ΡΠΌΠ° Π΄Π° ΠΏΡΠ΅ΠΌΠΈΠ½Π΅ Π½Π° Π΄Π΅ΠΏΠ»ΠΎΠΉ. ΠΠΊΠΎ Π΅ Π½Π° Π³ΡΠ°Π½ΠΈΡΠ°ΡΠ° Π½Π° Π΄ΠΎΠΏΡΡΡΠΈΠΌΠΎΡΠΎ, ΡΡΠ»ΡΠ³Π°ΡΠ° ΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈ "ΠΏΠ΅ΡΠΈΠΌΠΈΡΡΠΈΡΠ΅Π½" ΠΊΠΎΠ΅ΡΠΈΡΠΈΠ΅Π½Ρ: Π² ΡΠ°ΠΊΡΠ² ΡΠ»ΡΡΠ°ΠΉ, ΠΏΡΠΈ Π»ΠΈΠΏΡΠ° Π½Π° ΠΏΠΎΠ΄ΠΎΠ±ΡΠ΅Π½ΠΈΡ Π½Π° ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Ρ Π²ΡΠ΅ΠΌΠ΅ΡΠΎ, ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΡΡ ΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅, ΡΠ΅ Π½ΡΠΌΠ° ΠΏΡΠΎΠ³ΡΠ΅Ρ ΠΏΠΎ ΡΠ°ΡΡΡΠ° Ρ ΡΠ΅ΡΡΠΎΠ²Π΅ΡΠ΅ (ΠΈ Π±ΠΈ Π±ΠΈΠ»ΠΎ Π΄ΠΎΠ±ΡΠ΅ Π½Π΅ΡΠΎ Π΄Π° ΡΠ΅ Π½Π°ΠΏΡΠ°Π²ΠΈ ΠΏΠΎ Π²ΡΠΏΡΠΎΡΠ°).
- ΠΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡΡΠ° ΠΏΠΎ ΠΏΠ°ΠΌΠ΅Ρ ΠΈ CPU. ΠΡΠ½ΠΎΠ²Π½ΠΎ ΠΏΠΈΡΠ΅ΠΌ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠΈ Π½Π° Golang ΠΈ Π³ΠΈ ΡΡΠ°ΡΡΠΈΡΠ°ΠΌΠ΅ Π² Kubernetes. ΠΡΡΡΠΊ ΠΈΠ΄Π²Π° Π΅Π΄Π½Π° ΠΎΡΠΎΠ±Π΅Π½ΠΎΡΡ, ΡΠ²ΡΡΠ·Π°Π½Π° Ρ ΠΎΡΠΎΠ±Π΅Π½ΠΎΡΡΠΈΡΠ΅ Π½Π° Π΅Π·ΠΈΠΊΠ° Golang: ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ ΠΏΡΠΈ ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ Π²ΡΠΈΡΠΊΠΈ ΡΠ΄ΡΠ° Π½Π° ΠΌΠ°ΡΠΈΠ½Π°ΡΠ°, Π°ΠΊΠΎ Π½Π΅ Π±ΡΠ΄Π΅ Π·Π°Π΄Π°Π΄Π΅Π½Π° ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π°ΡΠ° GOMAXPROCS ΡΠ²Π½ΠΎ ΠΈ ΠΊΠΎΠ³Π°ΡΠΎ Π½Π° Π΅Π΄Π½Π° ΠΌΠ°ΡΠΈΠ½Π° ΡΠ΅ ΡΡΠ°ΡΡΠΈΡΠ°Ρ Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΡΠ°ΠΊΠΈΠ²Π° ΡΡΠ»ΡΠ³ΠΈ, ΡΠ΅ Π·Π°ΠΏΠΎΡΠ²Π°Ρ Π΄Π° ΡΠ΅ ΠΊΠΎΠ½ΠΊΡΡΠΈΡΠ°Ρ Π·Π° ΡΠ΅ΡΡΡΡΠΈ, ΠΏΡΠ΅ΡΠ΅ΠΉΠΊΠΈ ΡΠΈ Π²Π·Π°ΠΈΠΌΠ½ΠΎ. ΠΠ° Π³ΡΠ°ΡΠΈΠΊΠΈΡΠ΅ ΠΏΠΎ-Π΄ΠΎΠ»Ρ Π΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ ΠΊΠ°ΠΊ ΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½Ρ Π²ΡΠ΅ΠΌΠ΅ΡΠΎ Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅, Π°ΠΊΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ Π±ΡΠ΄Π΅ ΡΡΠ°ΡΡΠΈΡΠ°Π½ΠΎ Π±Π΅Π· ΠΊΠΎΠ½ΠΊΡΡΠ΅Π½ΡΠΈΡ ΠΈ Π² ΡΠ΅ΠΆΠΈΠΌ Π½Π° ΡΡΡΠ΅Π²Π½ΠΎΠ²Π°Π½ΠΈΠ΅ Π·Π° ΡΠ΅ΡΡΡΡΠΈ. (ΠΠ·ΡΠΎΡΠ½ΠΈΡΠΈΡΠ΅ Π½Π° Π³ΡΠ°ΡΠΈΠΊΠΈΡΠ΅ ΡΠ° Π½Π°Π»ΠΈΡΠ½ΠΈ) ).
ΠΡΠ΅ΠΌΠ΅ Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅, ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ β ΠΏΠΎ-Π΄ΠΎΠ±ΡΠ΅. ΠΠ°ΠΊΡΠΈΠΌΡΠΌ: 643ms, ΠΌΠΈΠ½ΠΈΠΌΡΠΌ: 42ms. Π‘Π½ΠΈΠΌΠΊΠ°ΡΠ° Π΅ ΠΊΠ»ΠΈΠΊΠ°Π΅ΠΌΠ°.
ΠΡΠ΅ΠΌΠ΅ Π·Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ, ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ β ΠΏΠΎ-Π΄ΠΎΠ±ΡΠ΅. ΠΠ°ΠΊΡΠΈΠΌΡΠΌ: 14091 ns, ΠΌΠΈΠ½ΠΈΠΌΡΠΌ: 151 ns. Π‘Π½ΠΈΠΌΠΊΠ°ΡΠ° Π΅ ΠΊΠ»ΠΈΠΊΠ°Π΅ΠΌΠ°.
ΠΠ° Π΅ΡΠ°ΠΏΠ° Π½Π° ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠ° Π½Π° ΡΠ±ΠΎΡΠΊΠ°ΡΠ° ΡΠ°Π·ΠΈ ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π° ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ Π·Π°Π΄Π°Π΄Π΅Π½Π° ΡΠ²Π½ΠΎ ΠΈΠ»ΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° Π½Π° ΠΌΠΎΠΌΡΠ΅ΡΠ°ΡΠ° ΠΎΡ Uber.
ΠΠ΅ΠΏΠ»ΠΎΠΉ
β’ ΠΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° ΠΊΠΎΠ½Π²Π΅Π½ΡΠΈΠΈΡΠ΅. ΠΡΠ΅Π΄ΠΈ Π΄Π° Π·Π°ΠΏΠΎΡΠ½Π΅ΠΌ Π΄Π° Π΄ΠΎΡΡΠ°Π²ΡΠΌΠ΅ ΡΠ±ΠΎΡΠΊΠΈΡΠ΅ Π½Π° ΡΡΠ»ΡΠ³Π°ΡΠ° Π² ΠΏΠ»Π°Π½ΠΈΡΠ°Π½ΠΈΡΠ΅ ΡΡΠ΅Π΄ΠΈ, Π΅ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° ΡΠ΅ ΠΏΡΠΎΠ²Π΅ΡΠΈ ΡΠ»Π΅Π΄Π½ΠΎΡΠΎ:
β API ΠΊΡΠ°ΠΉΠ½ΠΈ ΡΠΎΡΠΊΠΈ.
β Π‘ΡΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ Π½Π° ΠΎΡΠ³ΠΎΠ²ΠΎΡΠΈΡΠ΅ ΠΎΡ API ΠΊΡΠ°ΠΉΠ½ΠΈΡΠ΅ ΡΠΎΡΠΊΠΈ Ρ ΡΡ
Π΅ΠΌΠ°ΡΠ°.
β Π€ΠΎΡΠΌΠ°Ρ Π½Π° Π»ΠΎΠ³ΠΎΠ²Π΅ΡΠ΅.
β ΠΠ°Π΄Π°Π²Π°Π½Π΅ Π½Π° Π·Π°Π³Π»Π°Π²ΠΊΠΈ ΠΏΡΠΈ Π·Π°ΡΠ²ΠΊΠΈΡΠ΅ ΠΊΡΠΌ ΡΡΠ»ΡΠ³Π°ΡΠ° (Π² ΠΌΠΎΠΌΠ΅Π½ΡΠ° ΡΠΎΠ²Π° ΠΏΡΠ°Π²ΠΈ netramesh)
β ΠΠ°Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΌΠ°ΡΠΊΠ΅Ρ Π½Π° ΡΠΎΠ±ΡΡΠ²Π΅Π½ΠΈΠΊΠ° ΠΏΡΠΈ ΠΈΠ·ΠΏΡΠ°ΡΠ°Π½Π΅ Π½Π° ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΡ Π² ΡΠΈΠ½Π°ΡΠ° (event bus). Π’ΠΎΠ²Π° Π΅ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ Π·Π° ΠΏΡΠΎΡΠ»Π΅Π΄ΡΠ²Π°Π½Π΅ Π½Π° ΡΠ²ΡΡΠ·Π°Π½ΠΎΡΡΡΠ° Π½Π° ΡΡΠ»ΡΠ³ΠΈΡΠ΅ ΡΡΠ΅Π· ΡΠΈΠ½Π°ΡΠ°. Π ΡΠΈΠ½Π°ΡΠ° ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΡΠ°ΡΠ°Ρ ΠΊΠ°ΠΊΡΠΎ ΠΈΠ΄Π΅ΠΌΠΏΠΎΡΠ΅Π½ΡΠ½ΠΈ Π΄Π°Π½Π½ΠΈ, ΠΊΠΎΠΈΡΠΎ Π½Π΅ ΠΏΠΎΠ²ΠΈΡΠ°Π²Π°Ρ ΡΠ²ΡΡΠ·Π°Π½ΠΎΡΡΡΠ° Π½Π° ΡΡΠ»ΡΠ³ΠΈΡΠ΅ (ΠΊΠΎΠ΅ΡΠΎ Π΅ Π΄ΠΎΠ±ΡΠ΅), ΡΠ°ΠΊΠ° ΠΈ Π±ΠΈΠ·Π½Π΅Ρ Π΄Π°Π½Π½ΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΠ²Π΅Π»ΠΈΡΠ°Π²Π°Ρ ΡΠ²ΡΡΠ·Π°Π½ΠΎΡΡΡΠ° Π½Π° ΡΡΠ»ΡΠ³ΠΈΡΠ΅ (ΠΊΠΎΠ΅ΡΠΎ Π΅ ΠΌΠ½ΠΎΠ³ΠΎ Π»ΠΎΡΠΎ!). Π ΡΠΎΡΠ½ΠΎ Π² ΠΌΠΎΠΌΠ΅Π½ΡΠ°, ΠΊΠΎΠ³Π°ΡΠΎ ΡΠ°Π·ΠΈ ΡΠ²ΡΡΠ·Π°Π½ΠΎΡΡ ΡΡΠ°Π²Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌ, ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ΡΠΎ ΠΊΠΎΠΉ ΠΏΠΈΡΠ΅ ΠΈ ΡΠ΅ΡΠ΅ ΡΠΈΠ½Π°ΡΠ° ΠΏΠΎΠΌΠ°Π³Π° ΠΏΡΠ°Π²ΠΈΠ»Π½ΠΎ Π΄Π° ΡΠ΅ ΡΠ°Π·Π΄Π΅Π»ΡΡ ΡΡΠ»ΡΠ³ΠΈΡΠ΅.
ΠΡΠΌ ΠΌΠΎΠΌΠ΅Π½ΡΠ° Π² ΠΠ²ΠΈΡΠΎ ΠΊΠΎΠ½Π²Π΅Π½ΡΠΈΠΈΡΠ΅ Π½Π΅ ΡΠ° ΠΌΠ½ΠΎΠ³ΠΎ, Π½ΠΎ ΡΠ΅Ρ Π½ΠΈΡΡ Π±ΡΠΎΠΉ ΡΠ΅ ΡΠ²Π΅Π»ΠΈΡΠ°Π²Π°. ΠΠΎΠ»ΠΊΠΎΡΠΎ ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ ΡΠΏΠΎΡΠ°Π·ΡΠΌΠ΅Π½ΠΈΡ Π² ΡΠΎΡΠΌΠ°, ΡΡΠ½Π° ΠΈ ΡΠ΄ΠΎΠ±Π½Π° Π·Π° Π΅ΠΊΠΈΠΏΠ°, ΡΠΎΠ»ΠΊΠΎΠ²Π° ΠΏΠΎ-Π»Π΅ΡΠ½ΠΎ Π΅ Π΄Π° ΡΠ΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° ΡΡΠ³Π»Π°ΡΡΠ²Π°Π½ΠΎΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΠ·ΠΈΡΠ΅.
Π‘ΠΈΠ½ΡΠ΅ΡΠΈΡΠ½ΠΈ ΡΠ΅ΡΡΠΎΠ²Π΅
β’ Π’Π΅ΡΡΠ²Π°Π½Π΅ Π² Π·Π°ΡΠ²ΠΎΡΠ΅Π½ ΠΊΠΎΠ½ΡΡΡ. Π ΠΌΠΎΠΌΠ΅Π½ΡΠ° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ ΠΎΠΏΠ΅Π½ΡΠΎΡΡΠ½ΠΈΡ . ΠΡΡΠ²ΠΎ, ΡΠΎΠΉ Π·Π°ΠΏΠΈΡΠ²Π° ΡΠ΅Π°Π»Π½ΠΎΡΠΎ Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅ Π½Π° ΡΡΠ»ΡΠ³Π°ΡΠ°, ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° β ΠΊΠ°ΠΊ ΡΠΎΡΠ½ΠΎ Π² Π·Π°ΡΠ²ΠΎΡΠ΅Π½ΠΈΡ ΠΊΠΎΠ½ΡΡΡ β Π³ΠΎ Π΅ΠΉΠΌΡΠ»ΠΈΡΠ°.
β’ ΠΠ°ΡΠΎΠ²Π°ΡΠ²Π°ΡΠΎ ΡΠ΅ΡΡΠ²Π°Π½Π΅. Π‘ΡΠ°ΡΠ°Π΅ΠΌ ΡΠ΅ Π²ΡΠΈΡΠΊΠΈ ΡΡΠ»ΡΠ³ΠΈ Π΄Π° Π΄ΠΎΠ²Π΅Π΄Π΅ΠΌ Π΄ΠΎ ΠΎΠΏΡΠΈΠΌΠ°Π»Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ. Π Π²ΡΠΈΡΠΊΠΈ Π²Π΅ΡΡΠΈΠΈ Π½Π° Π²ΡΡΠΊΠ° ΡΡΠ»ΡΠ³Π° ΡΡΡΠ±Π²Π° Π΄Π° Π±ΡΠ΄Π°Ρ ΠΏΠΎΠ΄Π»Π°Π³Π°Π½ΠΈ Π½Π° Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°ΡΠΎ ΡΠ΅ΡΡΠ²Π°Π½Π΅ β ΠΏΠΎ ΡΠΎΠ·ΠΈ Π½Π°ΡΠΈΠ½ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌ ΡΠ΅ΠΊΡΡΠ°ΡΠ° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ Π½Π° ΡΡΠ»ΡΠ³Π°ΡΠ° ΠΈ ΡΠ°Π·Π»ΠΈΠΊΠ°ΡΠ° Ρ ΠΏΡΠ΅Π΄ΠΈΡΠ½ΠΈΡΠ΅ Π²Π΅ΡΡΠΈΠΈ Π½Π° ΡΡΡΠ°ΡΠ° ΡΡΠ»ΡΠ³Π°. ΠΠΊΠΎ ΡΠ»Π΅Π΄ ΡΠΏΠ΄Π΅ΠΉΡ Π½Π° ΡΡΠ»ΡΠ³Π°ΡΠ° Π½Π΅ΠΉΠ½Π°ΡΠ° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ Π΅ ΡΠΏΠ°Π΄Π½Π°Π»Π° Ρ 50%, ΡΠΎΠ²Π° Π΅ ΡΡΠ½ΠΈΡΡ ΡΠΈΠ³Π½Π°Π» Π·Π° ΡΠΎΠ±ΡΡΠ²Π΅Π½ΠΈΡΠΈΡΠ΅ Ρ: ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ Π·Π°Π΄ΡΠ»Π±ΠΎΡΠ°Ρ Π² ΠΊΠΎΠ΄Π° ΠΈ Π΄Π° ΠΏΠΎΠΏΡΠ°Π²ΡΡ ΡΠΈΡΡΠ°ΡΠΈΡΡΠ°.
ΠΡ ΡΡΠ±ΡΠ°Π½ΠΈΡΠ΅ Π΄Π°Π½Π½ΠΈ ΡΠ΅ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΠΈΠΌ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π·Π° Π΄Π° ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡΠ°Π²ΠΈΠ»Π½ΠΎ Π΄Π° ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°ΠΌΠ΅ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ ΠΌΠ°ΡΠ°Π±ΠΈΡΠ°Π½Π΅ ΠΈ Π² ΠΊΡΠ°ΠΉΠ½Π° ΡΠΌΠ΅ΡΠΊΠ° Π΄Π° ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌ Π΄ΠΎΠΊΠΎΠ»ΠΊΠΎ ΡΡΠ»ΡΠ³Π°ΡΠ° ΠΏΠΎΠ΄Π»Π΅ΠΆΠΈ Π½Π° ΠΌΠ°ΡΠ°Π±ΠΈΡΠ°Π½Π΅.
ΠΡΠΈ Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°ΡΠΎ ΡΠ΅ΡΡΠ²Π°Π½Π΅ ΠΏΡΠΎΠ²Π΅ΡΡΠ²Π°ΠΌΠ΅ Π΄Π°Π»ΠΈ ΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΡΠ΅ΡΡΡΡΠΈ ΠΎΡΠ³ΠΎΠ²Π°ΡΡ Π½Π° Π·Π°Π΄Π°Π΄Π΅Π½ΠΈΡΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ. Π ΡΠ΅ ΡΡΡΡΠ΅Π΄ΠΎΡΠΎΡΠ°Π²Π°ΠΌΠ΅ ΠΎΡΠ½ΠΎΠ²Π½ΠΎ Π²ΡΡΡ Ρ Π΅ΠΊΡΡΡΠ΅ΠΌΡΠΌΠΈΡΠ΅.
a) ΠΠ»Π΅Π΄Π°ΠΌΠ΅ Π½Π° ΠΎΠ±ΡΠΎΡΠΎ Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅.
β ΠΠΊΠΎ Π΅ ΡΠ²ΡΡΠ΄Π΅ Π½ΠΈΡΠΊΠΎ β Π²Π΅ΡΠΎΡΡΠ½ΠΎ Π½Π΅ΡΠΎ ΠΈΠ·ΠΎΠ±ΡΠΎ Π½Π΅ ΡΠ°Π±ΠΎΡΠΈ, Π°ΠΊΠΎ Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅ΡΠΎ ΡΡΠ·ΠΊΠΎ Π΅ ΡΠΏΠ°Π΄Π½Π°Π»ΠΎ Ρ Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΏΡΡΠΈ.
β ΠΠΊΠΎ Π΅ ΡΠ²ΡΡΠ΄Π΅ Π²ΠΈΡΠΎΠΊΠΎ β Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠ° Π΅ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ.
b) ΠΠ»Π΅Π΄Π°ΠΌΠ΅ Π½Π° ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ΡΠΎ ΠΏΠΎ RPS.
Π’ΡΠΊ ΡΠ»Π΅Π΄ΠΈΠΌ ΡΠ°Π·Π»ΠΈΠΊΠ°ΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ΅ΠΊΡΡΠ°ΡΠ° ΠΈ ΠΏΡΠ΅Π΄ΠΈΡΠ½Π°ΡΠ° Π²Π΅ΡΡΠΈΡ, ΠΊΠ°ΠΊΡΠΎ ΠΈ ΠΎΠ±ΡΠΎΡΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π°ΠΊΠΎ ΡΡΠ»ΡΠ³Π°ΡΠ° ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ 100 rps β Π·Π½Π°ΡΠΈ Π΅ ΠΈΠ»ΠΈ Π·Π»Π΅ Π½Π°ΠΏΠΈΡΠ°Π½Π°, ΠΈΠ»ΠΈ ΡΠΎΠ²Π° Π΅ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠ° Ρ, Π½ΠΎ Π² ΠΊΠ°ΠΊΡΠ²ΡΠΎ ΠΈ ΡΠ»ΡΡΠ°ΠΉ, ΡΠΎΠ²Π° Π΅ ΠΏΠΎΠ²ΠΎΠ΄ Π΄Π° ΠΏΠΎΠ³Π»Π΅Π΄Π½Π΅ΠΌ Π²Π½ΠΈΠΌΠ°ΡΠ΅Π»Π½ΠΎ Π½Π° ΡΡΠ»ΡΠ³Π°ΡΠ°.
ΠΠΊΠΎ ΠΏΡΠΊ RPS Π΅ ΡΠ²ΡΡΠ΄Π΅ ΠΌΠ½ΠΎΠ³ΠΎ, ΡΠΎΠ³Π°Π²Π° Π²Π΅ΡΠΎΡΡΠ½ΠΎ ΠΈΠΌΠ° Π½ΡΠΊΠ°ΠΊΠ²Π° Π³ΡΠ΅ΡΠΊΠ° ΠΈ Π½ΡΠΊΠΎΠΉ ΠΎΡ endpoint-ΠΎΠ²Π΅ΡΠ΅ Π΅ ΡΠΏΡΡΠ» Π΄Π° ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π° ΠΏΠΎΠ»Π΅Π·Π½Π°ΡΠ° Π½Π°ΡΠΎΠ²Π°ΡΠ΅Π½ΠΎΡΡ, Π° ΠΏΡΠΎΡΡΠΎ ΡΡΠ°Π±ΠΎΡΠ²Π° Π½ΡΠΊΠ°ΠΊΡΠ² return true;
Canary ΡΠ΅ΡΡΠΎΠ²Π΅
Π‘Π»Π΅Π΄ ΠΊΠ°ΡΠΎ ΠΌΠΈΠ½Π΅ΠΌ ΠΏΡΠ΅Π· ΡΠΈΠ½ΡΠ΅ΡΠΈΡΠ½ΠΈΡΠ΅ ΡΠ΅ΡΡΠΎΠ²Π΅, ΠΏΡΠΎΠ²Π΅ΡΡΠ²Π°ΠΌΠ΅ ΡΠ°Π±ΠΎΡΠ°ΡΠ° Π½Π° ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠ° Ρ ΠΌΠ°Π»ΡΠΊ Π±ΡΠΎΠΉ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ. ΠΠ°ΠΏΠΎΡΠ²Π°ΠΌΠ΅ Π²Π½ΠΈΠΌΠ°ΡΠ΅Π»Π½ΠΎ, Ρ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»Π½Π° ΡΠ°ΡΡ ΠΎΡ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΠΌΠ°ΡΠ° Π°ΡΠ΄ΠΈΡΠΎΡΠΈΡ Π½Π° ΡΡΠ»ΡΠ³Π°ΡΠ° β ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ ΠΎΡ 0,1%. ΠΠ° ΡΠΎΠ·ΠΈ Π΅ΡΠ°ΠΏ Π΅ ΠΌΠ½ΠΎΠ³ΠΎ Π²Π°ΠΆΠ½ΠΎ ΠΏΡΠ°Π²ΠΈΠ»Π½ΠΎ Π΄Π° ΡΠ΅ Π·Π°Π²Π΅Π΄Π°Ρ ΡΠ΅Ρ
Π½ΠΈΡΠ΅ΡΠΊΠΈΡΠ΅ ΠΈ ΠΏΡΠΎΠ΄ΡΠΊΡΠΎΠ²ΠΈ ΠΌΠ΅ΡΡΠΈΠΊΠΈ Π² ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³Π°, Π·Π° Π΄Π° ΠΏΠΎΠΊΠ°ΠΆΠ°Ρ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»Π½ΠΎ Π±ΡΡΠ·ΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π² ΡΡΠ»ΡΠ³Π°ΡΠ°. ΠΠΈΠ½ΠΈΠΌΠ°Π»Π½ΠΎΡΠΎ Π²ΡΠ΅ΠΌΠ΅ Π·Π° canary ΡΠ΅ΡΡ Π΅ 5 ΠΌΠΈΠ½ΡΡΠΈ, ΠΎΡΠ½ΠΎΠ²Π½ΠΎΡΠΎ β 2 ΡΠ°ΡΠ°. ΠΠ° ΡΠ»ΠΎΠΆΠ½ΠΈ ΡΡΠ»ΡΠ³ΠΈ Π·Π°Π΄Π°Π²Π°ΠΌΠ΅ Π²ΡΠ΅ΠΌΠ΅ΡΠΎ Π² ΡΡΡΠ΅Π½ ΡΠ΅ΠΆΠΈΠΌ.
ΠΠ½Π°Π»ΠΈΠ·ΠΈΡΠ°ΠΌΠ΅:
β ΠΌΠ΅ΡΡΠΈΠΊΠΈ, ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΠΈ Π·Π° Π΅Π·ΠΈΠΊΠ°, Π² ΡΠ°ΡΡΠ½ΠΎΡΡ, ΡΠ°Π±ΠΎΡΠ½ΠΈΡΠΈ php-fpm;
β Π³ΡΠ΅ΡΠΊΠΈ Π² Sentry;
β ΡΡΠ°ΡΡΡΠΈ Π½Π° ΠΎΡΠ³ΠΎΠ²ΠΎΡΠΈΡΠ΅;
β Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΠΎΡΠ³ΠΎΠ²ΠΎΡ (response time), ΡΠΎΡΠ½ΠΎ ΠΈ ΡΡΠ΅Π΄Π½ΠΎ;
β Π»Π°ΡΠ΅Π½ΡΠ½ΠΎΡΡ;
β ΠΈΠ·ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ, ΠΎΠ±ΡΠ°Π±ΠΎΡΠ΅Π½ΠΈ ΠΈ Π½Π΅ΠΎΠ±ΡΠ°Π±ΠΎΡΠ΅Π½ΠΈ;
β ΠΏΡΠΎΠ΄ΡΠΊΡΠΎΠ²ΠΈ ΠΌΠ΅ΡΡΠΈΠΊΠΈ.
Squeeze Testing
Π’Π΅ΡΡΡΡ ΡΡΠ΅Π· ΠΈΠ·ΡΡΠΈΡΠΊΠ²Π°Π½Π΅ ΡΡΡΠΎ ΡΠ΅ Π½Π°ΡΠΈΡΠ° ΡΠ΅ΡΡΠΈΡΠ°Π½Π΅ ΡΡΠ΅Π· Β«ΠΈΠ·ΠΏΠ»ΡΠ·Π²Π°Π½Π΅Β». ΠΠ΅ΡΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΡΡΠ° Π΅ Π²ΡΠ²Π΅Π΄Π΅Π½Π° Π² Netflix. ΠΡΠ½ΠΎΠ²Π½Π°ΡΠ° ΠΌΡ ΠΈΠ΄Π΅Ρ Π΅, ΡΠ΅ ΠΏΡΡΠ²ΠΎ Π·Π°ΠΏΡΠ»Π²Π°ΠΌΠ΅ Π΅Π΄ΠΈΠ½ ΠΈΠ½ΡΡΠ°Π½Ρ Ρ ΡΠ΅Π°Π»Π΅Π½ ΡΡΠ°ΡΠΈΠΊ Π΄ΠΎ ΠΎΡΠΊΠ°Π· ΠΈ ΠΏΠΎ ΡΠΎΠ·ΠΈ Π½Π°ΡΠΈΠ½ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠΌΠ΅ Π½Π΅Π³ΠΎΠ²ΠΈΡ ΠΏΡΠ΅Π΄Π΅Π». Π‘Π»Π΅Π΄ ΡΠΎΠ²Π° Π΄ΠΎΠ±Π°Π²ΡΠΌΠ΅ ΠΎΡΠ΅ Π΅Π΄ΠΈΠ½ ΠΈΠ½ΡΡΠ°Π½Ρ ΠΈ Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°ΠΌΠ΅ ΡΠ°Π·ΠΈ Π΄Π²ΠΎΠΉΠΊΠ° β ΠΎΡΠ½ΠΎΠ²ΠΎ Π΄ΠΎ ΠΌΠ°ΠΊΡΠΈΠΌΡΠΌΠ°; Π²ΠΈΠΆΠ΄Π°ΠΌΠ΅ ΠΊΠ°ΠΊΡΠ² Π΅ ΡΠ΅Ρ
Π½ΠΈΡΡ ΡΠ°Π²Π°Π½ ΠΈ ΡΠ°Π·Π»ΠΈΠΊΠ°ΡΠ° Ρ ΠΏΡΡΠ²ΠΈΡ Β«ΡΠΊΠ²ΠΈΠ·Β». Π ΡΠ°ΠΊΠ° Π΄ΠΎΠ±Π°Π²ΡΠΌΠ΅ ΠΏΠΎ Π΅Π΄ΠΈΠ½ ΠΈΠ½ΡΡΠ°Π½Ρ Π² ΡΡΡΠΏΠΊΠ° ΠΈ ΠΈΠ·ΡΠΈΡΠ»ΡΠ²Π°ΠΌΠ΅ Π·Π°ΠΊΠΎΠ½ΠΎΠΌΠ΅ΡΠ½ΠΎΡΡΡΠ° Π² ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅.
ΠΠ°Π½Π½ΠΈΡΠ΅ ΠΎΡ ΡΠ΅ΡΡΠΎΠ²Π΅ΡΠ΅ ΡΡΠ΅Π· Β«ΠΈΠ·ΡΡΠΈΡΠΊΠ²Π°Π½Π΅Β» ΡΡΡΠΎ ΡΠ΅ Π½Π°ΡΡΡΠΏΠ²Π°Ρ Π² ΠΎΠ±ΡΠ° Π±Π°Π·Π° ΠΌΠ΅ΡΡΠΈΠΊΠΈ, ΠΊΡΠ΄Π΅ΡΠΎ ΠΈΠ»ΠΈ ΠΎΠ±ΠΎΠ³Π°ΡΡΠ²Π°ΠΌΠ΅ ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠΈΡΠ΅ ΠΎΡ ΠΈΠ·ΠΊΡΡΡΠ²Π΅Π½ΠΈ Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½ΠΈΡ, ΠΈΠ»ΠΈ ΠΈΠ·ΡΡΠ»ΠΎ Π·Π°ΠΌΠ΅Π½ΡΠΌΠ΅ Β«ΡΠΈΠ½ΡΠ΅ΡΠΈΠΊΠ°ΡΠ°Β» Ρ ΡΡΡ
.
ΠΡΠΎΠ΄ΡΠΊΡΠΈΡ
β’ ΠΠ°ΡΡΡΠ°Π±ΠΈΡΠ°Π½Π΅. ΠΠΎΠ³Π°ΡΠΎ ΠΏΡΡΠΊΠ°ΠΌΠ΅ ΡΡΠ»ΡΠ³Π°ΡΠ° Π² ΠΏΡΠΎΠ΄ΡΠΊΡΠΈΡ, ΡΠ»Π΅Π΄ΠΈΠΌ ΠΊΠ°ΠΊ ΡΠ΅ ΠΌΠ°ΡΠ°Π±ΠΈΡΠ°. ΠΠΎ Π½Π°Ρ ΠΎΠΏΠΈΡ Π½Π°Π±Π»ΡΠ΄Π΅Π½ΠΈΠ΅ΡΠΎ ΡΠ°ΠΌΠΎ Π½Π° ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈΡΠ΅ Π½Π° CPU Π½Π΅ Π΅ Π΅ΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ. ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎΡΠΎ ΠΌΠ°ΡΠ°Π±ΠΈΡΠ°Π½Π΅ Ρ Π±Π΅Π½ΡΠΌΠ°ΡΠΊΠΈΠ½Π³ Π½Π° RPS Π² ΡΠΈΡΡ Π²ΠΈΠ΄ ΡΠ°Π±ΠΎΡΠΈ, Π½ΠΎ ΡΠ°ΠΌΠΎ Π·Π° ΠΎΡΠ΄Π΅Π»Π½ΠΈ ΡΡΠ»ΡΠ³ΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΠΎΠ½Π»Π°ΠΉΠ½ ΡΡΡΠΈΠΉΠΌΠΈΠ½Π³. Π’Π°ΠΊΠ° ΡΠ΅ ΠΏΡΡΠ²ΠΎ ΡΠ΅ ΡΠΎΠΊΡΡΠΈΡΠ°ΠΌΠ΅ Π²ΡΡΡ Ρ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΠΈΡΠ΅ Π·Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ ΠΏΡΠΎΠ΄ΡΠΊΡΠΎΠ²ΠΈ ΠΌΠ΅ΡΡΠΈΠΊΠΈ.
Π ΠΊΡΠ°ΠΉΠ½Π° ΡΠΌΠ΅ΡΠΊΠ° ΠΏΡΠΈ ΠΌΠ°ΡΠ°Π±ΠΈΡΠ°Π½Π΅ Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠ°ΠΌΠ΅:
β ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ Π½Π° CPU ΠΈ RAM,
β Π±ΡΠΎΠΉ Π·Π°ΡΠ²ΠΊΠΈ Π² ΠΎΠΏΠ°ΡΠΊΠ°ΡΠ°,
β Π²ΡΠ΅ΠΌΠ΅ Π·Π° ΠΎΡΠ³ΠΎΠ²ΠΎΡ,
β ΠΏΡΠΎΠ³Π½ΠΎΠ·Π° Π½Π° Π±Π°Π·Π°ΡΠ° Π½Π° ΡΡΠ±ΡΠ°Π½ΠΈΡΠ΅ ΠΈΡΡΠΎΡΠΈΡΠ΅ΡΠΊΠΈ Π΄Π°Π½Π½ΠΈ.
ΠΡΠΈ ΠΌΠ°ΡΠ°Π±ΠΈΡΠ°Π½Π΅ Π½Π° ΡΡΠ»ΡΠ³Π°ΡΠ° ΡΡΡΠΎ Π΅ Π²Π°ΠΆΠ½ΠΎ Π΄Π° ΡΠ»Π΅Π΄ΠΈΠΌ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈΡΠ΅ ΠΉ, Π·Π° Π΄Π° Π½Π΅ ΡΠ΅ ΠΎΠΊΠ°ΠΆΠ΅, ΡΠ΅ ΠΌΠ°ΡΠ°Π±ΠΈΡΠ°ΠΌΠ΅ ΠΏΡΡΠ²Π°ΡΠ° ΡΡΠ»ΡΠ³Π° Π² Π²Π΅ΡΠΈΠ³Π°ΡΠ°, Π° ΡΠ΅Π·ΠΈ, ΠΊΡΠΌ ΠΊΠΎΠΈΡΠΎ ΡΡ ΡΠ΅ ΠΎΠ±ΡΡΡΠ°, ΡΠ΅ ΡΡΠΈΠ²Π°Ρ ΠΏΠΎΠ΄ Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅. ΠΠ° Π΄Π° ΡΡΡΠ°Π½ΠΎΠ²ΠΈΠΌ ΠΏΡΠΈΠ΅ΠΌΠ»ΠΈΠ²ΠΎ Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅ Π·Π° ΡΠ΅Π»ΠΈΡ ΠΏΡΠ» ΠΎΡ ΡΡΠ»ΡΠ³ΠΈ, Π³Π»Π΅Π΄Π°ΠΌΠ΅ ΠΈΡΡΠΎΡΠΈΡΠ΅ΡΠΊΠΈΡΠ΅ Π΄Π°Π½Π½ΠΈ Π½Π° Β«Π½Π°ΠΉ-Π±Π»ΠΈΠ·ΠΊΠ°ΡΠ°Β» Π·Π°Π²ΠΈΡΠΈΠΌΠ° ΡΡΠ»ΡΠ³Π° (ΠΏΠΎ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΡΡΠ° ΠΎΡ ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈΡΠ΅ CPU ΠΈ RAM Π·Π°Π΅Π΄Π½ΠΎ ΡΡΡ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΠΈ ΠΌΠ΅ΡΡΠΈΠΊΠΈ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ) ΠΈ Π³ΠΈ ΡΡΠΏΠΎΡΡΠ°Π²ΡΠΌΠ΅ Ρ ΠΈΡΡΠΎΡΠΈΡΠ΅ΡΠΊΠΈΡΠ΅ Π΄Π°Π½Π½ΠΈ Π½Π° ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠ°ΡΠ°ΡΠ° ΡΡΠ»ΡΠ³Π° ΠΈ ΡΠ°ΠΊΠ° Π½Π°ΡΠ°ΡΡΠΊ ΠΏΠΎ ΡΡΠ»Π°ΡΠ° Β«Π²Π΅ΡΠΈΠ³Π° ΠΎΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈΒ», ΠΎΡΠ³ΠΎΡΠ΅ Π½Π°Π΄ΠΎΠ»Ρ.
ΠΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°
Π‘Π»Π΅Π΄ ΠΊΠ°ΡΠΎ ΠΌΠΈΠΊΡΠΎΡΡΠ»ΡΠ³Π°ΡΠ° Π±ΡΠ΄Π΅ Π°ΠΊΡΠΈΠ²ΠΈΡΠ°Π½Π°, ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Π΄ΠΎΠ±Π°Π²ΠΈΠΌ ΡΡΠΈΠ³Π΅ΡΠΈ ΠΊΡΠΌ Π½Π΅Ρ.
ΠΡΠΎ ΡΠΈΠΏΠΈΡΠ½ΠΈ ΡΠΈΡΡΠ°ΡΠΈΠΈ, Π² ΠΊΠΎΠΈΡΠΎ ΡΡΠΈΠ³Π΅ΡΠΈΡΠ΅ ΡΡΠ°Π±ΠΎΡΠ²Π°Ρ.
β ΠΡΠΊΡΠΈΡΠΈ ΡΠ° ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»Π½ΠΎ ΠΎΠΏΠ°ΡΠ½ΠΈ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ.
β ΠΡΡ
Π° ΠΏΡΠ±Π»ΠΈΠΊΡΠ²Π°Π½ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ Π·Π° ΡΠΈΠ³ΡΡΠ½ΠΎΡΡ.
β Π‘Π°ΠΌΠ°ΡΠ° ΡΡΠ»ΡΠ³Π° ΠΎΡΠ΄Π°Π²Π½Π° Π½Π΅ Π΅ ΠΎΠ±Π½ΠΎΠ²ΡΠ²Π°Π½Π°.
β ΠΠ°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΡΡΠ»ΡΠ³Π°ΡΠ° Π΅ Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΎ Π½Π°ΠΌΠ°Π»Π΅Π½ΠΎ ΠΈΠ»ΠΈ Π½ΡΠΊΠΎΠΈ ΠΎΡ ΠΏΡΠΎΠ΄ΡΠΊΡΠΎΠ²ΠΈ ΠΉ ΠΌΠ΅ΡΡΠΈΠΊΠΈ ΠΈΠ·Π»ΠΈΠ·Π°Ρ ΠΈΠ·Π²ΡΠ½ Π½ΠΎΡΠΌΠ°ΡΠ°.
β Π£ΡΠ»ΡΠ³Π°ΡΠ° Π²Π΅ΡΠ΅ Π½Π΅ ΠΎΡΠ³ΠΎΠ²Π°ΡΡ Π½Π° Π½ΠΎΠ²ΠΈΡΠ΅ ΠΈΠ·ΠΈΡΠΊΠ²Π°Π½ΠΈΡ Π½Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°ΡΠ°.
Π§Π°ΡΡ ΠΎΡ ΡΡΠΈΠ³Π΅ΡΠΈΡΠ΅ ΠΎΡΠ³ΠΎΠ²Π°ΡΡ Π·Π° ΡΡΠ°Π±ΠΈΠ»Π½ΠΎΡΡΡΠ° Π½Π° ΡΠ°Π±ΠΎΡΠ°ΡΠ°, Π° ΡΠ°ΡΡ β ΠΊΠ°ΡΠΎ ΡΡΠ½ΠΊΡΠΈΡ Π·Π° ΠΎΠ±ΡΠ»ΡΠΆΠ²Π°Π½Π΅ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° β Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π½ΡΠΊΠ°ΠΊΠ²Π° ΡΡΠ»ΡΠ³Π° ΠΎΡΠ΄Π°Π²Π½Π° Π½Π΅ Π΅ Π΄Π΅ΠΏΠ»ΠΎΠΈΡΠ°Π½Π° ΠΈ ΠΎΡΠ½ΠΎΠ²Π½ΠΈΡΡ ΠΉ ΠΎΠ±ΡΠ°Π· Π΅ ΡΠΏΡΡΠ»ΠΎ Π΄Π° ΠΌΠΈΠ½Π°Π²Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π·Π° ΡΠΈΠ³ΡΡΠ½ΠΎΡΡ.
Π’Π°Π±Π»ΠΎ
ΠΠΊΠΎ ΠΈΡΠΊΠ°ΠΌΠ΅ Π΄Π° ΠΊΠ°ΠΆΠ΅ΠΌ Π½Π°ΠΊΡΠ°ΡΠΊΠΎ, ΡΠ°Π±Π»ΠΎΡΠΎ Π΅ ΠΊΠΎΠ½ΡΡΠΎΠ»Π΅Π½ ΠΏΠ°Π½Π΅Π» Π½Π° Π²ΡΠΈΡΠΊΠΈΡΠ΅ Π½ΠΈ PaaS.
- ΠΠ΄ΠΈΠ½ΠΈΡΠ½Π° ΡΠΎΡΠΊΠ° Π½Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π·Π° ΡΡΠ»ΡΠ³Π°ΡΠ° Ρ Π΄Π°Π½Π½ΠΈ Π·Π° ΠΏΠΎΠΊΡΠΈΡΠΈΠ΅ Π½Π° ΡΠ΅ΡΡΠΎΠ²Π΅, ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΎΠ±ΡΠ°Π·ΠΈ, Π±ΡΠΎΠΉ ΠΏΡΠΎΠ΄Π°ΠΊΡΡΠ½ ΠΊΠΎΠΏΠΈΡ, Π²Π΅ΡΡΠΈΠΈ ΠΈ Ρ.Π½.
- ΠΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π·Π° ΡΠΈΠ»ΡΡΠΈΡΠ°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ ΠΏΠΎ ΡΡΠ»ΡΠ³ΠΈ ΠΈ Π΅ΡΠΈΠΊΠ΅ΡΠΈ (ΠΌΠ°ΡΠΊΠ΅ΡΠΈΡΠ΅ Π·Π° ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ½ΠΎΡΡ ΠΊΡΠΌ Π±ΠΈΠ·Π½Π΅Ρ Π΅Π΄ΠΈΠ½ΠΈΡΠΈ, ΠΏΡΠΎΠ΄ΡΠΊΡΠΎΠ²ΠΈ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡΠΈ ΠΈ Ρ.Π½.)
- ΠΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π·Π° ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ Ρ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ½ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ Π·Π° ΡΡΠ°ΡΠΈΡΠΎΠ²ΠΊΠ°, Π»ΠΎΠ³ΠΈΡΠ°Π½Π΅, ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³.
- ΠΠ΄ΠΈΠ½Π½Π° ΡΠΎΡΠΊΠ° Π½Π° Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ Π·Π° ΡΡΠ»ΡΠ³ΠΈΡΠ΅.
- ΠΠ΄ΠΈΠ½ΠΈΡΠ½Π° ΡΠΎΡΠΊΠ° Π½Π° ΠΏΡΠ΅Π³Π»Π΅Π΄ Π½Π° Π²ΡΠΈΡΠΊΠΈ ΡΡΠ±ΠΈΡΠΈΡ ΠΏΠΎ ΡΡΠ»ΡΠ³ΠΈΡΠ΅.




ΠΡΠΎΠ³ΠΎ
ΠΡΠ΅Π΄ΠΈ Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅ Π½Π° PaaS Π½ΠΎΠ²ΠΈΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΏΠΎΡΠ²Π΅ΡΠΈ Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΡΠ΅Π΄ΠΌΠΈΡΠΈ Π½Π° ΡΠΏΠ΅ΡΠ΅Π»Π²Π°Π½Π΅ΡΠΎ Π½Π° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΈΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ Π·Π° ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠ° Π² ΠΏΡΠΎΠ΄Π°ΠΊΡΡΠ½: Kubernetes, Helm, β Π² Π½Π°ΡΠΈΡΠ΅ Π²ΡΡΡΠ΅ΡΠ½ΠΈ ΠΎΡΠΎΠ±Π΅Π½ΠΎΡΡΠΈ TeamCity, Π½Π°ΡΡΡΠΎΠΉΠΊΠ° Π½Π° ΡΠ²ΡΡΠ·Π²Π°Π½Π΅ΡΠΎ Ρ Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ ΠΈ ΠΊΠ΅ΡΠΎΠ²Π΅ Π² ΠΎΡΠΊΠ°Π·ΠΎΡΡΡΠΎΠΉΡΠΈΠ² Π²ΠΈΠ΄ ΠΈ Ρ.Π½. Π‘Π΅Π³Π° ΡΠΎΠ²Π° ΠΎΡΠ½Π΅ΠΌΠ° ΡΠ°ΠΌΠΎ Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΡΠ°ΡΠ° β Π΄Π° ΠΏΡΠΎΡΠ΅ΡΠ΅Ρ quickstart ΠΈ Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΡ ΡΠ°ΠΌΠ°ΡΠ° ΡΡΠ»ΡΠ³Π°.
ΠΡΠ°Π²ΠΈΡ Π΄ΠΎΠΊΠ»Π°Π΄ ΠΏΠΎ ΡΠ°Π·ΠΈ ΡΠ΅ΠΌΠ° Π·Π° HighLoad++ 2018, ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ Π²ΠΈΠ΄ΠΈ ΠΈ .
ΠΠΎΠ½ΡΡ ΡΡΠ°ΠΊ Π·Π° ΡΠ΅Π·ΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΏΡΠΎΡΠ΅ΡΠΎΡ Π° Π΄ΠΎ ΠΊΡΠ°Ρ
Π Avito ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΈΡΠ°ΠΌΠ΅ Π²ΡΡΡΠ΅ΡΠ½ΠΎ ΡΡΠΈΠ΄Π½Π΅Π²Π½ΠΎ ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅ Π·Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈ ΠΎΡ , Π΅ΠΊΡΠΏΠ΅ΡΡ ΠΏΠΎ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠ½Π° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°. ΠΡΠΊΠ°ΠΌΠ΅ Π΄Π° ΠΏΠΎΠ΄Π°ΡΠΈΠΌ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π·Π° ΡΡΠ°ΡΡΠΈΠ΅ Π½Π° Π½ΡΠΊΠΎΠ³ΠΎ ΠΎΡ ΡΠΈΡΠ°ΡΠ΅Π»ΠΈΡΠ΅ Π½Π° ΡΠΎΠ·ΠΈ ΠΏΠΎΡΡ. ΠΡΠΎΠ³ΡΠ°ΠΌΠ°ΡΠ° Π½Π° ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅ΡΠΎ Π΅ ΠΏΡΠ±Π»ΠΈΠΊΡΠ²Π°Π½Π°.
ΠΠ±ΡΡΠ΅Π½ΠΈΠ΅ΡΠΎ ΡΠ΅ ΡΠ΅ ΠΏΡΠΎΠ²Π΅Π΄Π΅ ΠΎΡ 5 Π΄ΠΎ 7 Π°Π²Π³ΡΡΡ Π² ΠΠΎΡΠΊΠ²Π°. Π’ΠΎΠ²Π° ΡΠ° ΡΠ°Π±ΠΎΡΠ½ΠΈ Π΄Π½ΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΠ΅ Π±ΡΠ΄Π°Ρ Π½Π°ΠΏΡΠ»Π½ΠΎ Π·Π°Π΅ΡΠΈ. ΠΠ±ΡΠ΄ΡΡ ΠΈ ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅ΡΠΎ ΡΠ΅ Π±ΡΠ΄Π°Ρ Π² Π½Π°ΡΠΈΡ ΠΎΡΠΈΡ, Π° ΠΈΠ·Π±ΡΠ°Π½ΠΈΡΡ ΡΡΠ°ΡΡΠ½ΠΈΠΊ Π·Π°ΠΏΠ»Π°ΡΠ° ΡΠ°ΠΌ ΠΏΡΡΡΠ²Π°Π½Π΅ΡΠΎ ΠΈ Π½Π°ΡΡΠ°Π½ΡΠ²Π°Π½Π΅ΡΠΎ.
ΠΠ°ΡΠ²Π»Π΅Π½ΠΈΡ Π·Π° ΡΡΠ°ΡΡΠΈΠ΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ΅ ΠΏΠΎΠ΄Π°Π²Π°Ρ . ΠΡ Π²Π°Ρ ΡΠ΅ ΠΈΡΠΊΠ° ΠΎΡΠ³ΠΎΠ²ΠΎΡ Π½Π° Π²ΡΠΏΡΠΎΡΠ° Π·Π°ΡΠΎ ΡΠΎΡΠ½ΠΎ Π²ΠΈΠ΅ ΡΡΡΠ±Π²Π° Π΄Π° ΠΏΠΎΡΠ΅ΡΠΈΡΠ΅ ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅ΡΠΎ ΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΊΠ°ΠΊ Π΄Π° ΡΠ΅ ΡΠ²ΡΡΠΆΠ΅ΠΌ Ρ Π²Π°Ρ. ΠΡΠ³ΠΎΠ²Π°ΡΡΠΉΡΠ΅ Π½Π° Π°Π½Π³Π»ΠΈΠΉΡΠΊΠΈ, Π·Π°ΡΠΎΡΠΎ ΡΡΠ°ΡΡΠ½ΠΈΠΊΡΡ, ΠΊΠΎΠΉΡΠΎ ΡΠ΅ ΡΡΠ°ΡΡΠ²Π° Π² ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅ΡΠΎ, ΠΡΠΈΡ ΡΠ΅ ΠΈΠ·Π±ΠΈΡΠ° ΡΠ°ΠΌ.
ΠΠΌΠ΅ΡΠΎ Π½Π° ΡΡΠ°ΡΡΠ½ΠΈΠΊΠ° Π² ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅ΡΠΎ ΡΠ΅ Π±ΡΠ΄Π΅ ΠΎΠ±ΡΠ²Π΅Π½ΠΎ Ρ Π°ΠΊΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° ΡΠΎΠ·ΠΈ ΠΏΠΎΡΡ ΠΈ Π² ΡΠΎΡΠΈΠ°Π»Π½ΠΈΡΠ΅ ΠΌΡΠ΅ΠΆΠΈ Π½Π° Avito Π·Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈ (AvitoTech Π² , , ) Π½Π΅ ΠΏΠΎ-ΠΊΡΡΠ½ΠΎ ΠΎΡ 19 ΡΠ»ΠΈ.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: habr.com
