Мікросервіси - чи до смаку?

แชร์
ฝัง
  • เผยแพร่เมื่อ 9 พ.ย. 2024

ความคิดเห็น • 169

  • @asolovyov
    @asolovyov  2 ปีที่แล้ว +2

    Додатково обговорення на форумі DOU: dou.ua/forums/topic/38805/

    • @СтасМацунич
      @СтасМацунич 9 หลายเดือนก่อน

      Мені сподобалось розвіювання деяких міфів.
      Але на рахунок 11:52 Як скейлити моноліт, ми неможемо заскейлити самостійно модуль в моноліті, а, от сервіс самостійно заскейлити можна. Тут приходить тільки варіант винести модуль в сторонній сервіс, то уже не моноліт і трошечки може назадувати маленький костильочок такий

    • @asolovyov
      @asolovyov  9 หลายเดือนก่อน

      @@СтасМацунич чому не можемо скейлити модуль? Не можемо докинути ресурсів? Не можемо покращити код? Яка саме проблема?

  • @ВадимА-к1м
    @ВадимА-к1м 2 ปีที่แล้ว +21

    Дякую, дуже багато здорового глузду і все дуже добре сформульовано!

  • @interview_top
    @interview_top 2 ปีที่แล้ว +28

    Передчасна оптимізація - корінь усього зла)

    • @dispute_charge_explained
      @dispute_charge_explained 2 ปีที่แล้ว

      Дядько Ілон ще говорив

    • @OleksaZelenyuk
      @OleksaZelenyuk 2 ปีที่แล้ว +2

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

    • @bkhtrv
      @bkhtrv ปีที่แล้ว

      @@dispute_charge_explainedти про той старий холодильник?

  • @hyzyla
    @hyzyla 2 ปีที่แล้ว +31

    В цілому підтримую. Моє імхо: якщо це стартап, то пилимо моноліт, розділяємо на модулі в межах проєкту на умовні notifications, statstics, billing, auth, you_logic, etc. Стараємося по максимуму не лізти напряму в сховище/таблиці/базу кожного ж модулів, а спілкуватися через сервісний рівень. Якщо виростаємо і розуміємо, щось стало дуже тісно, то виносимо найжирніші модулі у мікросервіси або в найкращому випадку заміняємося на який SaaS продукт (мається на увазі, що до того часу ваш стартап заробляє гроші). Таким чином можна ще довго прожити з жирним монолітом і мікросервісами сателітами. Прийде час розбивати й жирний моноліт, то вже тоді в компанії буде і експертиза, і інструменти, щоб працювати з монолітами.

    • @oleksandrsova4803
      @oleksandrsova4803 2 ปีที่แล้ว +1

      > Стараємося
      Failure заклався ще на цьому слові.

    • @hyzyla
      @hyzyla 2 ปีที่แล้ว +1

      @@oleksandrsova4803 штош, хоча би за старання можна поставити трієчку 😆

    • @oleksandrsova4803
      @oleksandrsova4803 2 ปีที่แล้ว

      @@hyzyla ох вже ці градації. Якщо відвйти від них до бінарної логіки - "зробили", чи "зафейлили" - чим більше в людей буде можливості схалтурити, десь не дотриматися принципів, десь "підставити костиль" тим більша буде вірогідність зафейлити проект так, що його редизайнити доведеться. І круто якщо редизайнити дадуть вам, когось донайнявши. Норм, якщо редизайнити дадуть вашим сусідам через дорогу. Але якщо Через чиїсь помилки проекти з країни можуть піти - тут вже біда.
      Не знаю хто як, але я бачив більше накостиляних монолітів, ніж мікросервісів з помилками в дизайні (хоча такі також були).

    • @andreyvoronin3447
      @andreyvoronin3447 ปีที่แล้ว

      @@oleksandrsova4803 Як ізолювати один бодуль від іншого? Наприклад в мене є якийсь сет, який я можу зібрати за джоіном, як тут буту? Я тут прошу порад, бо в мене є модуль на моноліті, але там така звязаність що страшно

  • @tokarskiyura
    @tokarskiyura 2 ปีที่แล้ว +8

    Колись мені старший товариш сказав думку, якої дотримуюсь і досі:
    - Починай з модультного моноліту завжди. Як прийде час просто витягуєш папку з модулем і з цього будеш мати мікросервіс.
    І я ще жодного разу не переходив до другого кроку :/

  • @georgebordiuh1616
    @georgebordiuh1616 2 ปีที่แล้ว +5

    Контент топовий, спікер топовий, якість звуку топова, дикція топова, мова відео - топова
    Короче, лайк і підписка)

  • @oleksandrlisniak8331
    @oleksandrlisniak8331 2 ปีที่แล้ว +29

    Більше україномовного IT-контенту!!!!!

  • @vidzhel
    @vidzhel ปีที่แล้ว +2

    В точку. Маю точно таку ж думку про мікросервіси та основну причину їх використання

  • @ОлександрДобролюбов-и2э
    @ОлександрДобролюбов-и2э 2 ปีที่แล้ว +1

    Комент підтримки і для просування відео

  • @Коля-н3з
    @Коля-н3з 2 ปีที่แล้ว +4

    Шось мені так класно дивитись випуск Олександра... І то ж я не прогєр ні разу, але чомусь подобається дивитись випуск... Стрінно... Дякую за випуск, Олександр!

  • @gotxe
    @gotxe 2 ปีที่แล้ว +32

    Мікросервіси, як ти правильно підмітив, це вирішення організаційних проблем, а зовсім не технічних :)
    Як то кажуть "You Are Not Google".

  • @ilyalytvynov5185
    @ilyalytvynov5185 2 ปีที่แล้ว

    Супер кльово, дякую, дуже класна думка стосовно мікросервісів/монолітів

  • @andrii4412
    @andrii4412 2 ปีที่แล้ว +6

    дякую за контент!!
    P.S. якщо хтось ще не знав, то синонім до слова "геморой" - це "когнітивне навантаження" )))

  • @oleksiilisovyi3832
    @oleksiilisovyi3832 2 ปีที่แล้ว +3

    Антихайп в дії. Дякую за чудову аргументацію.
    Також кльово бачити оці нотки самоіронії під час тупняків 👍
    Я оце послухав і дуже відгукнулось до теми Adobe Commerce і мікросервіси - як вони скікись там років говорять про те, що Magento моноліт - гівно, а з мікросервісами заживемо 🫠.

    • @asolovyov
      @asolovyov  2 ปีที่แล้ว +1

      Мікросервіси взагалі працюють тільки в саасах/сервісах, бо коли ти шось продаєш (умовно, як мадженто), то давати на деплой і підтримку оті зоопарки - це жесть

  • @MyHor
    @MyHor ปีที่แล้ว

    Дякую за працю. Цікавий матеріал і було приємно слухати.

  • @yaroslavsydoryk4069
    @yaroslavsydoryk4069 2 ปีที่แล้ว +1

    Дякую за відео, повністю погоджуюсь із даними думками. Особливо гарно підмічено, що у ІТ багато на що впливає мода та хайп на певну технологію чи підхід при виборі. 👍

  • @kovalyurii7278
    @kovalyurii7278 2 ปีที่แล้ว +2

    Зараз відвідую тренінг від xpinjection. Підтверджую, мікросервіси сильно підвищують складність аплікації. В більшості випадків, мікросервіси це просто карго культ)

  • @dmytro6460
    @dmytro6460 2 ปีที่แล้ว

    Чітко і зрозуміло розкладено. Дякую!

  • @bananoz
    @bananoz 2 ปีที่แล้ว +2

    Класний спецефект типу "помєхі на лінії", гиги) Ну а по-темі -- сьорбнув мікросервісів у далекому 2011 й з тих пір тримаюсь подалі. Не знаю чи хтось тут згадував про Convey's Law --- але концепція мікросервісів, то як раз одне з втілень того "закону".
    p.s. Conway's law is an adage that states organizations design systems that mirror their own communication structure

  • @jetmind
    @jetmind 2 ปีที่แล้ว +9

    Давай наступне про мікрофронтенди :)

    • @asolovyov
      @asolovyov  2 ปีที่แล้ว +3

      Та я шось не готовий, у мене там взагалі немає розуміння нашо люди про це розмовляють))

    • @MrHerych
      @MrHerych 2 ปีที่แล้ว +4

      Коротко - це піздець
      По максимуму уникайте цього

    • @alexhavryliak5469
      @alexhavryliak5469 2 ปีที่แล้ว +1

      @@MrHerych Якщо більш детально?

  • @DimaZhgenti
    @DimaZhgenti 2 ปีที่แล้ว

    Дуже кльовий контент!

  • @ivanm9674
    @ivanm9674 2 ปีที่แล้ว +1

    Відео яке ми заслужили. Тільки моноліт!

    • @asolovyov
      @asolovyov  2 ปีที่แล้ว +1

      Not the one you deserve, but the one you need 🤣

  • @markmishyn
    @markmishyn หลายเดือนก่อน

    До речі було би цікаво послухати чому ви перейшли з Джанго на кложуру. Маю на увазі окрім очевидних причин - performance і крутість)

  • @IgorLushchyk
    @IgorLushchyk 2 ปีที่แล้ว +1

    з мікросервісами біда, бо якось всі забули про здоровий ґлузд, типу - "починаєш з моноліту, а потім дивишся чи тобі треба мікросервіси", я вже мовчу про те, що в більшості випадків я бачив "розподілений моноліт", а не мікросервіси. І за відео подякував

  • @RuslanKeba
    @RuslanKeba 2 ปีที่แล้ว +3

    Цілком підтримую. Ми зараз в процесі переробки одного моноліта в другий. Перший писали вісімь років, другий вже другий рік. Якійсь мікс з них працює в проді вже. Деплої кожен день.

  • @freedom-is-the-key
    @freedom-is-the-key 2 ปีที่แล้ว

    Цікава та актуальна тема, дякую!

  • @sasha_g4
    @sasha_g4 ปีที่แล้ว

    Дякую! Цікаво почути вашу думку що до того як робити СУЧАСНІ моноліти :)

  • @rybakevgen
    @rybakevgen 2 ปีที่แล้ว

    Відео вогонь! Подача інформації кльова!

  • @sviat_d
    @sviat_d 2 ปีที่แล้ว +1

    Дякую за відос. Гарна тема для холі варів
    Мені здається, що тут як завжди "it depends". Немає сенсу захищати який-небудь з підходів. Треба дивитись на розмір і специфіку проекту, розмір і технічний рівень команди і т.д. Немає правильного підходу. Треба починати з того, що легше розумієш, а потім аналізувати куди йти далі.
    Здається, якщо моноліт запущений в декілька інстансів то то вже не моноліт. То вже товсті мікро-сервіси (чи макро-сервіси. Називайте як хочете) в моно-репозиторії. Моноліти скейлять вертикально і це їх мінус.

    • @asolovyov
      @asolovyov  2 ปีที่แล้ว +1

      Чому не моноліт? Моноліт це ж не значить «один інстанс запускаємо», це спосіб організації кода. Зазвичай ті інстанси (у веб-сервіса якогось) між собою не комунікують, тому кожному з них плюс мінус пох, скільки їх запущено.

    • @sviat_d
      @sviat_d 2 ปีที่แล้ว

      Ну мікро-сервіси можна також в одному репозиторії зберігати. Тому під способом організації коду я би розумів той факт, що дуже багато синхронного кода, який спирається саме на той факт, що система не розподілена і розташована но одному сервері. Тобто моноліт це один дуже великий сервіс, який важко розділити. Якщо таких сервісів два, то це вже питання чи можно це вважати монолітом
      Стосовно комунікацій: якщо твій сервіс використовує черги і http апішки - це моноліт чи вже ні?🤔
      Взагалі моноліт це один процесс чи декілька? Якщо в моноліта є воркери - це моноліт чи це вже мікро-сервіси?

    • @VsevolodSolovyov
      @VsevolodSolovyov 2 ปีที่แล้ว

      @@sviat_d > якщо твій сервіс використовує черги і http апішки - це моноліт чи вже ні?
      Це моноліт.
      > Взагалі моноліт це один процесс чи декілька?
      Хоч один, хоч декілька.
      > Якщо в моноліта є воркери - це моноліт чи це вже мікро-сервіси?
      Моноліт.
      Моноліт - це ж не значить stateful процес, який вважає, що всі файли і ресурси лежать на локалхості. Не знаю, звідки такі думки виникають. Так ніхто не робить. Може так писали якісь форуми на C++ із самописною БД років 20-25 тому?

    • @sviat_d
      @sviat_d 2 ปีที่แล้ว

      Тоді важко зрозуміти в чому полягає "монолітність" моноліта і в чому відмінність моноліта від мікросервісів, якщо він спокійно ділиться на окремі процеси, дозволяє масштабування і, звісно ж, не буде проблем поділити такий моноліт на декілька команд?
      Типу мікросервіс = окрема БД і обов'язково окремий репозиторій? 😅

    • @VsevolodSolovyov
      @VsevolodSolovyov 2 ปีที่แล้ว +1

      @@sviat_d з деякою кількістю людей в моноліті все ж почнуться проблеми з взаємодією людей.
      Мікросервіс - це окремий код, так. Там де ти не можеш просто взяти й викликати іншу частину систему викликом функції, а обов‘язково треба йти через апі, черги, тощо.
      Чи є у мікросервіса окрема БД - може так, може ні. Може у нього взагалі немає ніякої БД, він може тіки щось відповідати та обчислювати. Окремий код - окремий мікросервіс.

  • @alexanonymous5823
    @alexanonymous5823 2 ปีที่แล้ว +1

    відео супер! однозначно лайк!!!

  • @okharkovskyi
    @okharkovskyi 2 ปีที่แล้ว

    По-перше - дякую за гарний україномовний контент)
    А по-друге не дуже стикався зі складністю деплою, хоча на практиці працюю у компанії, де їх більше тисячі.
    Достатньо мати гарну систему Feature Toggle/ A/B tests, та після деплою жодних проблем :)
    Але дуже згоден с операційною складністю)

    • @asolovyov
      @asolovyov  2 ปีที่แล้ว +1

      Так гарна система деплою - це і є складність, її ж побудувати треба, а це час… коли компанія вже зріла, то воно й ок, а коли тільки починається (або у період турбулентності), ото гемор і не хочеться часу витрачати на це)

    • @okharkovskyi
      @okharkovskyi 2 ปีที่แล้ว +1

      @@asolovyov цілком згоден) Якщо будувати щось невеличке, то втрата часу на побудування космічного корабля з процессами деплою, сервіс діскавері, та усіма іншими сіай та сіді просто немає сенсу) Оскільки ті, хто не будуть цього робити раніше вийдуть на ринок та зароблять достатньо грошей, щоб потім все переробити))

  • @maksymostapenko9153
    @maksymostapenko9153 2 ปีที่แล้ว

    Відео супер!
    Цікаво ще розібрати випадки використання мікросервісів в невеликих компаніях (порівняно із Netflix), які перед цим на них мігрували (не за покликом моди)

  • @stasstas206
    @stasstas206 2 ปีที่แล้ว +2

    Я пробовал - не понравилось, и плюс я понял бенчмарки плохие. Лучше централизованная архитектура. Хороший канал, удивительно слышать технический украинский - приятно уху и все понятно

  • @mykytasadchenko6747
    @mykytasadchenko6747 2 ปีที่แล้ว

    Гарний відос

  • @koorchik
    @koorchik 2 ปีที่แล้ว +2

    Колись робив доповідь про архітектуру й дуже схожі штуки розповідав
    th-cam.com/video/TjvIEgBCxZo/w-d-xo.html (3-12хв)
    Зараз мода на мікросервіси потрохи уходить й вони все частіше там, де реально потрібні.
    Про індустрію моди ти влучно)

  • @alotofall
    @alotofall 2 ปีที่แล้ว

    Дякую з відео. Питання про скейлінг моноліту і використання окремих баз для певних областей.
    1. Наприклад у вас в моноліті є функціонал по ресайзу картинок. У вас зростає обєм картинок які треба ресайзити. Коли ви піднімете +20 інстансів моноліту ви можете просто дарма використовувати ресурси. Для ресайзу картинок треба 200мб що б все працювало, а у вас будуть інші накладні витрати по ініціалізації класів і других підсистем які не використовуються (або треба буде робити моноліт який можна забутати так що б накладних витрат по різних процесах не було) - можливо я чогось не розумію.
    2. Моноліт з 20ма базами. Уявіть у вас є 20 підсистем в моноліті і кожна потребує свою базу. Вам приходить реквест який мандрує 5ма підсистемами. Треба що б у вашому процесі було підключення до 5тьох баз. Ви ж не відключаєтесь від бази після обробки реквесту - відповідно підключення висить. І кожен інстанс моноліту буде зїдати конекшин + память. Наскілкьи я розумію підключення можуть висіти і не завжди використовуватись - ми ж не контролюємо шлях реквестів (в який інстанс його пушити). Можливо у вас є думки на рахунок цієї ситуації.
    Моноліти і мікросервіси це організаія коду і процесів яка має місце бути при певних умовах.

    • @asolovyov
      @asolovyov  2 ปีที่แล้ว +1

      1) У нас для ресайзу картинок окремий сервіс. 😝 Бо догматичність - це гірше мікросервісів. :) А ще краще оффлоаднуть таку задачу на якийсь Cloudflare Images і все.
      2) Є думка що це звучить вигаданою ситуацією, плюс висить собі конекшен і висить, в чому проблема? В тому шо умовний постгрес страждає? То для того є баунсери конекшенів.

    • @alotofall
      @alotofall 2 ปีที่แล้ว

      @@asolovyov :D
      Олександр на відео: чи потрібні мікросервіси? Ні
      Олександра в коментарях: У нас для ресайзу картинок окремий сервіс.
      > А ще краще оффлоаднуть таку задачу на якийсь Cloudflare Images і все.
      100% Є просто задачі які попадають під цей самий патерн і перекласти їх на зовнішні сервіси неможливо. Тому пишуть внутрішні.
      > плюс висить собі конекшен і висить, в чому проблема?
      Ви ж розумієте що база це одна штука а є ще редіси, кафки і другі штуки, це все множиться) Тобто з базами це може бути вигадана система але в загальному ізоляція даних і підсистем досить важлива коли у вас велика команда.
      Тобто якась підсистема в моноліті може лізти в дані які вона не має лізти - і за цим всім треба слідкувати і робити контроль.

  • @АлександрШейка-ц5ь
    @АлександрШейка-ц5ь 2 ปีที่แล้ว

    Ні чого не зрозумів, але дуже цікаво.

  • @jedi2light
    @jedi2light 2 ปีที่แล้ว +3

    Ще яскравий приклад це GNU/Hurd

    • @Василь-ю5ш
      @Василь-ю5ш 2 ปีที่แล้ว

      Дуже сумна історія насправді, Столман щиро хотів зробити сучасну, ефективну систему

  • @cannibalmtl
    @cannibalmtl 2 ปีที่แล้ว

    Із всього відео сподобалося про те шо треба мати голову) Тоді і з монолітом і з мікросервісами проблем буде мінінмум. А ще треба пам'ятати шо треба вибирати технологію під задачі, а не навпаки

    • @asolovyov
      @asolovyov  2 ปีที่แล้ว +1

      Так і є, але з мікросервісами бейзлайн проблем все одно вищий 😁

    • @alotofall
      @alotofall 2 ปีที่แล้ว

      @@asolovyov це за умови що у вас мала команда. Якщо команда велика то все з точністю до навпаки. ;)

    • @asolovyov
      @asolovyov  2 ปีที่แล้ว +1

      @@alotofall та ну, ніфіга, бейзлайн проблем з мікросервісами завжди вищий. Просто з дуже великою командою з монолітом через втрати на координацію розробка буде сповільнюватися, для того і розділяють продукт, щоб обмежити взаємодію команд.
      Але проблем з розподіленою системою завжди більше тупо by design, просто з великою командою є виділенні люди, які займаються їх вирішенням.

    • @alotofall
      @alotofall 2 ปีที่แล้ว

      @@asolovyov
      > Але проблем з розподіленою системою завжди більше тупо by design, просто з великою командою є виділенні люди, які займаються їх вирішенням.
      ну технічно мікросервіси складніші поки система мала. Як тільки ви напишете 1лям рядків і наймете 100 інженерів у вас зміниться враження.
      Мені здається мікросервіси і моноліт це так само як рнр і джава. Вивчити пиху простіше. Написати простіше. Але як тільки зростає складність переваги рнр просто пропадають)))

  • @DOU_youtube
    @DOU_youtube 2 ปีที่แล้ว +1

    Хоч хтось всю правду розказав!

  • @taras_sarmat
    @taras_sarmat 2 ปีที่แล้ว

    Цікавий випуск, дякую за працю!

  • @MuhamedAli-yd9xk
    @MuhamedAli-yd9xk 7 หลายเดือนก่อน

    Якщо вміти готувати, то виходить норм. Якщо не вмієте, то і не беріться. Працював на декількох проектах з мікросервісами, один навіть будували з нуля, стек Rast/Go/C++, враження лише позитивні. Можливо залежить від мови, наприклад для Go/C++ бінарь виходить 20..30mb і плюс Alpine контейнер 5mb - дуже гарно скейлиться. З Java та "micro" сервісами були одні страждання. Кейси бувають різні, знаю проект на С++, який технічно складно, майже неможливо, тримати монолітом, бо 120Gb RAM недостатньо щоб його збілдити.

  • @McKleeM
    @McKleeM 2 ปีที่แล้ว

    Про моду влучно 👏 Пошерте пліз лінк на статтю Twitter про розмір команд - цікаво) 10:01

    • @asolovyov
      @asolovyov  2 ปีที่แล้ว

      Та я її в рсс колись читав, а зараз пошуком замахався - і не знайшов. Може ще один підхід зроблю, але це було кілька років тому і ключові слова вже не згадуються…

    • @McKleeM
      @McKleeM 2 ปีที่แล้ว

      @@asolovyov от і я не знайшов)

  • @anton.plotkin
    @anton.plotkin 6 หลายเดือนก่อน

    А можна відео про те як і чому переходили з django на clojure? Настільки сильно впиралися в performance python? Зазвичай же основні проблеми зі швидкістю веб-сервисів це ж бд та наявність/відсутність кешування. Цікаво про цей досвід, тобто чому саме вирішили перейти і де виграли з цього?

    • @asolovyov
      @asolovyov  6 หลายเดือนก่อน

      th-cam.com/video/Xs6ED_v9TzY/w-d-xo.htmlsi=m_EZC1URf7_urC4b

    • @asolovyov
      @asolovyov  6 หลายเดือนก่อน

      І там після нього ще є 2 частина

  • @igorrebega4853
    @igorrebega4853 2 ปีที่แล้ว +1

    Я ще мав досвід де був один мікросервіс на людину, в середньому. Казали що то дуже аджайл 😅

    • @asolovyov
      @asolovyov  2 ปีที่แล้ว +2

      І перед тим як писати новий сервіс треба спочатку когось взяти на роботу?)

  • @realfootball338
    @realfootball338 2 ปีที่แล้ว

    10:11 зараз працюю у великому проэкті над MFE в команді з 9 чол. З хорошим тімлідом всей йде чотко. Це дійсно так. Але ми могли могли би мати в Angular чітко свій модуль на не цілу mfe точно з таким самим успіхом.

  • @SerhiiUa51
    @SerhiiUa51 2 ปีที่แล้ว +5

    не можна бути таким розумним, це незаконно!

    • @SerhiiUa51
      @SerhiiUa51 2 ปีที่แล้ว

      піду дивитися твоє відео про closure

  • @IlyaLavrovsky
    @IlyaLavrovsky 2 ปีที่แล้ว +1

    Загалом вагінь. 😍 Тільки ніхто до кінця не додивитися і мозок не ввімкне як результат. Доведіть що я неправий!

  • @realfootball338
    @realfootball338 2 ปีที่แล้ว

    Те саме з MFE, інтеграція цервісів це проблема. На стороні бекенду є 1000 варіантів інтеграції.
    Для швидкості розробки кожен мікросервіс має бути самодостатнім, тобто він + авторизаційний має бути достатньо але такі мікросервіси вже не зовсім мікро
    Для того щоб кожен мікросервіс міг окремо скейлитись потрібно для кожного окремо робити лоад баланс.
    Короче хороший архітектор має заморочитичь нереально щоб відчути ті міфічні переваги мікросервісів.
    На стороні фронденда є тільки одна перевага - мульти фреймворки і все.

  • @OleksaZelenyuk
    @OleksaZelenyuk 2 ปีที่แล้ว +1

    якщо це мікробізнес, то він вкладається в один мікросервіс)) а взагалі, із будь яким підходом є одна загальна проблема. Це догматичнічність і культ карго. Декларуючи одне, ти відсікаєш все інше. Сидиш на моноліті і боїшся винести сервіс, бо його треба окремо моніторити, деплоїти і т.п.
    Більшість проблем сервісного підходу виникає із поганим проектуванням, яке направду майже неможливо зробити наперед, якщо ти до цього не робив таку саму систему. Тому, треба закладати платформу потенційно готову для розділення і об‘єднання на всіх шарах і рівнях - дані, логіка, інтерфейс, api, тощо.

  • @eldardjafarov8747
    @eldardjafarov8747 2 ปีที่แล้ว

    Привіт чувак, слушні думки, яб ще додав, що іноді мікросервіси мають сенс якщо в тебе є якась спільна логіка, яка використовується кількома сервісами або аппками. Типу воркери, скрейпери, мапредюсери, аппи і таке інше. Плюс будь який продакшн проект живий і в нього є логіка розвитку розуміння бізнесу, тому починати з мікросервісів - реально складно і немає сенсу, бо ти реально не шариш на початку якіми термінами будеш оперувати через деякий час. Тож на мою думку треба завжди починати з моноліта, і дуже консервативно підходити до виділення сервісів, тільки у випадках якщо інших варіантів нема.

    • @asolovyov
      @asolovyov  2 ปีที่แล้ว

      Точно-точно! А коли є якийсь сервіс спільний для кількох систем, то це і є сервіс. Бо імхо коли кажуть "мікросервісна архітектура" - це коли ти модулі своєї системи перетворюєш на процеси, пов'язані мережею. Типу одну систему/сервіс робиш розподіленою.
      Це ж зовсім не означає, що платформа компанії буде одним процесом запущена. :)

  • @olegchulanov3042
    @olegchulanov3042 2 ปีที่แล้ว +2

    з приводу скейлінга не згоден. бо щоб зрозуміти як і куди скейліти чи в загалі які ліміти треба ставити, то треба по перш робити тест навантаження і дивитись на графічки)) бо без тестив та без моніторінга апп може жрати всі ресурси та ще гірку))) тож може мабуть треба дивитись ширше та далі кордонів апп)). далі (1:30 - 3:00) не слухав, бо чекаю відповіді

    • @asolovyov
      @asolovyov  2 ปีที่แล้ว

      Ну так і є, просто скейлити в базовому варіанті простіше моноліт все одно, і перероблювати теж :)

    • @IlyaLavrovsky
      @IlyaLavrovsky 2 ปีที่แล้ว +1

      У Сашка десь є відос про те, що ти ьестуй чи не ьестуй все одно отримаєш XYZ. Бо тестувати навантаження також не в кубер задеплоїти. Гуд лак тестувати навантаження мікросрвісів без розуміння "що" і "нащо"

    • @vitalii7413
      @vitalii7413 2 ปีที่แล้ว

      Навряд ти запускаєш новий продукт на трафік у мільйон користувачів.
      Ти ж вже десь є?
      І з інфраструктури що ти даєш своєму продукту ти бачиш що він їв сьогодні і що було тиждень тому.

    • @yuriistepanchuk7843
      @yuriistepanchuk7843 2 ปีที่แล้ว

      По скейлінгу теж не підтримую, якщо норм розрізаний домен і з асинхонними запитами то все має бути ок. Виключення коли в тебе по сервісу на бек і фронт, там треба вже гратися але нічого складеого

  • @andriiplaysguitar
    @andriiplaysguitar ปีที่แล้ว

    Дякую за поради. Як щодо ситуації коли над монолітом працює більше 10 команд і деплоймент перетворюється на жах, де треба в загальний слек писати шось типа "I'm releasing %monolith%, please don't merge anything in master"? Або коли шоб задеплоїти маленьку зміну треба годину чекати поки всі тести та інші кроки в деплоймент пайплайні (більшість з яких нерелевантні) пройдуть зелененьки?

    • @asolovyov
      @asolovyov  ปีที่แล้ว +1

      Проблему з «я реліжу не чіпайте мастер» не зовсім розумію. Звучить наче процес деплою вимагає покращення?
      Ідеальний деплой - помітив конкретний комміт, і пішов займатися справами, і він або вилетить на прод, або нотіфікашку пришле про готовність.

    • @andriiplaysguitar
      @andriiplaysguitar ปีที่แล้ว

      @@asolovyov Я мабуть трохи застряг у минулому з усіма штуками типу gitflow з мастером, епік бранчами, фіча бранчами тощо. Дякую ще раз.

    • @asolovyov
      @asolovyov  ปีที่แล้ว

      @@andriiplaysguitar ну реліз для мене - це конкретний комміт для мене. В нас є невеличкий скрипт в репі завжди, bin/release запускаєш, і він робить новий комміт, відрізає чейнджлог, генерує тег і лишається тільки пушнути все, щоби поїхав процес. :)

  • @4988925
    @4988925 2 ปีที่แล้ว +1

    Моноліт на линукс контейнерах супер тема, ноль возни

  • @Lov3Catch
    @Lov3Catch 2 ปีที่แล้ว

    На одном из мест работы была следующая ситуация: монолит на старом и заброшеном фреймворке, куча дублей, ЯП апгрейднуть нельзя (тк фреймворк не совместим с новыми версиями), код писать там сложно и больно. В итоге самое удобное что придумали - относительно большие фичи инкапсулировать в сторонних сервисах (микросервисах), а основной монолит использовать в качестве гейтвея.
    Справедливости ради - этот кейс больше про: техдолг в монолите и как его решать при отсутствии ресурсов, чем про монолит vs микросервис.

    • @asolovyov
      @asolovyov  2 ปีที่แล้ว +1

      Ага, ну ніхто не заважав зробити інший моноліт, а старий юзати як проксі так само. Ну короч купа підходів)

    • @oleksandrsova4803
      @oleksandrsova4803 2 ปีที่แล้ว

      @@asolovyov Uncle Bob колись казав: "Microservice is a deployment option." Як на мене - або недоговорював або розраховував на великий професіоналізм аудиторії, що не буде з "кишок" одного модуля лізти в "кишки" іншого. В мікросервісах то простіше контролювати.
      Дійсно, в базових умовах - ніхто не заважав. І дійсно, можна було почати з однієї малої частинки, а потім рухатись поступово докидуючи туди ж інші частинки. Але нащо наражатись на небезпеку незв'язних in-process communications якщо вже трапилась нагода дати justification по-компонентному деплою?

  • @expeditiontoabyss3597
    @expeditiontoabyss3597 2 ปีที่แล้ว

    українською ❤ лайк

  • @mkashkin
    @mkashkin 2 ปีที่แล้ว

    Чтобы подвести немного к общей черте. Монолиты требуют правильной архитектуры, микросервисы тоже требуют и правильной архитектуры и правильной организации работы. Пока больше людей которые лучше умеют в архитектуру монолитов. А тех кто умеет микросервисы их мало, а еще меньше тех кто может организовать работу команд.
    Если все же станет понятно, что надо распиливать монолит на микросервисы, то вот мой опыт th-cam.com/video/TraEhjYv6BQ/w-d-xo.html.

    • @asolovyov
      @asolovyov  2 ปีที่แล้ว +1

      Єдине, що в нейтральності аналізу підводить трохи - це те, що архітектура мікросервісів складніше by design (розподілене все і тп). А так все вірно.

    • @mkashkin
      @mkashkin 2 ปีที่แล้ว +1

      @@asolovyov сложнее, еще больше проблем с правильным инструментарием, и как у всяких модных технологий куча васянов которые лишь бы воткнуть.

  • @scifi85
    @scifi85 2 ปีที่แล้ว

    Тепер це дати подивитися всім мамкіним архітектам, які закочують очі і заламують руки коли ти їм кажеш, що їх мікросервіси непотрібні в 90% випадків.

    • @asolovyov
      @asolovyov  2 ปีที่แล้ว +2

      Малеев, здається, гарно розповідав, чому не потрібні архітектори. Там просто тема з курицею та яйцем :)

  • @illiaosmanov
    @illiaosmanov 2 ปีที่แล้ว

    Найс)

  • @IgorLushchyk
    @IgorLushchyk 2 ปีที่แล้ว

    І так - виключити коменти в тг - гарний хід xD

  • @GrigoriyStruzh
    @GrigoriyStruzh 2 ปีที่แล้ว

    широке застосування мікросервісів привело до нової моди - серверлес.
    і тут коли ти маєш малий кодбейс то впринципі юзати лямбди як варіант мікросервісів

    • @asolovyov
      @asolovyov  2 ปีที่แล้ว

      Угу і стаєш Senior YAML Developer’ом потім і єбешся з тим шо амазон залізо дає говняне, працює все повільно, лупить тебе по таймаутам, треба прогрівати і таке інше)

    • @GrigoriyStruzh
      @GrigoriyStruzh 2 ปีที่แล้ว +1

      ​@@asolovyov підходиш такий до чувака з нетфлікс і кажеш йому моноліт рулить а мікросервіси хуйня, думаю відповідь буде з такого розряду як ваша мені. не у всіх проекти для бізнесу такої категорії як у вас де лямбди і близько не підходять

    • @asolovyov
      @asolovyov  2 ปีที่แล้ว

      Ггг ну ок, є кейси для лямбд, авжеж:)
      Це я з ними просто погрався і воно мене змусило нормально фруструвати 😁

  • @11r3start11
    @11r3start11 2 ปีที่แล้ว +2

    До речі й черги повідомлень можна в моноліті зробити. Як спосіб зв’язків між модулями та якщо не вистачає екзотики)
    PS дякую за відео

    • @ІгорАлієв
      @ІгорАлієв ปีที่แล้ว

      Ага походу різне HPC подібно працює через асинхронні методи MPI:)

  • @dobronravov1987
    @dobronravov1987 2 ปีที่แล้ว +1

    В нашій конторі упоролись, і ми для заказчіка кожну таблицю в монзі, виносимо в отдєльний мікросервіс зі своїм беком, а крім цього між фронтом і беком стоїть прослойка ,тіпа проксі, і по ходу її тоже треба дробити по аналогії з таблицями, і міняються ендпоінти на фронті, ну і звичайно фронт теж будемо крамсати на мікро)

    • @asolovyov
      @asolovyov  2 ปีที่แล้ว +1

      🤦‍♂

    • @vitalii7413
      @vitalii7413 2 ปีที่แล้ว

      Якщо є заказчік то ваш менеджмент крутий!
      В даному випадку це супер успішний кейс!)

    • @dobronravov1987
      @dobronravov1987 2 ปีที่แล้ว +1

      @@vitalii7413 так і є), але я ніколи не міг би подумати що комусь треба буде настільки мікросервісну архітектуру), я думаю через рік два, кожну функцію будемо виносити на отдєльний порт)))

  • @di410
    @di410 2 ปีที่แล้ว +4

    Якщо зміна одного мікросервіса тягне за собой зміни ще в десятку то ви зробили не мікросервіси а поганий моноліт

    • @VsevolodSolovyov
      @VsevolodSolovyov 2 ปีที่แล้ว +3

      Саме так всі і роблять

    • @asolovyov
      @asolovyov  2 ปีที่แล้ว +1

      Arguably так, але по-перше уникнути цього дуже важко (дивись аргумент про факторінг), по-друге навіть з гарним факторінгом нормальні таски все одно будуть це робити.
      Моноліт теж може мати гарну модульність. І повинен.

    • @vitalii7413
      @vitalii7413 2 ปีที่แล้ว +1

      Плюсую.
      Ось оце «мікро» людей з розуму зводить, і вони ділять там де вже давно варто б зупинитися.

  • @tarasinf
    @tarasinf 2 ปีที่แล้ว

    Ой, дуже по наболілому. Вже наплодили мікросервісів більше десятка, а проблем тільки виросло. З цікавого, що мене вразило, як прикрутив New Relic, то те, що нові сервіси беруть на себе трафіку, часом, одиниці-десятки запитів на хвилину... Я в шокови.
    Хто має брати на себе відповідальність за такі архітектурні рішення, як планування тех сторони продукту? Є відчуття, що все на самоплині з культом мікросервісів.
    Як я розумію, то при зростанні в 3Х на рік, новий сервіс для модуля, який зараз має 10 запитів на хвилину знадобиться ще не скоро. Як ви міркуєте, якими критеріями варто користуватись для декомпозиції? (Про кількість людей в команді - це теж питання, можна комітити в різні модулі, та й є великі компанії з монолітом. В нас відчуття, що кількість команди залежить від бажання мати велику команду, а не кількості викликів від бізнесу)

    • @asolovyov
      @asolovyov  2 ปีที่แล้ว +1

      Мені теж здається, що розмір команди часто не від потреб, а від бажання розміру. :)
      Де поділяти - дуже складне питання і треба кейс бай кейс. З монолітом і супутними сервісами це, здається, більше технічне питання. Типу коли ти хочеш в пам‘яті багато всього тримати для якогось конкретного апі і виділяєш це в окремий сервіс на мові, в якій управління пам‘яттю руками.

  • @VolodymyrPavlyshyn
    @VolodymyrPavlyshyn 2 ปีที่แล้ว

    th-cam.com/video/jkKThsA1_JE/w-d-xo.html Тут про моноліти й мікросервіси пару копійок

  • @bohdankostyk1669
    @bohdankostyk1669 2 ปีที่แล้ว +1

    Таке враження ніби втор відео, переглянув як робити поганий мікросервіс, і від того відштовхувався.
    Ідея мікросервісів полягає у тому що зробити модулі абсолютно незалежними один від одного та щоб модулі відповідали суто за свою задачу.
    Абсолютно те ж можна зробити й моноліті, це правда, і у плані проектування те буде попроще.
    Но, якщо ти будуєш моноліт, то у тебе проблеми виникають на довгострокових перспективах, а з мікросерсвісами навпаки.
    П.С.
    Мікросерсвіс має дуже багато переваг. І таку архітектуру вибирають далеко не тому що 'модно'.
    П.П.С.
    Що до розміру команд та нетфлікс з твітером, так то великі мегакорпорації яких у світі не так багато. НО, це не значе що у командах має обов'язково бути 12 людей. У команді може бути просто один розробник, якому ставлять завдання, і він їх виконує. І він може суто відповідати за свій модуль, який він розробляє. У тому й красота. Ти можеш убезпечити дані, і відати модулі на умовний аутсорс.

    • @asolovyov
      @asolovyov  2 ปีที่แล้ว +1

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

  • @sergiisadovskyi2188
    @sergiisadovskyi2188 2 ปีที่แล้ว +1

    Пробач але не підтримую. Деякі переваги описані моноліта тут мають місто бути, деякі лише тому що не достатньо досвіду

    • @asolovyov
      @asolovyov  2 ปีที่แล้ว

      Треба більше подробиць, а то нічого не ясно :)

  • @MaxMykhailenko
    @MaxMykhailenko 2 ปีที่แล้ว

    В розробку часто тягнуть безліч готового гімна, яке написане на чому попало, як попало і не може працювати в рамках однієї і тієї ж фізичної машини.
    Ну і так, зробили що все з усім пов’язане, то тікають в мікросервіси, бо думають буде по іншому. Зв’язність і звязанність чи як там його.

  • @vitalii7413
    @vitalii7413 2 ปีที่แล้ว

    Ти не сказав про фейловерабіліті)) в частині локалізації шкоди. Часом в одному продукті насправді є різні і вони не залежать один від одного, ну хіба інфа про користувача ділиться. І от коли ти один з таких зламав, то інші працюють.

    • @asolovyov
      @asolovyov  2 ปีที่แล้ว

      Ну це ж ніхто не заважає мати таке в моноліті. Типу те шо в тебе один урл фейлиться - не заважає іншим працювати. Авжеж, може ти шось дуже фундаментально поламав, але тоді ти або це помітив і не релізнув, або швидесенько відкатив.
      Загалом, режими збою в мікросервісів різноманітніші та цікавіші, ніж в моноліта, через розподіленість. :)

    • @vitalii7413
      @vitalii7413 2 ปีที่แล้ว

      @@asolovyov ну звичайно що це про повний даунтайм, коли щось вцілому зламане, але і про перформанс деградацію, або тупо хтось накочує індекс на велику таблицю блокуючи її чи ще щось.
      Але ще можна ділити юзерсторі.
      Наприклад зареєстрований і не зареєстрований користувач.
      Першого можна відправити на якийсь лендос з блогом, та й взагалі на окремий сервер. А зареєстровані на кращому залізі)
      Інший приклад - окремий чекаут, щоб максимально ізолювати
      тих хто вже несе тобі гроші.
      Апгрейдити базу краще під часткою юзерів ніж для всіх одразу, особливо там де база не потрібна і юзерсторі окрема.
      PS.
      Весь час працюю з монолітом.
      І правда що основна перевага і мотивація для мікросервісів - це організаційна структура. Часто ти не хочеш щоб процеси і підходи іншої команди впливали на твої.

    • @asolovyov
      @asolovyov  2 ปีที่แล้ว +3

      Чим далі в ліс - тим страшніше вовки :) Так, чим більша/старша система, тим більше цікавих деталей, але базово проблеми залишаються ті самі. Всі аргументи за мікросервіси не працюють, працює лише один - тисяча людей в одному проєкті працювати ефективно не можуть.
      А все інше - запустити окремі інстанси для незалогінених, мати більше баз, ніж одну, і так далі - можна й з монолітом. Ніхто не заважає в моноліті мати багато ентрі поінтів і менші артефакти для окремих частин. Типу спосіб організації кода і спосіб деплоя можна і не змішувати. :)

  • @danish_m1305
    @danish_m1305 ปีที่แล้ว

    Ты забыл упомянуть об отказоустойчивости. Допустим у нас есть банк, в котором есть сервис, который отвечает за обработку транзакций, сервис обработки нотификаций, и сам сервис онлайн-банкинга. И, пока идет работа над обновлением сервиса банкинга, сервис уведомлений и обработки транзакций должны работать без отказов

    • @asolovyov
      @asolovyov  ปีที่แล้ว

      Повинні - і з мікросервісами, і з монолітом.

    • @danish_m1305
      @danish_m1305 ปีที่แล้ว

      @@asolovyov Трішки не зрозумів, можете детальніше розказати що ви маєте на увазі?

    • @asolovyov
      @asolovyov  ปีที่แล้ว

      @@danish_m1305 маю на увазі що така вимога є в будь-якому випадку, незалежно від архітектури. Більше того, я б сказав що при деплої жоден із сервісів не повинен відмовляти, неважливо, яка архітектура.

    • @danish_m1305
      @danish_m1305 ปีที่แล้ว

      @@asolovyov А як це вирішується. Декількома інстансами сервера? Можете дати мені текст запиту, де про це можна почитати?

    • @asolovyov
      @asolovyov  ปีที่แล้ว +1

      @@danish_m1305 ну якщо сервіс - http, то так, кілька інстансів і перед ними load balancer - наприклад, nginx/haproxy/caddy/traefik/etc. Якщо це сховище (типу постгрес, скажімо), то життя складніше і будуть пляски із реплікацією і баунсерами (по факту теж балансувальником навантаження).

  • @romantatusko4785
    @romantatusko4785 2 ปีที่แล้ว

    ох і палає зараз у всіх хто продає мікросервісну архітектуру як пюшку

  • @dmitriyzhuck2
    @dmitriyzhuck2 2 ปีที่แล้ว

    То девʼять чи десять?

  • @oleksandrsova4803
    @oleksandrsova4803 2 ปีที่แล้ว

    2:40 У вас дуже багато "якщо". Як на мене ви розглядаєте виключно погані дизайни. Скейлити потрібно не сервіс. Скейлити потрібно юз-кейс. Бо це юз-кейс загибається, а не сервіс. І якщо ви не можете обчислити boundary кейсу, що треба скейлити - руки геть від мікросервісів та хутко до навчання, бо розбитий солюшн на сервіси ну дуже погано.

  • @ihorhorobets670
    @ihorhorobets670 2 ปีที่แล้ว

    А як же бути в ситуації коли в тебе інтерпрайз на 1 мільйон рядків коду? Хочеться, щоб виклики до інших модулів були задокументовані та персистентні(event driven архітектура), щоб були якісь межі між модулями і щоб можна було деплоїти окремо лише те що потрібно. Мені здалося що ти порівнюєш розподілений монололіт і звичайний моноліт де твої поїнти валідні. Хоча ти ж сам розповідав що у вас є багато окремих сервісів які спілкуються між собою через кафку. Це хіба не мікросервіси у випадку маленької тіми де сервіси досить великі і мало людей?
    BTW кейс де ти пилиш нову фічу і треба транзитивно робити зміни в декількох сервісах можна вирішити в event driven мікросервісах де ти маєш дві версії евентів і просто вчиш свої мікросервіси по різному їх оброблювати.

    • @asolovyov
      @asolovyov  2 ปีที่แล้ว

      Ну мікросервіси мають одну велику відмінність ідеологічну від сервісів. Типу ти принципово будуєш критично розподілену систему, вірно?
      В нашому випадку є кілька систем, які спілкуються через кафку - типу сайт для продажів, сайт для постачальників, ерп, доставка, але вони самі по собі окремі системи, це точно не мікросервіси. І в них можуть бути маленькі сервіси поруч (типу скріншотілка на puppeteer, наприклад).
      А мільйон рядків - думаю, що кейс бай кейс, але розумну модульність ніхто не відміняв. Якось воно доросло до мільйона? Тож якусь модульність там закладали на старті… важко сказати, не заглибившись в деталі, якщо чесно.
      Про івент сорсінг - згоден, це виглядає більш приємним способом організувати зворотню сумісність. :)

    • @vitalii7413
      @vitalii7413 2 ปีที่แล้ว

      @@asolovyov ооо, ось тут я збагнув що ти маєш на увазі кажучи мікросервіси.
      Треба було б акцентувати на цьому.
      Хоча я сервіси називаю мікросервісами, але поділ мені імпонує саме по ізольованій поведінці, коли частина загальної системи самодостатня хоча б від частини інших систем.

    • @asolovyov
      @asolovyov  2 ปีที่แล้ว +1

      Так-так, велике питання, як ділити систему! Це власне основне. Мій поінт такий: починати з будування розподіленої системи, поки ти ще навіть не усвідомлюєш, де в тебе будуть проблеми - не варто.

  • @DmytroVorotyntsev
    @DmytroVorotyntsev 2 ปีที่แล้ว

    Чому всі оминають досить вдалу концепцію монорепи ? Автор контенту навіть не обмовився. Така організація кода допомогає із вирішенням питання взаємних залежностей. А можливість скейлінгу та підбір оптимальних конфігурацій для кожного із сервісів залишається. Також автор зовсім оминув тему що розвиток контейнеризаціі (можливо через моду, але це невдале ствердження), дав змогу додавати у свою платформу багато готових рішеннь, що треба сприймати саме як мікро сервіси , але написані іншими.

    • @asolovyov
      @asolovyov  2 ปีที่แล้ว

      Бо монорепа це ортогонально мікросервісам/моноліту. Це просто коли багато кодових баз у одній репі лежить, і це якісь речі робить простішими, але кардинально не змінює ситуацію.
      Ніякої спеціальної можливості скейлінгу у мікросервісів нема.

    • @DmytroVorotyntsev
      @DmytroVorotyntsev 2 ปีที่แล้ว

      @@asolovyov Можливо зробити контент про скейлінг в Касті? Я поки не бачу пітверджень того щоб скейлінг моноліта добре працював. Мене трохи дивує ситуація навколо продажу марок Укрпоштою, що жоден із маркетплейсів не може нормально витримати навантаження.

    • @asolovyov
      @asolovyov  2 ปีที่แล้ว +2

      @@DmytroVorotyntsev в нас не клауд через багато різних причин. :) А щодо того що не може витримати навантаження - так це як раз цікаво, бо помирає першим KastaPay, який мікросервісний і в AWS. Автоскейлінг не відпрацьовує достатньо швидко.

  • @shchekavytsia
    @shchekavytsia ปีที่แล้ว

    Тільки бородаті діди топлять за моноліт. А скейлити моноліт зручно? Не дорого? Якщо 2 з 20 модулів перебувають під високим навантаженням, то скейлити доводиться весь моноліт чи нє?
    1. Треба адекватно проектувати мікросервіси. Потрібен architect.
    2. В голові все тримати не треба, а от документація має бути описана.
    3. Є купа задач, де моноліт працює, але сучасний веб додаток на +5К юерів значно ефективніше робити на мікросервісах.

    • @asolovyov
      @asolovyov  ปีที่แล้ว

      «Скейлити прийдеться весь моноліт»? Я не розумію що тут мається на увазі, але якщо в тебе 10 сервісів розкидано по 10 серверам кожен із потужністю х (загалом 10х), і тобі треба двом з них додати в два рази більше потужності, і ти отримуєш 12х (ну якщо якийсь далі сервіс не почне завалюватися від навантаження), то таке саме і з монолітом буде. Якщо тобі треба додати 20% потужності, то не треба додавати в два рази.
      В мене в житті було більше возні типу «через місяць у вас буде 10х навантаження, придумайте шось», і з мікросервісами це було б в рази більше возні тупо щоби зрозуміти де треба додавати потужностей.
      Всі твої пункти - якась догматична хрінь.

    • @shchekavytsia
      @shchekavytsia ปีที่แล้ว

      @@asolovyov ми возились зі скейлом моноліту 3 роки, поки це нам не набридло і ми не переписали систему на мікросервіси. Це зайняло не мало часу, але результат настільки порадував, що назад ми не повернемось.

    • @asolovyov
      @asolovyov  ปีที่แล้ว +1

      @@shchekavytsia ноу проблемос, але 1) моноліти різні бувають та 2) ви не стартували з мікросервісів, що прям сууупер-розумно

  • @bar0n
    @bar0n 2 ปีที่แล้ว

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

    • @asolovyov
      @asolovyov  2 ปีที่แล้ว

      Занадто філософськи :)

    • @bar0n
      @bar0n 2 ปีที่แล้ว

      @@asolovyov как и вся жизнь ))). И там и там есть плюсы и минусы.

  • @oleksandrsova4803
    @oleksandrsova4803 2 ปีที่แล้ว

    12:00 гроші заважають скейлити моноліт. Знову ж таки тому що проскейливши моноліт ви проскейлити ще достобісу кейсів, що вам скейлити не потрібно було. А це все жере гроші як свиня помиї.

    • @asolovyov
      @asolovyov  2 ปีที่แล้ว

      Не ясно, в чому проблема. Тормозить список товарів? Прекрасно, давайте займемось їм - і чекаут при тому чіпати не треба.

    • @oleksandrsova4803
      @oleksandrsova4803 2 ปีที่แล้ว

      @@asolovyov "Тормозить" не завжди через скейлінг вирішується - це факт. Завжди через скейлінг вирішується якийсь shortage. Наприклад, коли активних конекшнів не вистачає для того щоб закрити поточний customer demand. І як ви **в моноліті** дасте більше facilities на обслуговування більшого числа **одночасних** запитів на список товарів не давши те саме на чекаут - то для мене загадка.

    • @asolovyov
      @asolovyov  2 ปีที่แล้ว

      @@oleksandrsova4803 ну можна конекшен пулер всередині аплікейшена підрихтувати заради якихось або пріорітетів, або лімітів. Зовні, авжеж, такої можливості не буде. Інше питання, чи таке взагалі коли-небудь знадобиться.

    • @oleksandrsova4803
      @oleksandrsova4803 2 ปีที่แล้ว

      @@asolovyov Розмір пулу не просто так на окремій залізяці не можна поставити unlimited. Тож і нарощувати його до нескінченості не можна. Він досить швидко виїдається.
      А щодо того чи треба - то так. І досить часто. Thread starvation частіше за все виникає там, де автоматичні скрипти (наприклад клієнтські інтеграції), що ви не контролюєте насідають на ваш API. Для бізнесу кожен той реквест надцінний. І, якщо з інтеграціями можна виявити паттерн і відскейлюватись за короткий час до inflow - то з людьми таке не вийде. Вони приходять коли хочуть. І тут лише elasticity додавати. А еластично відскейлити моноліт... Ні, воно то можна. Але скільки часу воно займе? Хвилину? Може всі п'ять? Скільки зумерів за цей час вкладку закриють? І який аналітик скаже яка з них частина, що могла виконати імпульсивну покупку на гайпі?
      Як на мене - ці питання мають складність на стільки високу, у порівнянні з чим всі складності, що ви приводили у відео просто нескінчено малі.

    • @asolovyov
      @asolovyov  2 ปีที่แล้ว

      ​@@oleksandrsova4803 rate limit здається шо розумніше на вході робити, ніж на кількості конекшенів до бази. А коли приходять справжні люди, то ти теж не дуже хочеш на списку товарів працювати, а на чекауті тормозити.
      Про еластічний скейлінг я не розумію, про шо ми розмовляємо. Запустити більше процесів - проблем нема. Відскейлити базу? Це складніше, авжеж, але коли ми наколхозили мікросервісів з монгодб кожен, то ситуація в нас ще гірша.
      Я б сказав що дискусія про БД вимагає якогось більш вдалого майданчику, ніж коменти на ютубі. :(