ΠΠ²Π΅Π½Π°Π΄ΡΠ°ΡΠΈΡΠ°ΠΊΡΠΎΡΠ½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ (12-Factor App) β ΡΡΠΎ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½Π½Π°Ρ ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΠ°ΠΌΠΈ Heroku. ΠΠ½Π° ΠΎΠΏΠΈΡΡΠ²Π°Π΅Ρ Π½Π°Π±ΠΎΡ ΠΈΠ· 12 ΠΏΡΠΈΠ½ΡΠΈΠΏΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠΌΠΎΠ³Π°ΡΡ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅, ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠ΅Π΅ Π΄Π»Ρ ΠΎΠ±Π»Π°ΡΠ½ΡΡ ΡΡΠ΅Π΄.
ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ ΡΠ΅Π»ΠΈ ΡΡΠΎΠΉ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΠΈ:
- ΠΡΠΎΡΡΠΎΠ΅ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅.
- ΠΠΎΡΡΠ°ΡΠΈΠ²Π½ΠΎΡΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΡΠ΅Π΄Π°ΠΌΠΈ.
- Π£ΠΏΡΠΎΡΠ΅Π½ΠΈΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΡ.
ΠΡΠΈ ΠΏΡΠΈΠ½ΡΠΈΠΏΡ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΠΌΡ ΠΊΠΎ Π²ΡΠ΅ΠΌ Π²ΠΈΠ΄Π°ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π½ΠΎ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ ΠΏΠΎΠ»Π΅Π·Π½Ρ Π΄Π»Ρ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠΎΠ².
ΠΡΠΈΠ½ΡΠΈΠΏΡ Π΄Π²Π΅Π½Π°Π΄ΡΠ°ΡΠΈΡΠ°ΠΊΡΠΎΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
ΠΠ΄ΠΈΠ½Π°Ρ ΠΊΠΎΠ΄ΠΎΠ²Π°Ρ Π±Π°Π·Π° Π΄ΠΎΠ»ΠΆΠ½Π° ΡΠΏΡΠ°Π²Π»ΡΡΡΡΡ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π²Π΅ΡΡΠΈΠΉ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π²ΠΎ Π²ΡΠ΅Ρ ΡΡΠ΅Π΄Π°Ρ . ΠΡΠ΅ Π²Π΅ΡΠΊΠΈ ΠΈ Π΄Π΅ΠΏΠ»ΠΎΠΉΠΌΠ΅Π½ΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠ° ΠΏΡΠΈΠ²ΡΠ·Π°Π½Ρ ΠΊ ΠΎΠ΄Π½ΠΎΠΌΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ. ΠΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ ΡΠ°ΠΊΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ Π½Π° ΠΎΠ΄ΠΈΠ½ ΡΡΠ΅Π½Π΄ Π΄Π΅ΠΏΠ»ΠΎΠΉ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΠ» ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ, Π° Π½Π° Π΄ΡΡΠ³ΠΎΠΉ ΠΈΠ· Π΄ΡΡΠ³ΠΎΠ³ΠΎ.
ΠΡΠΌΠ°Π», Π° ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΡΡΡΠΈΡΡ ΡΡΠΎΡ ΠΏΡΠΈΠ½ΡΠΈΠΏ. Π Π²ΡΠΏΠΎΠΌΠ½ΠΈΠ» ΡΠ»ΡΡΠ°ΠΉ. ΠΠΎΡΠ»Π΅ ΠΏΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΡ ΡΠ΅ΡΠ²ΠΈΡΠ° Π² GitLab ΠΏΡΠΈΡΠ»ΠΎΡΡ ΡΠ΄Π΅Π»Π°ΡΡ Π΄Π»Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΡΠ΅Π½Π΄Π° ΡΠΎΡΠΊ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ, ΡΡΠΎΠ±Ρ ΡΠΎΠ±ΡΠ°ΡΡΡΡ ΡΠΎ ΡΡΠ°ΡΡΠΌ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ Π΄Π»Ρ ΡΠΈΠΊΡΠ°. ΠΡΠΎ Π±ΡΠ»ΠΎ ΡΠ²ΡΠ·Π°Π½ΠΎ Ρ ΡΠ΅ΠΌ, ΡΡΠΎ Π²ΡΠ΅ ΡΡΠ΅Π½Π΄Ρ Π·Π°Π²ΠΈΡΠ΅Π»ΠΈ ΠΎΡ Π½Π°Π·Π²Π°Π½ΠΈΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ, ΠΏΠΎΡΡΠΎΠΌΡ Π±ΡΠ»ΠΎ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°ΡΡ ΡΠ΅ΡΠ²ΠΈΡ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΡΠ΅Π½Π΄Π°.
ΠΠ°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ. Π―Π²Π½ΠΎΠ΅ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ ΠΈ ΠΈΠ·ΠΎΠ»ΡΡΠΈΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ. ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅ΡΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ.
ΠΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ. Π₯ΡΠ°Π½ΠΈΡΠ΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ ΠΎΡ ΠΊΠΎΠ΄Π°. ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ Π΄Π»Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΡΡΠ΅Π΄Ρ. ΠΡΠΈΠΌΠ΅Ρ: URL Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ , ΡΠ΅ΠΊΡΠ΅ΡΡ ΠΈΠ»ΠΈ ΠΊΠ»ΡΡΠΈ API Π·Π°Π΄Π°ΡΡΡΡ ΡΠ΅ΡΠ΅Π· ENV, Π° Π½Π΅ Π² ΠΊΠΎΠ΄Π΅.
ΠΠ½Π΅ΡΠ½ΠΈΠ΅ ΡΠ΅ΡΡΡΡΡ. ΠΠ°Π·Ρ Π΄Π°Π½Π½ΡΡ , ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ, ΡΠ°ΠΉΠ»ΠΎΠ²ΡΠ΅ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ° ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡΡΡ ΠΊΠ°ΠΊ ΠΏΡΠΈΠΊΡΠ΅ΠΏΠ»ΡΠ΅ΠΌΡΠ΅ ΡΠ΅ΡΡΡΡΡ. ΠΡΠΈΠΌΠ΅Ρ: ΠΠ°Π·Π° Π΄Π°Π½Π½ΡΡ PostgreSQL ΠΈΠ»ΠΈ ΠΎΡΠ΅ΡΠ΅Π΄Ρ RabbitMQ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π·Π°ΠΌΠ΅Π½Π΅Π½Ρ Π±Π΅Π· ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΊΠΎΠ΄Π°.
Π‘Π±ΠΎΡΠΊΠ°, Π²ΡΠΏΡΡΠΊ, Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅. Π§Π΅ΡΠΊΠΎΠ΅ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΡΠ°Π΄ΠΈΠΉ: ΡΠ±ΠΎΡΠΊΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠ΅Π»ΠΈΠ·Π° ΠΈ Π΅Π³ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅.
ΠΡΠΎΡΠ΅ΡΡΡ. ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΎ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ². ΠΠ°ΠΆΠ΄ΡΠΉ ΠΏΡΠΎΡΠ΅ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ Π·Π° ΡΠ²ΠΎΡ Π·Π°Π΄Π°ΡΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° HTTP-Π·Π°ΠΏΡΠΎΡΠΎΠ², ΡΠΎΠ½ΠΎΠ²ΡΠ΅ Π·Π°Π΄Π°Π½ΠΈΡ).
Stateless. ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Ρ ΡΠ°Π½ΠΈΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ»ΠΈ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Π²Π½ΡΡΡΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ². ΠΡΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ Ρ ΡΠ°Π½ΡΡΡΡ Π²ΠΎ Π²Π½Π΅ΡΠ½ΠΈΡ ΡΠ΅ΡΡΡΡΠ°Ρ . ΠΡΠΈΠΌΠ΅Ρ: Π‘Π΅ΡΡΠΈΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ ΡΠΎΡ ΡΠ°Π½ΡΡΡΡΡ Π² Redis, Π° Π½Π΅ Π² ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΡΠ»ΠΈ ΠΏΡΠΎΡΠ΅ΡΡ ΠΏΠ°Π΄Π°Π΅Ρ ΠΈΠ»ΠΈ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ, ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Π½Π΅ ΡΠ΅ΡΡΠ΅ΡΡΡ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ΠΎ Ρ ΡΠ°Π½ΠΈΡΡΡ Π² Redis, Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ ΠΈΠ»ΠΈ Π΄ΡΡΠ³ΠΎΠΉ Π²Π½Π΅ΡΠ½Π΅ΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅.
ΠΡΠΈΠ²ΡΠ·ΠΊΠ° ΠΏΠΎΡΡΠΎΠ². ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠΊΡΠΏΠΎΡΡΠΈΡΡΠ΅Ρ HTTP (ΠΈΠ»ΠΈ Π΄ΡΡΠ³ΠΎΠΉ) ΡΠ΅ΡΠ²ΠΈΡ ΡΠ΅ΡΠ΅Π· ΠΏΡΠΈΠ²ΡΠ·Π°Π½Π½ΡΠΉ ΠΏΠΎΡΡ.
ΠΠ°ΡΠ°Π»Π»Π΅Π»ΠΈΠ·ΠΌ. ΠΡΠΎΡΠ΅ΡΡΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΡΠ°Π·Π΄Π΅Π»Π΅Π½Ρ Π½Π° ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΡΠ΅ΠΌΡΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ.
Π‘ΡΠ΅Π΄Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ = ΡΡΠ΅Π΄Π° ΠΏΡΠΎΠ΄Π°ΠΊΡΠ΅Π½Π°. ΠΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡΡΠΉΡΠ΅ ΡΠ°Π·Π»ΠΈΡΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΡΠ΅Π½Π΄Π°ΠΌΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈ ΠΏΡΠΎΠ΄Π°ΠΊΡΠ΅Π½ΠΎΠΌ.
ΠΡΡΠ½Π°Π»ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅. ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΈΡΠ΅Ρ ΡΠΎΠ±ΡΡΠΈΡ Π² ΠΏΠΎΡΠΎΠΊ Π²ΡΠ²ΠΎΠ΄Π° (stdout), Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΎΠΉ Π»ΠΎΠ³ΠΎΠ² Π·Π°Π½ΠΈΠΌΠ°Π΅ΡΡΡ Π²Π½Π΅ΡΠ½ΡΡ ΡΠΈΡΡΠ΅ΠΌΠ°. ΠΡΠΈΠΌΠ΅Ρ: ΠΠΎΠ³ΠΈ ΡΠΎΠ±ΠΈΡΠ°ΡΡΡΡ ΡΠ΅ΡΠ΅Π· Elasticsearch ΠΈΠ»ΠΈ Datadog.
ΠΠ΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΈΠ²Π½ΡΠ΅ Π·Π°Π΄Π°ΡΠΈ. ΠΠ°ΠΏΡΡΠΊΠ°ΠΉΡΠ΅ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΈΠ²Π½ΡΠ΅ Π·Π°Π΄Π°ΡΠΈ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ , Π²ΠΌΠ΅ΡΡΠ΅ Ρ Π·Π°ΠΏΡΡΠΊΠΎΠΌ ΡΠ΅ΡΠ²ΠΈΡΠ°.
ΠΠ΅ΡΠ° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ
ΠΠ±Π»Π°ΡΡΡ:: 00 ΠΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠ½Π°Ρ Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΠ°
Π ΠΎΠ΄ΠΈΡΠ΅Π»Ρ::
ΠΡΡΠΎΡΠ½ΠΈΠΊ::
Π‘ΠΎΠ·Π΄Π°Π½Π°:: 2024-12-08
ΠΠ²ΡΠΎΡ::