From: Lufa1u <112495876+Lufa1u@users.noreply.github.com>
Date: Wed, 3 Apr 2024 16:22:47 +0000 (+0300)
Subject: 🌐 Update Russian translations for deployments docs (#11271)
X-Git-Tag: 0.110.2~22
X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=7ae1f9003f80688ea23106758eb4685a57830db6;p=thirdparty%2Ffastapi%2Ffastapi.git
🌐 Update Russian translations for deployments docs (#11271)
---
diff --git a/docs/ru/docs/deployment/concepts.md b/docs/ru/docs/deployment/concepts.md
index 681acf15ea..771f4bf686 100644
--- a/docs/ru/docs/deployment/concepts.md
+++ b/docs/ru/docs/deployment/concepts.md
@@ -1,6 +1,6 @@
# ÐонÑепÑии ÑазвÑÑÑÑваниÑ
-СÑÑеÑÑвÑÐµÑ Ð½ÐµÑколÑко конÑепÑий, пÑименÑемÑÑ
Ð´Ð»Ñ ÑазвÑÑÑÑÐ²Ð°Ð½Ð¸Ñ Ð¿Ñиложений **FastAPI**, Ñавно как и Ð´Ð»Ñ Ð»ÑбÑÑ
дÑÑгиÑ
Ñипов веб-пÑиложений, ÑÑеди коÑоÑÑÑ
ÐÑ Ð¼Ð¾Ð¶ÐµÑе вÑбÑаÑÑ **наиболее подÑ
одÑÑий** ÑпоÑоб.
+СÑÑеÑÑвÑÐµÑ Ð½ÐµÑколÑко конÑепÑий, пÑименÑемÑÑ
Ð´Ð»Ñ ÑазвÑÑÑÑÐ²Ð°Ð½Ð¸Ñ Ð¿Ñиложений **FastAPI**, Ñавно как и Ð´Ð»Ñ Ð»ÑбÑÑ
дÑÑгиÑ
Ñипов веб-пÑиложений, ÑÑеди коÑоÑÑÑ
Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе вÑбÑаÑÑ **наиболее подÑ
одÑÑий** ÑпоÑоб.
СамÑе важнÑе из ниÑ
:
@@ -13,11 +13,11 @@
РаÑÑмоÑÑим ниже влиÑние каждого из ниÑ
на пÑоÑеÑÑ **ÑазвÑÑÑÑваниÑ**.
-ÐаÑа конеÑÐ½Ð°Ñ ÑÐµÐ»Ñ - **обÑлÑживаÑÑ ÐºÐ»Ð¸ÐµÐ½Ñов ÐаÑего API безопаÑно** и **беÑпеÑебойно**, Ñ Ð¼Ð°ÐºÑималÑно ÑÑÑекÑивнÑм иÑполÑзованием **вÑÑиÑлиÑелÑнÑÑ
ÑеÑÑÑÑов** (напÑимеÑ, ÑдалÑннÑÑ
ÑеÑвеÑов/виÑÑÑалÑнÑÑ
маÑин). ð
+ÐаÑа конеÑÐ½Ð°Ñ ÑÐµÐ»Ñ - **обÑлÑживаÑÑ ÐºÐ»Ð¸ÐµÐ½Ñов ваÑего API безопаÑно** и **беÑпеÑебойно**, Ñ Ð¼Ð°ÐºÑималÑно ÑÑÑекÑивнÑм иÑполÑзованием **вÑÑиÑлиÑелÑнÑÑ
ÑеÑÑÑÑов** (напÑимеÑ, ÑдалÑннÑÑ
ÑеÑвеÑов/виÑÑÑалÑнÑÑ
маÑин). ð
-ÐдеÑÑ Ñ Ð½ÐµÐ¼Ð½Ð¾Ð³Ð¾ ÑаÑÑÐºÐ°Ð¶Ñ Ðам об ÑÑиÑ
**конÑепÑиÑÑ
** и надеÑÑÑ, ÑÑо Ñ ÐÐ°Ñ ÑложиÑÑÑ **инÑÑиÑивное понимание**, какой ÑпоÑоб вÑбÑаÑÑ Ð¿Ñи ÑазвеÑÑÑвании ÐаÑего API в ÑазлиÑнÑÑ
окÑÑжениÑÑ
, возможно, даже **еÑÑ Ð½Ðµ ÑÑÑеÑÑвÑÑÑиÑ
**.
+ÐдеÑÑ Ñ Ð½ÐµÐ¼Ð½Ð¾Ð³Ð¾ ÑаÑÑÐºÐ°Ð¶Ñ Ðам об ÑÑиÑ
**конÑепÑиÑÑ
** и надеÑÑÑ, ÑÑо Ñ Ð²Ð°Ñ ÑложиÑÑÑ **инÑÑиÑивное понимание**, какой ÑпоÑоб вÑбÑаÑÑ Ð¿Ñи ÑазвеÑÑÑвании ваÑего API в ÑазлиÑнÑÑ
окÑÑжениÑÑ
, возможно, даже **еÑÑ Ð½Ðµ ÑÑÑеÑÑвÑÑÑиÑ
**.
-ÐзнакомивÑиÑÑ Ñ ÑÑими конÑепÑиÑми, ÐÑ ÑможеÑе **оÑениÑÑ Ð¸ вÑбÑаÑÑ** лÑÑÑий ÑпоÑоб ÑазвÑÑÑÑвании **ÐаÑего API**.
+ÐзнакомивÑиÑÑ Ñ ÑÑими конÑепÑиÑми, Ð²Ñ ÑможеÑе **оÑениÑÑ Ð¸ вÑбÑаÑÑ** лÑÑÑий ÑпоÑоб ÑазвÑÑÑÑвании **ÐаÑего API**.
РпоÑледÑÑÑиÑ
главаÑ
Ñ Ð¿ÑедоÑÑÐ°Ð²Ð»Ñ Ðам **конкÑеÑнÑе ÑеÑепÑÑ** ÑазвÑÑÑÑÐ²Ð°Ð½Ð¸Ñ Ð¿ÑÐ¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ FastAPI.
@@ -25,15 +25,15 @@
## ÐÑполÑзование более безопаÑного пÑоÑокола HTTPS
-Ð [пÑедÑдÑÑей главе об HTTPS](./https.md){.internal-link target=_blank} Ð¼Ñ ÑаÑÑмоÑÑели, как HTTPS обеÑпеÑÐ¸Ð²Ð°ÐµÑ ÑиÑÑование Ð´Ð»Ñ ÐаÑего API.
+Ð [пÑедÑдÑÑей главе об HTTPS](./https.md){.internal-link target=_blank} Ð¼Ñ ÑаÑÑмоÑÑели, как HTTPS обеÑпеÑÐ¸Ð²Ð°ÐµÑ ÑиÑÑование Ð´Ð»Ñ Ð²Ð°Ñего API.
-Также Ð¼Ñ Ð·Ð°Ð¼ÐµÑили, ÑÑо обÑÑно Ð´Ð»Ñ ÑабоÑÑ Ñ HTTPS ÐаÑÐµÐ¼Ñ Ð¿ÑÐ¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð½Ñжен **дополниÑелÑнÑй** ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÐµÐ½Ñ - **пÑокÑи-ÑеÑÐ²ÐµÑ Ð·Ð°Ð²ÐµÑÑÐµÐ½Ð¸Ñ ÑабоÑÑ TLS**.
+Также Ð¼Ñ Ð·Ð°Ð¼ÐµÑили, ÑÑо обÑÑно Ð´Ð»Ñ ÑабоÑÑ Ñ HTTPS ваÑÐµÐ¼Ñ Ð¿ÑÐ¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð½Ñжен **дополниÑелÑнÑй** ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÐµÐ½Ñ - **пÑокÑи-ÑеÑÐ²ÐµÑ Ð·Ð°Ð²ÐµÑÑÐµÐ½Ð¸Ñ ÑабоÑÑ TLS**.
РеÑли пÑокÑи-ÑеÑÐ²ÐµÑ Ð½Ðµ ÑÐ¼ÐµÐµÑ Ñам **обновлÑÑÑ ÑеÑÑиÑикаÑÑ HTTPS**, Ñо нÑжен еÑÑ Ð¾Ð´Ð¸Ð½ ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÐµÐ½Ñ Ð´Ð»Ñ ÑÑого дейÑÑвиÑ.
### ÐÑимеÑÑ Ð¸Ð½ÑÑÑÑменÑов Ð´Ð»Ñ ÑабоÑÑ Ñ HTTPS
-ÐÐ¾Ñ Ð½ÐµÐºÐ¾ÑоÑÑе инÑÑÑÑменÑÑ, коÑоÑÑе ÐÑ Ð¼Ð¾Ð¶ÐµÑе пÑименÑÑÑ ÐºÐ°Ðº пÑокÑи-ÑеÑвеÑÑ:
+ÐÐ¾Ñ Ð½ÐµÐºÐ¾ÑоÑÑе инÑÑÑÑменÑÑ, коÑоÑÑе Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе пÑименÑÑÑ ÐºÐ°Ðº пÑокÑи-ÑеÑвеÑÑ:
* Traefik
* С авÑомаÑиÑеÑким обновлением ÑеÑÑиÑикаÑов â¨
@@ -47,7 +47,7 @@
* С дополниÑелÑнÑм компоненÑом Ñипа cert-manager Ð´Ð»Ñ Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ ÑеÑÑиÑикаÑов
* ÐÑполÑзование ÑÑлÑг облаÑного пÑовайдеÑа (ÑиÑайÑе ниже ð)
-РпоÑледнем ваÑианÑе ÐÑ Ð¼Ð¾Ð¶ÐµÑе воÑполÑзоваÑÑÑÑ ÑÑлÑгами **облаÑного ÑеÑвиÑа**, коÑоÑÑй ÑÐ´ÐµÐ»Ð°ÐµÑ Ð±Ð¾Ð»ÑÑÑÑ ÑаÑÑÑ ÑабоÑÑ, вклÑÑÐ°Ñ Ð½Ð°ÑÑÑÐ¾Ð¹ÐºÑ HTTPS. ÐÑо Ð¼Ð¾Ð¶ÐµÑ Ð½Ð°Ð»Ð¾Ð¶Ð¸ÑÑ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸ÑелÑнÑе огÑаниÑÐµÐ½Ð¸Ñ Ð¸Ð»Ð¸ поÑÑебоваÑÑ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸ÑелÑнÑÑ Ð¿Ð»Ð°ÑÑ Ð¸ Ñ.п. ÐаÑо Ðам не понадобиÑÑÑ ÑамоÑÑоÑÑелÑно занимаÑÑÑÑ Ð½Ð°ÑÑÑойками пÑокÑи-ÑеÑвеÑа.
+РпоÑледнем ваÑианÑе Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе воÑполÑзоваÑÑÑÑ ÑÑлÑгами **облаÑного ÑеÑвиÑа**, коÑоÑÑй ÑÐ´ÐµÐ»Ð°ÐµÑ Ð±Ð¾Ð»ÑÑÑÑ ÑаÑÑÑ ÑабоÑÑ, вклÑÑÐ°Ñ Ð½Ð°ÑÑÑÐ¾Ð¹ÐºÑ HTTPS. ÐÑо Ð¼Ð¾Ð¶ÐµÑ Ð½Ð°Ð»Ð¾Ð¶Ð¸ÑÑ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸ÑелÑнÑе огÑаниÑÐµÐ½Ð¸Ñ Ð¸Ð»Ð¸ поÑÑебоваÑÑ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸ÑелÑнÑÑ Ð¿Ð»Ð°ÑÑ Ð¸ Ñ.п. ÐаÑо Ðам не понадобиÑÑÑ ÑамоÑÑоÑÑелÑно занимаÑÑÑÑ Ð½Ð°ÑÑÑойками пÑокÑи-ÑеÑвеÑа.
РдалÑнейÑем Ñ Ð¿Ð¾ÐºÐ°Ð¶Ñ Ðам некоÑоÑÑе конкÑеÑнÑе пÑимеÑÑ Ð¸Ñ
пÑименениÑ.
@@ -63,7 +63,7 @@
ТеÑмином **пÑогÑамма** обÑÑно опиÑÑваÑÑ Ð¼Ð½Ð¾Ð¶ÐµÑÑво веÑей:
-* **Ðод**, коÑоÑÑй ÐÑ Ð½Ð°Ð¿Ð¸Ñали, в наÑем ÑлÑÑае **Python-ÑайлÑ**.
+* **Ðод**, коÑоÑÑй Ð²Ñ Ð½Ð°Ð¿Ð¸Ñали, в наÑем ÑлÑÑае **Python-ÑайлÑ**.
* **Файл**, коÑоÑÑй Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ **иÑполнен** опеÑаÑионной ÑиÑÑемой, напÑÐ¸Ð¼ÐµÑ `python`, `python.exe` или `uvicorn`.
* ÐонкÑеÑÐ½Ð°Ñ Ð¿ÑогÑамма, **запÑÑеннаÑ** опеÑаÑионной ÑиÑÑемой и иÑполÑзÑÑÑÐ°Ñ ÑенÑÑалÑнÑй пÑоÑеÑÑÐ¾Ñ Ð¸ памÑÑÑ. Ð Ñаком ÑлÑÑае ÑÑо Ñакже назÑваеÑÑÑ **пÑоÑеÑÑ**.
@@ -74,13 +74,13 @@
* ÐонкÑеÑÐ½Ð°Ñ Ð¿ÑогÑамма, **запÑÑеннаÑ** опеÑаÑионной ÑиÑÑемой.
* ÐÑо не Ð¸Ð¼ÐµÐµÑ Ð¾ÑноÑÐµÐ½Ð¸Ñ Ðº какомÑ-либо ÑÐ°Ð¹Ð»Ñ Ð¸Ð»Ð¸ кодÑ, но неÑÑо **опÑеделÑнное**, ÑпÑавлÑемое и **вÑполнÑемое** опеÑаÑионной ÑиÑÑемой.
* ÐÑÐ±Ð°Ñ Ð¿ÑогÑамма, лÑбой код, **могÑÑ Ð´ÐµÐ»Ð°ÑÑ ÑÑо-Ñо** ÑолÑко когда они **вÑполнÑÑÑÑÑ**. То еÑÑÑ, когда ÑвлÑÑÑÑÑ **ÑабоÑаÑÑим пÑоÑеÑÑом**.
-* ÐÑоÑеÑÑ Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ **пÑеÑван** (или "ÑбиÑ") Ðами или ÐаÑей опеÑаÑионной ÑиÑÑемой. Ð ÑезÑлÑÑаÑе Ñего он пеÑеÑÑÐ°Ð½ÐµÑ Ð¸ÑполнÑÑÑÑÑ Ð¸ **не бÑÐ´ÐµÑ Ð¿ÑодолжаÑÑ Ð´ÐµÐ»Ð°ÑÑ ÑÑо-либо**.
-* Ðаждое пÑиложение, коÑоÑое ÐÑ Ð·Ð°Ð¿ÑÑÑили на ÑвоÑм компÑÑÑеÑе, ÐºÐ°Ð¶Ð´Ð°Ñ Ð¿ÑогÑамма, каждое "окно" запÑÑÐºÐ°ÐµÑ ÐºÐ°ÐºÐ¾Ð¹-Ñо пÑоÑеÑÑ. РобÑÑно на вклÑÑенном компÑÑÑеÑе **одновÑеменно** запÑÑено множеÑÑво пÑоÑеÑÑов.
+* ÐÑоÑеÑÑ Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ **пÑеÑван** (или "ÑбиÑ") Ðами или ваÑей опеÑаÑионной ÑиÑÑемой. Ð ÑезÑлÑÑаÑе Ñего он пеÑеÑÑÐ°Ð½ÐµÑ Ð¸ÑполнÑÑÑÑÑ Ð¸ **не бÑÐ´ÐµÑ Ð¿ÑодолжаÑÑ Ð´ÐµÐ»Ð°ÑÑ ÑÑо-либо**.
+* Ðаждое пÑиложение, коÑоÑое Ð²Ñ Ð·Ð°Ð¿ÑÑÑили на ÑвоÑм компÑÑÑеÑе, ÐºÐ°Ð¶Ð´Ð°Ñ Ð¿ÑогÑамма, каждое "окно" запÑÑÐºÐ°ÐµÑ ÐºÐ°ÐºÐ¾Ð¹-Ñо пÑоÑеÑÑ. РобÑÑно на вклÑÑенном компÑÑÑеÑе **одновÑеменно** запÑÑено множеÑÑво пÑоÑеÑÑов.
* Ð **одна пÑогÑамма** Ð¼Ð¾Ð¶ÐµÑ Ð·Ð°Ð¿ÑÑÑиÑÑ **неÑколÑко паÑаллелÑнÑÑ
пÑоÑеÑÑов**.
-ÐÑли ÐÑ Ð·Ð°Ð³Ð»ÑнеÑе в "диÑпеÑÑÐµÑ Ð·Ð°Ð´Ð°Ñ" или "ÑиÑÑемнÑй мониÑоÑ" (или аналогиÑнÑе инÑÑÑÑменÑÑ) ÐаÑей опеÑаÑионной ÑиÑÑемÑ, Ñо ÑвидиÑе множеÑÑво ÑабоÑаÑÑиÑ
пÑоÑеÑÑов.
+ÐÑли Ð²Ñ Ð·Ð°Ð³Ð»ÑнеÑе в "диÑпеÑÑÐµÑ Ð·Ð°Ð´Ð°Ñ" или "ÑиÑÑемнÑй мониÑоÑ" (или аналогиÑнÑе инÑÑÑÑменÑÑ) ваÑей опеÑаÑионной ÑиÑÑемÑ, Ñо ÑвидиÑе множеÑÑво ÑабоÑаÑÑиÑ
пÑоÑеÑÑов.
-Ðполне веÑоÑÑно, ÑÑо ÐÑ ÑвидиÑе неÑколÑко пÑоÑеÑÑов Ñ Ð¾Ð´Ð½Ð¸Ð¼ и Ñем же названием бÑаÑзеÑной пÑогÑÐ°Ð¼Ð¼Ñ (Firefox, Chrome, Edge и Ñ. Ð.). ÐбÑÑно бÑаÑзеÑÑ Ð·Ð°Ð¿ÑÑкаÑÑ Ð¾Ð´Ð¸Ð½ пÑоÑеÑÑ Ð½Ð° Ð²ÐºÐ»Ð°Ð´ÐºÑ Ð¸ вдобавок некоÑоÑÑе дополниÑелÑнÑе пÑоÑеÑÑÑ.
+Ðполне веÑоÑÑно, ÑÑо Ð²Ñ ÑвидиÑе неÑколÑко пÑоÑеÑÑов Ñ Ð¾Ð´Ð½Ð¸Ð¼ и Ñем же названием бÑаÑзеÑной пÑогÑÐ°Ð¼Ð¼Ñ (Firefox, Chrome, Edge и Ñ. Ð.). ÐбÑÑно бÑаÑзеÑÑ Ð·Ð°Ð¿ÑÑкаÑÑ Ð¾Ð´Ð¸Ð½ пÑоÑеÑÑ Ð½Ð° Ð²ÐºÐ»Ð°Ð´ÐºÑ Ð¸ вдобавок некоÑоÑÑе дополниÑелÑнÑе пÑоÑеÑÑÑ.
@@ -90,21 +90,21 @@
## ÐаÑÑÑойки запÑÑка пÑиложениÑ
-РболÑÑинÑÑве ÑлÑÑаев когда ÐÑ ÑоздаÑÑе веб-пÑиложение, Ñо желаеÑе, ÑÑоб оно **ÑабоÑало поÑÑоÑнно** и непÑеÑÑвно, пÑедоÑÑавлÑÑ ÐºÐ»Ð¸ÐµÐ½Ñам доÑÑÑп в лÑбое вÑемÑ. ХоÑÑ Ð¸Ð½Ð¾Ð³Ð´Ð° Ñ ÐÐ°Ñ Ð¼Ð¾Ð³ÑÑ Ð±ÑÑÑ Ð¿ÑиÑинÑ, ÑÑоб оно запÑÑкалоÑÑ ÑолÑко пÑи опÑеделÑннÑÑ
ÑÑловиÑÑ
.
+РболÑÑинÑÑве ÑлÑÑаев когда Ð²Ñ ÑоздаÑÑе веб-пÑиложение, Ñо желаеÑе, ÑÑоб оно **ÑабоÑало поÑÑоÑнно** и непÑеÑÑвно, пÑедоÑÑавлÑÑ ÐºÐ»Ð¸ÐµÐ½Ñам доÑÑÑп в лÑбое вÑемÑ. ХоÑÑ Ð¸Ð½Ð¾Ð³Ð´Ð° Ñ Ð²Ð°Ñ Ð¼Ð¾Ð³ÑÑ Ð±ÑÑÑ Ð¿ÑиÑинÑ, ÑÑоб оно запÑÑкалоÑÑ ÑолÑко пÑи опÑеделÑннÑÑ
ÑÑловиÑÑ
.
### УдалÑннÑй ÑеÑвеÑ
-Ðогда ÐÑ Ð½Ð°ÑÑÑаиваеÑе ÑдалÑннÑй ÑеÑÐ²ÐµÑ (облаÑнÑй ÑеÑвеÑ, виÑÑÑалÑнÑÑ Ð¼Ð°ÑÐ¸Ð½Ñ Ð¸ Ñ.п.), Ñамое пÑоÑÑое, ÑÑо можно ÑделаÑÑ, запÑÑÑиÑÑ Uvicorn (или его аналог) вÑÑÑнÑÑ, как ÐÑ Ð´ÐµÐ»Ð°ÐµÑе пÑи локалÑной ÑазÑабоÑке.
+Ðогда Ð²Ñ Ð½Ð°ÑÑÑаиваеÑе ÑдалÑннÑй ÑеÑÐ²ÐµÑ (облаÑнÑй ÑеÑвеÑ, виÑÑÑалÑнÑÑ Ð¼Ð°ÑÐ¸Ð½Ñ Ð¸ Ñ.п.), Ñамое пÑоÑÑое, ÑÑо можно ÑделаÑÑ, запÑÑÑиÑÑ Uvicorn (или его аналог) вÑÑÑнÑÑ, как Ð²Ñ Ð´ÐµÐ»Ð°ÐµÑе пÑи локалÑной ÑазÑабоÑке.
ÐÑо ÑабоÑий ÑпоÑоб и он полезен **во вÑÐµÐ¼Ñ ÑазÑабоÑки**.
-Ðо еÑли ÐÑ Ð¿Ð¾ÑеÑÑеÑе Ñоединение Ñ ÑеÑвеÑом, Ñо не ÑможеÑе оÑÑлеживаÑÑ - ÑабоÑÐ°ÐµÑ Ð»Ð¸ вÑÑ ÐµÑÑ **запÑÑеннÑй Ðами пÑоÑеÑÑ**.
+Ðо еÑли Ð²Ñ Ð¿Ð¾ÑеÑÑеÑе Ñоединение Ñ ÑеÑвеÑом, Ñо не ÑможеÑе оÑÑлеживаÑÑ - ÑабоÑÐ°ÐµÑ Ð»Ð¸ вÑÑ ÐµÑÑ **запÑÑеннÑй Ðами пÑоÑеÑÑ**.
-РеÑли ÑеÑÐ²ÐµÑ Ð¿ÐµÑезагÑÑзиÑÑÑ (напÑимеÑ, поÑле Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð¸Ð»Ð¸ какиÑ
-Ñо дейÑÑвий облаÑного пÑовайдеÑа), ÐÑ ÑкоÑее вÑего **ÑÑого не замеÑиÑе**, ÑÑÐ¾Ð±Ñ Ñнова запÑÑÑиÑÑ Ð¿ÑоÑеÑÑ Ð²ÑÑÑнÑÑ. ÐÑледÑÑвие ÑÑого ÐÐ°Ñ API оÑÑанеÑÑÑ Ð¼ÑÑÑвÑм. ð±
+РеÑли ÑеÑÐ²ÐµÑ Ð¿ÐµÑезагÑÑзиÑÑÑ (напÑимеÑ, поÑле Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð¸Ð»Ð¸ какиÑ
-Ñо дейÑÑвий облаÑного пÑовайдеÑа), Ð²Ñ ÑкоÑее вÑего **ÑÑого не замеÑиÑе**, ÑÑÐ¾Ð±Ñ Ñнова запÑÑÑиÑÑ Ð¿ÑоÑеÑÑ Ð²ÑÑÑнÑÑ. ÐÑледÑÑвие ÑÑого ÐÐ°Ñ API оÑÑанеÑÑÑ Ð¼ÑÑÑвÑм. ð±
### ÐвÑомаÑиÑеÑкий запÑÑк пÑогÑамм
-ÐеÑоÑÑно ÐÑ Ð¿Ð¾Ð¶ÐµÐ»Ð°ÐµÑе, ÑÑоб ÐаÑа ÑеÑвеÑÐ½Ð°Ñ Ð¿ÑогÑамма (ÑÐ°ÐºÐ°Ñ ÐºÐ°Ðº Uvicorn) ÑÑаÑÑовала авÑомаÑиÑеÑки пÑи вклÑÑении ÑеÑвеÑа, без **ÑеловеÑеÑкого вмеÑаÑелÑÑÑва** и вÑегда могла ÑпÑавлÑÑÑ ÐаÑим API (Ñак как Uvicorn запÑÑÐºÐ°ÐµÑ Ð¿Ñиложение FastAPI).
+ÐеÑоÑÑно Ð²Ñ Ð·Ð°Ñ
оÑиÑе, ÑÑоб ÐаÑа ÑеÑвеÑÐ½Ð°Ñ Ð¿ÑогÑамма (ÑакаÑ, как Uvicorn) ÑÑаÑÑовала авÑомаÑиÑеÑки пÑи вклÑÑении ÑеÑвеÑа, без **ÑеловеÑеÑкого вмеÑаÑелÑÑÑва** и вÑегда могла ÑпÑавлÑÑÑ ÐаÑим API (Ñак как Uvicorn запÑÑÐºÐ°ÐµÑ Ð¿Ñиложение FastAPI).
### ÐÑделÑÐ½Ð°Ñ Ð¿ÑогÑамма
@@ -127,7 +127,7 @@
## ÐеÑезапÑÑк
-ÐÑ, веÑоÑÑно, Ñакже пожелаеÑе, ÑÑоб ÐаÑе пÑиложение **пеÑезапÑÑкалоÑÑ**, еÑли в нÑм пÑоизоÑÑл Ñбой.
+ÐÑ, веÑоÑÑно, Ñакже заÑ
оÑиÑе, ÑÑоб ваÑе пÑиложение **пеÑезапÑÑкалоÑÑ**, еÑли в нÑм пÑоизоÑÑл Ñбой.
### ÐÑ Ð¾ÑибаемÑÑ
@@ -137,7 +137,7 @@
### ÐеболÑÑие оÑибки обÑабаÑÑваÑÑÑÑ Ð°Ð²ÑомаÑиÑеÑки
-Ðогда ÐÑ ÑоздаÑÑе Ñвои API на оÑнове FastAPI и допÑÑкаеÑе в коде оÑибкÑ, Ñо FastAPI обÑÑно оÑÑÐ°Ð½Ð¾Ð²Ð¸Ñ ÐµÑ ÑаÑпÑоÑÑÑанение внÑÑÑи одного запÑоÑа, пÑи обÑабоÑке коÑоÑого она возникла. ð¡
+Ðогда Ð²Ñ ÑоздаÑÑе Ñвои API на оÑнове FastAPI и допÑÑкаеÑе в коде оÑибкÑ, Ñо FastAPI обÑÑно оÑÑÐ°Ð½Ð¾Ð²Ð¸Ñ ÐµÑ ÑаÑпÑоÑÑÑанение внÑÑÑи одного запÑоÑа, пÑи обÑабоÑке коÑоÑого она возникла. ð¡
ÐÐ»Ð¸ÐµÐ½Ñ Ð¿Ð¾Ð»ÑÑÐ¸Ñ Ð¾ÑÐ¸Ð±ÐºÑ **500 Internal Server Error** в оÑÐ²ÐµÑ Ð½Ð° Ñвой запÑоÑ, но пÑиложение не ÑломаеÑÑÑ Ð¸ бÑÐ´ÐµÑ Ð¿ÑодолжаÑÑ ÑабоÑаÑÑ Ñ Ð¿Ð¾ÑледÑÑÑими запÑоÑами.
@@ -152,11 +152,11 @@
ÐÐ»Ñ ÑлÑÑаев, когда оÑибки пÑиводÑÑ Ðº ÑÐ±Ð¾Ñ Ð² запÑÑенном **пÑоÑеÑÑе**, Ðам понадобиÑÑÑ Ð´Ð¾Ð±Ð°Ð²Ð¸ÑÑ ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÐµÐ½Ñ, коÑоÑÑй **пеÑезапÑÑÑиÑ** пÑоÑеÑÑ Ñ
оÑÑ Ð±Ñ Ð¿Ð°ÑÑ Ñаз...
!!! tip "ÐамеÑка"
- ... ÐÑли пÑиложение Ð¿Ð°Ð´Ð°ÐµÑ ÑÑÐ°Ð·Ñ Ð¶Ðµ поÑле запÑÑка, веÑоÑÑно беÑполезно его беÑконеÑно пеÑезапÑÑкаÑÑ. Ðо полагаÑ, ÐÑ Ð·Ð°Ð¼ÐµÑиÑе Ñакое поведение во вÑÐµÐ¼Ñ ÑазÑабоÑки или, по кÑайней меÑе, ÑÑÐ°Ð·Ñ Ð¿Ð¾Ñле ÑазвÑÑÑÑваниÑ.
+ ... ÐÑли пÑиложение Ð¿Ð°Ð´Ð°ÐµÑ ÑÑÐ°Ð·Ñ Ð¶Ðµ поÑле запÑÑка, веÑоÑÑно беÑполезно его беÑконеÑно пеÑезапÑÑкаÑÑ. Ðо полагаÑ, Ð²Ñ Ð·Ð°Ð¼ÐµÑиÑе Ñакое поведение во вÑÐµÐ¼Ñ ÑазÑабоÑки или, по кÑайней меÑе, ÑÑÐ°Ð·Ñ Ð¿Ð¾Ñле ÑазвÑÑÑÑваниÑ.
Так ÑÑо давайÑе ÑоÑÑедоÑоÑимÑÑ Ð½Ð° конкÑеÑнÑÑ
ÑлÑÑаÑÑ
, когда пÑиложение Ð¼Ð¾Ð¶ÐµÑ Ð¿Ð¾Ð»Ð½Ð¾ÑÑÑÑ Ð²ÑйÑи из ÑÑÑоÑ, но вÑÑ ÐµÑÑ ÐµÑÑÑ ÑмÑÑл его запÑÑÑиÑÑ Ð·Ð°Ð½Ð¾Ð²Ð¾.
-Ðозможно ÐÑ Ð·Ð°Ñ
оÑиÑе, ÑÑоб бÑл некий **внеÑний компоненÑ**, оÑвеÑÑÑвеннÑй за пеÑезапÑÑк ÐаÑего пÑÐ¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð´Ð°Ð¶Ðµ еÑли Ñже не ÑабоÑÐ°ÐµÑ Uvicorn или Python. То еÑÑÑ Ð½Ð¸Ñего из Ñого, ÑÑо напиÑано в ÐаÑем коде внÑÑÑи пÑиложениÑ, не Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð²Ñполнено в пÑинÑипе.
+Ðозможно Ð²Ñ Ð·Ð°Ñ
оÑиÑе, ÑÑоб бÑл некий **внеÑний компоненÑ**, оÑвеÑÑÑвеннÑй за пеÑезапÑÑк ваÑего пÑÐ¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð´Ð°Ð¶Ðµ еÑли Ñже не ÑабоÑÐ°ÐµÑ Uvicorn или Python. То еÑÑÑ Ð½Ð¸Ñего из Ñого, ÑÑо напиÑано в ваÑем коде внÑÑÑи пÑиложениÑ, не Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð²Ñполнено в пÑинÑипе.
### ÐÑимеÑÑ Ð¸Ð½ÑÑÑÑменÑов Ð´Ð»Ñ Ð°Ð²ÑомаÑиÑеÑкого пеÑезапÑÑка
@@ -181,7 +181,7 @@
### ÐножеÑÑво пÑоÑеÑÑов - ÐоÑкеÑÑ (Workers)
-ÐÑли колиÑеÑÑво ÐаÑиÑ
клиенÑов болÑÑе, Ñем Ð¼Ð¾Ð¶ÐµÑ Ð¾Ð±ÑлÑжиÑÑ Ð¾Ð´Ð¸Ð½ пÑоÑеÑÑ (допÑÑÑим, ÑÑо виÑÑÑалÑÐ½Ð°Ñ Ð¼Ð°Ñина не ÑлиÑком моÑнаÑ), но пÑи ÑÑом Ðам доÑÑÑпно **неÑколÑко ÑÐ´ÐµÑ Ð¿ÑоÑеÑÑоÑа**, Ñо ÐÑ Ð¼Ð¾Ð¶ÐµÑе запÑÑÑиÑÑ **неÑколÑко пÑоÑеÑÑов** одного и Ñого же пÑÐ¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð¿Ð°ÑаллелÑно и ÑаÑпÑеделиÑÑ Ð·Ð°Ð¿ÑоÑÑ Ð¼ÐµÐ¶Ð´Ñ ÑÑими пÑоÑеÑÑами.
+ÐÑли колиÑеÑÑво ÐаÑиÑ
клиенÑов болÑÑе, Ñем Ð¼Ð¾Ð¶ÐµÑ Ð¾Ð±ÑлÑжиÑÑ Ð¾Ð´Ð¸Ð½ пÑоÑеÑÑ (допÑÑÑим, ÑÑо виÑÑÑалÑÐ½Ð°Ñ Ð¼Ð°Ñина не ÑлиÑком моÑнаÑ), но пÑи ÑÑом Ðам доÑÑÑпно **неÑколÑко ÑÐ´ÐµÑ Ð¿ÑоÑеÑÑоÑа**, Ñо Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе запÑÑÑиÑÑ **неÑколÑко пÑоÑеÑÑов** одного и Ñого же пÑÐ¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð¿Ð°ÑаллелÑно и ÑаÑпÑеделиÑÑ Ð·Ð°Ð¿ÑоÑÑ Ð¼ÐµÐ¶Ð´Ñ ÑÑими пÑоÑеÑÑами.
**ÐеÑколÑко запÑÑеннÑÑ
пÑоÑеÑÑов** одной и Ñой же API-пÑогÑÐ°Ð¼Ð¼Ñ ÑаÑÑо назÑваÑÑ **воÑкеÑами**.
@@ -197,11 +197,11 @@
РабоÑаÑÑÐ°Ñ Ð¿ÑогÑамма загÑÑÐ¶Ð°ÐµÑ Ð² памÑÑÑ Ð´Ð°Ð½Ð½Ñе, необÑ
одимÑе Ð´Ð»Ñ ÐµÑ ÑабоÑÑ, напÑимеÑ, пеÑеменнÑе ÑодеÑжаÑие модели маÑинного обÑÑÐµÐ½Ð¸Ñ Ð¸Ð»Ð¸ болÑÑие ÑайлÑ. ÐÐ°Ð¶Ð´Ð°Ñ Ð¿ÐµÑÐµÐ¼ÐµÐ½Ð½Ð°Ñ **поÑÑеблÑÐµÑ Ð½ÐµÐºÐ¾ÑоÑое колиÑеÑÑво опеÑаÑивной памÑÑи (RAM)** ÑеÑвеÑа.
-ÐбÑÑно пÑоÑеÑÑÑ **не делÑÑÑÑ Ð¿Ð°Ð¼ÑÑÑÑ Ð´ÑÑг Ñ Ð´ÑÑгом**. Сие ознаÑаеÑ, ÑÑо каждÑй ÑабоÑаÑÑий пÑоÑеÑÑ Ð¸Ð¼ÐµÐµÑ Ñвои даннÑе, пеÑеменнÑе и Ñвой кÑÑок памÑÑи. РеÑли Ð´Ð»Ñ Ð²ÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ ÐаÑего кода пÑоÑеÑÑÑ Ð½Ñжно много памÑÑи, Ñо **каждÑй Ñакой же пÑоÑеÑÑ** запÑÑеннÑй дополниÑелÑно, поÑÑебÑÐµÑ Ñакого же колиÑеÑÑва памÑÑи.
+ÐбÑÑно пÑоÑеÑÑÑ **не делÑÑÑÑ Ð¿Ð°Ð¼ÑÑÑÑ Ð´ÑÑг Ñ Ð´ÑÑгом**. Сие ознаÑаеÑ, ÑÑо каждÑй ÑабоÑаÑÑий пÑоÑеÑÑ Ð¸Ð¼ÐµÐµÑ Ñвои даннÑе, пеÑеменнÑе и Ñвой кÑÑок памÑÑи. РеÑли Ð´Ð»Ñ Ð²ÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð²Ð°Ñего кода пÑоÑеÑÑÑ Ð½Ñжно много памÑÑи, Ñо **каждÑй Ñакой же пÑоÑеÑÑ** запÑÑеннÑй дополниÑелÑно, поÑÑебÑÐµÑ Ñакого же колиÑеÑÑва памÑÑи.
### ÐамÑÑÑ ÑеÑвеÑа
-ÐопÑÑÑим, ÑÑо ÐÐ°Ñ ÐºÐ¾Ð´ загÑÑÐ¶Ð°ÐµÑ Ð¼Ð¾Ð´ÐµÐ»Ñ Ð¼Ð°Ñинного обÑÑÐµÐ½Ð¸Ñ **ÑазмеÑом 1 ÐÐ**. Ðогда ÐÑ Ð·Ð°Ð¿ÑÑÑиÑе ÑÐ²Ð¾Ñ API как один пÑоÑеÑÑ, он займÑÑ Ð² опеÑаÑивной памÑÑи не менее 1 ÐÐ. РеÑли ÐÑ Ð·Ð°Ð¿ÑÑÑиÑе **4 ÑакиÑ
же пÑоÑеÑÑа** (4 воÑкеÑа), Ñо каждÑй из ниÑ
займÑÑ 1 ÐРопеÑаÑивной памÑÑи. Ð ÑезÑлÑÑаÑе ÐаÑÐµÐ¼Ñ API поÑÑебÑеÑÑÑ **4 ÐРопеÑаÑивной памÑÑи (RAM)**.
+ÐопÑÑÑим, ÑÑо ÐÐ°Ñ ÐºÐ¾Ð´ загÑÑÐ¶Ð°ÐµÑ Ð¼Ð¾Ð´ÐµÐ»Ñ Ð¼Ð°Ñинного обÑÑÐµÐ½Ð¸Ñ **ÑазмеÑом 1 ÐÐ**. Ðогда Ð²Ñ Ð·Ð°Ð¿ÑÑÑиÑе ÑÐ²Ð¾Ñ API как один пÑоÑеÑÑ, он займÑÑ Ð² опеÑаÑивной памÑÑи не менее 1 ÐÐ. РеÑли Ð²Ñ Ð·Ð°Ð¿ÑÑÑиÑе **4 ÑакиÑ
же пÑоÑеÑÑа** (4 воÑкеÑа), Ñо каждÑй из ниÑ
займÑÑ 1 ÐРопеÑаÑивной памÑÑи. Ð ÑезÑлÑÑаÑе ваÑÐµÐ¼Ñ API поÑÑебÑеÑÑÑ **4 ÐРопеÑаÑивной памÑÑи (RAM)**.
РеÑли ÐÐ°Ñ ÑдалÑннÑй ÑеÑÐ²ÐµÑ Ð¸Ð»Ð¸ виÑÑÑалÑÐ½Ð°Ñ Ð¼Ð°Ñина ÑаÑÐ¿Ð¾Ð»Ð°Ð³Ð°ÐµÑ ÑолÑко 3 ÐРпамÑÑи, Ñо попÑÑка загÑÑзиÑÑ Ð² Ð½ÐµÑ 4 ÐРданнÑÑ
вÑÐ·Ð¾Ð²ÐµÑ Ð¿ÑоблемÑ. ð¨
@@ -211,15 +211,15 @@
ÐÐµÐ½ÐµÐ´Ð¶ÐµÑ Ð¿ÑоÑеÑÑов бÑÐ´ÐµÑ ÑлÑÑаÑÑ Ð¾Ð¿ÑеделÑннÑй **ÑокеÑ** (IP:поÑÑ) и пеÑедаваÑÑ Ð´Ð°Ð½Ð½Ñе ÑабоÑаÑÑим пÑоÑеÑÑам.
-ÐаждÑй из ÑÑиÑ
пÑоÑеÑÑов бÑÐ´ÐµÑ Ð·Ð°Ð¿ÑÑкаÑÑ ÐаÑе пÑиложение Ð´Ð»Ñ Ð¾Ð±ÑабоÑки полÑÑенного **запÑоÑа** и возвÑаÑÐµÐ½Ð¸Ñ Ð²ÑÑиÑленного **оÑвеÑа** и они бÑдÑÑ Ð¸ÑполÑзоваÑÑ Ð¾Ð¿ÐµÑаÑивнÑÑ Ð¿Ð°Ð¼ÑÑÑ.
+ÐаждÑй из ÑÑиÑ
пÑоÑеÑÑов бÑÐ´ÐµÑ Ð·Ð°Ð¿ÑÑкаÑÑ Ð²Ð°Ñе пÑиложение Ð´Ð»Ñ Ð¾Ð±ÑабоÑки полÑÑенного **запÑоÑа** и возвÑаÑÐµÐ½Ð¸Ñ Ð²ÑÑиÑленного **оÑвеÑа** и они бÑдÑÑ Ð¸ÑполÑзоваÑÑ Ð¾Ð¿ÐµÑаÑивнÑÑ Ð¿Ð°Ð¼ÑÑÑ.
-ÐезÑÑловно, на ÑÑом же ÑеÑвеÑе бÑдÑÑ ÑабоÑаÑÑ Ð¸ **дÑÑгие пÑоÑеÑÑÑ**, коÑоÑÑе не оÑноÑÑÑÑÑ Ðº ÐаÑÐµÐ¼Ñ Ð¿ÑиложениÑ.
+ÐезÑÑловно, на ÑÑом же ÑеÑвеÑе бÑдÑÑ ÑабоÑаÑÑ Ð¸ **дÑÑгие пÑоÑеÑÑÑ**, коÑоÑÑе не оÑноÑÑÑÑÑ Ðº ваÑÐµÐ¼Ñ Ð¿ÑиложениÑ.
-ÐнÑеÑеÑÐ½Ð°Ñ Ð´ÐµÑÐ°Ð»Ñ - обÑÑно в ÑеÑение вÑемени пÑоÑÐµÐ½Ñ **иÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ ÑенÑÑалÑного пÑоÑеÑÑоÑа (CPU)** каждÑм пÑоÑеÑÑом Ð¼Ð¾Ð¶ÐµÑ Ð¾ÑÐµÐ½Ñ ÑилÑно **изменÑÑÑÑÑ**, но обÑÑм занимаемой **опеÑаÑивной памÑÑи (RAM)** оÑÑаÑÑÑÑ Ð¾ÑноÑиÑелÑно **ÑÑабилÑнÑм**.
+ÐнÑеÑеÑÐ½Ð°Ñ Ð´ÐµÑÐ°Ð»Ñ Ð·Ð°ÐºÐ»ÑÑаеÑÑÑ Ð² Ñом, ÑÑо пÑоÑÐµÐ½Ñ **иÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ ÑенÑÑалÑного пÑоÑеÑÑоÑа (CPU)** каждÑм пÑоÑеÑÑом Ð¼Ð¾Ð¶ÐµÑ ÑилÑно менÑÑÑÑÑ Ñ ÑеÑением вÑемени, но обÑÑм занимаемой **опеÑаÑивной памÑÑи (RAM)** оÑÑаÑÑÑÑ Ð¾ÑноÑиÑелÑно **ÑÑабилÑнÑм**.
-ÐÑли Ñ ÐÐ°Ñ ÐµÑÑÑ API, коÑоÑÑй каждÑй Ñаз вÑполнÑÐµÑ ÑопоÑÑавимÑй обÑем вÑÑиÑлений, и Ñ ÐÐ°Ñ Ð¼Ð½Ð¾Ð³Ð¾ клиенÑов, Ñо **загÑÑзка пÑоÑеÑÑоÑа**, веÑоÑÑно, *Ñакже бÑÐ´ÐµÑ ÑÑабилÑной* (вмеÑÑо Ñого, ÑÑÐ¾Ð±Ñ Ð¿Ð¾ÑÑоÑнно бÑÑÑÑо ÑвелиÑиваÑÑÑÑ Ð¸ ÑменÑÑаÑÑÑÑ).
+ÐÑли Ñ Ð²Ð°Ñ ÐµÑÑÑ API, коÑоÑÑй каждÑй Ñаз вÑполнÑÐµÑ ÑопоÑÑавимÑй обÑем вÑÑиÑлений, и Ñ Ð²Ð°Ñ Ð¼Ð½Ð¾Ð³Ð¾ клиенÑов, Ñо **загÑÑзка пÑоÑеÑÑоÑа**, веÑоÑÑно, *Ñакже бÑÐ´ÐµÑ ÑÑабилÑной* (вмеÑÑо Ñого, ÑÑÐ¾Ð±Ñ Ð¿Ð¾ÑÑоÑнно бÑÑÑÑо ÑвелиÑиваÑÑÑÑ Ð¸ ÑменÑÑаÑÑÑÑ).
### ÐÑимеÑÑ ÑÑÑаÑегий и инÑÑÑÑменÑов Ð´Ð»Ñ Ð·Ð°Ð¿ÑÑка неÑколÑкиÑ
ÑкземплÑÑов пÑиложениÑ
@@ -236,10 +236,10 @@
* **Kubernetes** и аналогиÑнÑе **конÑейнеÑнÑе ÑиÑÑемÑ**
* Ðакой-Ñо ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÐµÐ½Ñ Ð² **Kubernetes** бÑÐ´ÐµÑ ÑлÑÑаÑÑ **IP:port**. ÐеобÑ
одимое колиÑеÑÑво запÑÑеннÑÑ
ÑкземплÑÑов пÑÐ¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð±ÑÐ´ÐµÑ Ð¾ÑÑÑеÑÑвлÑÑÑÑÑ Ð¿Ð¾ÑÑедÑÑвом запÑÑка **неÑколÑкиÑ
конÑейнеÑов**, в каждом из коÑоÑÑÑ
ÑабоÑÐ°ÐµÑ **один пÑоÑеÑÑ Uvicorn**.
* **ÐблаÑнÑе ÑеÑвиÑÑ**, коÑоÑÑе позабоÑÑÑÑÑ Ð¾Ð±Ð¾ вÑÑм за ÐаÑ
- * Ðозможно, ÑÑо облаÑнÑй ÑеÑÐ²Ð¸Ñ ÑÐ¼ÐµÐµÑ **ÑпÑавлÑÑÑ Ð·Ð°Ð¿ÑÑком дополниÑелÑнÑÑ
ÑкземплÑÑов пÑиложениÑ**. ÐеÑоÑÑно, он поÑÑебÑеÑ, ÑÑоб ÐÑ Ñказали - какой **пÑоÑеÑÑ** или **обÑаз** ÑледÑÐµÑ ÐºÐ»Ð¾Ð½Ð¸ÑоваÑÑ. СкоÑее вÑего, ÐÑ ÑкажеÑе **один пÑоÑеÑÑ Uvicorn** и облаÑнÑй ÑеÑÐ²Ð¸Ñ Ð±ÑÐ´ÐµÑ Ð·Ð°Ð¿ÑÑкаÑÑ ÐµÐ³Ð¾ копии пÑи необÑ
одимоÑÑи.
+ * Ðозможно, ÑÑо облаÑнÑй ÑеÑÐ²Ð¸Ñ ÑÐ¼ÐµÐµÑ **ÑпÑавлÑÑÑ Ð·Ð°Ð¿ÑÑком дополниÑелÑнÑÑ
ÑкземплÑÑов пÑиложениÑ**. ÐеÑоÑÑно, он поÑÑебÑеÑ, ÑÑоб Ð²Ñ Ñказали - какой **пÑоÑеÑÑ** или **обÑаз** ÑледÑÐµÑ ÐºÐ»Ð¾Ð½Ð¸ÑоваÑÑ. СкоÑее вÑего, Ð²Ñ ÑкажеÑе **один пÑоÑеÑÑ Uvicorn** и облаÑнÑй ÑеÑÐ²Ð¸Ñ Ð±ÑÐ´ÐµÑ Ð·Ð°Ð¿ÑÑкаÑÑ ÐµÐ³Ð¾ копии пÑи необÑ
одимоÑÑи.
!!! tip "ÐамеÑка"
- ÐÑли ÐÑ Ð½Ðµ знаеÑе, ÑÑо Ñакое **конÑейнеÑÑ**, Docker или Kubernetes, не пеÑеживайÑе.
+ ÐÑли Ð²Ñ Ð½Ðµ знаеÑе, ÑÑо Ñакое **конÑейнеÑÑ**, Docker или Kubernetes, не пеÑеживайÑе.
Я Ð¿Ð¾Ð²ÐµÐ´Ð°Ñ Ðам о конÑейнеÑаÑ
, обÑазаÑ
, Docker, Kubernetes и Ñ.п. в главе: [FastAPI внÑÑÑи конÑейнеÑов - Docker](./docker.md){.internal-link target=_blank}.
@@ -253,18 +253,18 @@
ÐоÑÑÐ¾Ð¼Ñ Ðам нÑжен бÑÐ´ÐµÑ **один пÑоÑеÑÑ**, вÑполнÑÑÑий ÑÑи **подгоÑовиÑелÑнÑе Ñаги** до запÑÑка пÑиложениÑ.
-Также Ðам нÑжно бÑÐ´ÐµÑ ÑбедиÑÑÑÑ, ÑÑо ÑÑÐ¾Ñ Ð¿ÑоÑеÑÑ Ð²Ñполнил подгоÑовиÑелÑнÑе Ñаги *даже* еÑли впоÑледÑÑвии ÐÑ Ð·Ð°Ð¿ÑÑÑиÑе **неÑколÑко пÑоÑеÑÑов** (неÑколÑко воÑкеÑов) Ñамого пÑиложениÑ. ÐÑли Ð±Ñ ÑÑи Ñаги вÑполнÑлиÑÑ Ð² каждом **клониÑованном пÑоÑеÑÑе**, они Ð±Ñ **дÑблиÑовали** ÑабоÑÑ, пÑÑаÑÑÑ Ð²ÑполниÑÑ ÐµÑ **паÑаллелÑно**. РеÑли Ð±Ñ ÑÑа ÑабоÑа бÑла Ð±Ñ Ñем-Ñо деликаÑнÑм, вÑоде мигÑаÑии Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ
, Ñо ÑÑо Ð¼Ð¾Ð¶ÐµÑ Ð²ÑзваÑÑ ÐºÐ¾Ð½ÑликÑÑ Ð¼ÐµÐ¶Ð´Ñ Ð½Ð¸Ð¼Ð¸.
+Также Ðам нÑжно бÑÐ´ÐµÑ ÑбедиÑÑÑÑ, ÑÑо ÑÑÐ¾Ñ Ð¿ÑоÑеÑÑ Ð²Ñполнил подгоÑовиÑелÑнÑе Ñаги *даже* еÑли впоÑледÑÑвии Ð²Ñ Ð·Ð°Ð¿ÑÑÑиÑе **неÑколÑко пÑоÑеÑÑов** (неÑколÑко воÑкеÑов) Ñамого пÑиложениÑ. ÐÑли Ð±Ñ ÑÑи Ñаги вÑполнÑлиÑÑ Ð² каждом **клониÑованном пÑоÑеÑÑе**, они Ð±Ñ **дÑблиÑовали** ÑабоÑÑ, пÑÑаÑÑÑ Ð²ÑполниÑÑ ÐµÑ **паÑаллелÑно**. РеÑли Ð±Ñ ÑÑа ÑабоÑа бÑла Ð±Ñ Ñем-Ñо деликаÑнÑм, вÑоде мигÑаÑии Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ
, Ñо ÑÑо Ð¼Ð¾Ð¶ÐµÑ Ð²ÑзваÑÑ ÐºÐ¾Ð½ÑликÑÑ Ð¼ÐµÐ¶Ð´Ñ Ð½Ð¸Ð¼Ð¸.
ÐезÑÑловно, Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ñ ÑлÑÑаи, когда Ð½ÐµÑ Ð¿Ñоблем пÑи вÑполнении пÑедваÑиÑелÑной подгоÑовки паÑаллелÑно или неÑколÑко Ñаз. Тогда Ðам повезло, ÑабоÑаÑÑ Ñ Ð½Ð¸Ð¼Ð¸ намного пÑоÑе.
!!! tip "ÐамеÑка"
- ÐмейÑе в видÑ, ÑÑо в некоÑоÑÑÑ
ÑлÑÑаÑÑ
запÑÑк ÐаÑего пÑÐ¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ **Ð¼Ð¾Ð¶ÐµÑ Ð½Ðµ ÑÑебоваÑÑ ÐºÐ°ÐºÐ¸Ñ
-либо пÑедваÑиÑелÑнÑÑ
Ñагов вовÑе**.
+ ÐмейÑе в видÑ, ÑÑо в некоÑоÑÑÑ
ÑлÑÑаÑÑ
запÑÑк ваÑего пÑÐ¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ **Ð¼Ð¾Ð¶ÐµÑ Ð½Ðµ ÑÑебоваÑÑ ÐºÐ°ÐºÐ¸Ñ
-либо пÑедваÑиÑелÑнÑÑ
Ñагов вовÑе**.
ЧÑо ж, Ñогда Ðам не нÑжно беÑпокоиÑÑÑÑ Ð¾Ð± ÑÑом. ð¤·
### ÐÑимеÑÑ ÑÑÑаÑегий запÑÑка пÑедваÑиÑелÑнÑÑ
Ñагов
-СÑÑеÑÑвÑÐµÑ **ÑилÑÐ½Ð°Ñ Ð·Ð°Ð²Ð¸ÑимоÑÑÑ** Ð¾Ñ Ñого, как ÐÑ **ÑазвÑÑÑÑваеÑе ÑÐ²Ð¾Ñ ÑиÑÑемÑ**, запÑÑкаеÑе пÑогÑаммÑ, обÑабаÑÑваеÑе пеÑезапÑÑки и Ñ.д.
+СÑÑеÑÑвÑÐµÑ **ÑилÑÐ½Ð°Ñ Ð·Ð°Ð²Ð¸ÑимоÑÑÑ** Ð¾Ñ Ñого, как Ð²Ñ **ÑазвÑÑÑÑваеÑе ÑÐ²Ð¾Ñ ÑиÑÑемÑ**, запÑÑкаеÑе пÑогÑаммÑ, обÑабаÑÑваеÑе пеÑезапÑÑки и Ñ.д.
ÐÐ¾Ñ Ð½ÐµÐºÐ¾ÑоÑÑе возможнÑе идеи:
@@ -279,19 +279,19 @@
ÐÐ°Ñ ÑеÑÐ²ÐµÑ ÑаÑÐ¿Ð¾Ð»Ð°Ð³Ð°ÐµÑ ÑеÑÑÑÑами, коÑоÑÑе ÐаÑи пÑогÑÐ°Ð¼Ð¼Ñ Ð¼Ð¾Ð³ÑÑ Ð¿Ð¾ÑÑеблÑÑÑ Ð¸Ð»Ð¸ **ÑÑилизиÑоваÑÑ**, а именно - вÑÐµÐ¼Ñ ÑабоÑÑ ÑенÑÑалÑного пÑоÑеÑÑоÑа и обÑÑм опеÑаÑивной памÑÑи.
-Ðак много ÑиÑÑемнÑÑ
ÑеÑÑÑÑов ÐÑ Ð¿ÑедполагаеÑе поÑÑебиÑÑ/ÑÑилизиÑоваÑÑ? ÐÑли не задÑмÑваÑÑÑÑ, Ñо можно оÑвеÑиÑÑ - "немного", но на Ñамом деле ÐÑ, веÑоÑÑно, пожелаеÑе иÑполÑзоваÑÑ **макÑималÑно возможное колиÑеÑÑво**.
+Ðак много ÑиÑÑемнÑÑ
ÑеÑÑÑÑов Ð²Ñ Ð¿ÑедполагаеÑе поÑÑебиÑÑ/ÑÑилизиÑоваÑÑ? ÐÑли не задÑмÑваÑÑÑÑ, Ñо можно оÑвеÑиÑÑ - "немного", но на Ñамом деле ÐÑ, веÑоÑÑно, заÑ
оÑиÑе иÑполÑзоваÑÑ **макÑималÑно возможное колиÑеÑÑво**.
-ÐÑли ÐÑ Ð¿Ð»Ð°ÑиÑе за ÑодеÑжание ÑÑÑÑ
ÑеÑвеÑов, но иÑполÑзÑеÑе лиÑÑ Ð¼Ð°Ð»ÑÑ ÑаÑÑÑ ÑиÑÑемнÑÑ
ÑеÑÑÑÑов каждого из ниÑ
, Ñо ÐÑ **вÑбÑаÑÑваеÑе денÑги на веÑеÑ**, а Ñакже **впÑÑÑÑÑ ÑÑаÑиÑе ÑлекÑÑоÑнеÑгиÑ** и Ñ.п.
+ÐÑли Ð²Ñ Ð¿Ð»Ð°ÑиÑе за ÑодеÑжание ÑÑÑÑ
ÑеÑвеÑов, но иÑполÑзÑеÑе лиÑÑ Ð¼Ð°Ð»ÑÑ ÑаÑÑÑ ÑиÑÑемнÑÑ
ÑеÑÑÑÑов каждого из ниÑ
, Ñо Ð²Ñ **вÑбÑаÑÑваеÑе денÑги на веÑеÑ**, а Ñакже **впÑÑÑÑÑ ÑÑаÑиÑе ÑлекÑÑоÑнеÑгиÑ** и Ñ.п.
Ð Ñаком ÑлÑÑае бÑло Ð±Ñ Ð»ÑÑÑе обойÑиÑÑ Ð´Ð²ÑÐ¼Ñ ÑеÑвеÑами, но более полно ÑÑилизиÑоваÑÑ Ð¸Ñ
ÑеÑÑÑÑÑ (ÑенÑÑалÑнÑй пÑоÑеÑÑоÑ, опеÑаÑивнÑÑ Ð¿Ð°Ð¼ÑÑÑ, жÑÑÑкий диÑк, ÑеÑи пеÑедаÑи даннÑÑ
и Ñ.д).
-С дÑÑгой ÑÑоÑонÑ, еÑли ÐÑ ÑаÑполагаеÑе ÑолÑко двÑÐ¼Ñ ÑеÑвеÑами и иÑполÑзÑеÑе **на 100% иÑ
пÑоÑеÑÑоÑÑ Ð¸ памÑÑÑ**, но какой-либо пÑоÑеÑÑ Ð·Ð°Ð¿ÑоÑÐ¸Ñ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸ÑелÑнÑÑ Ð¿Ð°Ð¼ÑÑÑ, Ñо опеÑаÑÐ¸Ð¾Ð½Ð½Ð°Ñ ÑиÑÑема ÑеÑвеÑа бÑÐ´ÐµÑ Ð¸ÑполÑзоваÑÑ Ð¶ÑÑÑкий диÑк Ð´Ð»Ñ ÑаÑÑиÑÐµÐ½Ð¸Ñ Ð¾Ð¿ÐµÑаÑивной памÑÑи (а диÑк ÑабоÑÐ°ÐµÑ Ð² ÑÑÑÑÑи Ñаз медленнее), а Ñо вовÑе **ÑпадÑÑ**. Ðли еÑли какомÑ-Ñо пÑоÑеÑÑÑ Ð¿Ð¾Ð½Ð°Ð´Ð¾Ð±Ð¸ÑÑÑ Ð¿ÑоизвеÑÑи вÑÑиÑлениÑ, Ñо ÐµÐ¼Ñ Ð¿ÑидÑÑÑÑ Ð¿Ð¾Ð´Ð¾Ð¶Ð´Ð°ÑÑ, пока пÑоÑеÑÑÐ¾Ñ Ð¾ÑвободиÑÑÑ.
+С дÑÑгой ÑÑоÑонÑ, еÑли Ð²Ñ ÑаÑполагаеÑе ÑолÑко двÑÐ¼Ñ ÑеÑвеÑами и иÑполÑзÑеÑе **на 100% иÑ
пÑоÑеÑÑоÑÑ Ð¸ памÑÑÑ**, но какой-либо пÑоÑеÑÑ Ð·Ð°Ð¿ÑоÑÐ¸Ñ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸ÑелÑнÑÑ Ð¿Ð°Ð¼ÑÑÑ, Ñо опеÑаÑÐ¸Ð¾Ð½Ð½Ð°Ñ ÑиÑÑема ÑеÑвеÑа бÑÐ´ÐµÑ Ð¸ÑполÑзоваÑÑ Ð¶ÑÑÑкий диÑк Ð´Ð»Ñ ÑаÑÑиÑÐµÐ½Ð¸Ñ Ð¾Ð¿ÐµÑаÑивной памÑÑи (а диÑк ÑабоÑÐ°ÐµÑ Ð² ÑÑÑÑÑи Ñаз медленнее), а Ñо вовÑе **ÑпадÑÑ**. Ðли еÑли какомÑ-Ñо пÑоÑеÑÑÑ Ð¿Ð¾Ð½Ð°Ð´Ð¾Ð±Ð¸ÑÑÑ Ð¿ÑоизвеÑÑи вÑÑиÑлениÑ, Ñо ÐµÐ¼Ñ Ð¿ÑидÑÑÑÑ Ð¿Ð¾Ð´Ð¾Ð¶Ð´Ð°ÑÑ, пока пÑоÑеÑÑÐ¾Ñ Ð¾ÑвободиÑÑÑ.
Ð Ñакой ÑиÑÑаÑии лÑÑÑе подклÑÑиÑÑ **еÑÑ Ð¾Ð´Ð¸Ð½ ÑеÑвеÑ** и пеÑеÑаÑпÑеделиÑÑ Ð¿ÑоÑеÑÑÑ Ð¼ÐµÐ¶Ð´Ñ ÑеÑвеÑами, ÑÑоб вÑем **Ñ
ваÑало памÑÑи и пÑоÑеÑÑоÑного вÑемени**.
-Также еÑÑÑ Ð²ÐµÑоÑÑноÑÑÑ, ÑÑо по какой-Ñо пÑиÑине возник **вÑплеÑк** запÑоÑов к ÐаÑÐµÐ¼Ñ API. Ðозможно, ÑÑо бÑл виÑÑÑ, боÑÑ Ð¸Ð»Ð¸ дÑÑгие ÑеÑвиÑÑ Ð½Ð°Ñали полÑзоваÑÑÑÑ Ð¸Ð¼. Ð Ð´Ð»Ñ ÑакиÑ
пÑоиÑÑеÑÑвий ÐÑ Ð¼Ð¾Ð¶ÐµÑе заÑ
оÑеÑÑ Ð¸Ð¼ÐµÑÑ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸ÑелÑнÑе ÑеÑÑÑÑÑ.
+Также еÑÑÑ Ð²ÐµÑоÑÑноÑÑÑ, ÑÑо по какой-Ñо пÑиÑине возник **вÑплеÑк** запÑоÑов к ваÑÐµÐ¼Ñ API. Ðозможно, ÑÑо бÑл виÑÑÑ, боÑÑ Ð¸Ð»Ð¸ дÑÑгие ÑеÑвиÑÑ Ð½Ð°Ñали полÑзоваÑÑÑÑ Ð¸Ð¼. Ð Ð´Ð»Ñ ÑакиÑ
пÑоиÑÑеÑÑвий Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе заÑ
оÑеÑÑ Ð¸Ð¼ÐµÑÑ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸ÑелÑнÑе ÑеÑÑÑÑÑ.
-ÐÑи наÑÑÑойке логики ÑазвÑÑÑÑваний, ÐÑ Ð¼Ð¾Ð¶ÐµÑе ÑказаÑÑ **Ñелевое знаÑение** ÑÑилизаÑии ÑеÑÑÑÑов, допÑÑÑим, **Ð¾Ñ 50% до 90%**. ÐбÑÑно ÑÑи меÑÑики и иÑполÑзÑÑÑ.
+ÐÑи наÑÑÑойке логики ÑазвÑÑÑÑваний, Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе ÑказаÑÑ **Ñелевое знаÑение** ÑÑилизаÑии ÑеÑÑÑÑов, допÑÑÑим, **Ð¾Ñ 50% до 90%**. ÐбÑÑно ÑÑи меÑÑики и иÑполÑзÑÑÑ.
ÐÑ Ð¼Ð¾Ð¶ÐµÑе иÑполÑзоваÑÑ Ð¿ÑоÑÑÑе инÑÑÑÑменÑÑ, Ñакие как `htop`, Ð´Ð»Ñ Ð¾ÑÑÐ»ÐµÐ¶Ð¸Ð²Ð°Ð½Ð¸Ñ Ð·Ð°Ð³ÑÑзки ÑенÑÑалÑного пÑоÑеÑÑоÑа и опеÑаÑивной памÑÑи ÑеÑвеÑа, в Ñом ÑиÑле каждÑм пÑоÑеÑÑом. Ðли более ÑложнÑе ÑиÑÑÐµÐ¼Ñ Ð¼Ð¾Ð½Ð¸ÑоÑинга неÑколÑкиÑ
ÑеÑвеÑов.
@@ -308,4 +308,4 @@
ÐÑознание ÑÑиÑ
идей и Ñого, как иÑ
пÑименÑÑÑ, должно даÑÑ Ðам инÑÑиÑивное понимание, необÑ
одимое Ð´Ð»Ñ Ð¿ÑинÑÑÐ¸Ñ ÑеÑений пÑи наÑÑÑойке ÑазвеÑÑÑваний. ð¤
-Ð ÑледÑÑÑиÑ
ÑазделаÑ
Ñ Ð¿ÑÐ¸Ð²ÐµÐ´Ñ Ð±Ð¾Ð»ÐµÐµ конкÑеÑнÑе пÑимеÑÑ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½ÑÑ
ÑÑÑаÑегий, коÑоÑÑм ÐÑ Ð¼Ð¾Ð¶ÐµÑе ÑледоваÑÑ. ð
+Ð ÑледÑÑÑиÑ
ÑазделаÑ
Ñ Ð¿ÑÐ¸Ð²ÐµÐ´Ñ Ð±Ð¾Ð»ÐµÐµ конкÑеÑнÑе пÑимеÑÑ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½ÑÑ
ÑÑÑаÑегий, коÑоÑÑм Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе ÑледоваÑÑ. ð
diff --git a/docs/ru/docs/deployment/docker.md b/docs/ru/docs/deployment/docker.md
index f045ca9448..78d3ec1b4d 100644
--- a/docs/ru/docs/deployment/docker.md
+++ b/docs/ru/docs/deployment/docker.md
@@ -70,19 +70,19 @@ Docker ÑвлÑеÑÑÑ Ð¾Ð´Ð½Ð¸Ð¼ оз оÑновнÑÑ
инÑÑÑÑменÑо
и Ñ.п.
-ÐÑполÑзование подгоÑовленнÑÑ
обÑазов знаÑиÑелÑно ÑпÑоÑÐ°ÐµÑ **комбиниÑование** и иÑполÑзование ÑазнÑÑ
инÑÑÑÑменÑов. ÐапÑимеÑ, ÐÑ Ð¼Ð¾Ð¶ÐµÑе попÑÑаÑÑÑÑ Ð¸ÑполÑзоваÑÑ Ð½Ð¾Ð²ÑÑ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ
. РболÑÑинÑÑве ÑлÑÑаев можно иÑполÑзоваÑÑ **оÑиÑиалÑнÑй обÑаз** и вÑего лиÑÑ ÑказаÑÑ Ð¿ÐµÑеменнÑе окÑÑжениÑ.
+ÐÑполÑзование подгоÑовленнÑÑ
обÑазов знаÑиÑелÑно ÑпÑоÑÐ°ÐµÑ **комбиниÑование** и иÑполÑзование ÑазнÑÑ
инÑÑÑÑменÑов. ÐапÑимеÑ, Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе попÑÑаÑÑÑÑ Ð¸ÑполÑзоваÑÑ Ð½Ð¾Ð²ÑÑ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ
. РболÑÑинÑÑве ÑлÑÑаев можно иÑполÑзоваÑÑ **оÑиÑиалÑнÑй обÑаз** и вÑего лиÑÑ ÑказаÑÑ Ð¿ÐµÑеменнÑе окÑÑжениÑ.
-Таким обÑазом, ÐÑ Ð¼Ð¾Ð¶ÐµÑе изÑÑиÑÑ, ÑÑо Ñакое конÑейнеÑизаÑÐ¸Ñ Ð¸ Docker, и иÑполÑзоваÑÑ Ð¿Ð¾Ð»ÑÑеннÑе Ð·Ð½Ð°Ð½Ð¸Ñ Ñ ÑазнÑми инÑÑÑÑменÑами и компоненÑами.
+Таким обÑазом, Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе изÑÑиÑÑ, ÑÑо Ñакое конÑейнеÑизаÑÐ¸Ñ Ð¸ Docker, и иÑполÑзоваÑÑ Ð¿Ð¾Ð»ÑÑеннÑе Ð·Ð½Ð°Ð½Ð¸Ñ Ñ ÑазнÑми инÑÑÑÑменÑами и компоненÑами.
-Так, ÐÑ Ð¼Ð¾Ð¶ÐµÑе запÑÑÑиÑÑ Ð¾Ð´Ð½Ð¾Ð²Ñеменно **множеÑÑво конÑейнеÑов** Ñ Ð±Ð°Ð·Ð¾Ð¹ даннÑÑ
, Python-пÑиложением, веб-ÑеÑвеÑом, React-пÑиложением и ÑоединиÑÑ Ð¸Ñ
вмеÑÑе ÑеÑез внÑÑÑеннÑÑ ÑеÑÑ.
+Так, Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе запÑÑÑиÑÑ Ð¾Ð´Ð½Ð¾Ð²Ñеменно **множеÑÑво конÑейнеÑов** Ñ Ð±Ð°Ð·Ð¾Ð¹ даннÑÑ
, Python-пÑиложением, веб-ÑеÑвеÑом, React-пÑиложением и ÑоединиÑÑ Ð¸Ñ
вмеÑÑе ÑеÑез внÑÑÑеннÑÑ ÑеÑÑ.
ÐÑе ÑиÑÑÐµÐ¼Ñ ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ ÐºÐ¾Ð½ÑейнеÑами (Ñакие, как Docker или Kubernetes) имеÑÑ Ð²ÑÑÑоеннÑе возможноÑÑи Ð´Ð»Ñ Ð¾ÑганизаÑии Ñакого ÑеÑевого взаимодейÑÑвиÑ.
## ÐонÑейнеÑÑ Ð¸ пÑоÑеÑÑÑ
-ÐбÑÑно **обÑаз конÑейнеÑа** ÑодеÑÐ¶Ð¸Ñ Ð¼ÐµÑаданнÑе пÑедÑÑÑановленной пÑогÑÐ°Ð¼Ð¼Ñ Ð¸Ð»Ð¸ командÑ, коÑоÑÑÑ ÑледÑÐµÑ Ð²ÑполниÑÑ Ð¿Ñи запÑÑке **конÑейнеÑа**. Также он Ð¼Ð¾Ð¶ÐµÑ ÑодеÑжаÑÑ Ð¿Ð°ÑамеÑÑÑ, пеÑедаваемÑе пÑедÑÑÑановленной пÑогÑамме. ÐоÑ
оже на Ñо, как еÑли Ð±Ñ ÐÑ Ð·Ð°Ð¿ÑÑкали ÑакÑÑ Ð¿ÑогÑÐ°Ð¼Ð¼Ñ ÑеÑез ÑеÑминал.
+ÐбÑÑно **обÑаз конÑейнеÑа** ÑодеÑÐ¶Ð¸Ñ Ð¼ÐµÑаданнÑе пÑедÑÑÑановленной пÑогÑÐ°Ð¼Ð¼Ñ Ð¸Ð»Ð¸ командÑ, коÑоÑÑÑ ÑледÑÐµÑ Ð²ÑполниÑÑ Ð¿Ñи запÑÑке **конÑейнеÑа**. Также он Ð¼Ð¾Ð¶ÐµÑ ÑодеÑжаÑÑ Ð¿Ð°ÑамеÑÑÑ, пеÑедаваемÑе пÑедÑÑÑановленной пÑогÑамме. ÐоÑ
оже на Ñо, как еÑли Ð±Ñ Ð²Ñ Ð·Ð°Ð¿ÑÑкали ÑакÑÑ Ð¿ÑогÑÐ°Ð¼Ð¼Ñ ÑеÑез ÑеÑминал.
-Ðогда **конÑейнеÑ** запÑÑен, он бÑÐ´ÐµÑ Ð²ÑполнÑÑÑ Ð¿ÑопиÑаннÑе в нÑм ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ Ð¸ пÑогÑаммÑ. Ðо ÐÑ Ð¼Ð¾Ð¶ÐµÑе измениÑÑ ÐµÐ³Ð¾ Ñак, ÑÑоб он вÑполнÑл дÑÑгие ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ Ð¸ пÑогÑаммÑ.
+Ðогда **конÑейнеÑ** запÑÑен, он бÑÐ´ÐµÑ Ð²ÑполнÑÑÑ Ð¿ÑопиÑаннÑе в нÑм ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ Ð¸ пÑогÑаммÑ. Ðо Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе измениÑÑ ÐµÐ³Ð¾ Ñак, ÑÑоб он вÑполнÑл дÑÑгие ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ Ð¸ пÑогÑаммÑ.
ÐонÑÐµÐ¹Ð½ÐµÑ Ð±Ñде ÑабоÑаÑÑ Ð´Ð¾ ÑеÑ
поÑ, пока вÑполнÑеÑÑÑ ÐµÐ³Ð¾ **главнÑй пÑоÑеÑÑ** (команда или пÑогÑамма).
@@ -100,11 +100,11 @@ Docker ÑвлÑеÑÑÑ Ð¾Ð´Ð½Ð¸Ð¼ оз оÑновнÑÑ
инÑÑÑÑменÑо
* ÐÑполÑзование Ñ **Kubernetes** или аналогиÑнÑм инÑÑÑÑменÑом
* ÐапÑÑк в **Raspberry Pi**
-* ÐÑполÑзование в облаÑнÑÑ
ÑеÑвиÑаÑ
, запÑÑкаÑÑиÑ
обÑÐ°Ð·Ñ ÐºÐ¾Ð½ÑейнеÑов Ð´Ð»Ñ ÐÐ°Ñ Ð¸ Ñ.п.
+* ÐÑполÑзование в облаÑнÑÑ
ÑеÑвиÑаÑ
, запÑÑкаÑÑиÑ
обÑÐ°Ð·Ñ ÐºÐ¾Ð½ÑейнеÑов Ð´Ð»Ñ Ð²Ð°Ñ Ð¸ Ñ.п.
### УÑÑановиÑÑ Ð·Ð°Ð²Ð¸ÑимоÑÑи
-ÐбÑÑно ÐаÑÐµÐ¼Ñ Ð¿ÑÐ¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð½ÐµÐ¾Ð±Ñ
Ð¾Ð´Ð¸Ð¼Ñ **дополниÑелÑнÑе библиоÑеки**, ÑпиÑок коÑоÑÑÑ
наÑ
одиÑÑÑ Ð² оÑделÑном Ñайле.
+ÐбÑÑно ваÑÐµÐ¼Ñ Ð¿ÑÐ¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð½ÐµÐ¾Ð±Ñ
Ð¾Ð´Ð¸Ð¼Ñ **дополниÑелÑнÑе библиоÑеки**, ÑпиÑок коÑоÑÑÑ
наÑ
одиÑÑÑ Ð² оÑделÑном Ñайле.
Ðа название и ÑодеÑжание Ñакого Ñайла влиÑÐµÑ Ð²ÑбÑаннÑй Ðами инÑÑÑÑÐ¼ÐµÐ½Ñ **ÑÑÑановки** ÑÑиÑ
библиоÑек (завиÑимоÑÑей).
@@ -135,7 +135,7 @@ Successfully installed fastapi pydantic uvicorn
!!! info "ÐнÑоÑмаÑиÑ"
СÑÑеÑÑвÑÑÑ Ð¸ дÑÑгие инÑÑÑÑменÑÑ ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ð·Ð°Ð²Ð¸ÑимоÑÑÑми.
- Ð ÑÑом же Ñазделе, но позже, Ñ Ð¿Ð¾ÐºÐ°Ð¶Ñ Ðам пÑÐ¸Ð¼ÐµÑ Ð¸ÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Poetry. ð
+ Ð ÑÑом же Ñазделе, но позже, Ñ Ð¿Ð¾ÐºÐ°Ð¶Ñ Ð²Ð°Ð¼ пÑÐ¸Ð¼ÐµÑ Ð¸ÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Poetry. ð
### СоздаÑÑ Ð¿Ñиложение **FastAPI**
@@ -195,7 +195,7 @@ CMD ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "80"]
СнаÑала копиÑÑйÑе **ÑолÑко** Ñайл Ñ Ð·Ð°Ð²Ð¸ÑимоÑÑÑми.
- ÐÑÐ¾Ñ Ñайл **изменÑеÑÑÑ Ð´Ð¾Ð²Ð¾Ð»Ñно Ñедко**, Docker иÑÐµÑ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¿Ñи поÑÑÑойке обÑаза и еÑли не наÑ
одиÑ, Ñо иÑполÑзÑÐµÑ **кÑÑ**, в коÑоÑом Ñ
ÑанÑÑÑÑ Ð¿ÑедÑдÑÑии веÑÑии ÑбоÑки обÑаза.
+ ÐÑÐ¾Ñ Ñайл **изменÑеÑÑÑ Ð´Ð¾Ð²Ð¾Ð»Ñно Ñедко**, Docker иÑÐµÑ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¿Ñи поÑÑÑойке обÑаза и еÑли не наÑ
одиÑ, Ñо иÑполÑзÑÐµÑ **кÑÑ**, в коÑоÑом Ñ
ÑанÑÑÑÑ Ð¿ÑедÑдÑÑие веÑÑии ÑбоÑки обÑаза.
4. УÑÑановиÑе библиоÑеки пеÑеÑиÑленнÑе в Ñайле Ñ Ð·Ð°Ð²Ð¸ÑимоÑÑÑми.
@@ -208,7 +208,7 @@ CMD ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "80"]
Ðа и в пÑедÑдÑÑем Ñаге Ñ ÐºÐ¾Ð¿Ð¸Ñованием Ñайла, ÑÑÐ¾Ñ Ñаг Ñакже бÑÐ´ÐµÑ Ð¸ÑполÑзоваÑÑ **кÑÑ Docker** в ÑлÑÑае оÑÑÑÑÑÑÐ²Ð¸Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ð¹.
- ÐÑполÑзÑвание кÑÑа, оÑобенно на ÑÑом Ñаге, Ð¿Ð¾Ð·Ð²Ð¾Ð»Ð¸Ñ Ðам **ÑÑкономиÑÑ** кÑÑÑ Ð²Ñемени пÑи повÑоÑной ÑбоÑке обÑаза, Ñак как завиÑимоÑÑи бÑдÑÑ ÑоÑ
ÑÐ°Ð½ÐµÐ½Ñ Ð² кеÑе, а не **загÑÑжаÑÑÑÑ Ð¸ ÑÑÑанавливаÑÑÑÑ ÐºÐ°Ð¶Ð´Ñй Ñаз**.
+ ÐÑполÑзование кÑÑа, оÑобенно на ÑÑом Ñаге, Ð¿Ð¾Ð·Ð²Ð¾Ð»Ð¸Ñ Ð²Ð°Ð¼ **ÑÑкономиÑÑ** кÑÑÑ Ð²Ñемени пÑи повÑоÑной ÑбоÑке обÑаза, Ñак как завиÑимоÑÑи бÑдÑÑ ÑоÑ
ÑÐ°Ð½ÐµÐ½Ñ Ð² кеÑе, а не **загÑÑжаÑÑÑÑ Ð¸ ÑÑÑанавливаÑÑÑÑ ÐºÐ°Ð¶Ð´Ñй Ñаз**.
5. СкопиÑÑйÑе диÑекÑоÑÐ¸Ñ `./app` внÑÑÑÑ Ð´Ð¸ÑекÑоÑии `/code` (в конÑейнеÑе).
@@ -216,11 +216,11 @@ CMD ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "80"]
6. УкажиÑе **командÑ**, запÑÑкаÑÑÑÑ ÑеÑÐ²ÐµÑ `uvicorn`.
- `CMD` пÑÐ¸Ð½Ð¸Ð¼Ð°ÐµÑ ÑпиÑок ÑÑÑок, ÑазделÑннÑÑ
запÑÑÑми, но пÑи вÑполнении обÑÐµÐ´Ð¸Ð½Ð¸Ñ Ð¸Ñ
ÑеÑез пÑобел, ÑобÑав из ниÑ
Ð¾Ð´Ð½Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ, коÑоÑÑÑ ÐÑ Ð¼Ð¾Ð³Ð»Ð¸ Ð±Ñ Ð½Ð°Ð¿Ð¸ÑаÑÑ Ð² ÑеÑминале.
+ `CMD` пÑÐ¸Ð½Ð¸Ð¼Ð°ÐµÑ ÑпиÑок ÑÑÑок, ÑазделÑннÑÑ
запÑÑÑми, но пÑи вÑполнении обÑÐµÐ´Ð¸Ð½Ð¸Ñ Ð¸Ñ
ÑеÑез пÑобел, ÑобÑав из ниÑ
Ð¾Ð´Ð½Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ, коÑоÑÑÑ Ð²Ñ Ð¼Ð¾Ð³Ð»Ð¸ Ð±Ñ Ð½Ð°Ð¿Ð¸ÑаÑÑ Ð² ÑеÑминале.
- ÐÑа команда бÑÐ´ÐµÑ Ð²Ñполнена в **ÑекÑÑей ÑабоÑей диÑекÑоÑии**, а именно в диÑекÑоÑии `/code`, коÑÐ¾Ð°Ñ Ñказана командой `WORKDIR /code`.
+ ÐÑа команда бÑÐ´ÐµÑ Ð²Ñполнена в **ÑекÑÑей ÑабоÑей диÑекÑоÑии**, а именно в диÑекÑоÑии `/code`, коÑоÑÐ°Ñ Ñказана в команде `WORKDIR /code`.
- Так как команда вÑполнÑеÑÑÑ Ð²Ð½ÑÑÑии диÑекÑоÑии `/code`, в коÑоÑÑÑ Ð¼Ñ Ð¿Ð¾Ð¼ÐµÑÑили Ð¿Ð°Ð¿ÐºÑ `./app` Ñ Ð¿Ñиложением, Ñо **Uvicorn** ÑÐ¼Ð¾Ð¶ÐµÑ Ð½Ð°Ð¹Ñи и **импоÑÑиÑоваÑÑ** обÑÐµÐºÑ `app` из Ñайла `app.main`.
+ Так как команда вÑполнÑеÑÑÑ Ð²Ð½ÑÑÑи диÑекÑоÑии `/code`, в коÑоÑÑÑ Ð¼Ñ Ð¿Ð¾Ð¼ÐµÑÑили Ð¿Ð°Ð¿ÐºÑ `./app` Ñ Ð¿Ñиложением, Ñо **Uvicorn** ÑÐ¼Ð¾Ð¶ÐµÑ Ð½Ð°Ð¹Ñи и **импоÑÑиÑоваÑÑ** обÑÐµÐºÑ `app` из Ñайла `app.main`.
!!! tip "ÐодÑказка"
ÐÑли ÑкнÑÑе на кÑÑжок Ñ Ð¿Ð»ÑÑом, Ñо ÑвидиÑе поÑÑнениÑ. ð
@@ -238,7 +238,7 @@ CMD ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "80"]
#### ÐÑполÑзование пÑокÑи-ÑеÑвеÑа
-ÐÑли ÐÑ Ð·Ð°Ð¿ÑÑкаеÑе конÑÐµÐ¹Ð½ÐµÑ Ð·Ð° пÑокÑи-ÑеÑвеÑом завеÑÑÐµÐ½Ð¸Ñ TLS (баланÑиÑÑÑÑего нагÑÑзкÑ), Ñаким как Nginx или Traefik, добавÑÑе опÑÐ¸Ñ `--proxy-headers`, коÑоÑÐ°Ñ ÑÐºÐ°Ð¶ÐµÑ Uvicorn, ÑÑо он ÑабоÑÐ°ÐµÑ Ð¿Ð¾Ð·Ð°Ð´Ð¸ пÑокÑи-ÑеÑвеÑа и Ð¼Ð¾Ð¶ÐµÑ Ð´Ð¾Ð²ÐµÑÑÑÑ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÐ°Ð¼ оÑпÑавлÑемÑм им.
+ÐÑли Ð²Ñ Ð·Ð°Ð¿ÑÑкаеÑе конÑÐµÐ¹Ð½ÐµÑ Ð·Ð° пÑокÑи-ÑеÑвеÑом завеÑÑÐµÐ½Ð¸Ñ TLS (баланÑиÑÑÑÑего нагÑÑзкÑ), Ñаким как Nginx или Traefik, добавÑÑе опÑÐ¸Ñ `--proxy-headers`, коÑоÑÐ°Ñ ÑÐºÐ°Ð¶ÐµÑ Uvicorn, ÑÑо он ÑабоÑÐ°ÐµÑ Ð¿Ð¾Ð·Ð°Ð´Ð¸ пÑокÑи-ÑеÑвеÑа и Ð¼Ð¾Ð¶ÐµÑ Ð´Ð¾Ð²ÐµÑÑÑÑ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÐ°Ð¼ оÑпÑавлÑемÑм им.
```Dockerfile
CMD ["uvicorn", "app.main:app", "--proxy-headers", "--host", "0.0.0.0", "--port", "80"]
@@ -269,7 +269,7 @@ RUN pip install --no-cache-dir --upgrade -r /code/requirements.txt
ÐÐ»Ñ Ð·Ð°Ð³ÑÑзки и ÑÑÑановки необÑ
одимÑÑ
библиоÑек **Ð¼Ð¾Ð¶ÐµÑ Ð¿Ð¾Ð½Ð°Ð´Ð¾Ð±Ð¸ÑÑÑÑ Ð½ÐµÑколÑко минÑÑ**, но иÑполÑзование **кÑÑа** Ð·Ð°Ð½Ð¸Ð¼Ð°ÐµÑ Ð½ÐµÑколÑко **ÑекÑнд** макÑимÑм.
-Ð Ñак как во вÑÐµÐ¼Ñ ÑазÑабоÑки ÐÑ Ð±ÑдеÑе ÑаÑÑо пеÑеÑобиÑаÑÑ ÐºÐ¾Ð½ÑÐµÐ¹Ð½ÐµÑ Ð´Ð»Ñ Ð¿ÑовеÑки ÑабоÑоÑпоÑобноÑÑи внеÑÑннÑÑ
изменений, Ñо ÑÑкономленнÑе минÑÑÑ ÑложаÑÑÑ Ð² ÑаÑÑ, а Ñо и дни.
+Ð Ñак как во вÑÐµÐ¼Ñ ÑазÑабоÑки Ð²Ñ Ð±ÑдеÑе ÑаÑÑо пеÑеÑобиÑаÑÑ ÐºÐ¾Ð½ÑÐµÐ¹Ð½ÐµÑ Ð´Ð»Ñ Ð¿ÑовеÑки ÑабоÑоÑпоÑобноÑÑи внеÑÑннÑÑ
изменений, Ñо ÑÑкономленнÑе минÑÑÑ ÑложаÑÑÑ Ð² ÑаÑÑ, а Ñо и дни.
Так как папка Ñ ÐºÐ¾Ð´Ð¾Ð¼ пÑÐ¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ **изменÑеÑÑÑ ÑаÑе вÑего**, Ñо Ð¼Ñ ÑаÑположили ÐµÑ Ð² конÑе `Dockerfile`, Ð²ÐµÐ´Ñ Ð¿Ð¾Ñле внеÑÑннÑÑ
в код изменений кÑÑ Ð½Ðµ бÑÐ´ÐµÑ Ð¸ÑполÑзован на ÑÑом и ÑледÑÑÑиÑ
ÑагаÑ
.
@@ -301,7 +301,7 @@ $ docker build -t myimage .
### ÐапÑÑк Docker-конÑейнеÑа
-* ÐапÑÑÑиÑе конÑейнеÑ, оÑнованнÑй на ÐаÑем обÑазе:
+* ÐапÑÑÑиÑе конÑейнеÑ, оÑнованнÑй на ваÑем обÑазе:
@@ -315,7 +315,7 @@ $ docker run -d --name mycontainer -p 80:80 myimage
ÐÑ Ð¼Ð¾Ð¶ÐµÑе пÑовеÑиÑÑ, ÑÑо ÐÐ°Ñ Docker-конÑÐµÐ¹Ð½ÐµÑ ÑабоÑÐ°ÐµÑ Ð¿ÐµÑÐµÐ¹Ð´Ñ Ð¿Ð¾ ÑÑÑлке:
http://192.168.99.100/items/5?q=somequery или
http://127.0.0.1/items/5?q=somequery (или поÑ
ожей, коÑоÑÑÑ Ð¸ÑполÑзÑÐµÑ ÐÐ°Ñ Docker-Ñ
оÑÑ).
-Там ÐÑ ÑвидиÑе:
+Там Ð²Ñ ÑвидиÑе:
```JSON
{"item_id": 5, "q": "somequery"}
@@ -325,21 +325,21 @@ $ docker run -d --name mycontainer -p 80:80 myimage
ТепеÑÑ Ð¿ÐµÑейдиÑе по ÑÑÑлке
http://192.168.99.100/docs или
http://127.0.0.1/docs (или поÑ
ожей, коÑоÑÑÑ Ð¸ÑполÑзÑÐµÑ ÐÐ°Ñ Docker-Ñ
оÑÑ).
-ÐдеÑÑ ÐÑ ÑвидиÑе авÑомаÑиÑеÑкÑÑ Ð¸Ð½ÑеÑакÑивнÑÑ Ð´Ð¾ÐºÑменÑаÑÐ¸Ñ API (пÑедоÑÑавлÑемÑÑ
Swagger UI):
+ÐдеÑÑ Ð²Ñ ÑвидиÑе авÑомаÑиÑеÑкÑÑ Ð¸Ð½ÑеÑакÑивнÑÑ Ð´Ð¾ÐºÑменÑаÑÐ¸Ñ API (пÑедоÑÑавлÑемÑÑ
Swagger UI):

## ÐлÑÑеÑнаÑÐ¸Ð²Ð½Ð°Ñ Ð´Ð¾ÐºÑменÑаÑÐ¸Ñ API
-Также ÐÑ Ð¼Ð¾Ð¶ÐµÑе пеÑейÑи по ÑÑÑлке
http://192.168.99.100/redoc or
http://127.0.0.1/redoc (или поÑ
ожей, коÑоÑÑÑ Ð¸ÑполÑзÑÐµÑ ÐÐ°Ñ Docker-Ñ
оÑÑ).
+Также Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе пеÑейÑи по ÑÑÑлке
http://192.168.99.100/redoc or
http://127.0.0.1/redoc (или поÑ
ожей, коÑоÑÑÑ Ð¸ÑполÑзÑÐµÑ ÐÐ°Ñ Docker-Ñ
оÑÑ).
-ÐдеÑÑ ÐÑ ÑвидиÑе алÑÑеÑнаÑивнÑÑ Ð°Ð²ÑомаÑиÑеÑкÑÑ Ð´Ð¾ÐºÑменÑаÑÐ¸Ñ API (пÑедоÑÑавлÑемÑÑ
ReDoc):
+ÐдеÑÑ Ð²Ñ ÑвидиÑе алÑÑеÑнаÑивнÑÑ Ð°Ð²ÑомаÑиÑеÑкÑÑ Ð´Ð¾ÐºÑменÑаÑÐ¸Ñ API (пÑедоÑÑавлÑемÑÑ
ReDoc):

## Создание Docker-обÑаза на оÑнове одноÑайлового пÑÐ¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ FastAPI
-ÐÑли ÐаÑе пÑиложение FastAPI помеÑено в один Ñайл, напÑимеÑ, `main.py` и ÑÑÑÑкÑÑÑа ÐаÑиÑ
Ñайлов поÑ
ожа на ÑÑÑ:
+ÐÑли ваÑе пÑиложение FastAPI помеÑено в один Ñайл, напÑимеÑ, `main.py` и ÑÑÑÑкÑÑÑа ÐаÑиÑ
Ñайлов поÑ
ожа на ÑÑÑ:
```
.
@@ -376,7 +376,7 @@ CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "80"]
ÐавайÑе вÑпомним о [ÐонÑепÑиÑÑ
ÑазвÑÑÑÑваниÑ](./concepts.md){.internal-link target=_blank} и пÑименим иÑ
к конÑейнеÑам.
-ÐонÑейнеÑÑ - ÑÑо, в оÑновном, инÑÑÑÑÐ¼ÐµÐ½Ñ ÑпÑоÑаÑÑий **ÑбоÑÐºÑ Ð¸ ÑазвÑÑÑÑвание** пÑÐ¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð¸ они не обÑзÑаÑÑ Ðº пÑÐ¸Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ ÐºÐ°ÐºÐ¾Ð¹-Ñо опÑеделÑнной **конÑепÑии ÑазвÑÑÑÑваниÑ**, а знаÑÐ¸Ñ Ð¼Ñ Ð¼Ð¾Ð¶ÐµÐ¼ вÑбиÑаÑÑ Ð½ÑжнÑÑ ÑÑÑаÑегиÑ.
+ÐонÑейнеÑÑ - ÑÑо, в оÑновном, инÑÑÑÑÐ¼ÐµÐ½Ñ ÑпÑоÑаÑÑий **ÑбоÑÐºÑ Ð¸ ÑазвÑÑÑÑвание** пÑÐ¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð¸ они не обÑзÑваÑÑ Ðº пÑÐ¸Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ ÐºÐ°ÐºÐ¾Ð¹-Ñо опÑеделÑнной **конÑепÑии ÑазвÑÑÑÑваниÑ**, а знаÑÐ¸Ñ Ð¼Ñ Ð¼Ð¾Ð¶ÐµÐ¼ вÑбиÑаÑÑ Ð½ÑжнÑÑ ÑÑÑаÑегиÑ.
**ХоÑоÑÐ°Ñ Ð½Ð¾Ð²Ð¾ÑÑÑ** в Ñом, ÑÑо незавиÑимо Ð¾Ñ Ð²ÑбÑанной ÑÑÑаÑегии, Ð¼Ñ Ð²ÑÑ Ñавно можем покÑÑÑÑ Ð²Ñе конÑепÑии ÑазвÑÑÑÑваниÑ. ð
@@ -412,7 +412,7 @@ CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "80"]
## ÐапÑÑк неÑколÑкиÑ
ÑкземплÑÑов пÑÐ¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ - Указание колиÑеÑÑва пÑоÑеÑÑов
-ÐÑли Ñ ÐÐ°Ñ ÐµÑÑÑ
клаÑÑÐµÑ Ð¼Ð°Ñин под ÑпÑавлением **Kubernetes**, Docker Swarm Mode, Nomad или аналогиÑной Ñложной ÑиÑÑемой оÑкеÑÑÑаÑии конÑейнеÑов, ÑкоÑее вÑего, вмеÑÑо иÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¼ÐµÐ½ÐµÐ´Ð¶ÐµÑа пÑоÑеÑÑов (Ñипа Gunicorn и его воÑкеÑÑ) в каждом конÑейнеÑе, ÐÑ Ð·Ð°Ñ
оÑиÑе **ÑпÑавлÑÑÑ ÐºÐ¾Ð»Ð¸ÑеÑÑвом запÑÑеннÑÑ
ÑкземплÑÑов пÑиложениÑ** на **ÑÑовне клаÑÑеÑа**.
+ÐÑли Ñ Ð²Ð°Ñ ÐµÑÑÑ
клаÑÑÐµÑ Ð¼Ð°Ñин под ÑпÑавлением **Kubernetes**, Docker Swarm Mode, Nomad или аналогиÑной Ñложной ÑиÑÑемой оÑкеÑÑÑаÑии конÑейнеÑов, ÑкоÑее вÑего, вмеÑÑо иÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¼ÐµÐ½ÐµÐ´Ð¶ÐµÑа пÑоÑеÑÑов (Ñипа Gunicorn и его воÑкеÑÑ) в каждом конÑейнеÑе, Ð²Ñ Ð·Ð°Ñ
оÑиÑе **ÑпÑавлÑÑÑ ÐºÐ¾Ð»Ð¸ÑеÑÑвом запÑÑеннÑÑ
ÑкземплÑÑов пÑиложениÑ** на **ÑÑовне клаÑÑеÑа**.
РлÑбÑÑ Ð¸Ð· ÑÑиÑ
ÑиÑÑем ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ ÐºÐ¾Ð½ÑейнеÑами обÑÑно вÑÑÑоен ÑпоÑоб ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ **колиÑеÑÑвом запÑÑеннÑÑ
конÑейнеÑов** Ð´Ð»Ñ ÑаÑпÑÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ **нагÑÑзки** Ð¾Ñ Ð²Ñ
одÑÑиÑ
запÑоÑов на **ÑÑовне клаÑÑеÑа**.
@@ -427,17 +427,17 @@ CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "80"]
!!! tip "ÐодÑказка"
**ÐÑокÑи-ÑеÑÐ²ÐµÑ Ð·Ð°Ð²ÐµÑÑÐµÐ½Ð¸Ñ ÑабоÑÑ TLS** одновÑеменно Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ **баланÑиÑовÑиком нагÑÑзки**.
-СиÑÑема оÑкеÑÑÑаÑии, коÑоÑÑÑ ÐÑ Ð¸ÑполÑзÑеÑе Ð´Ð»Ñ Ð·Ð°Ð¿ÑÑка и ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ ÐºÐ¾Ð½ÑейнеÑами, Ð¸Ð¼ÐµÐµÑ Ð²ÑÑÑоеннÑй инÑÑÑÑÐ¼ÐµÐ½Ñ **ÑеÑевого взаимодейÑÑвиÑ** (напÑимеÑ, Ð´Ð»Ñ Ð¿ÐµÑедаÑи HTTP-запÑоÑов) Ð¼ÐµÐ¶Ð´Ñ ÐºÐ¾Ð½ÑейнеÑами Ñ ÐаÑими пÑиложениÑми и **баланÑиÑовÑиком нагÑÑзки** (коÑоÑÑй Ñакже Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ **пÑокÑи-ÑеÑвеÑом**).
+СиÑÑема оÑкеÑÑÑаÑии, коÑоÑÑÑ Ð²Ñ Ð¸ÑполÑзÑеÑе Ð´Ð»Ñ Ð·Ð°Ð¿ÑÑка и ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ ÐºÐ¾Ð½ÑейнеÑами, Ð¸Ð¼ÐµÐµÑ Ð²ÑÑÑоеннÑй инÑÑÑÑÐ¼ÐµÐ½Ñ **ÑеÑевого взаимодейÑÑвиÑ** (напÑимеÑ, Ð´Ð»Ñ Ð¿ÐµÑедаÑи HTTP-запÑоÑов) Ð¼ÐµÐ¶Ð´Ñ ÐºÐ¾Ð½ÑейнеÑами Ñ ÐаÑими пÑиложениÑми и **баланÑиÑовÑиком нагÑÑзки** (коÑоÑÑй Ñакже Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ **пÑокÑи-ÑеÑвеÑом**).
### Ðдин баланÑиÑовÑик - ÐножеÑÑво конÑейнеÑов
-ÐÑи ÑабоÑе Ñ **Kubernetes** или аналогиÑнÑми ÑиÑÑемами оÑкеÑÑÑаÑии иÑполÑзование иÑ
внÑÑÑеннней ÑеÑи позволÑÐµÑ Ð¸Ð¼ÐµÑÑ Ð¾Ð´Ð¸Ð½ **баланÑиÑовÑик нагÑÑзки**, коÑоÑÑй пÑоÑлÑÑÐ¸Ð²Ð°ÐµÑ **главнÑй** поÑÑ Ð¸ пеÑедаÑÑ Ð·Ð°Ð¿ÑоÑÑ **множеÑÑÐ²Ñ Ð·Ð°Ð¿ÑÑеннÑÑ
конÑейнеÑов** Ñ ÐаÑими пÑиложениÑми.
+ÐÑи ÑабоÑе Ñ **Kubernetes** или аналогиÑнÑми ÑиÑÑемами оÑкеÑÑÑаÑии иÑполÑзование иÑ
внÑÑÑенней ÑеÑи позволÑÐµÑ Ð¸Ð¼ÐµÑÑ Ð¾Ð´Ð¸Ð½ **баланÑиÑовÑик нагÑÑзки**, коÑоÑÑй пÑоÑлÑÑÐ¸Ð²Ð°ÐµÑ **главнÑй** поÑÑ Ð¸ пеÑедаÑÑ Ð·Ð°Ð¿ÑоÑÑ **множеÑÑÐ²Ñ Ð·Ð°Ð¿ÑÑеннÑÑ
конÑейнеÑов** Ñ ÐаÑими пÑиложениÑми.
Ркаждом из конÑейнеÑов обÑÑно ÑабоÑÐ°ÐµÑ **ÑолÑко один пÑоÑеÑÑ** (напÑимеÑ, пÑоÑеÑÑ Uvicorn ÑпÑавлÑÑÑий ÐаÑим пÑиложением FastAPI). ÐонÑейнеÑÑ Ð¼Ð¾Ð³ÑÑ Ð±ÑÑÑ **иденÑиÑнÑми**, запÑÑеннÑми на оÑнове одного и Ñого же обÑаза, но Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ бÑдÑÑ Ñвои оÑделÑнÑе пÑоÑеÑÑ, памÑÑÑ Ð¸ Ñ.п. Таким обÑазом Ð¼Ñ Ð¿Ð¾Ð»ÑÑаем пÑеимÑÑеÑÑва **ÑаÑпаÑаллеливаниÑ** ÑабоÑÑ Ð¿Ð¾ **ÑазнÑм ÑдÑам** пÑоÑеÑÑоÑа или даже **ÑазнÑм маÑинам**.
СиÑÑема ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ ÐºÐ¾Ð½ÑейнеÑами Ñ **баланÑиÑовÑиком нагÑÑзки** бÑÐ´ÐµÑ **ÑаÑпÑеделÑÑÑ Ð·Ð°Ð¿ÑоÑÑ** к конÑейнеÑам Ñ Ð¿ÑиложениÑми **по оÑеÑеди**. То еÑÑÑ ÐºÐ°Ð¶Ð´Ñй запÑÐ¾Ñ Ð±ÑÐ´ÐµÑ Ð¾Ð±ÑабоÑан одним из множеÑÑва **одинаковÑÑ
конÑейнеÑов** Ñ Ð¾Ð´Ð½Ð¸Ð¼ и Ñем же пÑиложением.
-**ÐаланÑиÑовÑик нагÑÑзки** Ð¼Ð¾Ð¶ÐµÑ Ð¾Ð±ÑабаÑÑваÑÑ Ð·Ð°Ð¿ÑоÑÑ Ðº *ÑазнÑм* пÑиложениÑм, ÑаÑположеннÑм в ÐаÑем клаÑÑеÑе (напÑимеÑ, еÑли Ñ Ð½Ð¸Ñ
ÑазнÑе Ð´Ð¾Ð¼ÐµÐ½Ñ Ð¸Ð»Ð¸ пÑеÑикÑÑ Ð¿ÑÑи) и пеÑедаваÑÑ Ð·Ð°Ð¿ÑоÑÑ Ð½ÑÐ¶Ð½Ð¾Ð¼Ñ ÐºÐ¾Ð½ÑейнеÑÑ Ñ ÑÑебÑемÑм пÑиложением.
+**ÐаланÑиÑовÑик нагÑÑзки** Ð¼Ð¾Ð¶ÐµÑ Ð¾Ð±ÑабаÑÑваÑÑ Ð·Ð°Ð¿ÑоÑÑ Ðº *ÑазнÑм* пÑиложениÑм, ÑаÑположеннÑм в ваÑем клаÑÑеÑе (напÑимеÑ, еÑли Ñ Ð½Ð¸Ñ
ÑазнÑе Ð´Ð¾Ð¼ÐµÐ½Ñ Ð¸Ð»Ð¸ пÑеÑикÑÑ Ð¿ÑÑи) и пеÑедаваÑÑ Ð·Ð°Ð¿ÑоÑÑ Ð½ÑÐ¶Ð½Ð¾Ð¼Ñ ÐºÐ¾Ð½ÑейнеÑÑ Ñ ÑÑебÑемÑм пÑиложением.
### Ðдин пÑоÑеÑÑ Ð½Ð° конÑейнеÑ
@@ -449,35 +449,35 @@ CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "80"]
###
ÐножеÑÑво пÑоÑеÑÑов внÑÑÑи конÑейнеÑа Ð´Ð»Ñ Ð¾ÑобÑÑ
ÑлÑÑаев
-ÐезÑÑловно, бÑваÑÑ **оÑобÑе ÑлÑÑаи**, когда Ð¼Ð¾Ð¶ÐµÑ Ð¿Ð¾Ð½Ð°Ð´Ð¾Ð±Ð¸ÑÑÑ Ð²Ð½ÑÑÑи конÑейнеÑа запÑÑкаÑÑ **Ð¼ÐµÐ½ÐµÐ´Ð¶ÐµÑ Ð¿ÑоÑеÑÑов Gunicorn**, ÑпÑавлÑÑÑий неÑколÑкими **пÑоÑеÑÑами Uvicorn**.
+ÐезÑÑловно, бÑваÑÑ **оÑобÑе ÑлÑÑаи**, когда Ð¼Ð¾Ð¶ÐµÑ Ð¿Ð¾Ð½Ð°Ð´Ð¾Ð±Ð¸ÑÑÑÑ Ð²Ð½ÑÑÑи конÑейнеÑа запÑÑкаÑÑ **Ð¼ÐµÐ½ÐµÐ´Ð¶ÐµÑ Ð¿ÑоÑеÑÑов Gunicorn**, ÑпÑавлÑÑÑий неÑколÑкими **пÑоÑеÑÑами Uvicorn**.
-ÐÐ»Ñ ÑакиÑ
ÑлÑÑаев ÐÑ Ð¼Ð¾Ð¶ÐµÑе иÑполÑзоваÑÑ **оÑиÑиалÑнÑй Docker-обÑаз** (пÑим. пеÑ: - *здеÑÑ Ð¸ далее на ÑÑой ÑÑÑаниÑе, еÑли ÐÑ Ð²ÑÑÑеÑиÑе ÑоÑеÑание "оÑиÑиалÑнÑй Docker-обÑаз" без ÑÑоÑнений, Ñо авÑÐ¾Ñ Ð¸Ð¼ÐµÐµÑ Ð² Ð²Ð¸Ð´Ñ Ð¸Ð¼ÐµÐ½Ð½Ð¾ пÑедоÑÑавлÑемÑй им обÑаз*), где в каÑеÑÑве менеджеÑа пÑоÑеÑÑов иÑполÑзÑеÑÑÑ **Gunicorn**, запÑÑкаÑÑий неÑколÑко **пÑоÑеÑÑов Uvicorn** и некоÑоÑÑе наÑÑÑойки по ÑмолÑаниÑ, авÑомаÑиÑеÑки ÑÑÑанавливаÑÑие колиÑеÑÑво запÑÑеннÑÑ
пÑоÑеÑÑов в завиÑимоÑÑи Ð¾Ñ ÐºÐ¾Ð»Ð¸ÑеÑÑва ÑÐ´ÐµÑ ÐаÑего пÑоÑеÑÑоÑа. Я ÑаÑÑÐºÐ°Ð¶Ñ Ðам об ÑÑом подÑобнее ÑÑÑ: [ÐÑиÑиалÑнÑй Docker-обÑаз Ñо вÑÑÑоеннÑми Gunicorn и Uvicorn](#docker-gunicorn-uvicorn).
+ÐÐ»Ñ ÑакиÑ
ÑлÑÑаев Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе иÑполÑзоваÑÑ **оÑиÑиалÑнÑй Docker-обÑаз** (пÑим. пеÑ: - *здеÑÑ Ð¸ далее на ÑÑой ÑÑÑаниÑе, еÑли Ð²Ñ Ð²ÑÑÑеÑиÑе ÑоÑеÑание "оÑиÑиалÑнÑй Docker-обÑаз" без ÑÑоÑнений, Ñо авÑÐ¾Ñ Ð¸Ð¼ÐµÐµÑ Ð² Ð²Ð¸Ð´Ñ Ð¸Ð¼ÐµÐ½Ð½Ð¾ пÑедоÑÑавлÑемÑй им обÑаз*), где в каÑеÑÑве менеджеÑа пÑоÑеÑÑов иÑполÑзÑеÑÑÑ **Gunicorn**, запÑÑкаÑÑий неÑколÑко **пÑоÑеÑÑов Uvicorn** и некоÑоÑÑе наÑÑÑойки по ÑмолÑаниÑ, авÑомаÑиÑеÑки ÑÑÑанавливаÑÑие колиÑеÑÑво запÑÑеннÑÑ
пÑоÑеÑÑов в завиÑимоÑÑи Ð¾Ñ ÐºÐ¾Ð»Ð¸ÑеÑÑва ÑÐ´ÐµÑ Ð²Ð°Ñего пÑоÑеÑÑоÑа. Я ÑаÑÑÐºÐ°Ð¶Ñ Ð²Ð°Ð¼ об ÑÑом подÑобнее ÑÑÑ: [ÐÑиÑиалÑнÑй Docker-обÑаз Ñо вÑÑÑоеннÑми Gunicorn и Uvicorn](#docker-gunicorn-uvicorn).
ÐекоÑоÑÑе пÑимеÑÑ Ð¿Ð¾Ð´Ð¾Ð±Ð½ÑÑ
ÑлÑÑаев:
#### ÐÑоÑÑое пÑиложение
-ÐÑ Ð¼Ð¾Ð¶ÐµÑе иÑполÑзоваÑÑ Ð¼ÐµÐ½ÐµÐ´Ð¶ÐµÑ Ð¿ÑоÑеÑÑов внÑÑÑи конÑейнеÑа, еÑли ÐаÑе пÑиложение **наÑÑолÑко пÑоÑÑое**, ÑÑо Ñ ÐÐ°Ñ Ð½ÐµÑ Ð½ÐµÐ¾Ð±Ñ
одимоÑÑи (по кÑайней меÑе, пока неÑ) в ÑÑаÑелÑнÑÑ
наÑÑÑойкаÑ
колиÑеÑÑва пÑоÑеÑÑов и Ðам доÑÑаÑоÑно имеÑÑиÑ
ÑÑ Ð½Ð°ÑÑÑоек по ÑмолÑÐ°Ð½Ð¸Ñ (еÑли иÑполÑзÑеÑÑÑ Ð¾ÑиÑиалÑнÑй Docker-обÑаз) Ð´Ð»Ñ Ð·Ð°Ð¿ÑÑка пÑÐ¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ **ÑолÑко на одном ÑеÑвеÑе**, а не в клаÑÑеÑе.
+ÐÑ Ð¼Ð¾Ð¶ÐµÑе иÑполÑзоваÑÑ Ð¼ÐµÐ½ÐµÐ´Ð¶ÐµÑ Ð¿ÑоÑеÑÑов внÑÑÑи конÑейнеÑа, еÑли ваÑе пÑиложение **наÑÑолÑко пÑоÑÑое**, ÑÑо Ñ Ð²Ð°Ñ Ð½ÐµÑ Ð½ÐµÐ¾Ð±Ñ
одимоÑÑи (по кÑайней меÑе, пока неÑ) в ÑÑаÑелÑнÑÑ
наÑÑÑойкаÑ
колиÑеÑÑва пÑоÑеÑÑов и вам доÑÑаÑоÑно имеÑÑиÑ
ÑÑ Ð½Ð°ÑÑÑоек по ÑмолÑÐ°Ð½Ð¸Ñ (еÑли иÑполÑзÑеÑÑÑ Ð¾ÑиÑиалÑнÑй Docker-обÑаз) Ð´Ð»Ñ Ð·Ð°Ð¿ÑÑка пÑÐ¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ **ÑолÑко на одном ÑеÑвеÑе**, а не в клаÑÑеÑе.
#### Docker Compose
-С помоÑÑÑ **Docker Compose** можно ÑазвоÑаÑиваÑÑ Ð½ÐµÑколÑко конÑейнеÑов на **одном ÑеÑвеÑе** (не клаÑÑеÑе), но пÑи ÑÑо Ñ ÐÐ°Ñ Ð½Ðµ бÑÐ´ÐµÑ Ð¿ÑоÑÑого ÑпоÑоба ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ ÐºÐ¾Ð»Ð¸ÑеÑÑвом запÑÑеннÑÑ
конÑейнеÑов Ñ Ð¾Ð´Ð½Ð¾Ð²ÑеменнÑм ÑоÑ
Ñанением обÑей ÑеÑи и **баланÑиÑовки нагÑÑзки**.
+С помоÑÑÑ **Docker Compose** можно ÑазвоÑаÑиваÑÑ Ð½ÐµÑколÑко конÑейнеÑов на **одном ÑеÑвеÑе** (не клаÑÑеÑе), но пÑи ÑÑо Ñ Ð²Ð°Ñ Ð½Ðµ бÑÐ´ÐµÑ Ð¿ÑоÑÑого ÑпоÑоба ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ ÐºÐ¾Ð»Ð¸ÑеÑÑвом запÑÑеннÑÑ
конÑейнеÑов Ñ Ð¾Ð´Ð½Ð¾Ð²ÑеменнÑм ÑоÑ
Ñанением обÑей ÑеÑи и **баланÑиÑовки нагÑÑзки**.
Ð ÑÑом ÑлÑÑае можно иÑполÑзоваÑÑ **Ð¼ÐµÐ½ÐµÐ´Ð¶ÐµÑ Ð¿ÑоÑеÑÑов**, ÑпÑавлÑÑÑий **неÑколÑкими пÑоÑеÑÑами**, внÑÑÑи **одного конÑейнеÑа**.
#### Prometheus и пÑоÑие пÑиÑинÑ
-У ÐÐ°Ñ Ð¼Ð¾Ð³ÑÑ Ð±ÑÑÑ Ð¸ **дÑÑгие пÑиÑинÑ**, когда иÑполÑзование **множеÑÑва пÑоÑеÑÑов** внÑÑÑи **одного конÑейнеÑа** бÑÐ´ÐµÑ Ð¿ÑоÑе, нежели запÑÑк **неÑколÑкиÑ
конÑейнеÑов** Ñ **единÑÑвеннÑм пÑоÑеÑÑом** в каждом из ниÑ
.
+У Ð²Ð°Ñ Ð¼Ð¾Ð³ÑÑ Ð±ÑÑÑ Ð¸ **дÑÑгие пÑиÑинÑ**, когда иÑполÑзование **множеÑÑва пÑоÑеÑÑов** внÑÑÑи **одного конÑейнеÑа** бÑÐ´ÐµÑ Ð¿ÑоÑе, нежели запÑÑк **неÑколÑкиÑ
конÑейнеÑов** Ñ **единÑÑвеннÑм пÑоÑеÑÑом** в каждом из ниÑ
.
-ÐапÑÐ¸Ð¼ÐµÑ (в завиÑимоÑÑи Ð¾Ñ ÐºÐ¾Ð½ÑигÑÑаÑии), Ñ ÐÐ°Ñ Ð¼Ð¾Ð³ÑÑ Ð±ÑÑÑ Ð¸Ð½ÑÑÑÑменÑÑ Ð¿Ð¾Ð´Ð¾Ð±Ð½Ñе ÑкÑпоÑÑÑÑÑ Prometheus, коÑоÑÑе Ð´Ð¾Ð»Ð¶Ð½Ñ Ð¸Ð¼ÐµÑÑ Ð´Ð¾ÑÑÑп к **ÐºÐ°Ð¶Ð´Ð¾Ð¼Ñ Ð·Ð°Ð¿ÑоÑÑ** пÑиÑ
одÑÑÐµÐ¼Ñ Ð² конÑейнеÑ.
+ÐапÑÐ¸Ð¼ÐµÑ (в завиÑимоÑÑи Ð¾Ñ ÐºÐ¾Ð½ÑигÑÑаÑии), Ñ Ð²Ð°Ñ Ð¼Ð¾Ð³ÑÑ Ð±ÑÑÑ Ð¸Ð½ÑÑÑÑменÑÑ Ð¿Ð¾Ð´Ð¾Ð±Ð½Ñе ÑкÑпоÑÑÑÑÑ Prometheus, коÑоÑÑе Ð´Ð¾Ð»Ð¶Ð½Ñ Ð¸Ð¼ÐµÑÑ Ð´Ð¾ÑÑÑп к **ÐºÐ°Ð¶Ð´Ð¾Ð¼Ñ Ð·Ð°Ð¿ÑоÑÑ** пÑиÑ
одÑÑÐµÐ¼Ñ Ð² конÑейнеÑ.
-ÐÑли Ñ ÐÐ°Ñ Ð±ÑÐ´ÐµÑ **неÑколÑко конÑейнеÑов**, Ñо Prometheus, по ÑмолÑаниÑ, **пÑи ÑбоÑе меÑÑик** полÑÑÐ¸Ñ Ð¸Ñ
**ÑолÑко Ñ Ð¾Ð´Ð½Ð¾Ð³Ð¾ конÑейнеÑа**, коÑоÑÑй обÑабаÑÑÐ²Ð°ÐµÑ ÐºÐ¾Ð½ÐºÑеÑнÑй запÑоÑ, вмеÑÑо **ÑбоÑа меÑÑик** Ñо вÑеÑ
ÑабоÑаÑÑиÑ
конÑейнеÑов.
+ÐÑли Ñ Ð²Ð°Ñ Ð±ÑÐ´ÐµÑ **неÑколÑко конÑейнеÑов**, Ñо Prometheus, по ÑмолÑаниÑ, **пÑи ÑбоÑе меÑÑик** полÑÑÐ¸Ñ Ð¸Ñ
**ÑолÑко Ñ Ð¾Ð´Ð½Ð¾Ð³Ð¾ конÑейнеÑа**, коÑоÑÑй обÑабаÑÑÐ²Ð°ÐµÑ ÐºÐ¾Ð½ÐºÑеÑнÑй запÑоÑ, вмеÑÑо **ÑбоÑа меÑÑик** Ñо вÑеÑ
ÑабоÑаÑÑиÑ
конÑейнеÑов.
Ð Ñаком ÑлÑÑае Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð¿ÑоÑе имеÑÑ **один конÑейнеÑ** Ñо **множеÑÑвом пÑоÑеÑÑов**, Ñ Ð½ÑжнÑм инÑÑÑÑменÑом (Ñаким как ÑкÑпоÑÑÑÑ Prometheus) в ÑÑом же конÑейнеÑе и ÑобиÑаÑÑем меÑÑики Ñо вÑеÑ
внÑÑÑенниÑ
пÑоÑеÑÑов ÑÑого конÑейнеÑа.
---
-Самое главное - **ни одно** из пеÑеÑиÑленнÑÑ
пÑавил не ÑвлÑеÑÑÑ **вÑÑеÑеннÑм в камне** и ÐÑ Ð½Ðµ обÑÐ·Ð°Ð½Ñ Ñлепо иÑ
повÑоÑÑÑÑ. ÐÑ Ð¼Ð¾Ð¶ÐµÑе иÑполÑзоваÑÑ ÑÑи идеи пÑи **ÑаÑÑмоÑÑении ÐаÑего конкÑеÑного ÑлÑÑаÑ** и ÑамоÑÑоÑÑелÑно ÑеÑаÑÑ, ÐºÐ°ÐºÐ°Ñ Ð¸Ð· конÑепÑии подÑ
Ð¾Ð´Ð¸Ñ Ð»ÑÑÑе:
+Самое главное - **ни одно** из пеÑеÑиÑленнÑÑ
пÑавил не ÑвлÑеÑÑÑ **вÑÑеÑеннÑм на камне** и Ð²Ñ Ð½Ðµ обÑÐ·Ð°Ð½Ñ Ñлепо иÑ
повÑоÑÑÑÑ. Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе иÑполÑзоваÑÑ ÑÑи идеи пÑи **ÑаÑÑмоÑÑении ваÑего конкÑеÑного ÑлÑÑаÑ** и ÑамоÑÑоÑÑелÑно ÑеÑаÑÑ, ÐºÐ°ÐºÐ°Ñ Ð¸Ð· конÑепÑии подÑ
Ð¾Ð´Ð¸Ñ Ð»ÑÑÑе:
* ÐÑполÑзование более безопаÑного пÑоÑокола HTTPS
* ÐаÑÑÑойки запÑÑка пÑиложениÑ
@@ -488,41 +488,41 @@ CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "80"]
## УпÑавление памÑÑÑÑ
-ÐÑи **запÑÑке одного пÑоÑеÑÑа на конÑейнеÑ** ÐÑ Ð¿Ð¾Ð»ÑÑаеÑе оÑноÑиÑелÑно понÑÑнÑй, ÑÑабилÑнÑй и огÑаниÑеннÑй обÑÑм памÑÑи, поÑÑеблÑемÑй одним конÑейнеÑом.
+ÐÑи **запÑÑке одного пÑоÑеÑÑа на конÑейнеÑ** Ð²Ñ Ð¿Ð¾Ð»ÑÑаеÑе оÑноÑиÑелÑно понÑÑнÑй, ÑÑабилÑнÑй и огÑаниÑеннÑй обÑÑм памÑÑи, поÑÑеблÑемÑй одним конÑейнеÑом.
ÐÑ Ð¼Ð¾Ð¶ÐµÑе ÑÑÑановиÑÑ Ð°Ð½Ð°Ð»Ð¾Ð³Ð¸ÑнÑе огÑаниÑÐµÐ½Ð¸Ñ Ð¿Ð¾ памÑÑи пÑи конÑигÑÑиÑовании Ñвоей ÑиÑÑÐµÐ¼Ñ ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ ÐºÐ¾Ð½ÑейнеÑами (напÑимеÑ, **Kubernetes**). Таким обÑазом ÑиÑÑема ÑÐ¼Ð¾Ð¶ÐµÑ **изменÑÑÑ ÐºÐ¾Ð»Ð¸ÑеÑÑво конÑейнеÑов** на **доÑÑÑпнÑÑ
ей маÑинаÑ
** пÑÐ¸Ð²Ð¾Ð´Ñ Ð² ÑооÑвеÑÑÑвие колиÑеÑÑво памÑÑи нÑжной конÑейнеÑам Ñ ÐºÐ¾Ð»Ð¸ÑеÑÑвом памÑÑи доÑÑÑпной в клаÑÑеÑе (набоÑе доÑÑÑпнÑÑ
маÑин).
-ÐÑли Ñ ÐÐ°Ñ **пÑоÑÑенÑкое** пÑиложение, веÑоÑÑно Ñ ÐÐ°Ñ Ð½Ðµ бÑÐ´ÐµÑ **необÑ
одимоÑÑи** ÑÑÑанавливаÑÑ Ð¶ÑÑÑкие огÑаниÑÐµÐ½Ð¸Ñ Ð½Ð° вÑделÑемÑÑ ÐµÐ¼Ñ Ð¿Ð°Ð¼ÑÑÑ. Ðо еÑли пÑиложение **иÑполÑзÑÐµÑ Ð¼Ð½Ð¾Ð³Ð¾ памÑÑи** (напÑимеÑ, оно иÑполÑзÑÐµÑ Ð¼Ð¾Ð´ÐµÐ»Ð¸ **маÑинного обÑÑениÑ**), Ðам ÑледÑÐµÑ Ð¿ÑовеÑиÑÑ, как много памÑÑи ÐµÐ¼Ñ ÑÑебÑеÑÑÑ Ð¸ оÑÑегÑлиÑоваÑÑ **колиÑеÑÑво конÑейнеÑов** запÑÑеннÑÑ
на **каждой маÑине** (Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð´Ð°Ð¶Ðµ добавиÑÑ Ð¼Ð°Ñин в клаÑÑеÑ).
+ÐÑли Ñ Ð²Ð°Ñ **пÑоÑÑенÑкое** пÑиложение, веÑоÑÑно Ñ Ð²Ð°Ñ Ð½Ðµ бÑÐ´ÐµÑ **необÑ
одимоÑÑи** ÑÑÑанавливаÑÑ Ð¶ÑÑÑкие огÑаниÑÐµÐ½Ð¸Ñ Ð½Ð° вÑделÑемÑÑ ÐµÐ¼Ñ Ð¿Ð°Ð¼ÑÑÑ. Ðо еÑли пÑиложение **иÑполÑзÑÐµÑ Ð¼Ð½Ð¾Ð³Ð¾ памÑÑи** (напÑимеÑ, оно иÑполÑзÑÐµÑ Ð¼Ð¾Ð´ÐµÐ»Ð¸ **маÑинного обÑÑениÑ**), вам ÑледÑÐµÑ Ð¿ÑовеÑиÑÑ, как много памÑÑи ÐµÐ¼Ñ ÑÑебÑеÑÑÑ Ð¸ оÑÑегÑлиÑоваÑÑ **колиÑеÑÑво конÑейнеÑов** запÑÑеннÑÑ
на **каждой маÑине** (Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð´Ð°Ð¶Ðµ добавиÑÑ Ð¼Ð°Ñин в клаÑÑеÑ).
-ÐÑли ÐÑ Ð·Ð°Ð¿ÑÑкаеÑе **неÑколÑко пÑоÑеÑÑов в конÑейнеÑе**, Ñо Ð´Ð¾Ð»Ð¶Ð½Ñ Ð±ÑÑÑ ÑвеÑенÑ, ÑÑо ÑÑи пÑоÑеÑÑÑ Ð½Ðµ **займÑÑ Ð¿Ð°Ð¼ÑÑи болÑÑе**, Ñем доÑÑÑпно Ð´Ð»Ñ ÐºÐ¾Ð½ÑейнеÑа.
+ÐÑли Ð²Ñ Ð·Ð°Ð¿ÑÑкаеÑе **неÑколÑко пÑоÑеÑÑов в конÑейнеÑе**, Ñо Ð´Ð¾Ð»Ð¶Ð½Ñ Ð±ÑÑÑ ÑвеÑенÑ, ÑÑо ÑÑи пÑоÑеÑÑÑ Ð½Ðµ **займÑÑ Ð¿Ð°Ð¼ÑÑи болÑÑе**, Ñем доÑÑÑпно Ð´Ð»Ñ ÐºÐ¾Ð½ÑейнеÑа.
## ÐодгоÑовиÑелÑнÑе Ñаги пÑи запÑÑке конÑейнеÑов
-ÐÑÑÑ Ð´Ð²Ð° оÑновнÑÑ
подÑ
ода, коÑоÑÑе ÐÑ Ð¼Ð¾Ð¶ÐµÑе иÑполÑзоваÑÑ Ð¿Ñи запÑÑке конÑейнеÑов (Docker, Kubernetes и Ñ.п.).
+ÐÑÑÑ Ð´Ð²Ð° оÑновнÑÑ
подÑ
ода, коÑоÑÑе Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе иÑполÑзоваÑÑ Ð¿Ñи запÑÑке конÑейнеÑов (Docker, Kubernetes и Ñ.п.).
### ÐножеÑÑво конÑейнеÑов
-Ðогда ÐÑ Ð·Ð°Ð¿ÑÑкаеÑе **множеÑÑво конÑейнеÑов**, в каждом из коÑоÑÑÑ
ÑабоÑÐ°ÐµÑ **ÑолÑко один пÑоÑеÑÑ** (напÑимеÑ, в клаÑÑеÑе **Kubernetes**), Ð¼Ð¾Ð¶ÐµÑ Ð²Ð¾Ð·Ð½Ð¸ÐºÐ½ÑÑÑ Ð½ÐµÐ¾Ð±Ñ
одимоÑÑÑ Ð¸Ð¼ÐµÑÑ **оÑделÑнÑй конÑейнеÑ**, коÑоÑÑй оÑÑÑеÑÑÐ²Ð¸Ñ **пÑедваÑиÑелÑнÑе Ñаги пеÑед запÑÑком** оÑÑалÑнÑÑ
конÑейнеÑов (напÑимеÑ, пÑименÑÐµÑ Ð¼Ð¸Ð³ÑаÑии к базе даннÑÑ
).
+Ðогда Ð²Ñ Ð·Ð°Ð¿ÑÑкаеÑе **множеÑÑво конÑейнеÑов**, в каждом из коÑоÑÑÑ
ÑабоÑÐ°ÐµÑ **ÑолÑко один пÑоÑеÑÑ** (напÑимеÑ, в клаÑÑеÑе **Kubernetes**), Ð¼Ð¾Ð¶ÐµÑ Ð²Ð¾Ð·Ð½Ð¸ÐºÐ½ÑÑÑ Ð½ÐµÐ¾Ð±Ñ
одимоÑÑÑ Ð¸Ð¼ÐµÑÑ **оÑделÑнÑй конÑейнеÑ**, коÑоÑÑй оÑÑÑеÑÑÐ²Ð¸Ñ **пÑедваÑиÑелÑнÑе Ñаги пеÑед запÑÑком** оÑÑалÑнÑÑ
конÑейнеÑов (напÑимеÑ, пÑименÑÐµÑ Ð¼Ð¸Ð³ÑаÑии к базе даннÑÑ
).
!!! info "ÐнÑоÑмаÑиÑ"
ÐÑи иÑполÑзовании Kubernetes, ÑÑо Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ
ÐниÑиализиÑÑÑÑий конÑейнеÑ.
-ÐÑи оÑÑÑÑÑÑвии Ñакой необÑ
одимоÑÑи (допÑÑÑим, не нÑжно пÑименÑÑÑ Ð¼Ð¸Ð³ÑаÑии к базе даннÑÑ
, а ÑолÑко пÑовеÑиÑÑ, ÑÑо она гоÑова пÑинимаÑÑ ÑоединениÑ), ÐÑ Ð¼Ð¾Ð¶ÐµÑе пÑоводиÑÑ ÑакÑÑ Ð¿ÑовеÑÐºÑ Ð² каждом конÑейнеÑе пеÑед запÑÑком его оÑновного пÑоÑеÑÑа и запÑÑкаÑÑ Ð²Ñе конÑейнеÑÑ **одновÑеменно**.
+ÐÑи оÑÑÑÑÑÑвии Ñакой необÑ
одимоÑÑи (допÑÑÑим, не нÑжно пÑименÑÑÑ Ð¼Ð¸Ð³ÑаÑии к базе даннÑÑ
, а ÑолÑко пÑовеÑиÑÑ, ÑÑо она гоÑова пÑинимаÑÑ ÑоединениÑ), Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе пÑоводиÑÑ ÑакÑÑ Ð¿ÑовеÑÐºÑ Ð² каждом конÑейнеÑе пеÑед запÑÑком его оÑновного пÑоÑеÑÑа и запÑÑкаÑÑ Ð²Ñе конÑейнеÑÑ **одновÑеменно**.
### ТолÑко один конÑейнеÑ
-ÐÑли Ñ ÐÐ°Ñ Ð½ÐµÑложное пÑиложение Ð´Ð»Ñ ÑабоÑÑ ÐºÐ¾ÑоÑого доÑÑаÑоÑно **одного конÑейнеÑа**, но в коÑоÑом ÑабоÑÐ°ÐµÑ **неÑколÑко пÑоÑеÑÑов** (или один пÑоÑеÑÑ), Ñо пÑоÑ
ождение пÑедваÑиÑелÑнÑÑ
Ñагов можно оÑÑÑеÑÑвиÑÑ Ð² ÑÑом же конÑейнеÑе до запÑÑка оÑновного пÑоÑеÑÑа. ÐÑиÑиалÑнÑй Docker-обÑаз поддеÑÐ¶Ð¸Ð²Ð°ÐµÑ Ñакие дейÑÑвиÑ.
+ÐÑли Ñ Ð²Ð°Ñ Ð½ÐµÑложное пÑиложение Ð´Ð»Ñ ÑабоÑÑ ÐºÐ¾ÑоÑого доÑÑаÑоÑно **одного конÑейнеÑа**, но в коÑоÑом ÑабоÑÐ°ÐµÑ **неÑколÑко пÑоÑеÑÑов** (или один пÑоÑеÑÑ), Ñо пÑоÑ
ождение пÑедваÑиÑелÑнÑÑ
Ñагов можно оÑÑÑеÑÑвиÑÑ Ð² ÑÑом же конÑейнеÑе до запÑÑка оÑновного пÑоÑеÑÑа. ÐÑиÑиалÑнÑй Docker-обÑаз поддеÑÐ¶Ð¸Ð²Ð°ÐµÑ Ñакие дейÑÑвиÑ.
## ÐÑиÑиалÑнÑй Docker-обÑаз Ñ Gunicorn и Uvicorn
-Я подгоÑовил Ð´Ð»Ñ ÐÐ°Ñ Docker-обÑаз, в коÑоÑÑй вклÑÑÑн Gunicorn ÑпÑавлÑÑÑий пÑоÑеÑÑами (воÑкеÑами) Uvicorn, в ÑооÑвеÑÑÑвии Ñ ÐºÐ¾Ð½ÑепÑиÑми ÑаÑÑмоÑÑеннÑми в пÑедÑдÑÑей главе: [РабоÑие пÑоÑеÑÑÑ ÑеÑвеÑа (воÑкеÑÑ) - Gunicorn ÑовмеÑÑно Ñ Uvicorn](./server-workers.md){.internal-link target=_blank}.
+Я подгоÑовил Ð´Ð»Ñ Ð²Ð°Ñ Docker-обÑаз, в коÑоÑÑй вклÑÑÑн Gunicorn ÑпÑавлÑÑÑий пÑоÑеÑÑами (воÑкеÑами) Uvicorn, в ÑооÑвеÑÑÑвии Ñ ÐºÐ¾Ð½ÑепÑиÑми ÑаÑÑмоÑÑеннÑми в пÑедÑдÑÑей главе: [РабоÑие пÑоÑеÑÑÑ ÑеÑвеÑа (воÑкеÑÑ) - Gunicorn ÑовмеÑÑно Ñ Uvicorn](./server-workers.md){.internal-link target=_blank}.
ÐÑÐ¾Ñ Ð¾Ð±Ñаз Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð¿Ð¾Ð»ÐµÐ·ÐµÐ½ Ð´Ð»Ñ ÑиÑÑаÑий опиÑаннÑÑ
ÑÑÑ: [ÐножеÑÑво пÑоÑеÑÑов внÑÑÑи конÑейнеÑа Ð´Ð»Ñ Ð¾ÑобÑÑ
ÑлÑÑаев](#special-cases).
*
tiangolo/uvicorn-gunicorn-fastapi.
!!! warning "ÐÑедÑпÑеждение"
- СкоÑее вÑего Ñ ÐÐ°Ñ **Ð½ÐµÑ Ð½ÐµÐ¾Ð±Ñ
одимоÑÑи** в иÑполÑзовании ÑÑого обÑаза или подобного ÐµÐ¼Ñ Ð¸ лÑÑÑе ÑоздаÑÑ Ñвой обÑаз Ñ Ð½ÑÐ»Ñ ÐºÐ°Ðº опиÑано ÑÑÑ: [СоздаÑÑ Docker-обÑаз Ð´Ð»Ñ FastAPI](#docker-fastapi).
+ СкоÑее вÑего Ñ Ð²Ð°Ñ **Ð½ÐµÑ Ð½ÐµÐ¾Ð±Ñ
одимоÑÑи** в иÑполÑзовании ÑÑого обÑаза или подобного ÐµÐ¼Ñ Ð¸ лÑÑÑе ÑоздаÑÑ Ñвой обÑаз Ñ Ð½ÑÐ»Ñ ÐºÐ°Ðº опиÑано ÑÑÑ: [СоздаÑÑ Docker-обÑаз Ð´Ð»Ñ FastAPI](#docker-fastapi).
Ð ÑÑом обÑазе еÑÑÑ **авÑомаÑиÑеÑкий** меÑ
анизм подÑÑÑойки Ð´Ð»Ñ Ð·Ð°Ð¿ÑÑка **необÑ
одимого колиÑеÑÑва пÑоÑеÑÑов** в ÑооÑвеÑÑÑвии Ñ Ð´Ð¾ÑÑÑпнÑм колиÑеÑÑвом ÑÐ´ÐµÑ Ð¿ÑоÑеÑÑоÑа.
@@ -539,11 +539,11 @@ CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "80"]
ÐÑо ознаÑаеÑ, ÑÑо он бÑÐ´ÐµÑ Ð¿ÑÑаÑÑÑÑ **вÑжаÑÑ** из пÑоÑеÑÑоÑа как можно болÑÑе **пÑоизводиÑелÑноÑÑи**.
-Ðо ÐÑ Ð¼Ð¾Ð¶ÐµÑе изменÑÑÑ Ð¸ обновлÑÑÑ ÐºÐ¾Ð½ÑигÑÑаÑÐ¸Ñ Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ **пеÑеменнÑÑ
окÑÑжениÑ** и Ñ.п.
+Ðо Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе изменÑÑÑ Ð¸ обновлÑÑÑ ÐºÐ¾Ð½ÑигÑÑаÑÐ¸Ñ Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ **пеÑеменнÑÑ
окÑÑжениÑ** и Ñ.п.
ÐоÑколÑÐºÑ ÐºÐ¾Ð»Ð¸ÑеÑÑво пÑоÑеÑÑов завиÑÐ¸Ñ Ð¾Ñ Ð¿ÑоÑеÑÑоÑа, на коÑоÑом ÑабоÑÐ°ÐµÑ ÐºÐ¾Ð½ÑейнеÑ, **обÑÑм поÑÑеблÑемой памÑÑи** Ñакже бÑÐ´ÐµÑ Ð·Ð°Ð²Ð¸ÑеÑÑ Ð¾Ñ ÑÑого.
-РзнаÑиÑ, еÑли ÐаÑÐµÐ¼Ñ Ð¿ÑÐ¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ ÑÑебÑеÑÑÑ Ð¼Ð½Ð¾Ð³Ð¾ опеÑаÑивной памÑÑи (напÑимеÑ, оно иÑполÑзÑÐµÑ Ð¼Ð¾Ð´ÐµÐ»Ð¸ маÑинного обÑÑениÑ) и ÐÐ°Ñ ÑеÑÐ²ÐµÑ Ð¸Ð¼ÐµÐµÑ ÑенÑÑалÑнÑй пÑоÑеÑÑÐ¾Ñ Ñ Ð±Ð¾Ð»ÑÑим колиÑеÑÑвом ÑдеÑ, но **не ÑлиÑком болÑÑим обÑÑмом опеÑаÑивной памÑÑи**, Ñо Ð¼Ð¾Ð¶ÐµÑ Ð´Ð¾Ð¹Ñи до Ñого, ÑÑо конÑÐµÐ¹Ð½ÐµÑ Ð¿Ð¾Ð¿ÑÑаеÑÑÑ Ð·Ð°Ð½ÑÑÑ Ð¿Ð°Ð¼ÑÑи болÑÑе, Ñем доÑÑÑпно, из-за Ñего бÑÐ´ÐµÑ Ð¿Ð°Ð´ÐµÐ½Ð¸Ðµ пÑоизводиÑелÑноÑÑи (или ÑеÑÐ²ÐµÑ Ð²Ð¾Ð²Ñе ÑпадÑÑ). ð¨
+РзнаÑиÑ, еÑли ваÑÐµÐ¼Ñ Ð¿ÑÐ¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ ÑÑебÑеÑÑÑ Ð¼Ð½Ð¾Ð³Ð¾ опеÑаÑивной памÑÑи (напÑимеÑ, оно иÑполÑзÑÐµÑ Ð¼Ð¾Ð´ÐµÐ»Ð¸ маÑинного обÑÑениÑ) и ÐÐ°Ñ ÑеÑÐ²ÐµÑ Ð¸Ð¼ÐµÐµÑ ÑенÑÑалÑнÑй пÑоÑеÑÑÐ¾Ñ Ñ Ð±Ð¾Ð»ÑÑим колиÑеÑÑвом ÑдеÑ, но **не ÑлиÑком болÑÑим обÑÑмом опеÑаÑивной памÑÑи**, Ñо Ð¼Ð¾Ð¶ÐµÑ Ð´Ð¾Ð¹Ñи до Ñого, ÑÑо конÑÐµÐ¹Ð½ÐµÑ Ð¿Ð¾Ð¿ÑÑаеÑÑÑ Ð·Ð°Ð½ÑÑÑ Ð¿Ð°Ð¼ÑÑи болÑÑе, Ñем доÑÑÑпно, из-за Ñего бÑÐ´ÐµÑ Ð¿Ð°Ð´ÐµÐ½Ð¸Ðµ пÑоизводиÑелÑноÑÑи (или ÑеÑÐ²ÐµÑ Ð²Ð¾Ð²Ñе ÑпадÑÑ). ð¨
### ÐапиÑание `Dockerfile`
@@ -562,7 +562,7 @@ COPY ./app /app
### ÐолÑÑие пÑиложениÑ
-ÐÑли ÐÑ ÑÑпели ознакомиÑÑÑÑ Ñ Ñазделом [ÐÑÐ¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ ÑодеÑжаÑие много Ñайлов](../tutorial/bigger-applications.md){.internal-link target=_blank}, ÑоÑÑоÑÑие из множеÑÑва Ñайлов, ÐÐ°Ñ Dockerfile Ð¼Ð¾Ð¶ÐµÑ Ð²ÑглÑдеÑÑ Ñак:
+ÐÑли Ð²Ñ ÑÑпели ознакомиÑÑÑÑ Ñ Ñазделом [ÐÑÐ¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ ÑодеÑжаÑие много Ñайлов](../tutorial/bigger-applications.md){.internal-link target=_blank}, ÑоÑÑоÑÑие из множеÑÑва Ñайлов, ÐÐ°Ñ Dockerfile Ð¼Ð¾Ð¶ÐµÑ Ð²ÑглÑдеÑÑ Ñак:
```Dockerfile hl_lines="7"
FROM tiangolo/uvicorn-gunicorn-fastapi:python3.9
@@ -576,9 +576,9 @@ COPY ./app /app/app
### Ðак им полÑзоваÑÑÑÑ
-ÐÑли ÐÑ Ð¸ÑполÑзÑеÑе **Kubernetes** (или ÑÑо-Ñо вÑоде Ñого), ÑкоÑее вÑего Ðам **не нÑжно** иÑполÑзоваÑÑ Ð¾ÑиÑиалÑнÑй Docker-обÑаз (или дÑÑгой поÑ
ожий) в каÑеÑÑве оÑновÑ, Ñак как ÑпÑавление **колиÑеÑÑвом запÑÑеннÑÑ
конÑейнеÑов** должно бÑÑÑ Ð½Ð°ÑÑÑоено на ÑÑовне клаÑÑеÑа. Ð Ñаком ÑлÑÑае лÑÑÑе **ÑоздаÑÑ Ð¾Ð±Ñаз Ñ Ð½ÑлÑ**, как опиÑано в Ñазделе СоздаÑÑ [Docker-обÑаз Ð´Ð»Ñ FastAPI](#docker-fastapi).
+ÐÑли Ð²Ñ Ð¸ÑполÑзÑеÑе **Kubernetes** (или ÑÑо-Ñо вÑоде Ñого), ÑкоÑее вÑего вам **не нÑжно** иÑполÑзоваÑÑ Ð¾ÑиÑиалÑнÑй Docker-обÑаз (или дÑÑгой поÑ
ожий) в каÑеÑÑве оÑновÑ, Ñак как ÑпÑавление **колиÑеÑÑвом запÑÑеннÑÑ
конÑейнеÑов** должно бÑÑÑ Ð½Ð°ÑÑÑоено на ÑÑовне клаÑÑеÑа. Ð Ñаком ÑлÑÑае лÑÑÑе **ÑоздаÑÑ Ð¾Ð±Ñаз Ñ Ð½ÑлÑ**, как опиÑано в Ñазделе СоздаÑÑ [Docker-обÑаз Ð´Ð»Ñ FastAPI](#docker-fastapi).
-ÐÑиÑиалÑнÑй обÑаз Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð¿Ð¾Ð»ÐµÐ·ÐµÐ½ в оÑделÑнÑÑ
ÑлÑÑаÑÑ
, опиÑаннÑÑ
вÑÑе в Ñазделе [ÐножеÑÑво пÑоÑеÑÑов внÑÑÑи конÑейнеÑа Ð´Ð»Ñ Ð¾ÑобÑÑ
ÑлÑÑаев](#special-cases). ÐапÑимеÑ, еÑли ÐаÑе пÑиложение **доÑÑаÑоÑно пÑоÑÑое**, не ÑÑебÑÐµÑ Ð·Ð°Ð¿ÑÑка в клаÑÑеÑе и ÑпоÑобно ÑмеÑÑиÑÑÑÑ Ð² один конÑейнеÑ, Ñо его наÑÑÑойки по ÑмолÑÐ°Ð½Ð¸Ñ Ð±ÑдÑÑ ÑабоÑаÑÑ Ð´Ð¾Ð²Ð¾Ð»Ñно Ñ
оÑоÑо. Ðли же ÐÑ ÑазвеÑÑÑваеÑе его Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ **Docker Compose**, ÑабоÑаеÑе на одном ÑеÑвеÑе и Ñ. д
+ÐÑиÑиалÑнÑй обÑаз Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð¿Ð¾Ð»ÐµÐ·ÐµÐ½ в оÑделÑнÑÑ
ÑлÑÑаÑÑ
, опиÑаннÑÑ
вÑÑе в Ñазделе [ÐножеÑÑво пÑоÑеÑÑов внÑÑÑи конÑейнеÑа Ð´Ð»Ñ Ð¾ÑобÑÑ
ÑлÑÑаев](#special-cases). ÐапÑимеÑ, еÑли ваÑе пÑиложение **доÑÑаÑоÑно пÑоÑÑое**, не ÑÑебÑÐµÑ Ð·Ð°Ð¿ÑÑка в клаÑÑеÑе и ÑпоÑобно ÑмеÑÑиÑÑÑÑ Ð² один конÑейнеÑ, Ñо его наÑÑÑойки по ÑмолÑÐ°Ð½Ð¸Ñ Ð±ÑдÑÑ ÑабоÑаÑÑ Ð´Ð¾Ð²Ð¾Ð»Ñно Ñ
оÑоÑо. Ðли же Ð²Ñ ÑазвеÑÑÑваеÑе его Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ **Docker Compose**, ÑабоÑаеÑе на одном ÑеÑвеÑе и Ñ. д
## РазвÑÑÑÑвание обÑаза конÑейнеÑа
@@ -590,11 +590,11 @@ COPY ./app /app/app
* С иÑполÑзованием **Kubernetes** в клаÑÑеÑе
* С иÑполÑзованием Ñежима Docker Swarm в клаÑÑеÑе
* С иÑполÑзованием дÑÑгиÑ
инÑÑÑÑменÑов, ÑакиÑ
как Nomad
-* С иÑполÑзованием облаÑного ÑеÑвиÑа, коÑоÑÑй бÑÐ´ÐµÑ ÑпÑавлÑÑÑ ÑазвоÑаÑиванием ÐаÑего конÑейнеÑа
+* С иÑполÑзованием облаÑного ÑеÑвиÑа, коÑоÑÑй бÑÐ´ÐµÑ ÑпÑавлÑÑÑ ÑазвоÑаÑиванием ваÑего конÑейнеÑа
## Docker-обÑаз и Poetry
-ÐÑли ÐÑ Ð¿Ð¾Ð»ÑзÑеÑеÑÑ
Poetry Ð´Ð»Ñ ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ð·Ð°Ð²Ð¸ÑимоÑÑÑми ÐаÑего пÑоекÑа, Ñо можеÑе иÑполÑзоваÑÑ Ð¼Ð½Ð¾Ð³Ð¾ÑÑапнÑÑ ÑбоÑÐºÑ Ð¾Ð±Ñаза:
+ÐÑли Ð²Ñ Ð¿Ð¾Ð»ÑзÑеÑеÑÑ
Poetry Ð´Ð»Ñ ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ð·Ð°Ð²Ð¸ÑимоÑÑÑми ваÑего пÑоекÑа, Ñо можеÑе иÑполÑзоваÑÑ Ð¼Ð½Ð¾Ð³Ð¾ÑÑапнÑÑ ÑбоÑÐºÑ Ð¾Ð±Ñаза:
```{ .dockerfile .annotate }
# (1)
@@ -664,19 +664,19 @@ CMD ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "80"]
**ÐÑÐ°Ð¿Ñ ÑбоÑки Docker-обÑаза** ÑвлÑÑÑÑÑ ÑаÑÑÑÑ `Dockerfile` и ÑабоÑаÑÑ ÐºÐ°Ðº **вÑеменнÑе обÑÐ°Ð·Ñ ÐºÐ¾Ð½ÑейнеÑов**. Ðни нÑÐ¶Ð½Ñ ÑолÑко Ð´Ð»Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ñайлов, иÑполÑзÑемÑÑ
в далÑнейÑиÑ
ÑÑапаÑ
.
-ÐеÑвÑй ÑÑап бÑл нÑжен ÑолÑко Ð´Ð»Ñ **ÑÑÑановки Poetry** и **ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ñайла `requirements.txt`**, в коÑоÑÑм пÑопиÑÐ°Ð½Ñ Ð·Ð°Ð²Ð¸ÑимоÑÑи ÐаÑего пÑоекÑа, взÑÑÑе из Ñайла `pyproject.toml`.
+ÐеÑвÑй ÑÑап бÑл нÑжен ÑолÑко Ð´Ð»Ñ **ÑÑÑановки Poetry** и **ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ñайла `requirements.txt`**, в коÑоÑÑм пÑопиÑÐ°Ð½Ñ Ð·Ð°Ð²Ð¸ÑимоÑÑи ваÑего пÑоекÑа, взÑÑÑе из Ñайла `pyproject.toml`.
Ðа **ÑледÑÑÑем ÑÑапе** `pip` бÑÐ´ÐµÑ Ð¸ÑполÑзоваÑÑ Ñайл `requirements.txt`.
РиÑоговом обÑазе бÑÐ´ÐµÑ ÑодеÑжаÑÑÑÑ **ÑолÑко поÑледний ÑÑап ÑбоÑки**, пÑедÑдÑÑие ÑÑÐ°Ð¿Ñ Ð±ÑдÑÑ Ð¾ÑбÑоÑенÑ.
-ÐÑи иÑполÑзовании Poetry, Ð¸Ð¼ÐµÐµÑ ÑмÑÑл иÑполÑзоваÑÑ **многоÑÑапнÑÑ ÑбоÑÐºÑ Docker-обÑаза**, поÑÐ¾Ð¼Ñ ÑÑо на Ñамом деле Ðам не нÑжен Poetry и его завиÑимоÑÑи в оконÑаÑелÑном обÑазе конÑейнеÑа, Ðам **нÑжен ÑолÑко** ÑгенеÑиÑованнÑй Ñайл `requirements.txt` Ð´Ð»Ñ ÑÑÑановки завиÑимоÑÑей ÐаÑего пÑоекÑа.
+ÐÑи иÑполÑзовании Poetry, Ð¸Ð¼ÐµÐµÑ ÑмÑÑл иÑполÑзоваÑÑ **многоÑÑапнÑÑ ÑбоÑÐºÑ Docker-обÑаза**, поÑÐ¾Ð¼Ñ ÑÑо на Ñамом деле вам не нÑжен Poetry и его завиÑимоÑÑи в оконÑаÑелÑном обÑазе конÑейнеÑа, вам **нÑжен ÑолÑко** ÑгенеÑиÑованнÑй Ñайл `requirements.txt` Ð´Ð»Ñ ÑÑÑановки завиÑимоÑÑей ваÑего пÑоекÑа.
Рна поÑледнем ÑÑапе, пÑидеÑживаÑÑÑ Ð¾Ð¿Ð¸ÑаннÑÑ
Ñанее пÑавил, ÑоздаÑÑÑÑ Ð¸ÑоговÑй обÑаз
### ÐÑполÑзование пÑокÑи-ÑеÑвеÑа завеÑÑÐµÐ½Ð¸Ñ TLS и Poetry
-Ð Ñнова повÑоÑÑÑÑ, еÑли иÑполÑзÑеÑе пÑокÑи-ÑеÑÐ²ÐµÑ (баланÑиÑовÑик нагÑÑзки), Ñакой, как Nginx или Traefik, добавÑÑе в ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ Ð·Ð°Ð¿ÑÑка опÑÐ¸Ñ `--proxy-headers`:
+Ð Ñнова повÑоÑÑÑÑ, еÑли иÑполÑзÑеÑе пÑокÑи-ÑеÑÐ²ÐµÑ (баланÑиÑовÑик нагÑÑзки), Ñакой как Nginx или Traefik, добавÑÑе в ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ Ð·Ð°Ð¿ÑÑка опÑÐ¸Ñ `--proxy-headers`:
```Dockerfile
CMD ["uvicorn", "app.main:app", "--proxy-headers", "--host", "0.0.0.0", "--port", "80"]
@@ -695,6 +695,6 @@ CMD ["uvicorn", "app.main:app", "--proxy-headers", "--host", "0.0.0.0", "--port"
РболÑÑинÑÑве ÑлÑÑаев Ðам, веÑоÑÑно, не нÑжно иÑполÑзоваÑÑ ÐºÐ°ÐºÐ¾Ð¹-либо базовÑй обÑаз, **лÑÑÑе ÑоздаÑÑ Ð¾Ð±Ñаз конÑейнеÑа Ñ Ð½ÑлÑ** на оÑнове оÑиÑиалÑного Docker-обÑаза Python.
-ÐозабоÑивÑиÑÑ Ð¾ **поÑÑдке напиÑаниÑ** инÑÑÑÑкÑий в `Dockerfile`, ÐÑ ÑможеÑе иÑполÑзоваÑÑ **кÑÑ Docker'а**, **минимизиÑовав вÑÐµÐ¼Ñ ÑбоÑки**, макÑималÑно повÑÑив ÑÐ²Ð¾Ñ Ð¿ÑоизводиÑелÑноÑÑÑ (и избежаÑÑ ÑкÑки). ð
+ÐозабоÑивÑиÑÑ Ð¾ **поÑÑдке напиÑаниÑ** инÑÑÑÑкÑий в `Dockerfile`, Ð²Ñ ÑможеÑе иÑполÑзоваÑÑ **кÑÑ Docker'а**, **минимизиÑовав вÑÐµÐ¼Ñ ÑбоÑки**, макÑималÑно повÑÑив ÑÐ²Ð¾Ñ Ð¿ÑоизводиÑелÑноÑÑÑ (и не заÑкÑÑаÑÑ). ð
РнекоÑоÑÑÑ
оÑобÑÑ
ÑлÑÑаÑÑ
Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе иÑполÑзоваÑÑ Ð¾ÑиÑиалÑнÑй обÑаз Docker Ð´Ð»Ñ FastAPI. ð¤
diff --git a/docs/ru/docs/deployment/https.md b/docs/ru/docs/deployment/https.md
index a53ab69272..5aa3003310 100644
--- a/docs/ru/docs/deployment/https.md
+++ b/docs/ru/docs/deployment/https.md
@@ -1,11 +1,11 @@
# Ðб HTTPS
-ÐбÑÑно пÑедÑÑавлÑеÑÑÑ, ÑÑо HTTPS ÑÑо Ð½ÐµÐºÐ°Ñ Ð¾Ð¿ÑиÑ, коÑоÑÐ°Ñ Ð»Ð¸Ð±Ð¾ "вклÑÑена", либо неÑ.
+ÐбÑÑно пÑедÑÑавлÑеÑÑÑ, ÑÑо HTTPS ÑÑо Ð½ÐµÐºÐ°Ñ Ð¾Ð¿ÑиÑ, коÑоÑÐ°Ñ Ð»Ð¸Ð±Ð¾ "вклÑÑена", либо неÑ.
Ðо вÑÑ Ð½ÐµÑколÑко Ñложнее.
!!! tip "ÐамеÑка"
- ÐÑли ÐÑ ÑоÑопиÑеÑÑ Ð¸Ð»Ð¸ Ðам не инÑеÑеÑно, можеÑе пеÑейÑи на ÑледÑÑÑÑÑ ÑÑÑаниÑÑ ÑÑого поÑагового ÑÑководÑÑва по ÑазмеÑÐµÐ½Ð¸Ñ Ð¿Ñиложений на ÑеÑвеÑаÑ
Ñ Ð¸ÑполÑзованием ÑазлиÑнÑÑ
ÑеÑ
нологий.
+ ÐÑли Ð²Ñ ÑоÑопиÑеÑÑ Ð¸Ð»Ð¸ вам не инÑеÑеÑно, можеÑе пеÑейÑи на ÑледÑÑÑÑÑ ÑÑÑаниÑÑ ÑÑого поÑагового ÑÑководÑÑва по ÑазмеÑÐµÐ½Ð¸Ñ Ð¿Ñиложений на ÑеÑвеÑаÑ
Ñ Ð¸ÑполÑзованием ÑазлиÑнÑÑ
ÑеÑ
нологий.
ЧÑÐ¾Ð±Ñ **изÑÑиÑÑ Ð¾ÑÐ½Ð¾Ð²Ñ HTTPS** Ð´Ð»Ñ ÐºÐ»Ð¸ÐµÐ½Ñа, пеÑейдиÑе по ÑÑÑлке
https://howhttps.works/.
@@ -22,8 +22,8 @@
* **TCP не Ð·Ð½Ð°ÐµÑ Ð¾ "доменаÑ
"**, но Ð·Ð½Ð°ÐµÑ Ð¾Ð± IP-адÑеÑаÑ
.
* ÐнÑоÑмаÑÐ¸Ñ Ð¾ **запÑаÑиваемом домене** извлекаеÑÑÑ Ð¸Ð· запÑоÑа **на ÑÑовне HTTP**.
* **СеÑÑиÑикаÑÑ HTTPS** "ÑеÑÑиÑиÑиÑÑÑÑ" **конкÑеÑнÑй домен**, но пÑовеÑка ÑеÑÑиÑикаÑов и ÑиÑÑование даннÑÑ
пÑоиÑÑ
Ð¾Ð´Ð¸Ñ Ð½Ð° ÑÑовне пÑоÑокола TCP, Ñо еÑÑÑ **до Ñого**, как ÑÑÐ°Ð½ÐµÑ Ð¸Ð·Ð²ÐµÑÑен домен-полÑÑаÑÐµÐ»Ñ Ð´Ð°Ð½Ð½ÑÑ
.
-* **Ðо ÑмолÑаниÑ** ÑÑо ознаÑаеÑ, ÑÑо Ñ ÐÐ°Ñ Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ **ÑолÑко один ÑеÑÑиÑÐ¸ÐºÐ°Ñ HTTPS на один IP-адÑеÑ**.
- * Ðе важно, наÑколÑко болÑÑой Ñ ÐÐ°Ñ ÑеÑÐ²ÐµÑ Ð¸ наÑколÑко маленÑкие пÑÐ¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð½Ð° нÑм могÑÑ Ð±ÑÑÑ.
+* **Ðо ÑмолÑаниÑ** ÑÑо ознаÑаеÑ, ÑÑо Ñ Ð²Ð°Ñ Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ **ÑолÑко один ÑеÑÑиÑÐ¸ÐºÐ°Ñ HTTPS на один IP-адÑеÑ**.
+ * Ðе важно, наÑколÑко болÑÑой Ñ Ð²Ð°Ñ ÑеÑÐ²ÐµÑ Ð¸ наÑколÑко маленÑкие пÑÐ¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð½Ð° нÑм могÑÑ Ð±ÑÑÑ.
* Ðднако, Ñ ÑÑой пÑÐ¾Ð±Ð»ÐµÐ¼Ñ ÐµÑÑÑ **ÑеÑение**.
* СÑÑеÑÑвÑÐµÑ **ÑаÑÑиÑение** пÑоÑокола **TLS** (коÑоÑÑй ÑабоÑÐ°ÐµÑ Ð½Ð° ÑÑовне TCP, Ñо еÑÑÑ Ð´Ð¾ HTTP) назÑваемое **
SNI**.
* РаÑÑиÑение SNI позволÑÐµÑ Ð¾Ð´Ð½Ð¾Ð¼Ñ ÑеÑвеÑÑ (Ñ **одним IP-адÑеÑом**) имеÑÑ **неÑколÑко ÑеÑÑиÑикаÑов HTTPS** и обÑлÑживаÑÑ **множеÑÑво HTTPS-доменов/пÑиложений**.
@@ -35,12 +35,12 @@
* полÑÑение **заÑиÑÑованнÑÑ
HTTPS-запÑоÑов**
* оÑпÑавка **ÑаÑÑиÑÑованнÑÑ
HTTP запÑоÑов** в ÑооÑвеÑÑÑвÑÑÑее HTTP-пÑиложение, ÑабоÑаÑÑее на Ñом же ÑеÑвеÑе (в наÑем ÑлÑÑае, ÑÑо пÑиложение **FastAPI**)
-* полÑÑние **HTTP-оÑвеÑа** Ð¾Ñ Ð¿ÑиложениÑ
+* полÑÑение **HTTP-оÑвеÑа** Ð¾Ñ Ð¿ÑиложениÑ
* **ÑиÑÑование оÑвеÑа** иÑполÑзÑÑ Ð¿Ð¾Ð´Ñ
одÑÑий **ÑеÑÑиÑÐ¸ÐºÐ°Ñ HTTPS**
* оÑпÑавка заÑиÑÑованного **HTTPS-оÑвеÑа клиенÑÑ**.
Такой ÑеÑÐ²ÐµÑ ÑаÑÑо назÑваÑÑ **
ÐÑокÑи-ÑеÑÐ²ÐµÑ Ð·Ð°Ð²ÐµÑÑÐµÐ½Ð¸Ñ ÑабоÑÑ TLS** или пÑоÑÑо "пÑокÑи-ÑеÑвеÑ".
-ÐÐ¾Ñ Ð½ÐµÐºÐ¾ÑоÑÑе ваÑианÑÑ, коÑоÑÑе ÐÑ Ð¼Ð¾Ð¶ÐµÑе иÑполÑзоваÑÑ Ð² каÑеÑÑве Ñакого пÑокÑи-ÑеÑвеÑа:
+ÐÐ¾Ñ Ð½ÐµÐºÐ¾ÑоÑÑе ваÑианÑÑ, коÑоÑÑе Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе иÑполÑзоваÑÑ Ð² каÑеÑÑве Ñакого пÑокÑи-ÑеÑвеÑа:
* Traefik (Ð¼Ð¾Ð¶ÐµÑ Ð¾Ð±Ð½Ð¾Ð²Ð»ÑÑÑ ÑеÑÑиÑикаÑÑ)
* Caddy (Ð¼Ð¾Ð¶ÐµÑ Ð¾Ð±Ð½Ð¾Ð²Ð»ÑÑÑ ÑеÑÑиÑикаÑÑ)
@@ -67,11 +67,11 @@
### ÐÐ¼Ñ Ð´Ð¾Ð¼ÐµÐ½Ð°
-ЧаÑе вÑего, вÑÑ Ð½Ð°ÑинаеÑÑÑ Ñ **пÑиобÑеÑÐµÐ½Ð¸Ñ Ð¸Ð¼ÐµÐ½Ð¸ домена**. ÐаÑем нÑжно наÑÑÑоиÑÑ DNS-ÑеÑÐ²ÐµÑ (веÑоÑÑно Ñ Ñого же пÑовайдеÑа, коÑоÑÑй вÑдал Ðам домен).
+ЧаÑе вÑего, вÑÑ Ð½Ð°ÑинаеÑÑÑ Ñ **пÑиобÑеÑÐµÐ½Ð¸Ñ Ð¸Ð¼ÐµÐ½Ð¸ домена**. ÐаÑем нÑжно наÑÑÑоиÑÑ DNS-ÑеÑÐ²ÐµÑ (веÑоÑÑно Ñ Ñого же пÑовайдеÑа, коÑоÑÑй вÑдал вам домен).
-Ðалее, возможно, ÐÑ Ð¿Ð¾Ð»ÑÑаеÑе "облаÑнÑй" ÑеÑÐ²ÐµÑ (виÑÑÑалÑнÑÑ Ð¼Ð°ÑинÑ) или ÑÑо-Ñо Ñипа ÑÑого, Ñ ÐºÐ¾ÑоÑого еÑÑÑ
поÑÑоÑннÑй **пÑблиÑнÑй IP-адÑеÑ**.
+Ðалее, возможно, Ð²Ñ Ð¿Ð¾Ð»ÑÑаеÑе "облаÑнÑй" ÑеÑÐ²ÐµÑ (виÑÑÑалÑнÑÑ Ð¼Ð°ÑинÑ) или ÑÑо-Ñо Ñипа ÑÑого, Ñ ÐºÐ¾ÑоÑого еÑÑÑ
поÑÑоÑннÑй **пÑблиÑнÑй IP-адÑеÑ**.
-Ðа DNS-ÑеÑвеÑе (ÑеÑвеÑаÑ
) Ðам ÑледÑÐµÑ Ð½Ð°ÑÑÑоиÑÑ ÑооÑвеÑÑÑвÑÑÑÑÑ ÑеÑÑÑÑнÑÑ Ð·Ð°Ð¿Ð¸ÑÑ ("`запиÑÑ A`"), Ñказав, ÑÑо **ÐÐ°Ñ Ð´Ð¾Ð¼ÐµÐ½** ÑвÑзан Ñ Ð¿ÑблиÑнÑм **IP-адÑеÑом ÐаÑего ÑеÑвеÑа**.
+Ðа DNS-ÑеÑвеÑе (ÑеÑвеÑаÑ
) вам ÑледÑÐµÑ Ð½Ð°ÑÑÑоиÑÑ ÑооÑвеÑÑÑвÑÑÑÑÑ ÑеÑÑÑÑнÑÑ Ð·Ð°Ð¿Ð¸ÑÑ ("`запиÑÑ A`"), Ñказав, ÑÑо **ÐÐ°Ñ Ð´Ð¾Ð¼ÐµÐ½** ÑвÑзан Ñ Ð¿ÑблиÑнÑм **IP-адÑеÑом ваÑего ÑеÑвеÑа**.
ÐбÑÑно ÑÑÑ Ð·Ð°Ð¿Ð¸ÑÑ Ð´Ð¾ÑÑаÑоÑно ÑказаÑÑ Ð¾Ð´Ð¸Ð½ Ñаз, пÑи пеÑвонаÑалÑной наÑÑÑойке вÑего ÑеÑвеÑа.
@@ -82,9 +82,9 @@
ТепеÑÑ Ð´Ð°Ð²Ð°Ð¹Ñе ÑÑокÑÑиÑÑемÑÑ Ð½Ð° ÑабоÑе Ñ HTTPS.
-ÐÑÑ Ð½Ð°ÑинаеÑÑÑ Ñ Ñого, ÑÑо бÑаÑÐ·ÐµÑ ÑпÑаÑÐ¸Ð²Ð°ÐµÑ Ñ **DNS-ÑеÑвеÑов**, какой **IP-адÑÐµÑ ÑвÑзан Ñ Ð´Ð¾Ð¼ÐµÐ½Ð¾Ð¼**, Ð´Ð»Ñ Ð¿ÑимеÑа возÑмÑм домен `someapp.example.com`.
+ÐÑÑ Ð½Ð°ÑинаеÑÑÑ Ñ Ñого, ÑÑо бÑаÑÐ·ÐµÑ ÑпÑаÑÐ¸Ð²Ð°ÐµÑ Ñ **DNS-ÑеÑвеÑов**, какой **IP-адÑÐµÑ ÑвÑзан Ñ Ð´Ð¾Ð¼ÐµÐ½Ð¾Ð¼**, Ð´Ð»Ñ Ð¿ÑимеÑа возÑмÑм домен `someapp.example.com`.
-DNS-ÑеÑвеÑа пÑиÑÑлаÑÑ Ð±ÑаÑзеÑÑ Ð¾Ð¿ÑеделÑннÑй **IP-адÑеÑ**, ÑÐ¾Ñ ÑамÑй пÑблиÑнÑй IP-адÑÐµÑ ÐаÑего ÑеÑвеÑа, коÑоÑÑй ÐÑ Ñказали в ÑеÑÑÑÑной "запиÑи Ð" пÑи наÑÑÑойке.
+DNS-ÑеÑвеÑа пÑиÑÑлаÑÑ Ð±ÑаÑзеÑÑ Ð¾Ð¿ÑеделÑннÑй **IP-адÑеÑ**, ÑÐ¾Ñ ÑамÑй пÑблиÑнÑй IP-адÑÐµÑ Ð²Ð°Ñего ÑеÑвеÑа, коÑоÑÑй Ð²Ñ Ñказали в ÑеÑÑÑÑной "запиÑи Ð" пÑи наÑÑÑойке.

@@ -96,7 +96,7 @@ DNS-ÑеÑвеÑа пÑиÑÑлаÑÑ Ð±ÑаÑзеÑÑ Ð¾Ð¿ÑеделÑннÑй

-ÐÑа ÑаÑÑÑ ÐºÐ»Ð¸ÐµÐ½Ñ-ÑеÑвеÑного взаимодейÑÑÐ²Ð¸Ñ ÑÑÑÐ°Ð½Ð°Ð²Ð»Ð¸Ð²Ð°ÐµÑ TLS-Ñоединение и назÑваеÑÑÑ **TLS-ÑÑкопожаÑием**.
+ÐÑа ÑаÑÑÑ ÐºÐ»Ð¸ÐµÐ½Ñ-ÑеÑвеÑного взаимодейÑÑÐ²Ð¸Ñ ÑÑÑÐ°Ð½Ð°Ð²Ð»Ð¸Ð²Ð°ÐµÑ TLS-Ñоединение и назÑваеÑÑÑ **TLS-ÑÑкопожаÑием**.
### TLS Ñ ÑаÑÑиÑением SNI
@@ -185,7 +185,7 @@ DNS-ÑеÑвеÑа пÑиÑÑлаÑÑ Ð±ÑаÑзеÑÑ Ð¾Ð¿ÑеделÑннÑй
* **ÐапÑÑк в каÑеÑÑве пÑогÑаммÑ-ÑеÑвеÑа** (как минимÑм, на вÑÐµÐ¼Ñ Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ ÑеÑÑиÑикаÑов) на пÑблиÑном IP-адÑеÑе домена.
* Ðак Ñже не Ñаз ÑпоминалоÑÑ, ÑолÑко один пÑоÑеÑÑ Ð¼Ð¾Ð¶ÐµÑ Ð¿ÑоÑлÑÑиваÑÑ Ð¾Ð¿ÑеделÑннÑй поÑÑ Ð¾Ð¿ÑеделÑнного IP-адÑеÑа.
* ÐÑо одна из пÑиÑин иÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¿ÑокÑи-ÑеÑвеÑа еÑÑ Ð¸ в каÑеÑÑве пÑогÑÐ°Ð¼Ð¼Ñ Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ ÑеÑÑиÑикаÑов.
- * Ð ÑлÑÑае, еÑли обновлением ÑеÑÑиÑикаÑов занимаеÑÑÑ Ð´ÑÑÐ³Ð°Ñ Ð¿ÑогÑамма, Ðам понадобиÑÑÑ Ð¾ÑÑановиÑÑ Ð¿ÑокÑи-ÑеÑвеÑ, запÑÑÑиÑÑ Ð¿ÑогÑÐ°Ð¼Ð¼Ñ Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ ÑеÑÑиÑикаÑов на ÑокеÑе, пÑедназнаÑенном Ð´Ð»Ñ Ð¿ÑокÑи-ÑеÑвеÑа, наÑÑÑоиÑÑ Ð¿ÑокÑи-ÑеÑÐ²ÐµÑ Ð½Ð° ÑабоÑÑ Ñ Ð½Ð¾Ð²Ñми ÑеÑÑиÑикаÑами и пеÑезапÑÑÑиÑÑ ÐµÐ³Ð¾. ÐÑа ÑÑ
ема далека Ð¾Ñ Ð¸Ð´ÐµÐ°Ð»Ñной, Ñак как ÐаÑи пÑÐ¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð±ÑдÑÑ Ð½ÐµÐ´Ð¾ÑÑÑÐ¿Ð½Ñ Ð½Ð° вÑÐµÐ¼Ñ Ð¾ÑклÑÑÐµÐ½Ð¸Ñ Ð¿ÑокÑи-ÑеÑвеÑа.
+ * Ð ÑлÑÑае, еÑли обновлением ÑеÑÑиÑикаÑов занимаеÑÑÑ Ð´ÑÑÐ³Ð°Ñ Ð¿ÑогÑамма, вам понадобиÑÑÑ Ð¾ÑÑановиÑÑ Ð¿ÑокÑи-ÑеÑвеÑ, запÑÑÑиÑÑ Ð¿ÑогÑÐ°Ð¼Ð¼Ñ Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ ÑеÑÑиÑикаÑов на ÑокеÑе, пÑедназнаÑенном Ð´Ð»Ñ Ð¿ÑокÑи-ÑеÑвеÑа, наÑÑÑоиÑÑ Ð¿ÑокÑи-ÑеÑÐ²ÐµÑ Ð½Ð° ÑабоÑÑ Ñ Ð½Ð¾Ð²Ñми ÑеÑÑиÑикаÑами и пеÑезапÑÑÑиÑÑ ÐµÐ³Ð¾. ÐÑа ÑÑ
ема далека Ð¾Ñ Ð¸Ð´ÐµÐ°Ð»Ñной, Ñак как ÐаÑи пÑÐ¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð±ÑдÑÑ Ð½ÐµÐ´Ð¾ÑÑÑÐ¿Ð½Ñ Ð½Ð° вÑÐµÐ¼Ñ Ð¾ÑклÑÑÐµÐ½Ð¸Ñ Ð¿ÑокÑи-ÑеÑвеÑа.
ÐеÑÑ ÑÑÐ¾Ñ Ð¿ÑоÑеÑÑ Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ, одновÑеменнÑй Ñ Ð¾Ð±ÑлÑживанием запÑоÑов, ÑвлÑеÑÑÑ Ð¾Ð´Ð½Ð¾Ð¹ из оÑновнÑÑ
пÑиÑин, по коÑоÑой желаÑелÑно имеÑÑ **оÑделÑнÑÑ ÑиÑÑÐµÐ¼Ñ Ð´Ð»Ñ ÑабоÑÑ Ñ HTTPS** в виде пÑокÑи-ÑеÑвеÑа завеÑÑÐµÐ½Ð¸Ñ TLS, а не пÑоÑÑо иÑполÑзоваÑÑ ÑеÑÑиÑикаÑÑ TLS непоÑÑедÑÑвенно Ñ ÑеÑвеÑом пÑиложений (напÑимеÑ, Uvicorn).
@@ -193,6 +193,6 @@ DNS-ÑеÑвеÑа пÑиÑÑлаÑÑ Ð±ÑаÑзеÑÑ Ð¾Ð¿ÑеделÑннÑй
ÐалиÑие **HTTPS** оÑÐµÐ½Ñ Ð²Ð°Ð¶Ð½Ð¾ и доволÑно **кÑиÑиÑно** в болÑÑинÑÑве ÑлÑÑаев. Ðднако, Ðам, как ÑазÑабоÑÑикÑ, не нÑжно ÑÑаÑиÑÑ Ð¼Ð½Ð¾Ð³Ð¾ Ñил на ÑÑо, доÑÑаÑоÑно **понимаÑÑ ÑÑи конÑепÑии** и пÑинÑÐ¸Ð¿Ñ Ð¸Ñ
ÑабоÑÑ.
-Ðо Ñзнав базовÑе оÑÐ½Ð¾Ð²Ñ **HTTPS** ÐÑ Ð¼Ð¾Ð¶ÐµÑе легко ÑовмеÑаÑÑ ÑазнÑе инÑÑÑÑменÑÑ, коÑоÑÑе помогÑÑ Ðам в далÑнейÑей ÑазÑабоÑке.
+Ðо Ñзнав базовÑе оÑÐ½Ð¾Ð²Ñ **HTTPS** Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе легко ÑовмеÑаÑÑ ÑазнÑе инÑÑÑÑменÑÑ, коÑоÑÑе помогÑÑ Ð²Ð°Ð¼ в далÑнейÑей ÑазÑабоÑке.
-Ð ÑледÑÑÑиÑ
главаÑ
Ñ Ð¿Ð¾ÐºÐ°Ð¶Ñ Ðам неÑколÑко пÑимеÑов, как наÑÑÑаиваÑÑ **HTTPS** Ð´Ð»Ñ Ð¿Ñиложений **FastAPI**. ð
+Ð ÑледÑÑÑиÑ
главаÑ
Ñ Ð¿Ð¾ÐºÐ°Ð¶Ñ Ð²Ð°Ð¼ неÑколÑко пÑимеÑов, как наÑÑÑаиваÑÑ **HTTPS** Ð´Ð»Ñ Ð¿Ñиложений **FastAPI**. ð
diff --git a/docs/ru/docs/deployment/index.md b/docs/ru/docs/deployment/index.md
index d214a9d62e..e88ddc3e2c 100644
--- a/docs/ru/docs/deployment/index.md
+++ b/docs/ru/docs/deployment/index.md
@@ -8,7 +8,7 @@
ÐбÑÑно **веб-пÑиложениÑ** ÑазмеÑаÑÑ Ð½Ð° ÑдалÑнном компÑÑÑеÑе Ñ ÑеÑвеÑной пÑогÑаммой, коÑоÑÐ°Ñ Ð¾Ð±ÐµÑпеÑÐ¸Ð²Ð°ÐµÑ Ñ
оÑоÑÑÑ Ð¿ÑоизводиÑелÑноÑÑÑ, ÑÑабилÑноÑÑÑ Ð¸ Ñ. д., ЧÑÐ¾Ð±Ñ Ð²Ð°Ñи полÑзоваÑели могли ÑÑÑекÑивно, беÑпÑеÑÑвно и беÑпÑоблемно обÑаÑаÑÑÑÑ Ðº пÑиложениÑ.
-ÐÑо оÑлиÑеÑÑÑ Ð¾Ñ **ÑазÑабоÑки**, когда Ð²Ñ Ð¿Ð¾ÑÑоÑнно менÑеÑе код, делаеÑе в нÑм намеÑеннÑе оÑибки и иÑпÑавлÑеÑе иÑ
, оÑÑанавливаеÑе и пеÑезапÑÑкаеÑе ÑеÑÐ²ÐµÑ ÑазÑабоÑки и Ñ. д.
+ÐÑо оÑлиÑаеÑÑÑ Ð¾Ñ **ÑазÑабоÑки**, когда Ð²Ñ Ð¿Ð¾ÑÑоÑнно менÑеÑе код, делаеÑе в нÑм намеÑеннÑе оÑибки и иÑпÑавлÑеÑе иÑ
, оÑÑанавливаеÑе и пеÑезапÑÑкаеÑе ÑеÑÐ²ÐµÑ ÑазÑабоÑки и Ñ. д.
## СÑÑаÑегии ÑазвÑÑÑÑваниÑ
diff --git a/docs/ru/docs/deployment/manually.md b/docs/ru/docs/deployment/manually.md
index 1d00b30860..a245804896 100644
--- a/docs/ru/docs/deployment/manually.md
+++ b/docs/ru/docs/deployment/manually.md
@@ -1,6 +1,6 @@
# ÐапÑÑк ÑеÑвеÑа вÑÑÑнÑÑ - Uvicorn
-ÐÐ»Ñ Ð·Ð°Ð¿ÑÑка пÑÐ¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ **FastAPI** на ÑдалÑнной ÑеÑвеÑной маÑине Ðам необÑ
одим пÑогÑаммнÑй ÑеÑвеÑ, поддеÑживаÑÑий пÑоÑокол ASGI, Ñакой как **Uvicorn**.
+ÐÐ»Ñ Ð·Ð°Ð¿ÑÑка пÑÐ¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ **FastAPI** на ÑдалÑнной ÑеÑвеÑной маÑине вам необÑ
одим пÑогÑаммнÑй ÑеÑвеÑ, поддеÑживаÑÑий пÑоÑокол ASGI, Ñакой как **Uvicorn**.
СÑÑеÑÑвÑÐµÑ ÑÑи наиболее ÑаÑпÑоÑÑÑанÑннÑе алÑÑеÑнаÑивÑ:
@@ -10,16 +10,16 @@
## СеÑÐ²ÐµÑ ÐºÐ°Ðº маÑина и ÑеÑÐ²ÐµÑ ÐºÐ°Ðº пÑогÑамма
-Ð ÑÑиÑ
ÑеÑминаÑ
еÑÑÑ Ð½ÐµÐºÐ¾ÑоÑÑе ÑазлиÑÐ¸Ñ Ð¸ Ðам ÑледÑÐµÑ Ð·Ð°Ð¿Ð¾Ð¼Ð½Ð¸ÑÑ Ð¸Ñ
. ð¡
+Ð ÑÑиÑ
ÑеÑминаÑ
еÑÑÑ Ð½ÐµÐºÐ¾ÑоÑÑе ÑазлиÑÐ¸Ñ Ð¸ вам ÑледÑÐµÑ Ð·Ð°Ð¿Ð¾Ð¼Ð½Ð¸ÑÑ Ð¸Ñ
. ð¡
Слово "**ÑеÑвеÑ**" ÑаÑе вÑего иÑполÑзÑеÑÑÑ Ð² двÑÑ
конÑекÑÑаÑ
:
- ÑдалÑннÑй или ÑаÑположеннÑй в "облаке" компÑÑÑÐµÑ (ÑизиÑеÑÐºÐ°Ñ Ð¸Ð»Ð¸ виÑÑÑалÑÐ½Ð°Ñ Ð¼Ð°Ñина).
- пÑогÑамма, запÑÑÐµÐ½Ð½Ð°Ñ Ð½Ð° Ñаком компÑÑÑеÑе (напÑимеÑ, Uvicorn).
-ÐÑоÑÑо запомниÑе, еÑли Ðам вÑÑÑеÑилÑÑ ÑеÑмин "ÑеÑвеÑ", Ñо обÑÑно он подÑазÑÐ¼ÐµÐ²Ð°ÐµÑ ÑÑо-Ñо из ÑÑиÑ
двÑÑ
ÑмÑÑлов.
+ÐÑоÑÑо запомниÑе, еÑли вам вÑÑÑеÑилÑÑ ÑеÑмин "ÑеÑвеÑ", Ñо обÑÑно он подÑазÑÐ¼ÐµÐ²Ð°ÐµÑ ÑÑо-Ñо из ÑÑиÑ
двÑÑ
ÑмÑÑлов.
-Ðогда имеÑÑ Ð² Ð²Ð¸Ð´Ñ Ð¸Ð¼ÐµÐ½Ð½Ð¾ ÑдалÑннÑй компÑÑÑеÑ, ÑаÑÑо говоÑÑÑ Ð¿ÑоÑÑо **ÑеÑвеÑ**, но еÑÑ ÐµÐ³Ð¾ назÑваÑÑ **маÑина**, **ÐÐ** (виÑÑÑалÑÐ½Ð°Ñ Ð¼Ð°Ñина), **нода**. ÐÑе ÑÑи ÑеÑÐ¼Ð¸Ð½Ñ Ð¾Ð±Ð¾Ð·Ð½Ð°ÑаÑÑ Ð¾Ð´Ð½Ð¾ и Ñо же - ÑдалÑннÑй компÑÑÑеÑ, обÑÑно под ÑпÑавлением Linux, на коÑоÑом ÐÑ Ð·Ð°Ð¿ÑÑкаеÑе пÑогÑаммÑ.
+Ðогда имеÑÑ Ð² Ð²Ð¸Ð´Ñ Ð¸Ð¼ÐµÐ½Ð½Ð¾ ÑдалÑннÑй компÑÑÑеÑ, ÑаÑÑо говоÑÑÑ Ð¿ÑоÑÑо **ÑеÑвеÑ**, но еÑÑ ÐµÐ³Ð¾ назÑваÑÑ **маÑина**, **ÐÐ** (виÑÑÑалÑÐ½Ð°Ñ Ð¼Ð°Ñина), **нода**. ÐÑе ÑÑи ÑеÑÐ¼Ð¸Ð½Ñ Ð¾Ð±Ð¾Ð·Ð½Ð°ÑаÑÑ Ð¾Ð´Ð½Ð¾ и Ñо же - ÑдалÑннÑй компÑÑÑеÑ, обÑÑно под ÑпÑавлением Linux, на коÑоÑом Ð²Ñ Ð·Ð°Ð¿ÑÑкаеÑе пÑогÑаммÑ.
## УÑÑановка пÑогÑаммного ÑеÑвеÑа
@@ -27,7 +27,7 @@
=== "Uvicorn"
- *
Uvicorn, молниеÑнÑй ASGI ÑеÑвеÑ, оÑнованнÑй на библиоÑекаÑ
uvloop и httptools.
+ *
Uvicorn, оÑÐµÐ½Ñ Ð±ÑÑÑÑÑй ASGI ÑеÑвеÑ, оÑнованнÑй на библиоÑекаÑ
uvloop и httptools.
@@ -40,7 +40,7 @@
!!! tip "ÐодÑказка"
- С опÑией `standard`, Uvicorn бÑÐ´ÐµÑ ÑÑÑановливаÑÑÑÑ Ð¸ иÑполÑзоваÑÑÑÑ Ñ Ð½ÐµÐºÐ¾ÑоÑÑми дополниÑелÑнÑми ÑекомендованнÑми завиÑимоÑÑÑми.
+ С опÑией `standard`, Uvicorn бÑÐ´ÐµÑ ÑÑÑанавливаÑÑÑÑ Ð¸ иÑполÑзоваÑÑÑÑ Ñ Ð½ÐµÐºÐ¾ÑоÑÑми дополниÑелÑнÑми ÑекомендованнÑми завиÑимоÑÑÑми.
РниÑ
вÑ
Ð¾Ð´Ð¸Ñ `uvloop`, вÑÑокопÑоизводиÑелÑÐ½Ð°Ñ Ð·Ð°Ð¼ÐµÐ½Ð° `asyncio`, коÑоÑÐ°Ñ Ð·Ð½Ð°ÑиÑелÑно ÑÑкоÑÑÐµÑ ÑабоÑÑ Ð°ÑинÑ
ÑоннÑÑ
пÑогÑамм.
@@ -62,7 +62,7 @@
## ÐапÑÑк ÑеÑвеÑной пÑогÑаммÑ
-ÐаÑем запÑÑÑиÑе ÐаÑе пÑиложение Ñак же, как бÑло Ñказано в ÑÑководÑÑве Ñанее, но без опÑии `--reload`:
+ÐаÑем запÑÑÑиÑе ваÑе пÑиложение Ñак же, как бÑло Ñказано в ÑÑководÑÑве Ñанее, но без опÑии `--reload`:
=== "Uvicorn"
@@ -103,11 +103,11 @@ Starlette и **FastAPI** оÑÐ½Ð¾Ð²Ð°Ð½Ñ Ð½Ð°
`uvloop`, вÑÑокопÑоизводиÑелÑной заменой `asyncio`.
-Ðо еÑли ÐÑ Ñ
оÑиÑе иÑполÑзоваÑÑ **Trio** напÑÑмÑÑ, Ñо можеÑе воÑполÑзоваÑÑÑÑ **Hypercorn**, Ñак как они ÑовмеÑÑимÑ. â¨
+Ðо еÑли Ð²Ñ Ñ
оÑиÑе иÑполÑзоваÑÑ **Trio** напÑÑмÑÑ, Ñо можеÑе воÑполÑзоваÑÑÑÑ **Hypercorn**, Ñак как они ÑовмеÑÑимÑ. â¨
### УÑÑановка Hypercorn Ñ Trio
-ÐÐ»Ñ Ð½Ð°Ñала, Ðам нÑжно ÑÑÑановиÑÑ Hypercorn Ñ Ð¿Ð¾Ð´Ð´ÐµÑжкой Trio:
+ÐÐ»Ñ Ð½Ð°Ñала, вам нÑжно ÑÑÑановиÑÑ Hypercorn Ñ Ð¿Ð¾Ð´Ð´ÐµÑжкой Trio:
@@ -130,15 +130,15 @@ $ hypercorn main:app --worker-class trio
-Hypercorn, в ÑÐ²Ð¾Ñ Ð¾ÑеÑедÑ, запÑÑÑÐ¸Ñ ÐаÑе пÑиложение иÑполÑзÑÑÑее Trio.
+Hypercorn, в ÑÐ²Ð¾Ñ Ð¾ÑеÑедÑ, запÑÑÑÐ¸Ñ Ð²Ð°Ñе пÑиложение иÑполÑзÑÑÑее Trio.
-Таким обÑазом, ÐÑ ÑможеÑе иÑполÑзоваÑÑ Trio в ÑвоÑм пÑиложении. Ðо лÑÑÑе иÑполÑзоваÑÑ AnyIO, Ð´Ð»Ñ ÑоÑ
ÑÐ°Ð½ÐµÐ½Ð¸Ñ ÑовмеÑÑимоÑÑи и Ñ Trio, и Ñ asyncio. ð
+Таким обÑазом, Ð²Ñ ÑможеÑе иÑполÑзоваÑÑ Trio в ÑвоÑм пÑиложении. Ðо лÑÑÑе иÑполÑзоваÑÑ AnyIO, Ð´Ð»Ñ ÑоÑ
ÑÐ°Ð½ÐµÐ½Ð¸Ñ ÑовмеÑÑимоÑÑи и Ñ Trio, и Ñ asyncio. ð
## ÐонÑепÑии ÑазвÑÑÑÑваниÑ
РвÑÑепÑиведÑннÑÑ
пÑимеÑаÑ
ÑеÑвеÑнÑе пÑогÑÐ°Ð¼Ð¼Ñ (напÑÐ¸Ð¼ÐµÑ Uvicorn) запÑÑкали ÑолÑко **один пÑоÑеÑÑ**, пÑинимаÑÑий вÑ
одÑÑие запÑоÑÑ Ñ Ð»Ñбого IP (на ÑÑо ÑказÑвал аÑгÑÐ¼ÐµÐ½Ñ `0.0.0.0`) на опÑеделÑннÑй поÑÑ (в пÑимеÑаÑ
Ð¼Ñ ÑказÑвали поÑÑ `80`).
-ÐÑо оÑÐ½Ð¾Ð²Ð½Ð°Ñ Ð¸Ð´ÐµÑ. Ðо возможно, ÐÑ Ð¾Ð·Ð°Ð±Ð¾ÑиÑеÑÑ Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸ÐµÐ¼ дополниÑелÑнÑÑ
возможноÑÑей, ÑакиÑ
как:
+ÐÑо оÑÐ½Ð¾Ð²Ð½Ð°Ñ Ð¸Ð´ÐµÑ. Ðо возможно, Ð²Ñ Ð¾Ð·Ð°Ð±Ð¾ÑиÑеÑÑ Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸ÐµÐ¼ дополниÑелÑнÑÑ
возможноÑÑей, ÑакиÑ
как:
* ÐÑполÑзование более безопаÑного пÑоÑокола HTTPS
* ÐаÑÑÑойки запÑÑка пÑиложениÑ
@@ -147,4 +147,4 @@ Hypercorn, в ÑÐ²Ð¾Ñ Ð¾ÑеÑедÑ, запÑÑÑÐ¸Ñ ÐаÑе пÑиложе
* УпÑавление памÑÑÑÑ
* ÐÑполÑзование пеÑеÑиÑленнÑÑ
ÑÑнкÑий пеÑед запÑÑком пÑиложениÑ.
-Я Ð¿Ð¾Ð²ÐµÐ´Ð°Ñ Ðам болÑÑе о каждой из ÑÑиÑ
конÑепÑий в ÑледÑÑÑиÑ
главаÑ
, Ñ ÐºÐ¾Ð½ÐºÑеÑнÑми пÑимеÑами ÑÑÑаÑегий ÑабоÑÑ Ñ Ð½Ð¸Ð¼Ð¸. ð
+Я ÑаÑÑÐºÐ°Ð¶Ñ Ð²Ð°Ð¼ болÑÑе о каждой из ÑÑиÑ
конÑепÑий в ÑледÑÑÑиÑ
главаÑ
, Ñ ÐºÐ¾Ð½ÐºÑеÑнÑми пÑимеÑами ÑÑÑаÑегий ÑабоÑÑ Ñ Ð½Ð¸Ð¼Ð¸. ð