одно другому не мешает как бы )
Кубер монолиту лучше точно не сделает, а вот помешать вполне сможет
ну блин это две разные сущности. сравнение хуя с пальцем.
да и если у тебя уже есть настроенный кубер с мониторингом и прочей херней, то запуск в нем монолита потенциально будет полезен - уберет определенную головную боль
да и если у тебя уже есть настроенный кубер с мониторингом и прочей херней, то запуск в нем монолита потенциально будет полезен - уберет определенную головную боль
Любая инит-система (типа системд) делает для монолита ровно то же самое, что и кубер, только без лишней прокладки между приложением и ОС
imhosep прав. Способ запуска и архитектура приложения - разные вещи. И в кубере можно обеспечить горизонтальное масштабирование, в том числе и монолита, если приложение поддерживает безболезненный запуск нескольких экземпляров одновременно.
Во-первых монолит и горизонтальное масштабирование это вещи слабо совместимые и запуск такого это всегда костыли и нихуёвый оверхед, потому что ты масштабируешь сразу всё что есть в монолите, даже если он задыхается только на одном конкретном этапе, во-вторых что мешает несколько системд сервисов запустить?
Можно заскейлить на несколько компут, как вариант.
За монолит!
как же чел раскрутился с тех времен (crymory)
Не чокаясь!
Что такое монолит в данном контексте?
Приложение/продукт сделанное "одним цельным куском"
Делать проект одним большим куском. Кубернетс - приблуда для компоновки отдельньіх кусков-кирпичиков проекта. При монолите он не нужен (на самом деле нужен, так как всегда на монолит потом чегото навешивают)
Так стали называть классические серверы после того, как в моду вошли микросервисы. Микросервисы это зоопарк разных сервисов, которые друг с другом общаются по сети. Чтобы их всех поднимать или обновлять, нужен специальный "оркестратор", который бы следил за ними и спавнил или гасил по необходимости. Ебала та еще, так что требует отдельной роли "девопс".
Тоже самое что и мейнфрейм по сравнению с сотней инстансов в облаке.
Монолит---это подход при котором приложение не разделяется на независимые компоненты и взаимодействие между ними. В современной айтишке сейчас это сохранилось в нескольких изолировнных направлениях, все остальное пилится на микросервисы, потому что так 9 матерей могут родить ребенка за месяц---после того, как архитекты запилят логику, несколько независимых команд параллельно педалят каждый свои сервисы. И можно запилить готового к продаже энтерпрайсного франкейштейна за три спринта.
А ещё это даёт более предсказуемый результат. Поскольку контракты на обмен данными строгие, то изменения внутри модуля не трогают остального проекта. И всё это достаточно хорошо тестируется. А вот в монолите, в плохом случае, со временем могут начать вытекать новые правки, которые могут неявным образом повлиять на пятый мизинец третьей ноги на второй жопе, отчего там начинается на ровном месте фантомная боль, будто на лего наступил.
Читал на хабре, что многие кто успел много поработать с микросервисной архитектурой пришли к выводу, что их не стоит пихать во все проекты и первое что нужно сделать при согласовании проекта это определить - монолит ли тут будет лучше или микросервисы. То есть, монолит вполне имеет сеье место быть и надо уметь работать с ним, а не отказываться полностью. Видел картинки где связи между микросервисами настолько запутанные, что нужен новый инструмент, поисковая система чтобы ориентироваться в них (картинка в статьях была другая, но эта думаю тоже подойдет для наглядности)
А иногда микросервисы просто не подходят по лейтенси. И хотелось бы сделать красиво и распилить на сервисы, но у тебя предел времени обработки месседжа 900 наносекунд...
Микросервисы можно не объединять в такую паутину, а общаться через общую шину в виде какой-нибудь кафки. Тогда таких страхіть как на картинке не будет
А у кафки какой предел?
Кафка это pub-sub система, количество подписывающихся (консьюмеров) или публикующих (продьюсеры) сервисов может быть условно каким угодно (там есть своя специфика конфигурации, но даже в самой примитивной конфигурации топиков, можно повесить тысячи консьюмеров на топик, а продьюсеры кажется не ограничены, лимит только на throughput. Если делать по нормальному - то каждый сервис будет иметь свой топик, тогда кол-во сервисов вообще будет не ограничено - но тут придется помудрить с месседжингом все-таки)
Если же говорить о пропускной способности - confluent kafka например гарантирует пропускную способность до 1Гб/сек, если не писать в кафку бинарные файлы, а использовать ее только для метаданных, то этого хватит для своего нетфликса, скорее всего.
Если же говорить о пропускной способности - confluent kafka например гарантирует пропускную способность до 1Гб/сек, если не писать в кафку бинарные файлы, а использовать ее только для метаданных, то этого хватит для своего нетфликса, скорее всего.
А какая разница? Кафка даст возможность копить и не терять сообщения.
Но сложность от этого никуда не делась. Как хуева туча микросервисов общалась друг с другом, так и общается. Только теперь через кафку.
Но сложность от этого никуда не делась. Как хуева туча микросервисов общалась друг с другом, так и общается. Только теперь через кафку.
граф зависимостей в монолите выглядит обычно страшнее
Я читал "Чистую архитектуру" Мартина, и он учит, что первым делом нужно проектировать архитектуру, а на монолите она будет или на микросервисах, нужно определять в последнюю очередь. Связи между компонентами что там, что там будут с одинаковыми контрактами, вот эти контракты и нужно определять в первую очередь.
Ну и ещё кто-то из классиков стратегии (кажется, Сун-цзы) сказал, что равные позиции преобразуются в равные, поэтому ад зависимостей между классами в монолите превращается в ад зависимостей между микросервисами.
Ну и ещё кто-то из классиков стратегии (кажется, Сун-цзы) сказал, что равные позиции преобразуются в равные, поэтому ад зависимостей между классами в монолите превращается в ад зависимостей между микросервисами.
Ну насчет "Дяди Боба" в целом тоже многие спорят, типо да, можно и нужно все делать красиво, но все равно по многим причинам иногда придется делать что то буквально из гавна и палок лишь бы это работало как надо
Начинать надо с арматуры и опалубки
3-tier архитектура, SOLID, DRY, KISS, YAGNI, сервисы, юнит-тесты (TDD) и codereview/куалити-гейты на CI/CD.
PS. "Дяденьки, я ведь не настоящий сварщик, я только сварочную маску нашел"(c)
PS. "Дяденьки, я ведь не настоящий сварщик, я только сварочную маску нашел"(c)
То что раньше жило в одном месте, теперь делят на десяток мест. То что передавалось внутри памяти, теперь сериализуется и гоняется по сети. Процессы раньше управлялись ОС-ю внутри одной машины, теперь нужен кубернетес чтобы морочить десять машин. Кафку выдают за что-то новое (pub-sub схема была еще наверное лет 40 назад). Я решительно не вижу прогресса, лишь новые базз-ворды.
Чтобы написать коммент, необходимо залогиниться
Отличный комментарий!