From: Vladislav Kramorenko <85196001+Xewus@users.noreply.github.com>
Date: Sat, 3 Jun 2023 12:21:05 +0000 (+0300)
Subject: 🌐 Add Russian translation for `docs/ru/docs/deployment/concepts.md` (#9577)
X-Git-Tag: 0.96.0~30
X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=061e912ccf99788d6ddfc80d5989e73445351afd;p=thirdparty%2Ffastapi%2Ffastapi.git
🌐 Add Russian translation for `docs/ru/docs/deployment/concepts.md` (#9577)
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
---
diff --git a/docs/ru/docs/deployment/concepts.md b/docs/ru/docs/deployment/concepts.md
new file mode 100644
index 0000000000..681acf15ea
--- /dev/null
+++ b/docs/ru/docs/deployment/concepts.md
@@ -0,0 +1,311 @@
+# ÐонÑепÑии ÑазвÑÑÑÑваниÑ
+
+СÑÑеÑÑвÑÐµÑ Ð½ÐµÑколÑко конÑепÑий, пÑименÑемÑÑ
Ð´Ð»Ñ ÑазвÑÑÑÑÐ²Ð°Ð½Ð¸Ñ Ð¿Ñиложений **FastAPI**, Ñавно как и Ð´Ð»Ñ Ð»ÑбÑÑ
дÑÑгиÑ
Ñипов веб-пÑиложений, ÑÑеди коÑоÑÑÑ
ÐÑ Ð¼Ð¾Ð¶ÐµÑе вÑбÑаÑÑ **наиболее подÑ
одÑÑий** ÑпоÑоб.
+
+СамÑе важнÑе из ниÑ
:
+
+* ÐÑполÑзование более безопаÑного пÑоÑокола HTTPS
+* ÐаÑÑÑойки запÑÑка пÑиложениÑ
+* ÐеÑезагÑÑзка пÑиложениÑ
+* ÐапÑÑк неÑколÑкиÑ
ÑкземплÑÑов пÑиложениÑ
+* УпÑавление памÑÑÑÑ
+* ÐÑполÑзование пеÑеÑиÑленнÑÑ
ÑÑнкÑий пеÑед запÑÑком пÑиложениÑ.
+
+РаÑÑмоÑÑим ниже влиÑние каждого из ниÑ
на пÑоÑеÑÑ **ÑазвÑÑÑÑваниÑ**.
+
+ÐаÑа конеÑÐ½Ð°Ñ ÑÐµÐ»Ñ - **обÑлÑживаÑÑ ÐºÐ»Ð¸ÐµÐ½Ñов ÐаÑего API безопаÑно** и **беÑпеÑебойно**, Ñ Ð¼Ð°ÐºÑималÑно ÑÑÑекÑивнÑм иÑполÑзованием **вÑÑиÑлиÑелÑнÑÑ
ÑеÑÑÑÑов** (напÑимеÑ, ÑдалÑннÑÑ
ÑеÑвеÑов/виÑÑÑалÑнÑÑ
маÑин). ð
+
+ÐдеÑÑ Ñ Ð½ÐµÐ¼Ð½Ð¾Ð³Ð¾ ÑаÑÑÐºÐ°Ð¶Ñ Ðам об ÑÑиÑ
**конÑепÑиÑÑ
** и надеÑÑÑ, ÑÑо Ñ ÐÐ°Ñ ÑложиÑÑÑ **инÑÑиÑивное понимание**, какой ÑпоÑоб вÑбÑаÑÑ Ð¿Ñи ÑазвеÑÑÑвании ÐаÑего API в ÑазлиÑнÑÑ
окÑÑжениÑÑ
, возможно, даже **еÑÑ Ð½Ðµ ÑÑÑеÑÑвÑÑÑиÑ
**.
+
+ÐзнакомивÑиÑÑ Ñ ÑÑими конÑепÑиÑми, ÐÑ ÑможеÑе **оÑениÑÑ Ð¸ вÑбÑаÑÑ** лÑÑÑий ÑпоÑоб ÑазвÑÑÑÑвании **ÐаÑего API**.
+
+РпоÑледÑÑÑиÑ
главаÑ
Ñ Ð¿ÑедоÑÑÐ°Ð²Ð»Ñ Ðам **конкÑеÑнÑе ÑеÑепÑÑ** ÑазвÑÑÑÑÐ²Ð°Ð½Ð¸Ñ Ð¿ÑÐ¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ FastAPI.
+
+Ð ÑейÑÐ°Ñ Ð´Ð°Ð²Ð°Ð¹Ñе оÑÑановимÑÑ Ð½Ð° важнÑÑ
**идеÑÑ
ÑÑиÑ
конÑепÑий**. ÐÑи идеи можно Ñакже пÑимениÑÑ Ð¸ к дÑÑгим Ñипам веб-пÑиложений. ð¡
+
+## ÐÑполÑзование более безопаÑного пÑоÑокола HTTPS
+
+Ð [пÑедÑдÑÑей главе об HTTPS](./https.md){.internal-link target=_blank} Ð¼Ñ ÑаÑÑмоÑÑели, как HTTPS обеÑпеÑÐ¸Ð²Ð°ÐµÑ ÑиÑÑование Ð´Ð»Ñ ÐаÑего API.
+
+Также Ð¼Ñ Ð·Ð°Ð¼ÐµÑили, ÑÑо обÑÑно Ð´Ð»Ñ ÑабоÑÑ Ñ HTTPS ÐаÑÐµÐ¼Ñ Ð¿ÑÐ¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð½Ñжен **дополниÑелÑнÑй** ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÐµÐ½Ñ - **пÑокÑи-ÑеÑÐ²ÐµÑ Ð·Ð°Ð²ÐµÑÑÐµÐ½Ð¸Ñ ÑабоÑÑ TLS**.
+
+РеÑли пÑокÑи-ÑеÑÐ²ÐµÑ Ð½Ðµ ÑÐ¼ÐµÐµÑ Ñам **обновлÑÑÑ ÑеÑÑиÑикаÑÑ HTTPS**, Ñо нÑжен еÑÑ Ð¾Ð´Ð¸Ð½ ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÐµÐ½Ñ Ð´Ð»Ñ ÑÑого дейÑÑвиÑ.
+
+### ÐÑимеÑÑ Ð¸Ð½ÑÑÑÑменÑов Ð´Ð»Ñ ÑабоÑÑ Ñ HTTPS
+
+ÐÐ¾Ñ Ð½ÐµÐºÐ¾ÑоÑÑе инÑÑÑÑменÑÑ, коÑоÑÑе ÐÑ Ð¼Ð¾Ð¶ÐµÑе пÑименÑÑÑ ÐºÐ°Ðº пÑокÑи-ÑеÑвеÑÑ:
+
+* Traefik
+ * С авÑомаÑиÑеÑким обновлением ÑеÑÑиÑикаÑов â¨
+* Caddy
+ * С авÑомаÑиÑеÑким обновлением ÑеÑÑиÑикаÑов â¨
+* Nginx
+ * С дополниÑелÑнÑм компоненÑом Ñипа Certbot Ð´Ð»Ñ Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ ÑеÑÑиÑикаÑов
+* HAProxy
+ * С дополниÑелÑнÑм компоненÑом Ñипа Certbot Ð´Ð»Ñ Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ ÑеÑÑиÑикаÑов
+* Kubernetes Ñ Ingress Controller поÑ
ожим на Nginx
+ * С дополниÑелÑнÑм компоненÑом Ñипа cert-manager Ð´Ð»Ñ Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ ÑеÑÑиÑикаÑов
+* ÐÑполÑзование ÑÑлÑг облаÑного пÑовайдеÑа (ÑиÑайÑе ниже ð)
+
+РпоÑледнем ваÑианÑе ÐÑ Ð¼Ð¾Ð¶ÐµÑе воÑполÑзоваÑÑÑÑ ÑÑлÑгами **облаÑного ÑеÑвиÑа**, коÑоÑÑй ÑÐ´ÐµÐ»Ð°ÐµÑ Ð±Ð¾Ð»ÑÑÑÑ ÑаÑÑÑ ÑабоÑÑ, вклÑÑÐ°Ñ Ð½Ð°ÑÑÑÐ¾Ð¹ÐºÑ HTTPS. ÐÑо Ð¼Ð¾Ð¶ÐµÑ Ð½Ð°Ð»Ð¾Ð¶Ð¸ÑÑ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸ÑелÑнÑе огÑаниÑÐµÐ½Ð¸Ñ Ð¸Ð»Ð¸ поÑÑебоваÑÑ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸ÑелÑнÑÑ Ð¿Ð»Ð°ÑÑ Ð¸ Ñ.п. ÐаÑо Ðам не понадобиÑÑÑ ÑамоÑÑоÑÑелÑно занимаÑÑÑÑ Ð½Ð°ÑÑÑойками пÑокÑи-ÑеÑвеÑа.
+
+РдалÑнейÑем Ñ Ð¿Ð¾ÐºÐ°Ð¶Ñ Ðам некоÑоÑÑе конкÑеÑнÑе пÑимеÑÑ Ð¸Ñ
пÑименениÑ.
+
+---
+
+СледÑÑÑие конÑепÑии ÑаÑÑмаÑÑиваÑÑ Ð¿Ñименение пÑогÑаммÑ, запÑÑкаÑÑей ÐÐ°Ñ API (Ñакой как Uvicorn).
+
+## ÐÑогÑамма и пÑоÑеÑÑ
+
+ÐÑ ÑаÑÑо бÑдем вÑÑÑеÑаÑÑ Ñлова **пÑоÑеÑÑ** и **пÑогÑамма**, поÑÐ¾Ð¼Ñ ÑледÑÐµÑ ÑÑÑниÑÑ Ð¾ÑлиÑÐ¸Ñ Ð¼ÐµÐ¶Ð´Ñ Ð½Ð¸Ð¼Ð¸.
+
+### ЧÑо Ñакое пÑогÑамма
+
+ТеÑмином **пÑогÑамма** обÑÑно опиÑÑваÑÑ Ð¼Ð½Ð¾Ð¶ÐµÑÑво веÑей:
+
+* **Ðод**, коÑоÑÑй ÐÑ Ð½Ð°Ð¿Ð¸Ñали, в наÑем ÑлÑÑае **Python-ÑайлÑ**.
+* **Файл**, коÑоÑÑй Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ **иÑполнен** опеÑаÑионной ÑиÑÑемой, напÑÐ¸Ð¼ÐµÑ `python`, `python.exe` или `uvicorn`.
+* ÐонкÑеÑÐ½Ð°Ñ Ð¿ÑогÑамма, **запÑÑеннаÑ** опеÑаÑионной ÑиÑÑемой и иÑполÑзÑÑÑÐ°Ñ ÑенÑÑалÑнÑй пÑоÑеÑÑÐ¾Ñ Ð¸ памÑÑÑ. Ð Ñаком ÑлÑÑае ÑÑо Ñакже назÑваеÑÑÑ **пÑоÑеÑÑ**.
+
+### ЧÑо Ñакое пÑоÑеÑÑ
+
+ТеÑмин **пÑоÑеÑÑ** Ð¸Ð¼ÐµÐµÑ Ð±Ð¾Ð»ÐµÐµ Ñзкое Ñолкование, подÑазÑÐ¼ÐµÐ²Ð°Ñ ÑÑо-Ñо, запÑÑенное опеÑаÑионной ÑиÑÑемой (как в поÑледнем пÑнкÑе из вÑÑеÑÑоÑÑего абзаÑа):
+
+* ÐонкÑеÑÐ½Ð°Ñ Ð¿ÑогÑамма, **запÑÑеннаÑ** опеÑаÑионной ÑиÑÑемой.
+ * ÐÑо не Ð¸Ð¼ÐµÐµÑ Ð¾ÑноÑÐµÐ½Ð¸Ñ Ðº какомÑ-либо ÑÐ°Ð¹Ð»Ñ Ð¸Ð»Ð¸ кодÑ, но неÑÑо **опÑеделÑнное**, ÑпÑавлÑемое и **вÑполнÑемое** опеÑаÑионной ÑиÑÑемой.
+* ÐÑÐ±Ð°Ñ Ð¿ÑогÑамма, лÑбой код, **могÑÑ Ð´ÐµÐ»Ð°ÑÑ ÑÑо-Ñо** ÑолÑко когда они **вÑполнÑÑÑÑÑ**. То еÑÑÑ, когда ÑвлÑÑÑÑÑ **ÑабоÑаÑÑим пÑоÑеÑÑом**.
+* ÐÑоÑеÑÑ Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ **пÑеÑван** (или "ÑбиÑ") Ðами или ÐаÑей опеÑаÑионной ÑиÑÑемой. Ð ÑезÑлÑÑаÑе Ñего он пеÑеÑÑÐ°Ð½ÐµÑ Ð¸ÑполнÑÑÑÑÑ Ð¸ **не бÑÐ´ÐµÑ Ð¿ÑодолжаÑÑ Ð´ÐµÐ»Ð°ÑÑ ÑÑо-либо**.
+* Ðаждое пÑиложение, коÑоÑое ÐÑ Ð·Ð°Ð¿ÑÑÑили на ÑвоÑм компÑÑÑеÑе, ÐºÐ°Ð¶Ð´Ð°Ñ Ð¿ÑогÑамма, каждое "окно" запÑÑÐºÐ°ÐµÑ ÐºÐ°ÐºÐ¾Ð¹-Ñо пÑоÑеÑÑ. РобÑÑно на вклÑÑенном компÑÑÑеÑе **одновÑеменно** запÑÑено множеÑÑво пÑоÑеÑÑов.
+* Ð **одна пÑогÑамма** Ð¼Ð¾Ð¶ÐµÑ Ð·Ð°Ð¿ÑÑÑиÑÑ **неÑколÑко паÑаллелÑнÑÑ
пÑоÑеÑÑов**.
+
+ÐÑли ÐÑ Ð·Ð°Ð³Ð»ÑнеÑе в "диÑпеÑÑÐµÑ Ð·Ð°Ð´Ð°Ñ" или "ÑиÑÑемнÑй мониÑоÑ" (или аналогиÑнÑе инÑÑÑÑменÑÑ) ÐаÑей опеÑаÑионной ÑиÑÑемÑ, Ñо ÑвидиÑе множеÑÑво ÑабоÑаÑÑиÑ
пÑоÑеÑÑов.
+
+Ðполне веÑоÑÑно, ÑÑо ÐÑ ÑвидиÑе неÑколÑко пÑоÑеÑÑов Ñ Ð¾Ð´Ð½Ð¸Ð¼ и Ñем же названием бÑаÑзеÑной пÑогÑÐ°Ð¼Ð¼Ñ (Firefox, Chrome, Edge и Ñ. Ð.). ÐбÑÑно бÑаÑзеÑÑ Ð·Ð°Ð¿ÑÑкаÑÑ Ð¾Ð´Ð¸Ð½ пÑоÑеÑÑ Ð½Ð° Ð²ÐºÐ»Ð°Ð´ÐºÑ Ð¸ вдобавок некоÑоÑÑе дополниÑелÑнÑе пÑоÑеÑÑÑ.
+
+
+
+---
+
+ТепеÑÑ, когда нам извеÑÑна ÑазниÑа Ð¼ÐµÐ¶Ð´Ñ **пÑоÑеÑÑом** и **пÑогÑаммой**, давайÑе пÑодолжим обÑÑждение ÑазвÑÑÑÑваниÑ.
+
+## ÐаÑÑÑойки запÑÑка пÑиложениÑ
+
+РболÑÑинÑÑве ÑлÑÑаев когда ÐÑ ÑоздаÑÑе веб-пÑиложение, Ñо желаеÑе, ÑÑоб оно **ÑабоÑало поÑÑоÑнно** и непÑеÑÑвно, пÑедоÑÑавлÑÑ ÐºÐ»Ð¸ÐµÐ½Ñам доÑÑÑп в лÑбое вÑемÑ. ХоÑÑ Ð¸Ð½Ð¾Ð³Ð´Ð° Ñ ÐÐ°Ñ Ð¼Ð¾Ð³ÑÑ Ð±ÑÑÑ Ð¿ÑиÑинÑ, ÑÑоб оно запÑÑкалоÑÑ ÑолÑко пÑи опÑеделÑннÑÑ
ÑÑловиÑÑ
.
+
+### УдалÑннÑй ÑеÑвеÑ
+
+Ðогда ÐÑ Ð½Ð°ÑÑÑаиваеÑе ÑдалÑннÑй ÑеÑÐ²ÐµÑ (облаÑнÑй ÑеÑвеÑ, виÑÑÑалÑнÑÑ Ð¼Ð°ÑÐ¸Ð½Ñ Ð¸ Ñ.п.), Ñамое пÑоÑÑое, ÑÑо можно ÑделаÑÑ, запÑÑÑиÑÑ Uvicorn (или его аналог) вÑÑÑнÑÑ, как ÐÑ Ð´ÐµÐ»Ð°ÐµÑе пÑи локалÑной ÑазÑабоÑке.
+
+ÐÑо ÑабоÑий ÑпоÑоб и он полезен **во вÑÐµÐ¼Ñ ÑазÑабоÑки**.
+
+Ðо еÑли ÐÑ Ð¿Ð¾ÑеÑÑеÑе Ñоединение Ñ ÑеÑвеÑом, Ñо не ÑможеÑе оÑÑлеживаÑÑ - ÑабоÑÐ°ÐµÑ Ð»Ð¸ вÑÑ ÐµÑÑ **запÑÑеннÑй Ðами пÑоÑеÑÑ**.
+
+РеÑли ÑеÑÐ²ÐµÑ Ð¿ÐµÑезагÑÑзиÑÑÑ (напÑимеÑ, поÑле Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð¸Ð»Ð¸ какиÑ
-Ñо дейÑÑвий облаÑного пÑовайдеÑа), ÐÑ ÑкоÑее вÑего **ÑÑого не замеÑиÑе**, ÑÑÐ¾Ð±Ñ Ñнова запÑÑÑиÑÑ Ð¿ÑоÑеÑÑ Ð²ÑÑÑнÑÑ. ÐÑледÑÑвие ÑÑого ÐÐ°Ñ API оÑÑанеÑÑÑ Ð¼ÑÑÑвÑм. ð±
+
+### ÐвÑомаÑиÑеÑкий запÑÑк пÑогÑамм
+
+ÐеÑоÑÑно ÐÑ Ð¿Ð¾Ð¶ÐµÐ»Ð°ÐµÑе, ÑÑоб ÐаÑа ÑеÑвеÑÐ½Ð°Ñ Ð¿ÑогÑамма (ÑÐ°ÐºÐ°Ñ ÐºÐ°Ðº Uvicorn) ÑÑаÑÑовала авÑомаÑиÑеÑки пÑи вклÑÑении ÑеÑвеÑа, без **ÑеловеÑеÑкого вмеÑаÑелÑÑÑва** и вÑегда могла ÑпÑавлÑÑÑ ÐаÑим API (Ñак как Uvicorn запÑÑÐºÐ°ÐµÑ Ð¿Ñиложение FastAPI).
+
+### ÐÑделÑÐ½Ð°Ñ Ð¿ÑогÑамма
+
+ÐÐ»Ñ ÑÑого Ñ Ð¾Ð±ÑÑно иÑполÑзÑÑÑ Ð¾ÑделÑнÑÑ Ð¿ÑогÑаммÑ, коÑоÑÐ°Ñ ÑÐ»ÐµÐ´Ð¸Ñ Ð·Ð° Ñем, ÑÑÐ¾Ð±Ñ ÐаÑи пÑÐ¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð·Ð°Ð¿ÑÑкалиÑÑ Ð¿Ñи вклÑÑении ÑеÑвеÑа. Такой подÑ
од гаÑанÑиÑÑеÑ, ÑÑо дÑÑгие компоненÑÑ Ð¸Ð»Ð¸ пÑÐ¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ñакже бÑдÑÑ Ð·Ð°Ð¿ÑÑенÑ, напÑимеÑ, база даннÑÑ
+
+### ÐÑимеÑÑ Ð¸Ð½ÑÑÑÑменÑов, ÑпÑавлÑÑÑиÑ
запÑÑком пÑогÑамм
+
+ÐÐ¾Ñ Ð½ÐµÑколÑко пÑимеÑов, коÑоÑÑе могÑÑ ÑпÑавиÑÑÑÑ Ñ Ñакой задаÑей:
+
+* Docker
+* Kubernetes
+* Docker Compose
+* Docker в Ñежиме Swarm
+* Systemd
+* Supervisor
+* ÐÑполÑзование ÑÑлÑг облаÑного пÑовайдеÑа
+* ÐÑоÑие...
+
+Я Ð¿Ð¾ÐºÐ°Ð¶Ñ Ðам некоÑоÑÑе пÑимеÑÑ Ð¸Ñ
иÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð² ÑледÑÑÑиÑ
главаÑ
.
+
+## ÐеÑезапÑÑк
+
+ÐÑ, веÑоÑÑно, Ñакже пожелаеÑе, ÑÑоб ÐаÑе пÑиложение **пеÑезапÑÑкалоÑÑ**, еÑли в нÑм пÑоизоÑÑл Ñбой.
+
+### ÐÑ Ð¾ÑибаемÑÑ
+
+ÐÑе лÑди ÑовеÑÑаÑÑ **оÑибки**. ÐÑогÑаммное обеÑпеÑение поÑÑи *вÑегда* ÑодеÑÐ¶Ð¸Ñ **баги** ÑпÑÑÑавÑиеÑÑ Ð² ÑазнÑÑ
меÑÑаÑ
. ð
+
+РмÑ, бÑдÑÑи ÑазÑабоÑÑиками, пÑодолжаем ÑлÑÑÑаÑÑ ÐºÐ¾Ð´, когда обнаÑÑживаем в нÑм баги или добавлÑем новÑй ÑÑнкÑионал (возможно, добавлÑÑ Ð¿Ñи ÑÑом баги ð
).
+
+### ÐеболÑÑие оÑибки обÑабаÑÑваÑÑÑÑ Ð°Ð²ÑомаÑиÑеÑки
+
+Ðогда ÐÑ ÑоздаÑÑе Ñвои API на оÑнове FastAPI и допÑÑкаеÑе в коде оÑибкÑ, Ñо FastAPI обÑÑно оÑÑÐ°Ð½Ð¾Ð²Ð¸Ñ ÐµÑ ÑаÑпÑоÑÑÑанение внÑÑÑи одного запÑоÑа, пÑи обÑабоÑке коÑоÑого она возникла. ð¡
+
+ÐÐ»Ð¸ÐµÐ½Ñ Ð¿Ð¾Ð»ÑÑÐ¸Ñ Ð¾ÑÐ¸Ð±ÐºÑ **500 Internal Server Error** в оÑÐ²ÐµÑ Ð½Ð° Ñвой запÑоÑ, но пÑиложение не ÑломаеÑÑÑ Ð¸ бÑÐ´ÐµÑ Ð¿ÑодолжаÑÑ ÑабоÑаÑÑ Ñ Ð¿Ð¾ÑледÑÑÑими запÑоÑами.
+
+### ÐолÑÑие оÑибки - Ðадение пÑиложений
+
+Тем не менее, Ð¼Ð¾Ð¶ÐµÑ ÑлÑÑиÑÑÑÑ Ñак, ÑÑо оÑибка вÑÐ·Ð¾Ð²ÐµÑ **Ñбой вÑего пÑиложениÑ** или даже Ñбой в Uvicorn, а Ñо и в Ñамом Python. ð¥
+
+Ðо Ð¼Ñ Ð²ÑÑ ÐµÑÑ Ñ
оÑим, ÑÑÐ¾Ð±Ñ Ð¿Ñиложение **пÑодолжало ÑабоÑаÑÑ** неÑмоÑÑÑ Ð½Ð° ÑÑÑ ÐµÐ´Ð¸Ð½ÑÑвеннÑÑ Ð¾ÑибкÑ, обÑабаÑÑваÑ, как минимÑм, запÑоÑÑ Ðº *опеÑаÑиÑм пÑÑи* не имеÑÑим оÑибок.
+
+### ÐеÑезапÑÑк поÑле падениÑ
+
+ÐÐ»Ñ ÑлÑÑаев, когда оÑибки пÑиводÑÑ Ðº ÑÐ±Ð¾Ñ Ð² запÑÑенном **пÑоÑеÑÑе**, Ðам понадобиÑÑÑ Ð´Ð¾Ð±Ð°Ð²Ð¸ÑÑ ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÐµÐ½Ñ, коÑоÑÑй **пеÑезапÑÑÑиÑ** пÑоÑеÑÑ Ñ
оÑÑ Ð±Ñ Ð¿Ð°ÑÑ Ñаз...
+
+!!! tip "ÐамеÑка"
+ ... ÐÑли пÑиложение Ð¿Ð°Ð´Ð°ÐµÑ ÑÑÐ°Ð·Ñ Ð¶Ðµ поÑле запÑÑка, веÑоÑÑно беÑполезно его беÑконеÑно пеÑезапÑÑкаÑÑ. Ðо полагаÑ, ÐÑ Ð·Ð°Ð¼ÐµÑиÑе Ñакое поведение во вÑÐµÐ¼Ñ ÑазÑабоÑки или, по кÑайней меÑе, ÑÑÐ°Ð·Ñ Ð¿Ð¾Ñле ÑазвÑÑÑÑваниÑ.
+
+ Так ÑÑо давайÑе ÑоÑÑедоÑоÑимÑÑ Ð½Ð° конкÑеÑнÑÑ
ÑлÑÑаÑÑ
, когда пÑиложение Ð¼Ð¾Ð¶ÐµÑ Ð¿Ð¾Ð»Ð½Ð¾ÑÑÑÑ Ð²ÑйÑи из ÑÑÑоÑ, но вÑÑ ÐµÑÑ ÐµÑÑÑ ÑмÑÑл его запÑÑÑиÑÑ Ð·Ð°Ð½Ð¾Ð²Ð¾.
+
+Ðозможно ÐÑ Ð·Ð°Ñ
оÑиÑе, ÑÑоб бÑл некий **внеÑний компоненÑ**, оÑвеÑÑÑвеннÑй за пеÑезапÑÑк ÐаÑего пÑÐ¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð´Ð°Ð¶Ðµ еÑли Ñже не ÑабоÑÐ°ÐµÑ Uvicorn или Python. То еÑÑÑ Ð½Ð¸Ñего из Ñого, ÑÑо напиÑано в ÐаÑем коде внÑÑÑи пÑиложениÑ, не Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð²Ñполнено в пÑинÑипе.
+
+### ÐÑимеÑÑ Ð¸Ð½ÑÑÑÑменÑов Ð´Ð»Ñ Ð°Ð²ÑомаÑиÑеÑкого пеÑезапÑÑка
+
+РболÑÑинÑÑве ÑлÑÑаев инÑÑÑÑменÑÑ **запÑÑкаÑÑие пÑогÑÐ°Ð¼Ð¼Ñ Ð¿Ñи ÑÑаÑÑе ÑеÑвеÑа** ÑмеÑÑ **пеÑезапÑÑкаÑÑ** ÑÑи пÑогÑаммÑ.
+
+РкаÑеÑÑве пÑимеÑа можно взÑÑÑ Ñе же:
+
+* Docker
+* Kubernetes
+* Docker Compose
+* Docker в Ñежиме Swarm
+* Systemd
+* Supervisor
+* ÐÑполÑзование ÑÑлÑг облаÑного пÑовайдеÑа
+* ÐÑоÑие...
+
+## ÐапÑÑк неÑколÑкиÑ
ÑкземплÑÑов пÑÐ¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ (РепликаÑиÑ) - ÐÑоÑеÑÑÑ Ð¸ памÑÑÑ
+
+ÐÑиложение FastAPI, ÑпÑавлÑемое ÑеÑвеÑной пÑогÑаммой (Ñакой как Uvicorn), запÑÑкаеÑÑÑ ÐºÐ°Ðº **один пÑоÑеÑÑ** и Ð¼Ð¾Ð¶ÐµÑ Ð¾Ð±ÑлÑживаÑÑ Ð¼Ð½Ð¾Ð¶ÐµÑÑво клиенÑов одновÑеменно.
+
+Ðо ÑаÑÑо Ðам Ð¼Ð¾Ð¶ÐµÑ Ð¿Ð¾Ð½Ð°Ð´Ð¾Ð±Ð¸ÑÑÑÑ Ð½ÐµÑколÑко одновÑеменно ÑабоÑаÑÑиÑ
одинаковÑÑ
пÑоÑеÑÑов.
+
+### ÐножеÑÑво пÑоÑеÑÑов - ÐоÑкеÑÑ (Workers)
+
+ÐÑли колиÑеÑÑво ÐаÑиÑ
клиенÑов болÑÑе, Ñем Ð¼Ð¾Ð¶ÐµÑ Ð¾Ð±ÑлÑжиÑÑ Ð¾Ð´Ð¸Ð½ пÑоÑеÑÑ (допÑÑÑим, ÑÑо виÑÑÑалÑÐ½Ð°Ñ Ð¼Ð°Ñина не ÑлиÑком моÑнаÑ), но пÑи ÑÑом Ðам доÑÑÑпно **неÑколÑко ÑÐ´ÐµÑ Ð¿ÑоÑеÑÑоÑа**, Ñо ÐÑ Ð¼Ð¾Ð¶ÐµÑе запÑÑÑиÑÑ **неÑколÑко пÑоÑеÑÑов** одного и Ñого же пÑÐ¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð¿Ð°ÑаллелÑно и ÑаÑпÑеделиÑÑ Ð·Ð°Ð¿ÑоÑÑ Ð¼ÐµÐ¶Ð´Ñ ÑÑими пÑоÑеÑÑами.
+
+**ÐеÑколÑко запÑÑеннÑÑ
пÑоÑеÑÑов** одной и Ñой же API-пÑогÑÐ°Ð¼Ð¼Ñ ÑаÑÑо назÑваÑÑ **воÑкеÑами**.
+
+### ÐÑоÑеÑÑÑ Ð¸ поÑÑÑÌ
+
+ÐомниÑе ли ÐÑ, как на ÑÑÑаниÑе [Ðб HTTPS](./https.md){.internal-link target=_blank} Ð¼Ñ Ð¾Ð±ÑÑждали, ÑÑо на ÑеÑвеÑе ÑолÑко один пÑоÑеÑÑ Ð¼Ð¾Ð¶ÐµÑ ÑлÑÑаÑÑ Ð¾Ð´Ð½Ñ ÐºÐ¾Ð¼Ð±Ð¸Ð½Ð°ÑÐ¸Ñ IP-адÑеÑа и поÑÑа?
+
+С ÑеÑ
Ð¿Ð¾Ñ Ð½Ð¸Ñего не изменилоÑÑ.
+
+СооÑвеÑÑÑвенно, ÑÑÐ¾Ð±Ñ Ð¸Ð¼ÐµÑÑ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾ÑÑÑ ÑабоÑаÑÑ Ñ **неÑколÑкими пÑоÑеÑÑами** одновÑеменно, должен бÑÑÑ **один пÑоÑеÑÑ, пÑоÑлÑÑиваÑÑий поÑÑ** и заÑем каким-либо обÑазом пеÑедаÑÑий даннÑе ÐºÐ°Ð¶Ð´Ð¾Ð¼Ñ ÑабоÑÐµÐ¼Ñ Ð¿ÑоÑеÑÑÑ.
+
+### У каждого пÑоÑеÑÑа ÑÐ²Ð¾Ñ Ð¿Ð°Ð¼ÑÑÑ
+
+РабоÑаÑÑÐ°Ñ Ð¿ÑогÑамма загÑÑÐ¶Ð°ÐµÑ Ð² памÑÑÑ Ð´Ð°Ð½Ð½Ñе, необÑ
одимÑе Ð´Ð»Ñ ÐµÑ ÑабоÑÑ, напÑимеÑ, пеÑеменнÑе ÑодеÑжаÑие модели маÑинного обÑÑÐµÐ½Ð¸Ñ Ð¸Ð»Ð¸ болÑÑие ÑайлÑ. ÐÐ°Ð¶Ð´Ð°Ñ Ð¿ÐµÑÐµÐ¼ÐµÐ½Ð½Ð°Ñ **поÑÑеблÑÐµÑ Ð½ÐµÐºÐ¾ÑоÑое колиÑеÑÑво опеÑаÑивной памÑÑи (RAM)** ÑеÑвеÑа.
+
+ÐбÑÑно пÑоÑеÑÑÑ **не делÑÑÑÑ Ð¿Ð°Ð¼ÑÑÑÑ Ð´ÑÑг Ñ Ð´ÑÑгом**. Сие ознаÑаеÑ, ÑÑо каждÑй ÑабоÑаÑÑий пÑоÑеÑÑ Ð¸Ð¼ÐµÐµÑ Ñвои даннÑе, пеÑеменнÑе и Ñвой кÑÑок памÑÑи. РеÑли Ð´Ð»Ñ Ð²ÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ ÐаÑего кода пÑоÑеÑÑÑ Ð½Ñжно много памÑÑи, Ñо **каждÑй Ñакой же пÑоÑеÑÑ** запÑÑеннÑй дополниÑелÑно, поÑÑебÑÐµÑ Ñакого же колиÑеÑÑва памÑÑи.
+
+### ÐамÑÑÑ ÑеÑвеÑа
+
+ÐопÑÑÑим, ÑÑо ÐÐ°Ñ ÐºÐ¾Ð´ загÑÑÐ¶Ð°ÐµÑ Ð¼Ð¾Ð´ÐµÐ»Ñ Ð¼Ð°Ñинного обÑÑÐµÐ½Ð¸Ñ **ÑазмеÑом 1 ÐÐ**. Ðогда ÐÑ Ð·Ð°Ð¿ÑÑÑиÑе ÑÐ²Ð¾Ñ API как один пÑоÑеÑÑ, он займÑÑ Ð² опеÑаÑивной памÑÑи не менее 1 ÐÐ. РеÑли ÐÑ Ð·Ð°Ð¿ÑÑÑиÑе **4 ÑакиÑ
же пÑоÑеÑÑа** (4 воÑкеÑа), Ñо каждÑй из ниÑ
займÑÑ 1 ÐРопеÑаÑивной памÑÑи. Ð ÑезÑлÑÑаÑе ÐаÑÐµÐ¼Ñ API поÑÑебÑеÑÑÑ **4 ÐРопеÑаÑивной памÑÑи (RAM)**.
+
+РеÑли ÐÐ°Ñ ÑдалÑннÑй ÑеÑÐ²ÐµÑ Ð¸Ð»Ð¸ виÑÑÑалÑÐ½Ð°Ñ Ð¼Ð°Ñина ÑаÑÐ¿Ð¾Ð»Ð°Ð³Ð°ÐµÑ ÑолÑко 3 ÐРпамÑÑи, Ñо попÑÑка загÑÑзиÑÑ Ð² Ð½ÐµÑ 4 ÐРданнÑÑ
вÑÐ·Ð¾Ð²ÐµÑ Ð¿ÑоблемÑ. ð¨
+
+### ÐножеÑÑво пÑоÑеÑÑов - ÐÑимеÑ
+
+Ð ÑÑом пÑимеÑе **Ð¼ÐµÐ½ÐµÐ´Ð¶ÐµÑ Ð¿ÑоÑеÑÑов** запÑÑÑÐ¸Ñ Ð¸ бÑÐ´ÐµÑ ÑпÑавлÑÑÑ Ð´Ð²ÑÐ¼Ñ **воÑкеÑами**.
+
+ÐÐµÐ½ÐµÐ´Ð¶ÐµÑ Ð¿ÑоÑеÑÑов бÑÐ´ÐµÑ ÑлÑÑаÑÑ Ð¾Ð¿ÑеделÑннÑй **ÑокеÑ** (IP:поÑÑ) и пеÑедаваÑÑ Ð´Ð°Ð½Ð½Ñе ÑабоÑаÑÑим пÑоÑеÑÑам.
+
+ÐаждÑй из ÑÑиÑ
пÑоÑеÑÑов бÑÐ´ÐµÑ Ð·Ð°Ð¿ÑÑкаÑÑ ÐаÑе пÑиложение Ð´Ð»Ñ Ð¾Ð±ÑабоÑки полÑÑенного **запÑоÑа** и возвÑаÑÐµÐ½Ð¸Ñ Ð²ÑÑиÑленного **оÑвеÑа** и они бÑдÑÑ Ð¸ÑполÑзоваÑÑ Ð¾Ð¿ÐµÑаÑивнÑÑ Ð¿Ð°Ð¼ÑÑÑ.
+
+
+
+ÐезÑÑловно, на ÑÑом же ÑеÑвеÑе бÑдÑÑ ÑабоÑаÑÑ Ð¸ **дÑÑгие пÑоÑеÑÑÑ**, коÑоÑÑе не оÑноÑÑÑÑÑ Ðº ÐаÑÐµÐ¼Ñ Ð¿ÑиложениÑ.
+
+ÐнÑеÑеÑÐ½Ð°Ñ Ð´ÐµÑÐ°Ð»Ñ - обÑÑно в ÑеÑение вÑемени пÑоÑÐµÐ½Ñ **иÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ ÑенÑÑалÑного пÑоÑеÑÑоÑа (CPU)** каждÑм пÑоÑеÑÑом Ð¼Ð¾Ð¶ÐµÑ Ð¾ÑÐµÐ½Ñ ÑилÑно **изменÑÑÑÑÑ**, но обÑÑм занимаемой **опеÑаÑивной памÑÑи (RAM)** оÑÑаÑÑÑÑ Ð¾ÑноÑиÑелÑно **ÑÑабилÑнÑм**.
+
+ÐÑли Ñ ÐÐ°Ñ ÐµÑÑÑ API, коÑоÑÑй каждÑй Ñаз вÑполнÑÐµÑ ÑопоÑÑавимÑй обÑем вÑÑиÑлений, и Ñ ÐÐ°Ñ Ð¼Ð½Ð¾Ð³Ð¾ клиенÑов, Ñо **загÑÑзка пÑоÑеÑÑоÑа**, веÑоÑÑно, *Ñакже бÑÐ´ÐµÑ ÑÑабилÑной* (вмеÑÑо Ñого, ÑÑÐ¾Ð±Ñ Ð¿Ð¾ÑÑоÑнно бÑÑÑÑо ÑвелиÑиваÑÑÑÑ Ð¸ ÑменÑÑаÑÑÑÑ).
+
+### ÐÑимеÑÑ ÑÑÑаÑегий и инÑÑÑÑменÑов Ð´Ð»Ñ Ð·Ð°Ð¿ÑÑка неÑколÑкиÑ
ÑкземплÑÑов пÑиложениÑ
+
+СÑÑеÑÑвÑÐµÑ Ð½ÐµÑколÑко подÑ
одов Ð´Ð»Ñ Ð´Ð¾ÑÑÐ¸Ð¶ÐµÐ½Ð¸Ñ Ñелей ÑепликаÑии и Ñ ÑаÑÑÐºÐ°Ð¶Ñ Ðам болÑÑе о конкÑеÑнÑÑ
ÑÑÑаÑегиÑÑ
в ÑледÑÑÑиÑ
главаÑ
, напÑимеÑ, когда ÑеÑÑ Ð¿Ð¾Ð¹Ð´ÐµÑ Ð¾ Docker и конÑейнеÑаÑ
.
+
+ÐÑновное огÑаниÑение пÑи ÑÑом - ÑолÑко **один** ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÐµÐ½Ñ Ð¼Ð¾Ð¶ÐµÑ ÑабоÑаÑÑ Ñ Ð¾Ð¿ÑеделÑннÑм **поÑÑом пÑблиÑного IP**. Рдолжен бÑÑÑ ÑпоÑоб **пеÑедаÑи** даннÑÑ
Ð¼ÐµÐ¶Ð´Ñ ÑÑим компоненÑом и копиÑми **пÑоÑеÑÑов/воÑкеÑов**.
+
+ÐÐ¾Ñ Ð½ÐµÐºÐ¾ÑоÑÑе возможнÑе комбинаÑии и ÑÑÑаÑегии:
+
+* **Gunicorn** ÑпÑавлÑÑÑий **воÑкеÑами Uvicorn**
+ * Gunicorn бÑÐ´ÐµÑ Ð²ÑÑÑÑпаÑÑ ÐºÐ°Ðº **Ð¼ÐµÐ½ÐµÐ´Ð¶ÐµÑ Ð¿ÑоÑеÑÑов**, пÑоÑлÑÑÐ¸Ð²Ð°Ñ **IP:port**. ÐеобÑ
одимое колиÑеÑÑво запÑÑеннÑÑ
ÑкземплÑÑов пÑÐ¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð±ÑÐ´ÐµÑ Ð¾ÑÑÑеÑÑвлÑÑÑÑÑ Ð¿Ð¾ÑÑедÑÑвом запÑÑка **множеÑÑва ÑабоÑаÑÑиÑ
пÑоÑеÑÑов Uvicorn**.
+* **Uvicorn** ÑпÑавлÑÑÑий **воÑкеÑами Uvicorn**
+ * Ðдин пÑоÑеÑÑ Uvicorn бÑÐ´ÐµÑ Ð²ÑÑÑÑпаÑÑ ÐºÐ°Ðº **Ð¼ÐµÐ½ÐµÐ´Ð¶ÐµÑ Ð¿ÑоÑеÑÑов**, пÑоÑлÑÑÐ¸Ð²Ð°Ñ **IP:port**. Ðн бÑÐ´ÐµÑ Ð·Ð°Ð¿ÑÑкаÑÑ **множеÑÑво ÑабоÑаÑÑиÑ
пÑоÑеÑÑов Uvicorn**.
+* **Kubernetes** и аналогиÑнÑе **конÑейнеÑнÑе ÑиÑÑемÑ**
+ * Ðакой-Ñо ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÐµÐ½Ñ Ð² **Kubernetes** бÑÐ´ÐµÑ ÑлÑÑаÑÑ **IP:port**. ÐеобÑ
одимое колиÑеÑÑво запÑÑеннÑÑ
ÑкземплÑÑов пÑÐ¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð±ÑÐ´ÐµÑ Ð¾ÑÑÑеÑÑвлÑÑÑÑÑ Ð¿Ð¾ÑÑедÑÑвом запÑÑка **неÑколÑкиÑ
конÑейнеÑов**, в каждом из коÑоÑÑÑ
ÑабоÑÐ°ÐµÑ **один пÑоÑеÑÑ Uvicorn**.
+* **ÐблаÑнÑе ÑеÑвиÑÑ**, коÑоÑÑе позабоÑÑÑÑÑ Ð¾Ð±Ð¾ вÑÑм за ÐаÑ
+ * Ðозможно, ÑÑо облаÑнÑй ÑеÑÐ²Ð¸Ñ ÑÐ¼ÐµÐµÑ **ÑпÑавлÑÑÑ Ð·Ð°Ð¿ÑÑком дополниÑелÑнÑÑ
ÑкземплÑÑов пÑиложениÑ**. ÐеÑоÑÑно, он поÑÑебÑеÑ, ÑÑоб ÐÑ Ñказали - какой **пÑоÑеÑÑ** или **обÑаз** ÑледÑÐµÑ ÐºÐ»Ð¾Ð½Ð¸ÑоваÑÑ. СкоÑее вÑего, ÐÑ ÑкажеÑе **один пÑоÑеÑÑ Uvicorn** и облаÑнÑй ÑеÑÐ²Ð¸Ñ Ð±ÑÐ´ÐµÑ Ð·Ð°Ð¿ÑÑкаÑÑ ÐµÐ³Ð¾ копии пÑи необÑ
одимоÑÑи.
+
+!!! tip "ÐамеÑка"
+ ÐÑли ÐÑ Ð½Ðµ знаеÑе, ÑÑо Ñакое **конÑейнеÑÑ**, Docker или Kubernetes, не пеÑеживайÑе.
+
+ Я Ð¿Ð¾Ð²ÐµÐ´Ð°Ñ Ðам о конÑейнеÑаÑ
, обÑазаÑ
, Docker, Kubernetes и Ñ.п. в главе: [FastAPI внÑÑÑи конÑейнеÑов - Docker](./docker.md){.internal-link target=_blank}.
+
+## Шаги, пÑедÑеÑÑвÑÑÑие запÑÑкÑ
+
+ЧаÑÑо бÑваеÑ, ÑÑо Ðам необÑ
одимо пÑоизвеÑÑи какие-Ñо подгоÑовиÑелÑнÑе Ñаги **пеÑед запÑÑком** Ñвоего пÑиложениÑ.
+
+ÐапÑимеÑ, запÑÑÑиÑÑ **мигÑаÑии Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ
**.
+
+Ðо в болÑÑинÑÑве ÑлÑÑаев Ñакие дейÑÑÐ²Ð¸Ñ Ð´Ð¾ÑÑаÑоÑно пÑоизвеÑÑи **однокÑаÑно**.
+
+ÐоÑÑÐ¾Ð¼Ñ Ðам нÑжен бÑÐ´ÐµÑ **один пÑоÑеÑÑ**, вÑполнÑÑÑий ÑÑи **подгоÑовиÑелÑнÑе Ñаги** до запÑÑка пÑиложениÑ.
+
+Также Ðам нÑжно бÑÐ´ÐµÑ ÑбедиÑÑÑÑ, ÑÑо ÑÑÐ¾Ñ Ð¿ÑоÑеÑÑ Ð²Ñполнил подгоÑовиÑелÑнÑе Ñаги *даже* еÑли впоÑледÑÑвии ÐÑ Ð·Ð°Ð¿ÑÑÑиÑе **неÑколÑко пÑоÑеÑÑов** (неÑколÑко воÑкеÑов) Ñамого пÑиложениÑ. ÐÑли Ð±Ñ ÑÑи Ñаги вÑполнÑлиÑÑ Ð² каждом **клониÑованном пÑоÑеÑÑе**, они Ð±Ñ **дÑблиÑовали** ÑабоÑÑ, пÑÑаÑÑÑ Ð²ÑполниÑÑ ÐµÑ **паÑаллелÑно**. РеÑли Ð±Ñ ÑÑа ÑабоÑа бÑла Ð±Ñ Ñем-Ñо деликаÑнÑм, вÑоде мигÑаÑии Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ
, Ñо ÑÑо Ð¼Ð¾Ð¶ÐµÑ Ð²ÑзваÑÑ ÐºÐ¾Ð½ÑликÑÑ Ð¼ÐµÐ¶Ð´Ñ Ð½Ð¸Ð¼Ð¸.
+
+ÐезÑÑловно, Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ñ ÑлÑÑаи, когда Ð½ÐµÑ Ð¿Ñоблем пÑи вÑполнении пÑедваÑиÑелÑной подгоÑовки паÑаллелÑно или неÑколÑко Ñаз. Тогда Ðам повезло, ÑабоÑаÑÑ Ñ Ð½Ð¸Ð¼Ð¸ намного пÑоÑе.
+
+!!! tip "ÐамеÑка"
+ ÐмейÑе в видÑ, ÑÑо в некоÑоÑÑÑ
ÑлÑÑаÑÑ
запÑÑк ÐаÑего пÑÐ¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ **Ð¼Ð¾Ð¶ÐµÑ Ð½Ðµ ÑÑебоваÑÑ ÐºÐ°ÐºÐ¸Ñ
-либо пÑедваÑиÑелÑнÑÑ
Ñагов вовÑе**.
+
+ ЧÑо ж, Ñогда Ðам не нÑжно беÑпокоиÑÑÑÑ Ð¾Ð± ÑÑом. ð¤·
+
+### ÐÑимеÑÑ ÑÑÑаÑегий запÑÑка пÑедваÑиÑелÑнÑÑ
Ñагов
+
+СÑÑеÑÑвÑÐµÑ **ÑилÑÐ½Ð°Ñ Ð·Ð°Ð²Ð¸ÑимоÑÑÑ** Ð¾Ñ Ñого, как ÐÑ **ÑазвÑÑÑÑваеÑе ÑÐ²Ð¾Ñ ÑиÑÑемÑ**, запÑÑкаеÑе пÑогÑаммÑ, обÑабаÑÑваеÑе пеÑезапÑÑки и Ñ.д.
+
+ÐÐ¾Ñ Ð½ÐµÐºÐ¾ÑоÑÑе возможнÑе идеи:
+
+* ÐÑи иÑполÑзовании Kubernetes нÑжно пÑедÑÑмоÑÑеÑÑ "иниÑиализиÑÑÑÑий конÑейнеÑ", запÑÑкаемÑй до конÑейнеÑа Ñ Ð¿Ñиложением.
+* Bash-ÑкÑипÑ, вÑполнÑÑÑий пÑедваÑиÑелÑнÑе Ñаги, а заÑем запÑÑкаÑÑий пÑиложение.
+ * ÐÑи ÑÑом Ðам вÑÑ ÐµÑÑ Ð½Ñжно найÑи ÑпоÑоб - как запÑÑкаÑÑ/пеÑезапÑÑкаÑÑ *Ñакой* bash-ÑкÑипÑ, обнаÑÑживаÑÑ Ð¾Ñибки и Ñ.п.
+
+!!! tip "ÐамеÑка"
+ Я пÑÐ¸Ð²ÐµÐ´Ñ Ðам болÑÑе конкÑеÑнÑÑ
пÑимеÑов ÑабоÑÑ Ñ ÐºÐ¾Ð½ÑейнеÑами в главе: [FastAPI внÑÑÑи конÑейнеÑов - Docker](./docker.md){.internal-link target=_blank}.
+
+## УÑилизаÑÐ¸Ñ ÑеÑÑÑÑов
+
+ÐÐ°Ñ ÑеÑÐ²ÐµÑ ÑаÑÐ¿Ð¾Ð»Ð°Ð³Ð°ÐµÑ ÑеÑÑÑÑами, коÑоÑÑе ÐаÑи пÑогÑÐ°Ð¼Ð¼Ñ Ð¼Ð¾Ð³ÑÑ Ð¿Ð¾ÑÑеблÑÑÑ Ð¸Ð»Ð¸ **ÑÑилизиÑоваÑÑ**, а именно - вÑÐµÐ¼Ñ ÑабоÑÑ ÑенÑÑалÑного пÑоÑеÑÑоÑа и обÑÑм опеÑаÑивной памÑÑи.
+
+Ðак много ÑиÑÑемнÑÑ
ÑеÑÑÑÑов ÐÑ Ð¿ÑедполагаеÑе поÑÑебиÑÑ/ÑÑилизиÑоваÑÑ? ÐÑли не задÑмÑваÑÑÑÑ, Ñо можно оÑвеÑиÑÑ - "немного", но на Ñамом деле ÐÑ, веÑоÑÑно, пожелаеÑе иÑполÑзоваÑÑ **макÑималÑно возможное колиÑеÑÑво**.
+
+ÐÑли ÐÑ Ð¿Ð»Ð°ÑиÑе за ÑодеÑжание ÑÑÑÑ
ÑеÑвеÑов, но иÑполÑзÑеÑе лиÑÑ Ð¼Ð°Ð»ÑÑ ÑаÑÑÑ ÑиÑÑемнÑÑ
ÑеÑÑÑÑов каждого из ниÑ
, Ñо ÐÑ **вÑбÑаÑÑваеÑе денÑги на веÑеÑ**, а Ñакже **впÑÑÑÑÑ ÑÑаÑиÑе ÑлекÑÑоÑнеÑгиÑ** и Ñ.п.
+
+Ð Ñаком ÑлÑÑае бÑло Ð±Ñ Ð»ÑÑÑе обойÑиÑÑ Ð´Ð²ÑÐ¼Ñ ÑеÑвеÑами, но более полно ÑÑилизиÑоваÑÑ Ð¸Ñ
ÑеÑÑÑÑÑ (ÑенÑÑалÑнÑй пÑоÑеÑÑоÑ, опеÑаÑивнÑÑ Ð¿Ð°Ð¼ÑÑÑ, жÑÑÑкий диÑк, ÑеÑи пеÑедаÑи даннÑÑ
и Ñ.д).
+
+С дÑÑгой ÑÑоÑонÑ, еÑли ÐÑ ÑаÑполагаеÑе ÑолÑко двÑÐ¼Ñ ÑеÑвеÑами и иÑполÑзÑеÑе **на 100% иÑ
пÑоÑеÑÑоÑÑ Ð¸ памÑÑÑ**, но какой-либо пÑоÑеÑÑ Ð·Ð°Ð¿ÑоÑÐ¸Ñ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸ÑелÑнÑÑ Ð¿Ð°Ð¼ÑÑÑ, Ñо опеÑаÑÐ¸Ð¾Ð½Ð½Ð°Ñ ÑиÑÑема ÑеÑвеÑа бÑÐ´ÐµÑ Ð¸ÑполÑзоваÑÑ Ð¶ÑÑÑкий диÑк Ð´Ð»Ñ ÑаÑÑиÑÐµÐ½Ð¸Ñ Ð¾Ð¿ÐµÑаÑивной памÑÑи (а диÑк ÑабоÑÐ°ÐµÑ Ð² ÑÑÑÑÑи Ñаз медленнее), а Ñо вовÑе **ÑпадÑÑ**. Ðли еÑли какомÑ-Ñо пÑоÑеÑÑÑ Ð¿Ð¾Ð½Ð°Ð´Ð¾Ð±Ð¸ÑÑÑ Ð¿ÑоизвеÑÑи вÑÑиÑлениÑ, Ñо ÐµÐ¼Ñ Ð¿ÑидÑÑÑÑ Ð¿Ð¾Ð´Ð¾Ð¶Ð´Ð°ÑÑ, пока пÑоÑеÑÑÐ¾Ñ Ð¾ÑвободиÑÑÑ.
+
+Ð Ñакой ÑиÑÑаÑии лÑÑÑе подклÑÑиÑÑ **еÑÑ Ð¾Ð´Ð¸Ð½ ÑеÑвеÑ** и пеÑеÑаÑпÑеделиÑÑ Ð¿ÑоÑеÑÑÑ Ð¼ÐµÐ¶Ð´Ñ ÑеÑвеÑами, ÑÑоб вÑем **Ñ
ваÑало памÑÑи и пÑоÑеÑÑоÑного вÑемени**.
+
+Также еÑÑÑ Ð²ÐµÑоÑÑноÑÑÑ, ÑÑо по какой-Ñо пÑиÑине возник **вÑплеÑк** запÑоÑов к ÐаÑÐµÐ¼Ñ API. Ðозможно, ÑÑо бÑл виÑÑÑ, боÑÑ Ð¸Ð»Ð¸ дÑÑгие ÑеÑвиÑÑ Ð½Ð°Ñали полÑзоваÑÑÑÑ Ð¸Ð¼. Ð Ð´Ð»Ñ ÑакиÑ
пÑоиÑÑеÑÑвий ÐÑ Ð¼Ð¾Ð¶ÐµÑе заÑ
оÑеÑÑ Ð¸Ð¼ÐµÑÑ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸ÑелÑнÑе ÑеÑÑÑÑÑ.
+
+ÐÑи наÑÑÑойке логики ÑазвÑÑÑÑваний, ÐÑ Ð¼Ð¾Ð¶ÐµÑе ÑказаÑÑ **Ñелевое знаÑение** ÑÑилизаÑии ÑеÑÑÑÑов, допÑÑÑим, **Ð¾Ñ 50% до 90%**. ÐбÑÑно ÑÑи меÑÑики и иÑполÑзÑÑÑ.
+
+ÐÑ Ð¼Ð¾Ð¶ÐµÑе иÑполÑзоваÑÑ Ð¿ÑоÑÑÑе инÑÑÑÑменÑÑ, Ñакие как `htop`, Ð´Ð»Ñ Ð¾ÑÑÐ»ÐµÐ¶Ð¸Ð²Ð°Ð½Ð¸Ñ Ð·Ð°Ð³ÑÑзки ÑенÑÑалÑного пÑоÑеÑÑоÑа и опеÑаÑивной памÑÑи ÑеÑвеÑа, в Ñом ÑиÑле каждÑм пÑоÑеÑÑом. Ðли более ÑложнÑе ÑиÑÑÐµÐ¼Ñ Ð¼Ð¾Ð½Ð¸ÑоÑинга неÑколÑкиÑ
ÑеÑвеÑов.
+
+## РезÑме
+
+ÐÑ Ð¿ÑоÑиÑали некоÑоÑÑе из оÑновнÑÑ
конÑепÑий, коÑоÑÑе необÑ
одимо имеÑÑ Ð² Ð²Ð¸Ð´Ñ Ð¿Ñи пÑинÑÑии ÑеÑÐµÐ½Ð¸Ñ Ð¾ ÑазвеÑÑÑвании пÑиложений:
+
+* ÐÑполÑзование более безопаÑного пÑоÑокола HTTPS
+* ÐаÑÑÑойки запÑÑка пÑиложениÑ
+* ÐеÑезагÑÑзка пÑиложениÑ
+* ÐапÑÑк неÑколÑкиÑ
ÑкземплÑÑов пÑиложениÑ
+* УпÑавление памÑÑÑÑ
+* ÐÑполÑзование пеÑеÑиÑленнÑÑ
ÑÑнкÑий пеÑед запÑÑком пÑиложениÑ.
+
+ÐÑознание ÑÑиÑ
идей и Ñого, как иÑ
пÑименÑÑÑ, должно даÑÑ Ðам инÑÑиÑивное понимание, необÑ
одимое Ð´Ð»Ñ Ð¿ÑинÑÑÐ¸Ñ ÑеÑений пÑи наÑÑÑойке ÑазвеÑÑÑваний. ð¤
+
+Ð ÑледÑÑÑиÑ
ÑазделаÑ
Ñ Ð¿ÑÐ¸Ð²ÐµÐ´Ñ Ð±Ð¾Ð»ÐµÐµ конкÑеÑнÑе пÑимеÑÑ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½ÑÑ
ÑÑÑаÑегий, коÑоÑÑм ÐÑ Ð¼Ð¾Ð¶ÐµÑе ÑледоваÑÑ. ð
diff --git a/docs/ru/mkdocs.yml b/docs/ru/mkdocs.yml
index 260d562580..05866b1746 100644
--- a/docs/ru/mkdocs.yml
+++ b/docs/ru/mkdocs.yml
@@ -79,6 +79,7 @@ nav:
- РазвÑÑÑÑвание:
- deployment/index.md
- deployment/versions.md
+ - deployment/concepts.md
- deployment/https.md
- deployment/manually.md
- project-generation.md