Hosting for Java Web App

User avatar
Мальчик-Одуванчик
Уже с Приветом
Posts: 15526
Joined: 27 Sep 2007 22:53

Re: Hosting for Java Web App

Post by Мальчик-Одуванчик »

Montchik wrote: 24 Apr 2018 04:10 А чем это лучше деплоймента говнокода на провайдеровский application/web server?
Каждая какашка в своей баночке.
User avatar
Montchik
Уже с Приветом
Posts: 2119
Joined: 27 Dec 1999 10:01
Location: Воронеж -> Naperville, IL

Re: Hosting for Java Web App

Post by Montchik »

Не вижу смысла в накручивании еще одной абстракции между OS/VM и hosted application server. Какашки уже упакованы в web apps. :no:

Google App Engine в итоге разонравился по тем же причинам что и Хероку - proprietary API которая сильно привязывает к хостинг провайдеру.

Google Compute Engine is bare bone, а хочется чтобы web server was provided.

KUBERNETES - это от лукавого. Надо подождать пока пена спадет и будет видно реально ли этот контейнерный подход лучше/удобнее чем PaaS.

Опять начал вкуривать AWS, на этот раз более вдумчиво. Пока нра...
tessob
Уже с Приветом
Posts: 549
Joined: 07 Jan 2016 13:04

Re: Hosting for Java Web App

Post by tessob »

В AWS удобный сервис "деплоить все подряд" - ElasticBeanstalk‎. Можно просто ручками дать ему спрингбутовый джарник и забыть. У меня в продакшене так несколько десятков джарников крутится. Причем, если мало мощщи, то можно в два клика отмасштабировать на n серверов через реверс проксю (Nginx).

Только я так и не понял чем хероку не понравился. У меня там тоже сервисы в продакшене живут. Иногда просто супер-удобно деплоить изменения через интеграцию с гитхабом. Единственное различие с обычным пайплайном - нужно добавить Procfile в корень. Разонравится хероку, можно просто в одну команду собрать джарник на ноуте и затолкать на амазон. Плюс у Хероку HTTPS из коробки и с ним вообще не нужно париться.
User avatar
Montchik
Уже с Приветом
Posts: 2119
Joined: 27 Dec 1999 10:01
Location: Воронеж -> Naperville, IL

Re: Hosting for Java Web App

Post by Montchik »

Мне показалось на минуточку что web app должна использовать heroku specific api для того чтобы ее можно было ранить на heroku hosted Tomcat. Может ошибся, не знаю.
Сечас про еще один "косяк" прочитал - heroku ожидает что web server будет embedded in the application. А что если у меня две web apps and I wanna run them on the same tomcat instance и деплоить независимо друг от друга?
User avatar
Sergunka
Уже с Приветом
Posts: 34164
Joined: 03 Dec 2000 10:01
Location: Vladivostok->San Francisco->Los Angeles->San Francisco

Re: Hosting for Java Web App

Post by Sergunka »

Montchik wrote: 25 Apr 2018 14:37 Мне показалось на минуточку что web app должна использовать heroku specific api для того чтобы ее можно было ранить на heroku hosted Tomcat. Может ошибся, не знаю.
Сечас про еще один "косяк" прочитал - heroku ожидает что web server будет embedded in the application. А что если у меня две web apps and I wanna run them on the same tomcat instance и деплоить независимо друг от друга?
Архитектура в Клоуд Фоундри заточена под маштабирование микросервисов так, что вполне разумное ограничение
"A patriot must always be ready to defend his country against his government." Edward Abbey
User avatar
Montchik
Уже с Приветом
Posts: 2119
Joined: 27 Dec 1999 10:01
Location: Воронеж -> Naperville, IL

Re: Hosting for Java Web App

Post by Montchik »

Имхо tomcat все-таки более позиционируется как application server и его embedded версия просто дань моде. А для микросервисев лучше пользовать apache httpcomponents framework, а не tomcat.
User avatar
Sergunka
Уже с Приветом
Posts: 34164
Joined: 03 Dec 2000 10:01
Location: Vladivostok->San Francisco->Los Angeles->San Francisco

Re: Hosting for Java Web App

Post by Sergunka »

Montchik wrote: 25 Apr 2018 18:18 Имхо tomcat все-таки более позиционируется как application server и его embedded версия просто дань моде. А для микросервисев лучше пользовать apache httpcomponents framework, а не tomcat.
Технически spring boot отличное решение в Cloud Foundry есть некоторые недостатки, но вполне терпимые. Микросервис в концепции Cloud Foundry это несколько другое чем просто компонент - это вполне независимое самостоятельное решение которое легко деплоится, маштабируется, имеет свое секьюрити и тд. Есть довольно много на эту тему рассуждений, что более выгодно монолит или микросервис архитектура... в зависимости от задач понятно и подход. В принципе всех кого пришлось переучивать уже как за три года начинали с монолита и были вполне так счастливы пока не возникли вопросы с маштабируемостью и производительностью... :oops:
"A patriot must always be ready to defend his country against his government." Edward Abbey
User avatar
Montchik
Уже с Приветом
Posts: 2119
Joined: 27 Dec 1999 10:01
Location: Воронеж -> Naperville, IL

Re: Hosting for Java Web App

Post by Montchik »

Понятно, но думаю что мне все-таки лучше пользовать app server. Наверное. Может быть. :-)
User avatar
Vladimir Kr.
Уже с Приветом
Posts: 541
Joined: 24 Mar 2004 07:31
Location: Krasnoyrsk -> -> Chicago

Re: Hosting for Java Web App

Post by Vladimir Kr. »

Микросервис как отдельные приложения, это не только в концепции Cloud Foundry, это у Фаулера. Только не понятно что мешает делать "легко деплоится, маштабируется, имеет свое секьюрити и тд." в модульном монолитике.
Ну кроме того, что разрывание модулей монолитика на независимые приложения (микросервисы) не просто понижает связанность, оно ее убивает. В результате получается отличная спагетти архитектура - мечта джоб секюрити, когда встанут вопросы по совместимости версий написанного зоопарка.
моя родина СССР!
tessob
Уже с Приветом
Posts: 549
Joined: 07 Jan 2016 13:04

Re: Hosting for Java Web App

Post by tessob »

Montchik wrote: 25 Apr 2018 14:37 Мне показалось на минуточку что web app должна использовать heroku specific api для того чтобы ее можно было ранить на heroku hosted Tomcat. Может ошибся, не знаю.
Зачем ранить на их томкате? Можно в спрингбуте сделать джарник с томкатом внутри и он сам себя ранить будет. Это еще и удобно, т.к. можно тестить на локальной машине. Холодный запуск при разумном подходе от 2 до 4 секунд. С девтулом некоторые вещи можно обновлять на лету.
Montchik wrote: 25 Apr 2018 14:37 Сечас про еще один "косяк" прочитал - heroku ожидает что web server будет embedded in the application. А что если у меня две web apps and I wanna run them on the same tomcat instance и деплоить независимо друг от друга?
Это не косяк, это фича! Если вы не любите котов микросервисы, то вы просто не умеете их готовить. ))
Если поведение ваших инстансов должно быть независимо, то возможно вам просто нужно несколько инстансов.
User avatar
Montchik
Уже с Приветом
Posts: 2119
Joined: 27 Dec 1999 10:01
Location: Воронеж -> Naperville, IL

Re: Hosting for Java Web App

Post by Montchik »

tessob wrote: 26 Apr 2018 07:50
Montchik wrote: 25 Apr 2018 14:37 Мне показалось на минуточку что web app должна использовать heroku specific api для того чтобы ее можно было ранить на heroku hosted Tomcat. Может ошибся, не знаю.
Зачем ранить на их томкате? Можно в спрингбуте сделать джарник с томкатом внутри и он сам себя ранить будет. Это еще и удобно, т.к. можно тестить на локальной машине. Холодный запуск при разумном подходе от 2 до 4 секунд. С девтулом некоторые вещи можно обновлять на лету.
Montchik wrote: 25 Apr 2018 14:37 Сечас про еще один "косяк" прочитал - heroku ожидает что web server будет embedded in the application. А что если у меня две web apps and I wanna run them on the same tomcat instance и деплоить независимо друг от друга?
Это не косяк, это фича! Если вы не любите котов микросервисы, то вы просто не умеете их готовить. ))
Если поведение ваших инстансов должно быть независимо, то возможно вам просто нужно несколько инстансов.
А за чем мне springboot если я могу задеплоить мой варик на provided tomcat server напрямую без всяких дополнительных приблуд? 8)

Томкат можно ранить в eclipse и тут же "не отходя от кассы" деплоить и дебагить веб аппку на нем. Вообще никакие девтулы не нужны! Зачем усложнять?

ИМХО ембедить lightweight! web server нужно только если это действительно микросервис или web access есть побочная фича не веб аппликухи. К примеру у меня в realtime message processing application через веб сервис можно посмотреть it's internal state, что удобно. И не нужен для этого никакой томкат или даже джетти - apache httpcomponents framework хватило с лихвой.

Проблема с испольвованием custom api в том что будет трудно перейти на другого провайдера. Ничто не вечно и cloudefoundtry может завтра сделать все! или перестать поддерживать старые версии своих же библиотек на новых серверах. It happens! :old:
User avatar
Sergunka
Уже с Приветом
Posts: 34164
Joined: 03 Dec 2000 10:01
Location: Vladivostok->San Francisco->Los Angeles->San Francisco

Re: Hosting for Java Web App

Post by Sergunka »

Montchik wrote: 27 Apr 2018 14:30 Томкат можно ранить в eclipse и тут же "не отходя от кассы" деплоить и дебагить веб аппку на нем. Вообще никакие девтулы не нужны! Зачем усложнять?
Тоже самое можно делать и с springboot в том же эклипсе.
"A patriot must always be ready to defend his country against his government." Edward Abbey
User avatar
valchkou
Уже с Приветом
Posts: 4195
Joined: 27 Apr 2011 03:43
Location: Сергели ->Chicago

Re: Hosting for Java Web App

Post by valchkou »

tessob wrote: 26 Apr 2018 07:50
Montchik wrote: 25 Apr 2018 14:37 Мне показалось на минуточку что web app должна использовать heroku specific api для того чтобы ее можно было ранить на heroku hosted Tomcat. Может ошибся, не знаю.
Зачем ранить на их томкате? Можно в спрингбуте сделать джарник с томкатом внутри и он сам себя ранить будет. Это еще и удобно, т.к. можно тестить на локальной машине. Холодный запуск при разумном подходе от 2 до 4 секунд. С девтулом некоторые вещи можно обновлять на лету.
Montchik, этот совет вам здравый.
спрингбут все в себя включает из коробочки. даже билдит executable jar(self contained microservice) для вас который стартует где угогдно где есть жава,
работает одинаково и на амазоне и на шушле и ажуре и внутри докера и без него,
томкат там не обязателен, можно использовать жетти, м даже нетти в последних версиях. Причем код не потребуется менять. Достаточно включить/исключить депенденси.
апа сама поймет какая имплементация доступна и поднимет соответствующий контейнер.

Вот вам пример такого приложения с rest api
https://github.com/valchkou-app/fibonacci-microservice

чтобы посмотреть нужно всего лишь:
- git clone
- gradlew bootRun - эта команда запустит сервис на порте 8080
- gradlew build - сдклает для вас жарник который можно запустить как "java -jar jarname"

Так как это хотите сделать вы в наши дни уже никто не делает
User avatar
Vladimir Kr.
Уже с Приветом
Posts: 541
Joined: 24 Mar 2004 07:31
Location: Krasnoyrsk -> -> Chicago

Re: Hosting for Java Web App

Post by Vladimir Kr. »

valchkou wrote: 03 May 2018 00:52 Так как это хотите сделать вы в наши дни уже никто не делает
может для себя-то лучше делать, не так как модно, а как лучше и правильнее?
а не с точки зрения достижения job security on microservices spaghetti architecture & make aws more profitable?
User avatar
valchkou
Уже с Приветом
Posts: 4195
Joined: 27 Apr 2011 03:43
Location: Сергели ->Chicago

Re: Hosting for Java Web App

Post by valchkou »

Vladimir Kr. wrote: 03 May 2018 05:27
valchkou wrote: 03 May 2018 00:52 Так как это хотите сделать вы в наши дни уже никто не делает
может для себя-то лучше делать, не так как модно, а как лучше и правильнее?
а не с точки зрения достижения job security on microservices spaghetti architecture & make aws more profitable?
челу вообще нужен 1 апп с рест интерфесом. Boot упрощает очень много в его задаче.
насчет спагетти, так это ваши архитекторы кривые и идея микросервисов не причем.
вы же как то решаете задачу с депенденси библиотеками?
примерно так же решается проблема совместимости сервисов. Система должна иметь consistent state основанный на версионности артифактов.
проблема в том что нельзя просто клепать микросервисы, параллельно нужно иметь экосистему.
если все организовать здраво то job security отдельного программиста как раз уменьшается. Упрощается код, сокращается время разработки и подзадачи запросто распараллеливаются и аутсорсятся.
скорее возрастает важность девопса. Архитектор всегда в цене, независисмо от кривости архитектуры
У меня свой вполне положительный опыт, без спагетти.

Return to “Вопросы и новости IT”