🌐 Update Russian translations for deployments docs#11271
Conversation
|
📝 Docs preview for commit 89cd255 at: https://f06c65b9.fastapitiangolo.pages.dev |
| 4. Установите библиотеки перечисленные в файле с зависимостями. | ||
|
|
||
| Опция `--no-cache-dir` указывает `pip` не сохранять загружаемые библиотеки на локальной машине для использования их в случае повторной загрузки. В контейнере, в случае пересборки этого шага, они всё равно будут удалены. | ||
| Опция `--no-cache-dir` указывает `pip` не сохранять загружаемые библиотеки на локальной машине для использования их в случае повторной загрузки. В контейнере, в случае пере сборки этого шага, они всё равно будут удалены. |
There was a problem hiding this comment.
"пересборки" was the right way to spell it
|
|
||
| Следующие концепции рассматривают применение программы, запускающей Ваш API (такой как Uvicorn). | ||
| Следующие концепции рассматривают применение программы, запускающей Ваш API (такой, как Uvicorn). | ||
|
|
There was a problem hiding this comment.
"как" в значении тождества – запятая не ставится. Здесь и далее.
|
|
||
| Вероятно Вы пожелаете, чтоб Ваша серверная программа (такая как Uvicorn) стартовала автоматически при включении сервера, без **человеческого вмешательства** и всегда могла управлять Вашим API (так как Uvicorn запускает приложение FastAPI). | ||
| Вероятно Вы пожелаете, чтоб Ваша серверная программа (такая, как Uvicorn) стартовала автоматически при включении сервера, без **человеческого вмешательства** и всегда могла управлять Вашим API (так как Uvicorn запускает приложение FastAPI). | ||
|
|
There was a problem hiding this comment.
"Вы" с большой буквы здесь лишнее, это анахронизм, особенно в современном "плоском", без иерархий, IT.
"Пожелаете" – опять же, используется к лицам стоящим выше по иерархии. Просто "захотите".
human intervention – скорее "ручное вмешательство".
Про управление там ничего нет.
There was a problem hiding this comment.
Лучше вообще перевести заново. Там немного всё иначе.
There was a problem hiding this comment.
Запятая не нужна – "как" в значении тождества.
|
|
||
| Интересная деталь - обычно в течение времени процент **использования центрального процессора (CPU)** каждым процессом может очень сильно **изменяться**, но объём занимаемой **оперативной памяти (RAM)** остаётся относительно **стабильным**. | ||
| Интересная деталь - обычно в течение времени процент **использования центрального процессора (CPU)** каждым процессом может очень сильно **изменяться**, но объём занимаемой **оперативной памяти (RAM)** остаётся относительно **стабильным**. | ||
|
|
There was a problem hiding this comment.
An interesting detail is that the percentage of the CPU used by each process can vary a lot over time, but the memory (RAM) normally stays more or less stable.
"Что интересно: с течением времени процент использования CPU каждым из процессов сильно варьируется, в то время как потребляемая память (RAM) остаётся более-менее неизменной."
| CMD ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "80"] | ||
|
|
||
| # Если используете прокси-сервер, такой как Nginx или Traefik, добавьте --proxy-headers | ||
| # Если используете прокси-сервер, такой, как Nginx или Traefik, добавьте --proxy-headers |
There was a problem hiding this comment.
не нужна запятая, как и в других местах
|
|
||
| Этот файл **изменяется довольно редко**, Docker ищет изменения при постройке образа и если не находит, то использует **кэш**, в котором хранятся предыдущии версии сборки образа. | ||
| Этот файл **изменяется довольно редко**, Docker ищет изменения при постройке образа и если не находит, то использует **кэш**, в котором хранятся предыдущие версии сборки образа. | ||
|
|
There was a problem hiding this comment.
Обычно у нас говорят "сборка образа".
|
|
||
| Эта команда будет выполнена в **текущей рабочей директории**, а именно в директории `/code`, котоая указана командой `WORKDIR /code`. | ||
| Эта команда будет выполнена в **текущей рабочей директории**, а именно в директории `/code`, которая указана командой `WORKDIR /code`. | ||
|
|
There was a problem hiding this comment.
хотя бы "указана в команде WORKDIR"
либо просто "из команды WORKDIR"
| Но узнав базовые основы **HTTPS** Вы можете легко совмещать разные инструменты, которые помогут Вам в дальнейшей разработке. | ||
|
|
||
| В следующих главах я покажу Вам несколько примеров, как настраивать **HTTPS** для приложений **FastAPI**. 🔒 | ||
| В следующих главах я покажу Вам несколько примеров, как настраивать **HTTPS** для приложений **FastAPI**. 🔒 No newline at end of file |
There was a problem hiding this comment.
Примеры обычно не показывают, а скорее хотят продемонстировать, предлагают.
| # Запуск сервера вручную - Uvicorn | ||
|
|
||
| Для запуска приложения **FastAPI** на удалённой серверной машине Вам необходим программный сервер, поддерживающий протокол ASGI, такой как **Uvicorn**. | ||
| Для запуска приложения **FastAPI** на удалённой серверной машине Вам необходим программный сервер, поддерживающий протокол ASGI, такой, как **Uvicorn**. |
There was a problem hiding this comment.
Сервер приложений это у нас называется, "сервер ASGI приложений". Запятая не нужна.
|
|
||
| * <a href="https://www.uvicorn.org/" class="external-link" target="_blank">Uvicorn</a>, молниесный ASGI сервер, основанный на библиотеках uvloop и httptools. | ||
| * <a href="https://www.uvicorn.org/" class="external-link" target="_blank">Uvicorn</a>, молниеносный ASGI сервер, основанный на библиотеках uvloop и httptools. | ||
|
|
There was a problem hiding this comment.
"молниеносный ASGI сервер" – у нас так не говорят. Можно просто "супер-быстрый".
| * Использование перечисленных функций перед запуском приложения. | ||
|
|
||
| Я поведаю Вам больше о каждой из этих концепций в следующих главах, с конкретными примерами стратегий работы с ними. 🚀 | ||
| Я поведаю Вам больше о каждой из этих концепций в следующих главах, с конкретными примерами стратегий работы с ними. 🚀 No newline at end of file |
There was a problem hiding this comment.
Корень "ведать" – древний, не особо подходит по контексту. Может иметь ироничный оттенок.
|
У Тианоголо по всем докам простой, товарищеский тон, безо всякий взвиваний и возвышений, об этом важно помнить при переводе. |
…-docs # Conflicts: # docs/ru/docs/deployment/manually.md
|
📝 Docs preview for commit 5176279 at: https://995dd47e.fastapitiangolo.pages.dev |
|
I agree with some comments, edits have been made |
|
📝 Docs preview for commit b5db82e at: https://172e7cd5.fastapitiangolo.pages.dev |
| Здесь я немного расскажу Вам об этих **концепциях** и надеюсь, что у Вас сложится **интуитивное понимание**, какой способ выбрать при развертывании Вашего API в различных окружениях, возможно, даже **ещё не существующих**. | ||
|
|
||
| Ознакомившись с этими концепциями, Вы сможете **оценить и выбрать** лучший способ развёртывании **Вашего API**. | ||
| Ознакомившись с этими концепциями, вы сможете **оценить и выбрать** лучший способ развёртывании **Вашего API**. |
| ### Примеры инструментов для работы с HTTPS | ||
|
|
||
| Вот некоторые инструменты, которые Вы можете применять как прокси-серверы: | ||
| Вот некоторые инструменты, которые вы можете применять как прокси-серверы: |
There was a problem hiding this comment.
здесь "инструменты" лучше как-то иначе перевести
| * И **одна программа** может запустить **несколько параллельных процессов**. | ||
|
|
||
| Если Вы заглянете в "диспетчер задач" или "системный монитор" (или аналогичные инструменты) Вашей операционной системы, то увидите множество работающих процессов. | ||
| Если вы заглянете в "диспетчер задач" или "системный монитор" (или аналогичные инструменты) Вашей операционной системы, то увидите множество работающих процессов. |
There was a problem hiding this comment.
здесь можно использовать вместо "инструменты" – средства.
| Это рабочий способ и он полезен **во время разработки**. | ||
|
|
||
| Но если Вы потеряете соединение с сервером, то не сможете отслеживать - работает ли всё ещё **запущенный Вами процесс**. | ||
| Но если вы потеряете соединение с сервером, то не сможете отслеживать - работает ли всё ещё **запущенный Вами процесс**. |
There was a problem hiding this comment.
можно легче: "продолжает ли работать запущенный вами процесс". Опять же, "вы" – с маленькой. Тире не нужно.
| Но если вы потеряете соединение с сервером, то не сможете отслеживать - работает ли всё ещё **запущенный Вами процесс**. | ||
|
|
||
| И если сервер перезагрузится (например, после обновления или каких-то действий облачного провайдера), Вы скорее всего **этого не заметите**, чтобы снова запустить процесс вручную. Вследствие этого Ваш API останется мёртвым. 😱 | ||
| И если сервер перезагрузится (например, после обновления или каких-то действий облачного провайдера), вы скорее всего **этого не заметите**, чтобы снова запустить процесс вручную. Вследствие этого Ваш API останется мёртвым. 😱 |
There was a problem hiding this comment.
снова запустить –> перезапустить
мёртвым –> у нас так грубо не говорят, надо заменить, или хотя бы взять в кавычки.
| ## Перезапуск | ||
|
|
||
| Вы, вероятно, также пожелаете, чтоб Ваше приложение **перезапускалось**, если в нём произошёл сбой. | ||
| Вы, вероятно, также захотите, чтоб Ваше приложение **перезапускалось**, если в нём произошёл сбой. |
There was a problem hiding this comment.
"чтоб" – просторечие, лучше полное "чтобы"
"вы" – с маленькой
| ### Небольшие ошибки обрабатываются автоматически | ||
|
|
||
| Когда Вы создаёте свои API на основе FastAPI и допускаете в коде ошибку, то FastAPI обычно остановит её распространение внутри одного запроса, при обработке которого она возникла. 🛡 | ||
| Когда вы создаёте свои API на основе FastAPI и допускаете в коде ошибку, то FastAPI обычно остановит её распространение внутри одного запроса, при обработке которого она возникла. 🛡 |
There was a problem hiding this comment.
"перехватит", либо "ограничит её распространение одним запросом"
| Поэтому Вам нужен будет **один процесс**, выполняющий эти **подготовительные шаги** до запуска приложения. | ||
|
|
||
| Также Вам нужно будет убедиться, что этот процесс выполнил подготовительные шаги *даже* если впоследствии Вы запустите **несколько процессов** (несколько воркеров) самого приложения. Если бы эти шаги выполнялись в каждом **клонированном процессе**, они бы **дублировали** работу, пытаясь выполнить её **параллельно**. И если бы эта работа была бы чем-то деликатным, вроде миграции базы данных, то это может вызвать конфликты между ними. | ||
| Также Вам нужно будет убедиться, что этот процесс выполнил подготовительные шаги *даже* если впоследствии вы запустите **несколько процессов** (несколько воркеров) самого приложения. Если бы эти шаги выполнялись в каждом **клонированном процессе**, они бы **дублировали** работу, пытаясь выполнить её **параллельно**. И если бы эта работа была бы чем-то деликатным, вроде миграции базы данных, то это может вызвать конфликты между ними. |
There was a problem hiding this comment.
"И если бы эта работа была бы чем-то деликатным, вроде миграции базы данных, то это может вызвать конфликты между ними."
-> И если выполняемая работа – нечто деликатное, вроде миграций базы данных, то в результате может случиться конфликт.
| ### Примеры стратегий запуска предварительных шагов | ||
|
|
||
| Существует **сильная зависимость** от того, как Вы **развёртываете свою систему**, запускаете программы, обрабатываете перезапуски и т.д. | ||
| Существует **сильная зависимость** от того, как вы **развёртываете свою систему**, запускаете программы, обрабатываете перезапуски и т.д. |
There was a problem hiding this comment.
This will depend heavily on the way you deploy your system
– Это очень зависит от того...
| Ваш сервер располагает ресурсами, которые Ваши программы могут потреблять или **утилизировать**, а именно - время работы центрального процессора и объём оперативной памяти. | ||
|
|
||
| Как много системных ресурсов Вы предполагаете потребить/утилизировать? Если не задумываться, то можно ответить - "немного", но на самом деле Вы, вероятно, пожелаете использовать **максимально возможное количество**. | ||
| Как много системных ресурсов вы предполагаете потребить/утилизировать? Если не задумываться, то можно ответить - "немного", но на самом деле Вы, вероятно, захотите использовать **максимально возможное количество**. |
| В такой ситуации лучше подключить **ещё один сервер** и перераспределить процессы между серверами, чтоб всем **хватало памяти и процессорного времени**. | ||
|
|
||
| Также есть вероятность, что по какой-то причине возник **всплеск** запросов к Вашему API. Возможно, это был вирус, боты или другие сервисы начали пользоваться им. И для таких происшествий Вы можете захотеть иметь дополнительные ресурсы. | ||
| Также есть вероятность, что по какой-то причине возник **всплеск** запросов к Вашему API. Возможно, это был вирус, боты или другие сервисы начали пользоваться им. И для таких происшествий вы можете захотеть иметь дополнительные ресурсы. |
| Также есть вероятность, что по какой-то причине возник **всплеск** запросов к Вашему API. Возможно, это был вирус, боты или другие сервисы начали пользоваться им. И для таких происшествий вы можете захотеть иметь дополнительные ресурсы. | ||
|
|
||
| При настройке логики развёртываний, Вы можете указать **целевое значение** утилизации ресурсов, допустим, **от 50% до 90%**. Обычно эти метрики и используют. | ||
| При настройке логики развёртываний, вы можете указать **целевое значение** утилизации ресурсов, допустим, **от 50% до 90%**. Обычно эти метрики и используют. |
There was a problem hiding this comment.
You could put an arbitrary number to target, for example, something between 50% to 90% of resource utilization.
– Вы можете установить произвольное целевое значение утилизации ресурсов, где-нибудь между 50 и 90 процентами. Смысл в том, что это будут основные значения которые нужно будет контролировать и изменять для подстройки ваших развертываний.
| Ка и в предыдущем шаге с копированием файла, этот шаг также будет использовать **кэш Docker** в случае отсутствия изменений. | ||
|
|
||
| Использрвание кэша, особенно на этом шаге, позволит Вам **сэкономить** кучу времени при повторной сборке образа, так как зависимости будут сохранены в кеше, а не **загружаться и устанавливаться каждый раз**. | ||
| Использование кэша, особенно на этом шаге, позволит Вам **сэкономить** кучу времени при повторной сборке образа, так как зависимости будут сохранены в кеше, а не **загружаться и устанавливаться каждый раз**. |
| ## Альтернативная документация API | ||
|
|
||
| Также Вы можете перейти по ссылке <a href="http://192.168.99.100/redoc" class="external-link" target="_blank">http://192.168.99.100/redoc</a> or <a href="http://127.0.0.1/redoc" class="external-link" target="_blank">http://127.0.0.1/redoc</a> (или похожей, которую использует Ваш Docker-хост). | ||
| Также вы можете перейти по ссылке <a href="http://192.168.99.100/redoc" class="external-link" target="_blank">http://192.168.99.100/redoc</a> or <a href="http://127.0.0.1/redoc" class="external-link" target="_blank">http://127.0.0.1/redoc</a> (или похожей, которую использует Ваш Docker-хост). |
There was a problem hiding this comment.
Ваш Docker-хост –> ваш Docker-хост
s111d
left a comment
There was a problem hiding this comment.
Some correction added as comments, kindly double check.
| ## Запуск нескольких экземпляров приложения - Указание количества процессов | ||
|
|
||
| Если у Вас есть <abbr title="Несколько серверов настроенных для совместной работы.">кластер</abbr> машин под управлением **Kubernetes**, Docker Swarm Mode, Nomad или аналогичной сложной системой оркестрации контейнеров, скорее всего, вместо использования менеджера процессов (типа Gunicorn и его воркеры) в каждом контейнере, Вы захотите **управлять количеством запущенных экземпляров приложения** на **уровне кластера**. | ||
| Если у Вас есть <abbr title="Несколько серверов настроенных для совместной работы.">кластер</abbr> машин под управлением **Kubernetes**, Docker Swarm Mode, Nomad или аналогичной сложной системой оркестрации контейнеров, скорее всего, вместо использования менеджера процессов (типа Gunicorn и его воркеры) в каждом контейнере, вы захотите **управлять количеством запущенных экземпляров приложения** на **уровне кластера**. |
| --- | ||
|
|
||
| Самое главное - **ни одно** из перечисленных правил не является **высеченным в камне** и Вы не обязаны слепо их повторять. Вы можете использовать эти идеи при **рассмотрении Вашего конкретного случая** и самостоятельно решать, какая из концепции подходит лучше: | ||
| Самое главное - **ни одно** из перечисленных правил не является **высеченным в камне** и вы не обязаны слепо их повторять. вы можете использовать эти идеи при **рассмотрении Вашего конкретного случая** и самостоятельно решать, какая из концепции подходит лучше: |
There was a problem hiding this comment.
"Высеченным на камне" либо "отлитым в бронзе"
| Если у Вас **простенькое** приложение, вероятно у Вас не будет **необходимости** устанавливать жёсткие ограничения на выделяемую ему память. Но если приложение **использует много памяти** (например, оно использует модели **машинного обучения**), Вам следует проверить, как много памяти ему требуется и отрегулировать **количество контейнеров** запущенных на **каждой машине** (может быть даже добавить машин в кластер). | ||
|
|
||
| Если Вы запускаете **несколько процессов в контейнере**, то должны быть уверены, что эти процессы не **займут памяти больше**, чем доступно для контейнера. | ||
| Если вы запускаете **несколько процессов в контейнере**, то должны быть уверены, что эти процессы не **займут памяти больше**, чем доступно для контейнера. |
There was a problem hiding this comment.
думаю лучше будет так как есть
There was a problem hiding this comment.
лучше вообще "выделено контейнеру". Ну и – падежи.
| ### Множество контейнеров | ||
|
|
||
| Когда Вы запускаете **множество контейнеров**, в каждом из которых работает **только один процесс** (например, в кластере **Kubernetes**), может возникнуть необходимость иметь **отдельный контейнер**, который осуществит **предварительные шаги перед запуском** остальных контейнеров (например, применяет миграции к базе данных). | ||
| Когда вы запускаете **множество контейнеров**, в каждом из которых работает **только один процесс** (например, в кластере **Kubernetes**), может возникнуть необходимость иметь **отдельный контейнер**, который осуществит **предварительные шаги перед запуском** остальных контейнеров (например, применяет миграции к базе данных). |
There was a problem hiding this comment.
возникнуть необходимость –> потребоваться
There was a problem hiding this comment.
думаю лучше будет так как есть
There was a problem hiding this comment.
Канцеляризм, но сойдёт, в принципе.
| ### Большие приложения | ||
|
|
||
| Если Вы успели ознакомиться с разделом [Приложения содержащие много файлов](../tutorial/bigger-applications.md){.internal-link target=_blank}, состоящие из множества файлов, Ваш Dockerfile может выглядеть так: | ||
| Если вы успели ознакомиться с разделом [Приложения содержащие много файлов](../tutorial/bigger-applications.md){.internal-link target=_blank}, состоящие из множества файлов, Ваш Dockerfile может выглядеть так: |
There was a problem hiding this comment.
тут скорее "разбитые на несколько файлов"
Ваш Dockerfile –> ваш Dockerfile
There was a problem hiding this comment.
думаю лучше так как есть
There was a problem hiding this comment.
Несколько косноязычно. Можно просто: "приложения из нескольких файлов" или "приложения размером побольше", "крупные приложения" .
| В большинстве случаев Вам, вероятно, не нужно использовать какой-либо базовый образ, **лучше создать образ контейнера с нуля** на основе официального Docker-образа Python. | ||
|
|
||
| Позаботившись о **порядке написания** инструкций в `Dockerfile`, Вы сможете использовать **кэш Docker'а**, **минимизировав время сборки**, максимально повысив свою производительность (и избежать скуки). 😎 | ||
| Позаботившись о **порядке написания** инструкций в `Dockerfile`, вы сможете использовать **кэш Docker'а**, **минимизировав время сборки**, максимально повысив свою производительность (и избежать скуки). 😎 |
There was a problem hiding this comment.
"избежать скуки" у нас не говорят – не заскучать
|
|
||
| !!! tip "Заметка" | ||
| Если Вы торопитесь или Вам не интересно, можете перейти на следующую страницу этого пошагового руководства по размещению приложений на серверах с использованием различных технологий. | ||
| Если вы торопитесь или Вам не интересно, можете перейти на следующую страницу этого пошагового руководства по размещению приложений на серверах с использованием различных технологий. |
| Чаще всего, всё начинается с **приобретения имени домена**. Затем нужно настроить DNS-сервер (вероятно у того же провайдера, который выдал Вам домен). | ||
|
|
||
| Далее, возможно, Вы получаете "облачный" сервер (виртуальную машину) или что-то типа этого, у которого есть <abbr title="Не изменяемый">постоянный</abbr> **публичный IP-адрес**. | ||
| Далее, возможно, вы получаете "облачный" сервер (виртуальную машину) или что-то типа этого, у которого есть <abbr title="Не изменяемый">постоянный</abbr> **публичный IP-адрес**. |
There was a problem hiding this comment.
не уверен на счет правильности, мне кажется что лучше оставить как есть
There was a problem hiding this comment.
Абсолютно точно ошибка.
"В большинстве случаев прилагательное "неизменяемый" пишется слитно с "не". Его можно заменить синонимами: "постоянный", "устоявшийся"."
| Наличие **HTTPS** очень важно и довольно **критично** в большинстве случаев. Однако, Вам, как разработчику, не нужно тратить много сил на это, достаточно **понимать эти концепции** и принципы их работы. | ||
|
|
||
| Но узнав базовые основы **HTTPS** Вы можете легко совмещать разные инструменты, которые помогут Вам в дальнейшей разработке. | ||
| Но узнав базовые основы **HTTPS** вы можете легко совмещать разные инструменты, которые помогут Вам в дальнейшей разработке. |
There was a problem hiding this comment.
узнав базовые основы HTTPS – обстоятельство образа действия, берётся в запятые.
| * Использование перечисленных функций перед запуском приложения. | ||
|
|
||
| Я поведаю Вам больше о каждой из этих концепций в следующих главах, с конкретными примерами стратегий работы с ними. 🚀 | ||
| Я расскажу Вам больше о каждой из этих концепций в следующих главах, с конкретными примерами стратегий работы с ними. 🚀 |
…-docs # Conflicts: # docs/ru/docs/deployment/manually.md
|
📝 Docs preview for commit e1c6f15 at: https://e9a042f1.fastapitiangolo.pages.dev |
|
📝 Docs preview for commit 66bbb0d at: https://dda441bd.fastapitiangolo.pages.dev |
|
Since @Lufa1u made the requested changes, we will merge this. If anyone finds something that should be updated here, feel free to create a new PR. 🤓 Thank you all for the help! @Lufa1u @s111d @wisderfin @alex-pobeditel-2004 🤓 🚀 |
Correction of spelling and punctuation errors in Russian documentation.