Каковы изменения уровня приложения при развертывании в облаке по сравнению с локальным - PullRequest
0 голосов
/ 13 февраля 2019

Хотелось бы узнать, какие изменения в приложении будут применены, если мы будем использовать облачное / локальное оборудование.
На основе облака: Нам не нужно беспокоиться о серверах, программном обеспечении, масштабируемости, управлении сеансами, балансировке нагрузки и т. Д.
Локально: Все это также может бытьдостигнуто на предпосылке.

Пример: Мы можем рассмотреть простое веб-приложение, в котором хранится информация о клиенте, а на другой странице перечисляются все данные о клиентах, зарегистрированные в приложении.Он разрабатывается с использованием Web API, базы данных SQL и Angular / React в качестве технологии переднего плана.

Существуют ли какие-либо конкретные изменения, которые необходимо внести в приложение, если мы выбрали либо облако, либо локальное решение?

1 Ответ

0 голосов
/ 15 февраля 2019

Вы можете в значительной степени выполнить локальное перенос приложения в облако без изменений кода приложения.

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

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

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

Например (на примере AWS):

  • Вместо того, чтобы самостоятельно управлять базой данных MongoDB, рассмотритеDynamoDB (полностью управляемая база данных без SQL)
  • Вместо традиционной базы данных SQL, такой как PostgreSQL,Рассмотрим RDS (полностью управляемая база данных как услуга, поддерживающая несколько БД, таких как PostgreSQL, MariaDB, MySQL и т. д.)
  • Вместо самостоятельной настройки балансировщиков нагрузки рассмотрим ELB (управляемые балансировщики нагрузки сети и приложений)
  • Вместо запуска брокера сообщений, такого как RabbitMQ, рассмотрим SQS и SNS (облегченный обмен сообщениями на основе HTTP)
  • Вместо целого множества виртуальных серверов EC2, работающих под вашей операционной системой, сервером приложений и кодом микросервисаподумайте, можете ли вы реализовать ее как лямбда без сохранения состояния (функция-как-услуга, т. е. ничего, кроме вашего кода, никакого O / S, сервера приложений или управления контейнерами).

МногоеЭти услуги могут автоматически и беспрепятственно масштабироваться для удовлетворения спроса, и вы платите только за то, что используете, а не за чрезмерное обеспечение.

Это всего лишь несколько идей о том, как можно переосмыслить дизайн своего приложения, чтобывоспользоваться облаком.Просто имейте в виду, что вы подключаетесь к поставщику по этому пути.

Редактировать: ОК, так что, если вы планируете строить в помещении, а затем мигрировать позже, облачные собственные опции, приведенные выше, явно не собираютсяработать, хотя некоторые все еще применимы.

Таким образом, самый простой подход состоит в том, чтобы построить ваше приложение как обычно и затем перейти к инфраструктуре как услуге (IaaS) с вашей ОС, сервером приложений и приложением, работающим поверх этого.жизнь это делает сегодня.Переместите вашу БД в эквивалент управляемой службы.Попробуйте просто отказаться от своих локальных балансировщиков нагрузки и использовать облачные собственные балансировщики нагрузки в точке миграции.

Другой подход заключается в использовании контейнеров, в частности Docker, для упаковки и развертывания в помещении.Вам нужно будет управлять своим собственным кластером Docker, но при переносе приложения в облако вы можете разместить его в управляемой службе, такой как ECS (сервис AWS Elastic Container Service) или EKS (сервис AWS Elastic Kubernetes).

...