Я хочу перенести свое приложение в облако. Какие дополнительные вещи мне нужно изучить для этого? И какие изменения я должен внести в свой код? Заранее спасибо!!
Как перенести хостинг java-приложений с apache tomcat в облако?
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)
Что нужно изучить:
- Горизонтальная масштабируемость и автоматическое масштабирование.
- Шаблон рабочего процесса, ориентированный на очередь.
- Конечная последовательность.
- Шардинг базы данных.
- Базы данных NoSQL.
- Задержка в сети и ее влияние на перфорацию.
- CDN.
- Непрерывная интеграция и непрерывное развертывание.
Я рекомендую вам книгу «Шаблоны облачной архитектуры: использование Microsoft Azure» https://rads.stackoverflow.com/amzn/click/com/1449319777
Изменения, которые могут потребоваться в вашем приложении:
- Сделайте узел приложения не имеющим состояния: в вашем приложении не нужно сохранять сеанс. Взгляните на весеннюю сессию http://projects.spring.io/spring-session/. Он может использовать Redis в качестве хранилища сеансов. Другой вариант - использовать липкие сеансы, но такой подход снижает масштабируемость.
- Поскольку ваш узел приложения не имеет состояния и может быть удален из-за масштабирования действий в любое время, вы не можете использовать жесткий диск для изображений (других файлов), загруженных пользователями. Возможно, вам потребуется использовать внешнее хранилище файлов, например S3 http://aws.amazon.com/s3/ а>.
- Ваша база данных должна быть на отдельном узле.
- Вам необходимо использовать централизованный кеш, поскольку локальный кеш не будет аннулирован, когда на других узлах произойдут изменения, которые могут привести к несогласованности данных. Взгляните на Amazon ElastiCache http://aws.amazon.com/elasticache/ или Hazelcast http://hazelcast.com/
- Если вы теперь используете механизмы синхронизации Java, такие как синхронизированный блок или блокировка, для управления параллелизмом, вы должны иметь в виду, что вам необходимо синхронизировать между несколькими узлами. Возможно, вам потребуется использовать службу распределенной блокировки (Terracotta или Hazelcast)
- Вам нужны хорошие планы миграции и отката.
person
medvedev1088
schedule
07.05.2015