Cloud Deployments + microservices

Сабина
Уже с Приветом
Posts: 19041
Joined: 11 Jan 2012 09:25
Location: CA

Cloud Deployments + microservices

Post by Сабина »

теоросновы - http://martinfowler.com/articles/microservices.html

Kind of kills an idea of transactions over distributed system. Но лично мне идея eventual consistency куда больше нравится

Нашла крутое видео по теме, но примеры во второй части (там вначале упоминается название "apps plus data plus cloud what does it all mean" ...) следы которой я не могу нигде найти в Интернете. Никто не поможет ? Хотя бы code samples only
http://www.youtube.com/watch?v=iMvCOEsSuAc

...To start explaining the microservice style it's useful to compare it to the monolithic style: a monolithic application built as a single unit. Enterprise Applications are often built in three main parts: a client-side user interface (consisting of HTML pages and javascript running in a browser on the user's machine) a database (consisting of many tables inserted into a common, and usually relational, database management system), and a server-side application. The server-side application will handle HTTP requests, execute domain logic, retrieve and update data from the database, and select and populate HTML views to be sent to the browser. This server-side application is a monolith - a single logical executable[2]. Any changes to the system involve building and deploying a new version of the server-side application.

Such a monolithic server is a natural way to approach building such a system. All your logic for handling a request runs in a single process, allowing you to use the basic features of your language to divide up the application into classes, functions, and namespaces. With some care, you can run and test the application on a developer's laptop, and use a deployment pipeline to ensure that changes are properly tested and deployed into production. You can horizontally scale the monolith by running many instances behind a load-balancer.

Monolithic applications can be successful, but increasingly people are feeling frustrations with them - especially as more applications are being deployed to the cloud . Change cycles are tied together - a change made to a small part of the application, requires the entire monolith to be rebuilt and deployed. Over time it's often hard to keep a good modular structure, making it harder to keep changes that ought to only affect one module within that module. Scaling requires scaling of the entire application rather than parts of it that require greater resource.....
UPD нашла PPT http://www.slideshare.net/SpringCentral ... t-all-mean
https://www.youtube.com/watch?v=wOwblaKmyVw
Сабина
Уже с Приветом
Posts: 19041
Joined: 11 Jan 2012 09:25
Location: CA

Re: Cloud Deployments + microservices

Post by Сабина »

А нет тут у нас случаем кого нибудь из Нетфликса например ктo уже всю эту прелесть в жизнь внедряет ?
https://www.youtube.com/watch?v=wOwblaKmyVw
Palych
Уже с Приветом
Posts: 13684
Joined: 16 Jan 2001 10:01

Re: Cloud Deployments + microservices

Post by Palych »

IMHO мысль здравая, хороший кандидат на следующий buzz word.
Все кинемся переписывать глючные и медленные приложения на микросервисы.
Деньги будут...
reality
Уже с Приветом
Posts: 256
Joined: 14 Jul 2011 09:07
Location: SaintP -> NYC

Re: Cloud Deployments + microservices

Post by reality »

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

Re: Cloud Deployments + microservices

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

Palych wrote:IMHO мысль здравая, хороший кандидат на следующий buzz word.
Все кинемся переписывать глючные и медленные приложения на микросервисы.
Деньги будут...
Наверняка интересно, особенно на скале.
reality
Уже с Приветом
Posts: 256
Joined: 14 Jul 2011 09:07
Location: SaintP -> NYC

Re: Cloud Deployments + microservices

Post by reality »

Мальчик-Одуванчик wrote: Наверняка интересно, особенно на скале.
А то! Typesafe как раз таки это очень активно продвигает: http://www.reactivemanifesto.org http://www.reactive-streams.org и Jonas Boner на всех конфах с этим носится. Насколко я знаю Morgan Stanley + Goldman + Wells Fargo очень их большие клиенты в городе NYC.
Palych
Уже с Приветом
Posts: 13684
Joined: 16 Jan 2001 10:01

Re: Cloud Deployments + microservices

Post by Palych »

Мальчик-Одуванчик wrote:
Palych wrote:IMHO мысль здравая, хороший кандидат на следующий buzz word.
Все кинемся переписывать глючные и медленные приложения на микросервисы.
Деньги будут...
Наверняка интересно, особенно на скале.
Не сомневаюсь.
Мне даже кажется что этот принцип можно приложить к низкоуровневым, локальным вычислениям, на уровне threads, даже фунцкий. Чтобы легче было распараллеливать вычисления...
Palych
Уже с Приветом
Posts: 13684
Joined: 16 Jan 2001 10:01

Re: Cloud Deployments + microservices

Post by Palych »

Manifesto!
"Ein Gespenst geht um in Europa ..."
Пропал Калабухинский дом...
User avatar
Мальчик-Одуванчик
Уже с Приветом
Posts: 15526
Joined: 27 Sep 2007 22:53

Re: Cloud Deployments + microservices

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

Palych wrote:
Мальчик-Одуванчик wrote:
Palych wrote:IMHO мысль здравая, хороший кандидат на следующий buzz word.
Все кинемся переписывать глючные и медленные приложения на микросервисы.
Деньги будут...
Наверняка интересно, особенно на скале.
Не сомневаюсь.
Мне даже кажется что этот принцип можно приложить к низкоуровневым, локальным вычислениям, на уровне threads, даже фунцкий. Чтобы легче было распараллеливать вычисления...
Монады как микросервисы - чем не слоган?
User avatar
SOUND
Уже с Приветом
Posts: 1044
Joined: 27 May 2002 19:01
Location: Boston

Re: Cloud Deployments + microservices

Post by SOUND »

Сабина wrote:А нет тут у нас случаем кого нибудь из Нетфликса например ктo уже всю эту прелесть в жизнь внедряет ?
Вот этот товарищ очень близко знаком с предметом -
http://www.slideshare.net/adrianco

:radio%:
Сабина
Уже с Приветом
Posts: 19041
Joined: 11 Jan 2012 09:25
Location: CA

Re: Cloud Deployments + microservices

Post by Сабина »

Palych wrote:IMHO мысль здравая, хороший кандидат на следующий buzz word.
Все кинемся переписывать глючные и медленные приложения на микросервисы.
Деньги будут...
Так по уму то переписать пока удалось очень немногим, хотя необходимость очевидно назрела. Замерли в ожидании что говорится :)
https://www.youtube.com/watch?v=wOwblaKmyVw
Сабина
Уже с Приветом
Posts: 19041
Joined: 11 Jan 2012 09:25
Location: CA

Re: Cloud Deployments + microservices

Post by Сабина »

reality wrote:У нас в компании все работает на реактивных микросервисах написанных на скале. Так что внедряем.
О, вот это конкоетно интересно. А что еще в стеке пользуете, если не секрет? Если в облако деплоите то куда и чем ?
https://www.youtube.com/watch?v=wOwblaKmyVw
Сабина
Уже с Приветом
Posts: 19041
Joined: 11 Jan 2012 09:25
Location: CA

Re: Cloud Deployments + microservices

Post by Сабина »

SOUND wrote:
Сабина wrote:А нет тут у нас случаем кого нибудь из Нетфликса например ктo уже всю эту прелесть в жизнь внедряет ?
Вот этот товарищ очень близко знаком с предметом -
http://www.slideshare.net/adrianco

:radio%:
Я этих товарищей столько перечитала и пересмотрела за последние дней десять, в глазах рябит :)
https://www.youtube.com/watch?v=wOwblaKmyVw
reality
Уже с Приветом
Posts: 256
Joined: 14 Jul 2011 09:07
Location: SaintP -> NYC

Re: Cloud Deployments + microservices

Post by reality »

Сабина wrote:
reality wrote:У нас в компании все работает на реактивных микросервисах написанных на скале. Так что внедряем.
О, вот это конкоетно интересно. А что еще в стеке пользуете, если не секрет? Если в облако деплоите то куда и чем ?
Scala, Play, Spray (приложения пакуются в deb) + EC2 + Ansible. REST сервисы (микро типа) все сидят позади лоад-балансеров.
Сабина
Уже с Приветом
Posts: 19041
Joined: 11 Jan 2012 09:25
Location: CA

Re: Cloud Deployments + microservices

Post by Сабина »

reality wrote:
Сабина wrote:
reality wrote:У нас в компании все работает на реактивных микросервисах написанных на скале. Так что внедряем.
О, вот это конкоетно интересно. А что еще в стеке пользуете, если не секрет? Если в облако деплоите то куда и чем ?
Scala, Play, Spray (приложения пакуются в deb) + EC2 + Ansible. REST сервисы (микро типа) все сидят позади лоад-балансеров.
Похоже вы не из тех unfortunate people у которых начальство подписало дил на CloudFoundry ( с пивотал и ай би эм точнее) тем самым сильно ограничив выбор стека.
У нас такая ситуация. Есть так называемая платформа, которая пока существует в виде бандлов и деплоился в Karaf container. (Osgi). То есть они уже независимы друг от друга. Есть два типа бандлов: одни для frontend UI containers вроде Play, другие для API контейнера, там где сидят речь сервисы и иже с ними. Из полезных бандов видела только logging и security, остальные кмк или не функционирующие еще по полной или ненужные, хотя есть бандлы и для хадупа и для джобс (Quartz framework). Механизм поддержания eventual consistency на уровне той платформы нулевой. В прошлом конкретное приложение, написанное поверху "платформы" просто брало нужный бандл и пользовало как приложению надо. Хороших примеров конкретного приложения тоже особо не видела, наоборот море гемора с queues, кривой error handling etc. То, что это все пользовать без добавления сложной оркестрации процесса ничего не получится - очевидно.
Тут приходит КлаудФаундри в облике Пивотала и говорит - а давайте мы вас в облако и вы станете сразу SaaS-ами, а платформа ваша PaaS-ом. И devops вас будет деплоить по сто раз на дню - true agile, аминь :)
Из всего что я прочла в эти дни я этот процесс вижу как очень непростой и местами болезненный и уж точно не такой быстрый. Есть много советов как конвертировать монолит в микросервисы, но тут и монолита то нет как такового ( см. Вышеописанное).
Немцы в Мюнхене считают что сам факт наличия OSGI - это уже микросервис. А это же major refactoring, основной гол добавить логику отвечающую за event consistency, api gateways, fault tolerance, error handling... Вопрос в том поймет ли наше начальство что сроки релиза в марте при таком раскладе нереальны или придется все имеющееся как то запихнуть в клауд и умыв руки сказать -нате вам первый релиз :mrgreen:
https://www.youtube.com/watch?v=wOwblaKmyVw
mynameiszb
Уже с Приветом
Posts: 1665
Joined: 16 Jul 2009 14:18
Location: Uganda

Re: Cloud Deployments + microservices

Post by mynameiszb »

Сабина wrote:Вопрос в том поймет ли наше начальство что сроки релиза в марте при таком раскладе нереальны или придется все имеющееся как то запихнуть в клауд и умыв руки сказать -нате вам первый релиз :mrgreen:
[с познавательным интересом] А что, тех-ревью задачи и общую оценку затрат не делали? По мне, руководство должно иметь некого сферического коня, надутого через соломинку. Типа - в марте выкатываем вот это, а в апреле - никак не больше ниже указанного.

В противном случае - тот, кто не успеет умыть руки либо отметится как участвовавший - огребет по шапке.

PS. Насчет микросервисов, тут дело простое. Все упирается не в технологии, не в управленцев с побрякушками для клиента. Все упирается в кадры, которые будут это реализовывать.

Как злобный пример могу рассказать несколько фич из личной жизни.

1. Имеем кучу расчетов математических. Многие из которых - в цикле тупо большие блоки работы с переменными памяти или вообще умножить/отобрать остатки. Есть готовые библиотеки, которые позволяют подобного рода задачи сдвинуть на граф-процессор. Т.е. - есть код, есть документация, есть примеры, есть первичная оценка, которая показывает нехилый выигрыш. Даже есть человек, который в это дело уперся и попробовал погонять прототипы. Но - как только дошло до реализации - все встало. Потому что одиночку на это дело сажать не стали, у энтузиаста кроме экспериментов задач полно. А гуру отвлекать от их медитации - как-то вне бизнес-планов. Проект похерили.

2. Имеем кучу задач, которые можно пнуть в одновременных потоках. Проблема - наладить синхронизацию и обмен результатами. Мало того, написанный готовый сервис позволяет этот код гонять на нескольких машинах сразу, получив некое подобие масштабируемого кластера. Кто будет анализ делать по синхронизации и ревью кода для дальнейшей работы? Хоп - проект похерили. Желающих нет.

3. Веб-сервисы. Гибкая архитектура, можно лепить черта лысого - обмен между сервисами стандартизирован, писали с учетом возможной гибкой настройки и расширения. Из кубиков можно собрать хоть обучающую систему, хоть монстра с кучей доп-функционала. Выкатили пару релизов, клиенты взяли, пользовались. Нарыли новый жирный контракт, людей перебросили. Когда через полгода вернулись, то состав уже перетасовали и все сервисы в итоге остались "как есть". Наметки, проекты, общая идея дальнейшего развития - все пошло на выброс. Проект - само собой, как обычно...

Во всех случаях, когда я видел работающие системы - за ними стояли упертые перцы. Которые цеплялись зубами в идею и волокли дальше. Читали, экспериментировали, продвигали. Иногда наперекор основным задачам, теряя на перспетивном "а вот бы нам" личное время.

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

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

:D
Palych
Уже с Приветом
Posts: 13684
Joined: 16 Jan 2001 10:01

Re: Cloud Deployments + microservices

Post by Palych »

reality wrote:У нас в компании все работает на реактивных микросервисах написанных на скале. Так что внедряем.
А почему вы решили использовать их везде?
reality
Уже с Приветом
Posts: 256
Joined: 14 Jul 2011 09:07
Location: SaintP -> NYC

Re: Cloud Deployments + microservices

Post by reality »

Palych wrote:
reality wrote:У нас в компании все работает на реактивных микросервисах написанных на скале. Так что внедряем.
А почему вы решили использовать их везде?
Так исторически сложилось :-) Я бы не сказал что сервисы у нас "микро", скорее "макро" потому что один сервис за достаточно много вещей отвечает. Насколько я понимаю в Gilt например сервисы действительно микро и их количесво сотни, у нас наверное десяток еле наберется.

Очень удобно разрабатывать, никаких конфликтов между командами/разработчиками. Так же удобно деплоить независимо друг от друга. Можно в каждом сервисе-приложении использовать разные технологии, в монолитном приложении пришлось бы как то согласовывать единый стиль, а так можно попробовать разные стили достаточно безопасно.

Пример сервиса: доступ к market time-series. Есть достаточно простой API в стиле достать цены закрытия для этой бумаги от сюда - до сюда, который стабильный, а бекенд изначально был dynamo-db, потом datomic, сейчас cassandra. Все это разрабатывалось вообще никак не влияя на основное приложение, просто в лоад-балансере перекидвали трафик на новый инстанс. В случает одно большой ДБ расшаренной на все сервисы-приложения это было бы гораздо сложнее и требовало бы координации.
Сабина
Уже с Приветом
Posts: 19041
Joined: 11 Jan 2012 09:25
Location: CA

Re: Cloud Deployments + microservices

Post by Сабина »

mynameiszb wrote: PPS. Ну и никоим образом не переходя на личности, я бы такие вещи тряс на специализированных форумах. Полно тех-серверов, где можно выловить грамотных людей. Либо даже зацепиться за универы, там покопать знающих, кто поделится либо курсами, либо поможет обжевать идеи на уровне аналитики и планирования. Привет вряд ли в этом поможет. Разве что набегут, подобные мне, сядут на заборе и будут плевать шелухой: "фу, какую гадость нам тут показывают"...

:D
На специализированных форумах трясти надо что-то конкретное - тут же пока одни очертания :mrgreen:
Моя мини-задача ( чисто личная ) разобраться как это делать по уму. Пока время есть и конкретные сроки никто официально не обьявил. Оно помогает потом запрыгнуть в правильный вагон когда поезд поедет.
https://www.youtube.com/watch?v=wOwblaKmyVw
Сабина
Уже с Приветом
Posts: 19041
Joined: 11 Jan 2012 09:25
Location: CA

Re: Cloud Deployments + microservices

Post by Сабина »

Собственно что именно интересно....
Скажем есть аппликейшен где прикручен ehCache для кеширования и active mq для коммуникации компонент, sql server as database
Переносят например это дело в тот cloud foundry PaaS который предлагает сервисы - database (mySQL, Postgre. mongo), queue (rabbit), memory cache etc
Кеширование это наверное в основном для runtime components в elastic runtime, но все равно рассмотрим хотя бы остальные компоненты

Вопрос такой - при рефакторинге как я понимаю есть выбор либо использовать то что предлагает PaaS поменяв свой код, либо оставить все свое as usual 3rd party libs, но тогда теряешь гибкость с конфигурациями, быстрым деплойментом и проч.
Второй вариант тогда больше похож на workaround, но что то мне кажется что так делают нередко. Ну как минимум пока руки не дойдут переделать по уму.
https://www.youtube.com/watch?v=wOwblaKmyVw
User avatar
SOUND
Уже с Приветом
Posts: 1044
Joined: 27 May 2002 19:01
Location: Boston

Re: Cloud Deployments + microservices

Post by SOUND »

Первый шаг может быть просто - fork-lift, как есть без рефакторинга, в облако. А потом уже смотреть что можно использовать готовое, иначе слишком большие риски - делать переезд и рефакторинг в один присест.
User avatar
SOUND
Уже с Приветом
Posts: 1044
Joined: 27 May 2002 19:01
Location: Boston

Re: Cloud Deployments + microservices

Post by SOUND »

Мартин Фаулер все еще голосует за монолитные приложения.

Объясняет причины по которым можно понять если компания еще не готова к микросервисам.

phpBB [video]

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