Как близко веб-серверы разработки к производственным веб-серверам?

Оказалось, что мне нужно добавить некоторую дополнительную информацию к клавише files, чтобы FormData распознал ее как файл и Strapi мог обрабатывать загрузку файла. Вот что работает:

      const data = new FormData();
      data.append('files', {
        uri: logo.uri,
        name: `test.jpg`,
        type: 'multipart/form-data'
      });
      data.append('refId', id);
      data.append('ref', 'Restaurants');
      data.append('field', 'Logo');

Что действительно важно, так это type: 'multipart/form-data.

Еще одно замечание, в документации есть еще один ключ, который называется source. Я не использовал его, и это, кажется, ни на что не влияет. Обратите внимание, если это необходимо.

5
задан Jason Baker 19 October 2008 в 14:45
поделиться

5 ответов

Более низкие среды должны попытаться соответствовать продуктивной среде максимально тесно, учитывая доступные ресурсы. Это относится ко всем усилиям по разработке независимо от того, основаны ли они на Python или даже веб-. На практике большинство организаций не готово потратить тот тип денег. В этой попытке случая сделать, по крайней мере, среду, которая является непосредственно ниже производства максимально близко к производству.

Часть переменной для учета:

  • много раз существует несколько машин (сервер приложений, сервер базы данных, веб-сервер, подсистемы балансировки нагрузки, брандмауэры, и т.д.) в производстве. Сохраните их все в памяти.

  • Операционные системы

  • количество центральных процессоров. Перемещение от того ЦП, более низкая среда к многоядерной продуктивной среде может выставить проблемы многопоточности, которые не были протестированы

  • выравнивание нагрузки. Много раз более низкие среды не являются сбалансированной загрузкой. При тиражировании сессий (например), через несколько серверов производственного приложения необходимо попытаться сделать то же в более низкой среде

  • Программное обеспечение / версии библиотеки

5
ответ дан 13 December 2019 в 22:19
поделиться

Я разрабатываю с django. Рабочий сервер, который мы имеем, является удаленным, таким образом, это - боль для использования его для разработки. Таким образом, сначала, я создал vm и попытался соответствовать так тесно, как я мог среда сервера напоминания. В какой-то момент это vm было полито из шланга (из-за несвязанного инцидента). Я изучил ситуацию в то время и понял там, действительно не было никакое серьезное основание использовать специализированный vm для разработки. Так как ресурсы, доступные приложению, не были тем же как сервером напоминания, это было бесполезно для синхронизации запросов так или иначе (в абсолютном смысле).

Тем не менее я теперь использую django's, созданный в dev сервере с sqlite для разработки, и apache/wsgi и postgresql для производства. Пока зависимости от Python встречены с обеих сторон, это на 100% совместимо. Единственная потенциальная проблема записала бы сырые данные sql вместо того, чтобы использовать orm.

2
ответ дан 13 December 2019 в 22:19
поделиться

Обычно они - то же с точки зрения настроек, которые требуются запустить приложения, которые включают параметр среды.
Однако у клиентов genereally есть dev системы, которые менее мощны с точки зрения вычислительной мощности и других h/w ресурсов. Я видел использование их виртуальные серверы в dev evironment, так как у них обычно есть несколько проектов, идущих параллельно на это, помогает им уменьшающий стоимость.

2
ответ дан 13 December 2019 в 22:19
поделиться

Ваша среда подготовки должна подражать Вашей продуктивной среде. Разработка больше похожа на детскую площадку, и контроль на среде разработки не должен быть вполне настолько строгим. Однако среда разработки должна периодически обновляться от продуктивной среды (например. данные напоминания, скопированные в dev дб, закройте порты на dev, которые закрываются на напоминании, и т.д.).

Идеально, dev, этап и напоминание являются всеми на отдельных машинах. Отдельные машины могут быть отдельными физическими полями или виртуальными машинами на том же физическом поле, в зависимости от бюджета/потребностей.

0
ответ дан 13 December 2019 в 22:19
поделиться

Идеально, логическая конфигурация разработки, теста и рабочего сервера должна быть тем же. У них должна быть та же версия ОС, веб-сервера, и все другие программные ресурсы раньше запускали приложение. Однако в зависимости от того, как сильный Ваши вещи среды обрежут - рука скопировала изображения/сценарии и т.д. на dev машине, которые не делают ее через тест и или производство.

для уменьшения этого, Вам, вероятно, нужен своего рода сценарий нажатия, который может переместить Вас от одного этапа до следующего, т.е. PushVersionDev, PushVesionTest, PushVersionProd. идеально, это должно быть тем же сценарием с параметрами для целевого сервера (серверов), представляющего все, что необходимо переместить приложение через различные этапы.

Я рекомендовал бы чтение книги Theo Schlossnagle Масштабируемая интернет-Архитектура для большего количества идей о вопросе.

Для ответа на вопрос непосредственно...., после того как Вы протестировали свое приложение и реализованный время для прокрутки к productoin не прекрасно - развертывают ОС, веб-сервер, поддерживая платформы, если им нужна установка, приложение, и Вы хороши для движения. От чистого металла я видел, что серверы Linux идут онлайн через 1 час, окна приблизительно 90 минут. если у Вас есть ОС и веб-сервер, идущий еще меньше.. минуты.

1
ответ дан 13 December 2019 в 22:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: