Π”Π²Π΅Π½Π°Π΄Ρ†Π°Ρ‚ΠΈΡ„Π°ΠΊΡ‚ΠΎΡ€Π½ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ (12-Factor App) β€” это мСтодология Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, прСдлоТСнная ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Π°ΠΌΠΈ Heroku. Она описываСт Π½Π°Π±ΠΎΡ€ ΠΈΠ· 12 ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠΌΠΎΠ³Π°ΡŽΡ‚ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС, подходящСС для ΠΎΠ±Π»Π°Ρ‡Π½Ρ‹Ρ… срСд.

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ Ρ†Π΅Π»ΠΈ этой ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΠΈ:

  • ΠŸΡ€ΠΎΡΡ‚ΠΎΠ΅ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅.
  • ΠŸΠΎΡ€Ρ‚Π°Ρ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ ΠΌΠ΅ΠΆΠ΄Ρƒ срСдами.
  • Π£ΠΏΡ€ΠΎΡ‰Π΅Π½ΠΈΠ΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ развСртывания.

Π­Ρ‚ΠΈ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌΡ‹ ΠΊΠΎ всСм Π²ΠΈΠ΄Π°ΠΌ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π½ΠΎ особСнно ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ для Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ микросСрвисов.

ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ Π΄Π²Π΅Π½Π°Π΄Ρ†Π°Ρ‚ΠΈΡ„Π°ΠΊΡ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ прилоТСния

Единая кодовая Π±Π°Π·Π° Π΄ΠΎΠ»ΠΆΠ½Π° ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒΡΡ Π² систСмС контроля вСрсий ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π²ΠΎ всСх срСдах. ВсС Π²Π΅Ρ‚ΠΊΠΈ ΠΈ Π΄Π΅ΠΏΠ»ΠΎΠΉΠΌΠ΅Π½Ρ‚Ρ‹ ΠΎΠ΄Π½ΠΎΠ³ΠΎ микросСрвиса привязаны ΠΊ ΠΎΠ΄Π½ΠΎΠΌΡƒ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΡŽ. НС Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ Ρ‚Π°ΠΊΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π° ΠΎΠ΄ΠΈΠ½ стСнд Π΄Π΅ΠΏΠ»ΠΎΠΉ происходил ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ рСпозитория, Π° Π½Π° Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ.

Π”ΡƒΠΌΠ°Π», Π° ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°Ρ€ΡƒΡˆΠΈΡ‚ΡŒ этот ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ. И вспомнил случай. ПослС пСрСимСнования сСрвиса Π² GitLab ΠΏΡ€ΠΈΡˆΠ»ΠΎΡΡŒ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ для ΠΎΠ΄Π½ΠΎΠ³ΠΎ стСнда Ρ„ΠΎΡ€ΠΊ рСпозитория, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ со старым Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ для фикса. Π­Ρ‚ΠΎ Π±Ρ‹Π»ΠΎ связано с Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ всС стСнды зависСли ΠΎΡ‚ названия рСпозитория, поэтому Π±Ρ‹Π»ΠΎ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Ρ‚ΡŒ сСрвис Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для ΠΎΠ΄Π½ΠΎΠ³ΠΎ стСнда.

Зависимости. Π―Π²Π½ΠΎΠ΅ объявлСниС ΠΈ изоляция зависимостСй. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Ρ‹ зависимостСй.

ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ. Π₯Ρ€Π°Π½ΠΈΡ‚Π΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ ΠΎΡ‚ ΠΊΠΎΠ΄Π°. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ окруТСния для настройки срСды. ΠŸΡ€ΠΈΠΌΠ΅Ρ€: URL Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…, сСкрСты ΠΈΠ»ΠΈ ΠΊΠ»ΡŽΡ‡ΠΈ API Π·Π°Π΄Π°ΡŽΡ‚ΡΡ Ρ‡Π΅Ρ€Π΅Π· ENV, Π° Π½Π΅ Π² ΠΊΠΎΠ΄Π΅.

Π’Π½Π΅ΡˆΠ½ΠΈΠ΅ рСсурсы. Π‘Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ, Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹Π΅ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π° Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ прикрСпляСмыС рСсурсы. ΠŸΡ€ΠΈΠΌΠ΅Ρ€: Π‘Π°Π·Π° Π΄Π°Π½Π½Ρ‹Ρ… PostgreSQL ΠΈΠ»ΠΈ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ RabbitMQ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π·Π°ΠΌΠ΅Π½Π΅Π½Ρ‹ Π±Π΅Π· измСнСния ΠΊΠΎΠ΄Π°.

Π‘Π±ΠΎΡ€ΠΊΠ°, выпуск, Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅. Π§Π΅Ρ‚ΠΊΠΎΠ΅ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ стадий: сборка прилоТСния, созданиС Ρ€Π΅Π»ΠΈΠ·Π° ΠΈ Π΅Π³ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅.

ΠŸΡ€ΠΎΡ†Π΅ΡΡΡ‹. ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ построСно ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… нСзависимых процСссов. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ процСсс прилоТСния ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° свою Π·Π°Π΄Π°Ρ‡Ρƒ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° HTTP-запросов, Ρ„ΠΎΠ½ΠΎΠ²Ρ‹Π΅ задания).

Stateless. ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ»ΠΈ состояниС Π²Π½ΡƒΡ‚Ρ€ΠΈ процСссов. ВсС состояния хранятся Π²ΠΎ Π²Π½Π΅ΡˆΠ½ΠΈΡ… рСсурсах. ΠŸΡ€ΠΈΠΌΠ΅Ρ€: БСссии ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‚ΡΡ Π² Redis, Π° Π½Π΅ Π² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти прилоТСния. Если процСсс ΠΏΠ°Π΄Π°Π΅Ρ‚ ΠΈΠ»ΠΈ пСрСзапускаСтся, состояниС Π½Π΅ тСряСтся, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ΠΎ хранится Π² Redis, Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠΉ внСшнСй систСмС.

ΠŸΡ€ΠΈΠ²ΡΠ·ΠΊΠ° ΠΏΠΎΡ€Ρ‚ΠΎΠ². ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ экспортируСт HTTP (ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠΉ) сСрвис Ρ‡Π΅Ρ€Π΅Π· привязанный ΠΏΠΎΡ€Ρ‚.

ΠŸΠ°Ρ€Π°Π»Π»Π΅Π»ΠΈΠ·ΠΌ. ΠŸΡ€ΠΎΡ†Π΅ΡΡΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Ρ‹ Π½Π° ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ.

Π‘Ρ€Π΅Π΄Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ = срСда ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ΅Π½Π°. ΠœΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡ€ΡƒΠΉΡ‚Π΅ различия ΠΌΠ΅ΠΆΠ΄Ρƒ стСндами Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ΅Π½ΠΎΠΌ.

Π–ΡƒΡ€Π½Π°Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅. ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΈΡˆΠ΅Ρ‚ события Π² ΠΏΠΎΡ‚ΠΎΠΊ Π²Ρ‹Π²ΠΎΠ΄Π° (stdout), Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ Π»ΠΎΠ³ΠΎΠ² занимаСтся внСшняя систСма. ΠŸΡ€ΠΈΠΌΠ΅Ρ€: Π›ΠΎΠ³ΠΈ ΡΠΎΠ±ΠΈΡ€Π°ΡŽΡ‚ΡΡ Ρ‡Π΅Ρ€Π΅Π· Elasticsearch ΠΈΠ»ΠΈ Datadog.

АдминистративныС Π·Π°Π΄Π°Ρ‡ΠΈ. ЗапускайтС административныС Π·Π°Π΄Π°Ρ‡ΠΈ, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…, вмСстС с запуском сСрвиса.


ΠœΠ΅Ρ‚Π° информация

ΠžΠ±Π»Π°ΡΡ‚ΡŒ:: 00 ΠœΠΈΠΊΡ€ΠΎΡΠ΅Ρ€Π²ΠΈΡΠ½Π°Ρ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°
Π ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒ::
Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ::
Π‘ΠΎΠ·Π΄Π°Π½Π°:: 2024-12-08
Автор::

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Ρ‹

Π”ΠΎΡ‡Π΅Ρ€Π½ΠΈΠ΅ Π·Π°ΠΌΠ΅Ρ‚ΠΊΠΈ