Как перенести хостинг java-приложений с apache tomcat в облако?

Я хочу перенести свое приложение в облако. Какие дополнительные вещи мне нужно изучить для этого? И какие изменения я должен внести в свой код? Заранее спасибо!!


person Chirag Kawariya    schedule 07.05.2015    source источник
comment
Ставьте поподробнее, что за приложение?   -  person cylinder.y    schedule 07.05.2015
comment
Это веб-приложение   -  person Chirag Kawariya    schedule 07.05.2015
comment
Может быть полезно stackoverflow.com/questions/2217693/   -  person cylinder.y    schedule 07.05.2015
comment
Я уже использую сервер Tomcat. Но теперь я хочу развернуть это приложение в облаке .. !!   -  person Chirag Kawariya    schedule 07.05.2015
comment
Если у вас есть конкретный облачный провайдер, которого вы хотите использовать, вы должны упомянуть об этом - всегда есть особенности поставщика, которые могут изменить способ реализации частей вашего решения.   -  person Paul Jowett    schedule 09.05.2015


Ответы (1)


Что нужно изучить:

  1. Горизонтальная масштабируемость и автоматическое масштабирование.
  2. Шаблон рабочего процесса, ориентированный на очередь.
  3. Конечная последовательность.
  4. Шардинг базы данных.
  5. Базы данных NoSQL.
  6. Задержка в сети и ее влияние на перфорацию.
  7. CDN.
  8. Непрерывная интеграция и непрерывное развертывание.

Я рекомендую вам книгу «Шаблоны облачной архитектуры: использование Microsoft Azure» https://rads.stackoverflow.com/amzn/click/com/1449319777

Изменения, которые могут потребоваться в вашем приложении:

  1. Сделайте узел приложения не имеющим состояния: в вашем приложении не нужно сохранять сеанс. Взгляните на весеннюю сессию http://projects.spring.io/spring-session/. Он может использовать Redis в качестве хранилища сеансов. Другой вариант - использовать липкие сеансы, но такой подход снижает масштабируемость.
  2. Поскольку ваш узел приложения не имеет состояния и может быть удален из-за масштабирования действий в любое время, вы не можете использовать жесткий диск для изображений (других файлов), загруженных пользователями. Возможно, вам потребуется использовать внешнее хранилище файлов, например S3 http://aws.amazon.com/s3/.
  3. Ваша база данных должна быть на отдельном узле.
  4. Вам необходимо использовать централизованный кеш, поскольку локальный кеш не будет аннулирован, когда на других узлах произойдут изменения, которые могут привести к несогласованности данных. Взгляните на Amazon ElastiCache http://aws.amazon.com/elasticache/ или Hazelcast http://hazelcast.com/
  5. Если вы теперь используете механизмы синхронизации Java, такие как синхронизированный блок или блокировка, для управления параллелизмом, вы должны иметь в виду, что вам необходимо синхронизировать между несколькими узлами. Возможно, вам потребуется использовать службу распределенной блокировки (Terracotta или Hazelcast)
  6. Вам нужны хорошие планы миграции и отката.
person medvedev1088    schedule 07.05.2015