ΠΠ΄ΡΠ°Π²Π΅ΠΉΡΠ΅! ΠΠ· ΡΡΠΌ ΠΠ°Π΄ΠΈΠΌ ΠΠ°Π΄ΠΈΡΠΎΠ½, ΡΡΠΊΠΎΠ²ΠΎΠ΄Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°ΡΠ° Π½Π° 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, email);
β’ ΠΏΡΠΎΡΠ»Π΅Π΄ΡΠ²Π°Π½Π΅ Π½Π° Π·Π°Π΄Π°ΡΠΈ (Jira);
β’ ΡΡΡΡΠ°Π²ΡΠ½Π΅ Π½Π° Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ.
ΠΠ° Π΄Π° Π½Π΅ Π·Π°Π³ΡΠ±ΠΈ ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° ΡΠ΅Π»ΠΎΡΡΡΠ° ΡΠΈ ΠΈ Π΄Π° ΠΎΡΡΠ°Π½Π΅ Π΅ΡΠ΅ΠΊΡΠΈΠ²Π½Π° ΠΏΡΠΈ ΠΌΠ°ΡΠ°Π±ΠΈΡΠ°Π½Π΅, Π½ΠΈΠ΅ ΠΏΡΠ΅ΠΎΡΠΌΠΈΡΠ»ΠΈΡ ΠΌΠ΅ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΡΡΠ° Π½Π° ΡΠ°Π±ΠΎΡΠ°ΡΠ° Π½Π° ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠΈΡΠ΅ Π² ΠΠ²ΠΈΡΠΎ.
ΠΠ°ΠΊ ΡΠΏΡΠ°Π²Π»ΡΠ²Π°ΠΌΠ΅ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠΈΡΠ΅
ΠΠ΄ΠΈΠ½Π½Π°ΡΠ° Β«ΠΏΠΎΠ»ΠΈΡΠΈΠΊΠ° Π½Π° ΠΏΠ°ΡΡΠΈΡΡΠ°Β» ΡΡΠ΅Π΄ ΠΌΠ½ΠΎΠ³ΠΎΡΠΎ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΠ·ΠΈ Π½Π° ΠΠ²ΠΈΡΠΎ ΡΠ΅ ΠΏΠΎΠ΄ΠΏΠΎΠΌΠ°Π³Π° ΠΎΡ:
- ΡΠ°Π·Π΄Π΅Π»ΡΠ½Π΅ Π½Π° ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ°ΡΠ° Π½Π° ΡΠ»ΠΎΠ΅Π²Π΅;
- ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡΡΠ° Platform as a Service (PaaS);
- ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³ Π½Π° Π²ΡΠΈΡΠΊΠΎ, ΠΊΠΎΠ΅ΡΠΎ ΡΠ΅ ΡΠ»ΡΡΠ²Π° Ρ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠΈΡΠ΅.
ΠΠΈΠ²Π°ΡΠ° Π½Π° Π°Π±ΡΡΡΠ°ΠΊΡΠΈΡ Π½Π° ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ°ΡΠ° Π²ΠΊΠ»ΡΡΠ²Π°Ρ ΡΡΠΈ ΡΠ»ΠΎΡ. ΠΠ° ΠΏΡΠ΅ΠΌΠΈΠ½Π΅ΠΌ ΠΎΡ Π³ΠΎΡΠ½ΠΈΡ ΠΊΡΠΌ Π΄ΠΎΠ»Π½ΠΈΡ.
A. ΠΠΎΡΠ΅Π½ β service mesh. ΠΡΡΠ²ΠΎΠ½Π°ΡΠ°Π»Π½ΠΎ ΠΎΠΏΠΈΡΠ°Ρ
ΠΌΠ΅ Istio, Π½ΠΎ ΡΠ΅ ΠΎΠΊΠ°Π·Π°, ΡΠ΅ ΡΠΎΠΉ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΡΠ²ΡΡΠ΄Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ΅ΡΡΡΡΠΈ, ΠΊΠΎΠ΅ΡΠΎ ΠΏΡΠΈ Π½Π°ΡΠΈΡΠ΅ ΠΎΠ±Π΅ΠΌΠΈ Π΅ ΠΏΡΠ΅ΠΊΠ°Π»Π΅Π½ΠΎ ΡΠΊΡΠΏΠΎ. ΠΠ°ΡΠΎΠ²Π° ΡΡΠ°ΡΡΠΈ ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΡΡ Π² Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΠ½ΠΈΡ Π΅ΠΊΠΈΠΏ ΠΠ»Π΅ΠΊΡΠ°Π½Π΄ΡΡ ΠΡΠΊΡΡΠ½ΡΠ΅Π½ΠΊΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΈ ΡΠΎΠ±ΡΡΠ²Π΅Π½ΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ β (Π΄ΠΎΡΡΡΠΏΠ½ΠΎ Π² Open Source), ΠΊΠΎΠ΅ΡΠΎ ΡΠ΅Π³Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ Π² ΠΏΡΠΎΠ΄ΡΠΊΡΠΈΡ ΠΈ ΠΊΠΎΠ΅ΡΠΎ ΠΊΠΎΠ½ΡΡΠΌΠΈΡΠ° ΠΌΠ½ΠΎΠ³ΠΎΠΊΡΠ°ΡΠ½ΠΎ ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ ΡΠ΅ΡΡΡΡΠΈ ΠΎΡ Istio (Π½ΠΎ ΠΈ Π½Π΅ ΠΏΡΠ΅Π΄Π»Π°Π³Π° Π²ΡΠΈΡΠΊΠΎ, Ρ ΠΊΠΎΠ΅ΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΏΠΎΡ
Π²Π°Π»ΠΈ Istio).
B. Π‘ΡΠ΅Π΄Π΅Π½ β Kubernetes. ΠΠ° Π½Π΅Π³ΠΎ ΡΠ°Π·Π²ΡΡΡΠ°ΠΌΠ΅ ΠΈ Π΅ΠΊΡΠΏΠ»ΠΎΠ°ΡΠΈΡΠ°ΠΌΠ΅ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠΈΡΠ΅.
C. ΠΠΎΠ»Π΅Π½ β bare metal. ΠΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ ΠΎΠ±Π»Π°ΡΠΈΡΠ΅ ΠΈ Π½Π΅ΡΠ° ΠΊΠ°ΡΠΎ OpenStack, Π° ΡΠ°Π±ΠΎΡΠΈΠΌ ΠΈΠ·ΡΡΠ»ΠΎ Π½Π° bare metal.
ΠΡΠΈΡΠΊΠΈ ΡΠ»ΠΎΠ΅Π²Π΅ ΡΠ΅ ΠΎΠ±Π΅Π΄ΠΈΠ½ΡΠ²Π°Ρ Π² PaaS. Π ΡΠ°Π·ΠΈ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°, ΠΎΡ ΡΠ²ΠΎΡ ΡΡΡΠ°Π½Π°, ΡΠ΅ ΡΡΡΡΠΎΠΈ ΠΎΡ ΡΡΠΈ ΡΠ°ΡΡΠΈ.
I. ΠΠ΅Π½Π΅ΡΠ°ΡΠΎΡΠΈ, ΡΠΏΡΠ°Π²Π»ΡΠ²Π°Π½ΠΈ ΡΡΠ΅Π· CLI-ΡΡΠΈΠ»ΠΈΡΠ°. ΠΠΌΠ΅Π½Π½ΠΎ ΡΡ ΠΏΠΎΠΌΠ°Π³Π° Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° Π΄Π° ΡΡΠ·Π΄Π°Π΄Π΅ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡ ΠΏΡΠ°Π²ΠΈΠ»Π½ΠΎ ΠΈ Ρ ΠΌΠΈΠ½ΠΈΠΌΡΠΌ ΡΡΠΈΠ»ΠΈΡ.
II. Π‘Π²ΠΎΠ΄Π΅Π½ ΠΊΠΎΠ»Π΅ΠΊΡΠΎΡ Ρ ΠΊΠΎΠ½ΡΡΠΎΠ» Π½Π° Π²ΡΠΈΡΠΊΠΈΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ ΡΡΠ΅Π· ΠΎΠ±Ρ Π΄Π°ΡΠ±ΠΎΡΠ΄.
III. Π₯ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅. Π‘Π²ΡΡΠ·Π²Π° ΡΠ΅ Ρ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²Π°ΡΠΈΡΠ΅, ΠΊΠΎΠΈΡΠΎ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ ΡΡΠ·Π΄Π°Π²Π°Ρ ΡΡΠΈΠ³Π³Π΅ΡΠΈ Π·Π° Π·Π½Π°ΡΠΈΠΌΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ. ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΠ΅Π½ΠΈΠ΅ Π½Π° ΡΠ°ΠΊΠ°Π²Π° ΡΠΈΡΡΠ΅ΠΌΠ°, Π½ΠΈΡΠΎ Π΅Π΄Π½Π° Π·Π°Π΄Π°ΡΠ° Π½Π΅ ΠΎΡΡΠ°Π²Π° ΠΏΡΠ΅Π½Π΅Π±ΡΠ΅Π³Π½Π°ΡΠ° ΡΠ°ΠΌΠΎ Π·Π°ΡΠΎΡΠΎ Π½ΡΠΊΠΎΠΉ Π΅ Π·Π°Π±ΡΠ°Π²ΠΈΠ» Π΄Π° ΡΠΈ Π·Π°Π΄Π°Π΄Π΅ Π·Π°Π΄Π°ΡΠ° Π² Jira. ΠΠ° ΡΠΎΠ²Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ Π²ΡΡΡΠ΅ΡΠ΅Π½ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ, Π½Π°ΡΠ΅ΡΠ΅Π½ Atlas.

Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡΡΠ° Π½Π° ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠΈ Π² ΠΠ²ΠΈΡΠΎ ΡΡΡΠΎ ΡΠ΅ ΠΈΠ·Π²ΡΡΡΠ²Π° ΠΏΠΎ Π΅Π΄ΠΈΠ½Π΅Π½ ΠΌΠΎΠ΄Π΅Π», ΠΊΠΎΠ΅ΡΠΎ ΠΎΠΏΡΠΎΡΡΡΠ²Π° ΠΊΠΎΠ½ΡΡΠΎΠ»Π° Π½Π°Π΄ ΡΡΡ Π½Π° Π²ΡΡΠΊΠ° ΡΠ°Π·Π° ΠΎΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°ΡΠ° ΠΈ ΠΏΡΡΠΊΠ°Π½Π΅ΡΠΎ.
ΠΠ°ΠΊ Π΅ ΡΡΡΡΠΊΡΡΡΠΈΡΠ°Π½ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΈΡΡ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ Π·Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡ?
Π ΠΎΠ±ΡΠΈ Π»ΠΈΠ½ΠΈΠΈ, Π²Π΅ΡΠΈΠ³Π°ΡΠ° Π·Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° ΠΏΠΎ ΡΠ»Π΅Π΄Π½ΠΈΡ Π½Π°ΡΠΈΠ½:
CLI-push β ΠΠ΅ΠΏΡΠ΅ΠΊΡΡΠ½Π°ΡΠ° ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ β ΠΠ΅ΠΉΠΊΠ²Π°Π½Π΅ β ΠΠ΅ΠΏΠ»ΠΎΠΉΠ²Π°Π½Π΅ β ΠΠ·ΠΊΡΡΡΠ²Π΅Π½ΠΈ ΡΠ΅ΡΡΠΎΠ²Π΅ β ΠΠ°Π½Π°ΡΡΠΊΠΈ ΡΠ΅ΡΡΠΎΠ²Π΅ β Π‘ΡΡΠ΅Ρ ΡΠ΅ΡΡΠΎΠ²Π΅ β ΠΡΠΎΠ΄ΡΠΊΡΠΈΡ β ΠΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°.
ΠΠ° ΠΏΡΠ΅ΠΌΠΈΠ½Π΅ΠΌ ΠΏΡΠ΅Π· Π½Π΅Ρ ΡΠΎΡΠ½ΠΎ Π² ΡΠ°Π·ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π½ΠΎΡΡ.
CLI-push
β’ Π‘ΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠΈ.
ΠΡΠ»Π³ΠΎ Π²ΡΠ΅ΠΌΠ΅ ΡΠ΅ Π±ΠΎΡΠΈΡ
ΠΌΠ΅ Π΄Π° Π½Π°ΡΡΠΈΠΌ Π²ΡΠ΅ΠΊΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΊΠ°ΠΊ Π΄Π° ΡΡΠ·Π΄Π°Π²Π° ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠΈ. ΠΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ
ΠΌΠ΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΈ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ Π² Confluence. ΠΠΎ ΡΡ
Π΅ΠΌΠΈΡΠ΅ ΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½ΡΡ
Π° ΠΈ Π΄ΠΎΠΏΡΠ»Π²Π°Ρ
Π°. Π ΡΠ΅Π·ΡΠ»ΡΠ°Ρ Π½Π° ΡΠΎΠ²Π° ΡΠ΅ ΡΡΠ·Π΄Π°Π΄Π΅ Π±ΡΡΠΈΠ»Π΅ΡΠ½ΠΎ Π³ΡΡΠ»ΠΎ Π² Π½Π°ΡΠ°Π»ΠΎΡΠΎ Π½Π° ΠΏΡΠΎΡΠ΅ΡΠ°: Π²ΡΠ΅ΠΌΠ΅ΡΠΎ Π·Π° ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠΈ Π±Π΅ΡΠ΅ Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΎ ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΎΡ Π΄ΠΎΠΏΡΡΡΠΈΠΌΠΎΡΠΎ, ΠΈ Π²ΡΠ΅ ΠΏΠ°ΠΊ ΠΏΡΠΈ ΡΡΡ
Π½ΠΎΡΠΎ ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ ΡΠ΅ΡΡΠΎ Π²ΡΠ·Π½ΠΈΠΊΠ²Π°Ρ
Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ.
Π ΠΊΡΠ°ΠΉΠ½Π° ΡΠΌΠ΅ΡΠΊΠ° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΈΡ ΠΌΠ΅ ΠΏΡΠΎΡΡ CLI ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ, ΠΊΠΎΠΉΡΠΎ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠ° ΠΎΡΠ½ΠΎΠ²Π½ΠΈΡΠ΅ ΡΡΡΠΏΠΊΠΈ ΠΏΡΠΈ ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ΡΠΎ Π½Π° ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡ. ΠΡΡΡΠ½ΠΎΡΡ, ΡΠΎΠΉ Π·Π°ΠΌΠ΅ΡΡΠ²Π° ΠΏΡΡΠ²ΠΈΡ git push. ΠΡΠΎ ΠΊΠ°ΠΊΠ²ΠΎ ΡΠΎΡΠ½ΠΎ ΠΏΡΠ°Π²ΠΈ.
β Π‘ΡΠ·Π΄Π°Π²Π° ΡΠ΅ΡΠ²ΠΈΠ· ΠΏΠΎ ΡΠ°Π±Π»ΠΎΠ½ β ΡΡΡΠΏΠΊΠ° ΠΏΠΎ ΡΡΡΠΏΠΊΠ°, Π² ΡΠ΅ΠΆΠΈΠΌ Π½Π° Β«ΠΌΠ°Π³ΡΠΎΡΠ½ΠΈΠΊΒ». ΠΠΌΠ°ΠΌΠ΅ ΡΠ°Π±Π»ΠΎΠ½ΠΈ Π·Π° ΠΎΡΠ½ΠΎΠ²Π½ΠΈΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ½ΠΈ Π΅Π·ΠΈΡΠΈ Π² Π±Π΅ΠΊΠ΅Π½Π΄Π° Π½Π° ΠΠ²ΠΈΡΠΎ: 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 ΡΡΡΠ±Π²Π° Π΄Π° ΡΠΈΠ³Π½Π°Π»ΠΈΠ·ΠΈΡΠ° Π½Π° ΠΏΡΠΈΡΠ΅ΠΆΠ°ΡΠ΅Π»Ρ Π½Π° ΡΡΠ»ΡΠ³Π°ΡΠ°, ΠΊΠΎΠ³Π°ΡΠΎ Π΅ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎ Π΄Π° Π±ΡΠ΄Π΅ ΠΏΡΠΈΠ»Π°Π³Π°Π½Π°.
ΠΠΏΠ°ΠΊΠΎΠ²ΠΊΠ°
Π‘Π»Π΅Π΄Π²Π°ΡΠΈΡΡ Π΅ΡΠ°ΠΏ Π΅ ΠΎΠΏΠ°ΠΊΠΎΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΡΡΠ»ΡΠ³ΠΈΡΠ΅ ΠΏΡΠ΅Π΄ΠΈ Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅.
- Π‘Π³Π»ΠΎΠ±ΡΠ²Π°Π½Π΅ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ. ΠΠΎ ΠΊΠ»Π°ΡΠΈΠΊΠ°ΡΠ° β Π² Docker ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅.
- ΠΠ΅Π½Π΅ΡΠΈΡΠ°Π½Π΅ Π½Π° Helm-ΡΠ°ΡΠΊΠΎΠ²Π΅ Π·Π° ΡΠ°ΠΌΠ°ΡΠ° ΡΡΠ»ΡΠ³Π° ΠΈ ΡΠ²ΡΡΠ·Π°Π½ΠΈΡΠ΅ Ρ Π½Π΅Ρ ΡΠ΅ΡΡΡΡΠΈ. ΠΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ Π·Π° Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ ΠΈ ΠΊΠ΅Ρ. Π’Π΅ ΡΠ΅ ΡΡΠ·Π΄Π°Π²Π°Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ Π² ΡΡΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΡΠ° app.toml, ΠΊΠΎΡΡΠΎ Π±Π΅ΡΠ΅ Π³Π΅Π½Π΅ΡΠΈΡΠ°Π½Π° Π½Π° Π΅ΡΠ°ΠΏΠ° CLI-push.
- Π‘ΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΡΠΈΠΊΠ΅ΡΠΈ Π·Π° Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠΈΡΠ΅ Π·Π° ΠΎΡΠ²Π°ΡΡΠ½Π΅ Π½Π° ΠΏΠΎΡΡΠΎΠ²Π΅ (ΠΊΠΎΠ³Π°ΡΠΎ Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ).
- ΠΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° unit ΡΠ΅ΡΡΠΎΠ²Π΅ ΠΈ ΠΈΠ·ΡΠΈΡΠ»ΡΠ²Π°Π½Π΅ Π½Π° 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 Π΅ ΠΏΡΠ΅ΠΊΠ°Π»Π΅Π½ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ, ΡΠΎΠ³Π°Π²Π°, Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎ Π΅, Π½ΡΠΊΠ°ΠΊΡΠ² Π±ΡΠ³ ΠΈ Π½ΡΠΊΠΎΠΉ ΠΎΡ ΠΊΡΠ°ΠΉΠ½ΠΈ ΡΠΎΡΠΊΠΈ Π΅ ΡΠΏΡΡΠ» Π΄Π° ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π° ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅ ΠΈ ΠΏΡΠΎΡΡΠΎ Π·Π°Π΄Π΅ΠΉΡΡΠ²Π° Π½Π΅ΡΠΎ ΠΊΠ°ΡΠΎ return true;
Canary-ΡΠ΅ΡΡΠΎΠ²Π΅
Π‘Π»Π΅Π΄ ΠΊΠ°ΡΠΎ ΡΠ° ΠΏΡΠ΅ΠΌΠΈΠ½Π°Π»ΠΈ ΡΠΈΠ½ΡΠ΅ΡΠΈΡΠ½ΠΈΡΠ΅ ΡΠ΅ΡΡΠΎΠ²Π΅, ΡΠ΅ΡΡΠ²Π°ΠΌΠ΅ ΡΠ°Π±ΠΎΡΠ°ΡΠ° Π½Π° ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠ° Ρ ΠΌΠ°Π»ΡΠΊ Π±ΡΠΎΠΉ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ. ΠΠ°ΠΏΠΎΡΠ²Π°ΠΌΠ΅ ΠΏΡΠ΅Π΄ΠΏΠ°Π·Π»ΠΈΠ²ΠΎ, Ρ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»Π΅Π½ ΠΏΡΠΎΡΠ΅Π½Ρ ΠΎΡ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΠΌΠ°ΡΠ° Π°ΡΠ΄ΠΈΡΠΎΡΠΈΡ Π½Π° ΡΡΠ»ΡΠ³Π°ΡΠ° β ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ ΠΎΡ 0,1%. ΠΠ° ΡΠΎΠ·ΠΈ Π΅ΡΠ°ΠΏ Π΅ ΠΌΠ½ΠΎΠ³ΠΎ Π²Π°ΠΆΠ½ΠΎ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³ΡΡ Π΄Π° ΠΈΠΌΠ° ΠΏΡΠ°Π²ΠΈΠ»Π½ΠΎ Π·Π°Π΄Π°Π΄Π΅Π½ΠΈ ΡΠ΅Ρ
Π½ΠΈΡΠ΅ΡΠΊΠΈ ΠΈ ΠΏΡΠΎΠ΄ΡΠΊΡΠΎΠ²ΠΈ ΠΌΠ΅ΡΡΠΈΠΊΠΈ, Π·Π° Π΄Π° ΠΌΠΎΠΆΠ΅ ΡΠ΅ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»Π½ΠΎ Π±ΡΡΠ·ΠΎ Π΄Π° ΠΏΠΎΠΊΠ°ΠΆΠ°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌ Π² ΡΡΠ»ΡΠ³Π°ΡΠ°. ΠΠΈΠ½ΠΈΠΌΠ°Π»Π½ΠΎΡΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π° canary ΡΠ΅ΡΡΠ° Π΅ 5 ΠΌΠΈΠ½ΡΡΠΈ, ΠΎΡΠ½ΠΎΠ²Π½ΠΎΡΠΎ β 2 ΡΠ°ΡΠ°. ΠΠ° ΡΠ»ΠΎΠΆΠ½ΠΈ ΡΡΠ»ΡΠ³ΠΈ Π·Π°Π΄Π°Π²Π°ΠΌΠ΅ Π²ΡΠ΅ΠΌΠ΅ΡΠΎ ΡΡΡΠ½ΠΎ.
ΠΠ½Π°Π»ΠΈΠ·ΠΈΡΠ°ΠΌΠ΅:
β ΠΌΠ΅ΡΡΠΈΠΊΠΈ, ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΠΈ Π·Π° Π΅Π·ΠΈΠΊΠ°, Π² ΡΠ°ΡΡΠ½ΠΎΡΡ, ΡΠ°Π±ΠΎΡΠ½ΠΈΡΠΈ php-fpm;
β Π³ΡΠ΅ΡΠΊΠΈ Π² Sentry;
β ΡΡΠ°ΡΡΡΠΈ Π½Π° ΠΎΡΠ³ΠΎΠ²ΠΎΡΠΈΡΠ΅;
β Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΠΎΡΠ³ΠΎΠ²ΠΎΡΠΈ (response time), ΡΠΎΡΠ½ΠΎ ΠΈ ΡΡΠ΅Π΄Π½ΠΎ;
β Π»Π°ΡΠ΅Π½ΡΠ½ΠΎΡΡ;
β ΠΈΠ·ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ, ΠΎΠ±ΡΠ°Π±ΠΎΡΠ΅Π½ΠΈ ΠΈ Π½Π΅ΠΎΠ±ΡΠ°Π±ΠΎΡΠ΅Π½ΠΈ;
β ΠΏΡΠΎΠ΄ΡΠΊΡΠΎΠ²ΠΈ ΠΌΠ΅ΡΡΠΈΠΊΠΈ.
Squeeze Testing
Squeeze ΡΠ΅ΡΡΠΎΠ²Π΅, ΠΈΠ·Π²Π΅ΡΡΠ½ΠΈ ΠΎΡΠ΅ ΠΊΠ°ΡΠΎ ΡΠ΅ΡΡΠΎΠ²Π΅ ΡΡΠ΅Π· "ΠΈΠ·Π΄Π»ΡΠ³Π²Π°Π½Π΅", Π±ΡΡ
Π° Π²ΡΠ²Π΅Π΄Π΅Π½ΠΈ ΠΎΡ Netflix. Π‘ΡΡΠ½ΠΎΡΡΡΠ° Π½Π° ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΡΡΠ° Π΅, ΡΠ΅ ΠΏΡΡΠ²ΠΎ Π·Π°ΠΏΡΠ»Π²Π°ΠΌΠ΅ Π΅Π΄ΠΈΠ½ ΠΈΠ½ΡΡΠ°Π½Ρ Ρ ΡΠ΅Π°Π»Π΅Π½ ΡΡΠ°ΡΠΈΠΊ Π΄ΠΎ ΠΎΡΠΊΠ°Π· ΠΈ ΡΠ°ΠΊΠ° ΡΡΡΠ°Π½ΠΎΠ²ΡΠ²Π°ΠΌΠ΅ ΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΠ΅ ΠΌΡ. Π‘Π»Π΅Π΄ ΡΠΎΠ²Π° Π΄ΠΎΠ±Π°Π²ΡΠΌΠ΅ ΠΎΡΠ΅ Π΅Π΄ΠΈΠ½ ΠΈΠ½ΡΡΠ°Π½Ρ ΠΈ Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°ΠΌΠ΅ ΡΠ΅Π·ΠΈ Π΄Π²Π° ΠΈΠ½ΡΡΠ°Π½ΡΠ° ΠΎΡΠ½ΠΎΠ²ΠΎ Π΄ΠΎ ΠΌΠ°ΠΊΡΠΈΠΌΡΠΌΠ°; Π½Π°Π±Π»ΡΠ΄Π°Π²Π°ΠΌΠ΅ ΡΠ΅Ρ
Π½ΠΈΡ ΡΠ°Π²Π°Π½ ΠΈ ΡΠ°Π·Π»ΠΈΠΊΠ°ΡΠ° Ρ ΠΏΡΡΠ²ΠΈΡ "ΡΠΊΠ²ΠΈΠ·". Π ΡΠ°ΠΊΠ°, ΡΠ²ΡΡΠ·Π²Π°ΠΌΠ΅ ΠΏΠΎ Π΅Π΄ΠΈΠ½ ΠΈΠ½ΡΡΠ°Π½Ρ Π² ΡΡΡΠΏΠΊΠΈ ΠΈ ΠΈΠ·ΡΠΈΡΠ»ΡΠ²Π°ΠΌΠ΅ Π·Π°ΠΊΠΎΠ½ΠΎΠΌΠ΅ΡΠ½ΠΎΡΡΠΈΡΠ΅ Π½Π° ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅.
ΠΠ°Π½Π½ΠΈΡΠ΅ ΠΎΡ ΡΠ΅ΡΡΠΎΠ²Π΅ΡΠ΅ ΡΡΠ΅Π· "ΠΈΠ·Π΄Π»ΡΠ³Π²Π°Π½Π΅" ΡΡΡΠΎ ΡΠ΅ ΠΈΠ½ΠΆΠ΅ΠΊΡΠΈΡΠ°Ρ Π² ΠΎΠ±ΡΠ° Π±Π°Π·Π° ΠΌΠ΅ΡΡΠΈΠΊΠΈ, ΠΊΡΠ΄Π΅ΡΠΎ ΠΈΠ»ΠΈ ΠΎΠ±ΠΎΠ³Π°ΡΡΠ²Π°ΠΌΠ΅ ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠΈΡΠ΅ ΠΎΡ ΠΈΠ·ΠΊΡΡΡΠ²Π΅Π½ΠΎ Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅, ΠΈΠ»ΠΈ Π½Π°ΠΏΡΠ»Π½ΠΎ Π³ΠΈ Π·Π°ΠΌΠ΅Π½ΡΠΌΠ΅ Ρ "ΡΠΈΠ½ΡΠ΅ΡΠΈΡΠ½ΠΎ".
ΠΡΠΎΠ΄ΡΠΊΡΠΈΡ
β’ ΠΠ°ΡΠ°Π±ΠΈΡΠ°Π½Π΅. ΠΠΎΠ³Π°ΡΠΎ ΠΏΡΡΠΊΠ°ΠΌΠ΅ ΡΡΠ»ΡΠ³Π°ΡΠ° Π² ΠΏΡΠΎΠ΄ΡΠΊΡΠΈΡ, ΡΠ»Π΅Π΄ΠΈΠΌ ΠΊΠ°ΠΊ ΡΠ΅ ΠΌΠ°ΡΠ°Π±ΠΈΡΠ°. ΠΠΎ Π½Π°Ρ ΠΎΠΏΠΈΡ, ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³ΡΡ ΡΠ°ΠΌΠΎ Π½Π° ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈΡΠ΅ Π½Π° CPU Π΅ Π½Π΅Π΅ΡΠ΅ΠΊΡΠΈΠ²Π΅Π½. ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎΡΠΎ ΠΌΠ°ΡΠ°Π±ΠΈΡΠ°Π½Π΅ Ρ Π±Π΅Π½ΡΠΌΠ°ΡΠΊΠΈΠ½Π³ RPS Π² ΡΠΈΡΡ Π²Π°ΡΠΈΠ°Π½ Π΅ Π΅ΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ, Π½ΠΎ ΡΠ°ΠΌΠΎ Π·Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈ ΡΡΠ»ΡΠ³ΠΈ, ΠΊΠ°ΡΠΎ ΠΎΠ½Π»Π°ΠΉΠ½ ΡΡΡΠΈΠΉΠΌΠΈΠ½Π³. ΠΠ°ΡΠΎΠ²Π° ΠΏΡΠ΅Π΄ΠΈ Π²ΡΠΈΡΠΊΠΎ Π³Π»Π΅Π΄Π°ΠΌΠ΅ Π½Π° ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΠΈ Π·Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ ΠΏΡΠΎΠ΄ΡΠΊΡΠΎΠ²ΠΈ ΠΌΠ΅ΡΡΠΈΠΊΠΈ.
Π ΠΊΡΠ°ΠΉΠ½Π° ΡΠΌΠ΅ΡΠΊΠ°, ΠΏΡΠΈ ΠΌΠ°ΡΠ°Π±ΠΈΡΠ°Π½Π΅ Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠ°ΠΌΠ΅:
β ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈΡΠ΅ Π½Π° CPU ΠΈ RAM,
β Π±ΡΠΎΡ Π½Π° Π·Π°ΡΠ²ΠΊΠΈΡΠ΅ Π² ΠΎΠΏΠ°ΡΠΊΠ°ΡΠ°,
β Π²ΡΠ΅ΠΌΠ΅ΡΠΎ Π·Π° ΠΎΡΠ³ΠΎΠ²ΠΎΡ,
β ΠΏΡΠΎΠ³Π½ΠΎΠ·Π°ΡΠ° Π½Π° Π±Π°Π·Π°ΡΠ° Π½Π° Π½Π°ΡΡΡΠΏΠ°Π½ΠΈ ΠΈΡΡΠΎΡΠΈΡΠ΅ΡΠΊΠΈ Π΄Π°Π½Π½ΠΈ.
ΠΡΠΈ ΠΌΠ°ΡΠ°Π±ΠΈΡΠ°Π½Π΅ Π½Π° ΡΡΠ»ΡΠ³Π°ΡΠ° Π΅ ΡΡΡΠΎ Π²Π°ΠΆΠ½ΠΎ Π΄Π° ΠΏΡΠΎΡΠ»Π΅Π΄ΡΠ²Π°ΠΌΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈΡΠ΅, Π·Π° Π΄Π° Π½Π΅ ΡΠ΅ ΡΠ»ΡΡΠΈ ΡΠ°ΠΊΠ°, ΡΠ΅ ΠΏΡΡΠ²Π°ΡΠ° ΡΡΠ»ΡΠ³Π° Π² Π²Π΅ΡΠΈΠ³Π°ΡΠ° Π΄Π° ΡΠ΅ ΠΌΠ°ΡΠ°Π±ΠΈΡΠ°, Π° ΡΠ΅Π·ΠΈ, ΠΊΡΠΌ ΠΊΠΎΠΈΡΠΎ ΡΡ ΡΠ΅ ΠΎΠ±ΡΡΡΠ°, Π΄Π° ΠΏΠ°Π΄Π½Π°Ρ ΠΏΠΎΠ΄ Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅. ΠΠ° Π΄Π° ΡΡΡΠ°Π½ΠΎΠ²ΠΈΠΌ ΠΏΡΠΈΠ΅ΠΌΠ»ΠΈΠ²ΠΎ Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅ Π·Π° ΡΠ΅Π»ΠΈΡ ΠΏΡΠ» ΡΡΠ»ΡΠ³ΠΈ, Π³Π»Π΅Π΄Π°ΠΌΠ΅ ΠΈΡΡΠΎΡΠΈΡΠ΅ΡΠΊΠΈΡΠ΅ Π΄Π°Π½Π½ΠΈ Π½Π° "Π±Π»ΠΈΠ·ΠΊΠ°ΡΠ°" Π·Π°Π²ΠΈΡΠΈΠΌΠ° ΡΡΠ»ΡΠ³Π° (ΠΏΠΎ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΡ ΠΎΡ ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ Π½Π° CPU ΠΈ RAM Π·Π°Π΅Π΄Π½ΠΎ Ρ app-specific metrics) ΠΈ Π³ΠΈ ΡΡΠΏΠΎΡΡΠ°Π²ΡΠΌΠ΅ Ρ ΠΈΡΡΠΎΡΠΈΡΠ΅ΡΠΊΠΈΡΠ΅ Π΄Π°Π½Π½ΠΈ Π½Π° ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠ°ΡΠ°ΡΠ° ΡΡΠ»ΡΠ³Π°, ΠΈ ΡΠ°ΠΊΠ° Π½Π°ΡΠ°ΡΡΠΊ ΠΏΠΎ ΡΡΠ»Π°ΡΠ° "Π²Π΅ΡΠΈΠ³Π° ΠΎΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ", ΠΎΡΠ³ΠΎΡΠ΅ Π½Π°Π΄ΠΎΠ»Ρ.
ΠΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°
Π‘Π»Π΅Π΄ ΠΊΠ°ΡΠΎ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΡΡ Π΅ ΠΏΡΡΠ½Π°Ρ Π² Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅, ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Π΄ΠΎΠ±Π°Π²ΠΈΠΌ ΡΡΠΈΠ³Π΅ΡΠΈ ΠΊΡΠΌ Π½Π΅Π³ΠΎ.
ΠΡΠΎ ΡΠΈΠΏΠΈΡΠ½ΠΈ ΡΠΈΡΡΠ°ΡΠΈΠΈ, Π² ΠΊΠΎΠΈΡΠΎ ΡΠ΅ Π·Π°Π΄Π΅ΠΉΡΡΠ²Π°Ρ ΡΡΠΈΠ³Π΅ΡΠΈΡΠ΅.
β ΠΡΠΊΡΠΈΡΠΈ ΡΠ° ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»Π½ΠΎ ΠΎΠΏΠ°ΡΠ½ΠΈ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ.
β ΠΠ·Π΄Π°Π΄Π΅Π½ΠΈ ΡΠ° Π°ΠΊΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π·Π° ΡΠΈΠ³ΡΡΠ½ΠΎΡΡ.
β Π‘Π°ΠΌΠ°ΡΠ° ΡΡΠ»ΡΠ³Π° ΠΎΡΠ΄Π°Π²Π½Π° Π½Π΅ Π΅ Π°ΠΊΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½Π°.
β ΠΠ½Π°ΡΠΈΡΠ΅Π»Π½ΠΎ Π΅ Π½Π°ΠΌΠ°Π»ΡΠ»ΠΎ Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΡΡΠ»ΡΠ³Π°ΡΠ° ΠΈΠ»ΠΈ Π½ΡΠΊΠΎΠΈ ΠΎΡ ΠΏΡΠΎΠ΄ΡΠΊΡΠΎΠ²ΠΈ Ρ ΠΌΠ΅ΡΡΠΈΠΊΠΈ ΠΈΠ·Π»ΠΈΠ·Π°Ρ ΠΈΠ·Π²ΡΠ½ Π½ΠΎΡΠΌΠΈΡΠ΅.
β Π£ΡΠ»ΡΠ³Π°ΡΠ° Π΅ ΠΏΡΠ΅ΡΡΠ°Π½Π°Π»Π° Π΄Π° ΠΎΡΠ³ΠΎΠ²Π°ΡΡ Π½Π° Π½ΠΎΠ²ΠΈΡΠ΅ ΠΈΠ·ΠΈΡΠΊΠ²Π°Π½ΠΈΡ Π½Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°ΡΠ°.
Π§Π°ΡΡ ΠΎΡ ΡΡΠΈΠ³Π΅ΡΠΈΡΠ΅ ΠΎΡΠ³ΠΎΠ²Π°ΡΡ Π·Π° ΡΡΠ°Π±ΠΈΠ»Π½ΠΎΡΡΡΠ° Π½Π° ΡΠ°Π±ΠΎΡΠ°ΡΠ°, ΡΠ°ΡΡ β ΠΊΠ°ΡΠΎ ΡΡΠ½ΠΊΡΠΈΡ Π·Π° ΠΎΠ±ΡΠ»ΡΠΆΠ²Π°Π½Π΅ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° β Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π½ΡΠΊΠ°ΠΊΠ²Π° ΡΡΠ»ΡΠ³Π° ΠΎΡΠ΄Π°Π²Π½Π° Π½Π΅ Π΅ Π±ΠΈΠ»Π° Π²Π½Π΅Π΄ΡΠ΅Π½Π° ΠΈ ΠΎΡΠ½ΠΎΠ²Π½ΠΈΡΡ Ρ ΠΎΠ±ΡΠ°Π· Π΅ ΡΠΏΡΡΠ» Π΄Π° ΠΏΡΠ΅ΠΌΠΈΠ½Π°Π²Π° ΡΠΈΠ³ΡΡΠ½ΠΎΡΡΠ½Π°ΡΠ° ΠΏΡΠΎΠ²Π΅ΡΠΊΠ°.
ΠΠ°ΡΠ±ΠΎΡΠ΄
ΠΠ°ΠΊΡΠ°ΡΠΊΠΎ, Π΄Π°ΡΠ±ΠΎΡΠ΄ΡΡ Π΅ ΠΊΠΎΠ½ΡΡΠΎΠ»Π½ΠΈΡΡ ΠΏΠ°Π½Π΅Π» Π·Π° Π²ΡΠΈΡΠΊΠΈΡΠ΅ Π½ΠΈ PaaS ΡΡΠ»ΡΠ³ΠΈ.
- ΠΠ΄ΠΈΠ½Π½Π° ΡΠΎΡΠΊΠ° Π·Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π·Π° ΡΡΠ»ΡΠ³Π°ΡΠ°, Ρ Π΄Π°Π½Π½ΠΈ Π·Π° ΠΏΠΎΠΊΡΠΈΡΠΈΠ΅ΡΠΎ Ρ Ρ ΡΠ΅ΡΡΠΎΠ²Π΅, Π±ΡΠΎΡ Π½Π° ΠΎΠ±ΡΠ°Π·ΠΈΡΠ΅ Ρ, Π±ΡΠΎΡ Π½Π° ΠΏΡΠΎΠ΄ΡΠΊΡΠΈΠΎΠ½Π½ΠΈΡΠ΅ ΠΊΠΎΠΏΠΈΡ, Π²Π΅ΡΡΠΈΠΈ ΠΈ Ρ.Π½.
- Π‘ΡΠ΅Π΄ΡΡΠ²ΠΎ Π·Π° ΡΠΈΠ»ΡΡΠΈΡΠ°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ ΠΏΠΎ ΡΡΠ»ΡΠ³ΠΈ ΠΈ Π΅ΡΠΈΠΊΠ΅ΡΠΈ (ΠΌΠ°ΡΠΊΠΈΡΠΎΠ²ΠΊΠΈ Π·Π° ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ½ΠΎΡΡ ΠΊΡΠΌ Π±ΠΈΠ·Π½Π΅Ρ Π΅Π΄ΠΈΠ½ΠΈΡΠΈ, ΠΏΡΠΎΠ΄ΡΠΊΡΠΎΠ²Π° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡ ΠΈ Ρ.Π½.)
- Π‘ΡΠ΅Π΄ΡΡΠ²ΠΎ Π·Π° ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ Ρ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ½ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ Π·Π° ΡΡΠ°ΡΠΈΡΠΎΠ²ΠΊΠ°, Π»ΠΎΠ³ΠΈΡΠ°Π½Π΅ ΠΈ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³.
- ΠΠ΄ΠΈΠ½Π½Π° ΡΠΎΡΠΊΠ° Π½Π° Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΠΏΠΎ ΡΡΠ»ΡΠ³ΠΈ.
- ΠΠ΄ΠΈΠ½Π½Π° ΡΠΎΡΠΊΠ° Π·Π° ΠΏΡΠ΅Π³Π»Π΅Π΄ Π½Π° Π²ΡΠΈΡΠΊΠΈ ΡΡΠ±ΠΈΡΠΈΡ ΠΏΠΎ ΡΡΠ»ΡΠ³ΠΈ.




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