381

0 урок DevOps

0 урок DevOps, Теория.

В этом видео рассматриваем микросервисные и монолитные архитектуры, базовые составляющие Kubernetes.

Ссылка на предыдущий урок: -1 Урок DevOps

TG канал где можно позадавать вопросы: https://t.me/pikabu_devops

Лига Сисадминов

2.3K пост18.8K подписчиков

Правила сообщества

Мы здесь рады любым постам связанным с рабочими буднями специалистов нашей сферы деятельности.

Вы смотрите срез комментариев. Показать все
4
Автор поста оценил этот комментарий

Что такое монолит и почему его нельзя запустить в кубере?

Мироксервисы бесмертны? Если бд упадет, то поднимется новая? Все разруливается правилами?


Хорошая история, жалко что пиздеж

раскрыть ветку (25)
1
Автор поста оценил этот комментарий

Монолит - это здоровый кусок скомпиленного кода. Запихнуть в кубер можно, но не нужно. Например, jhipster в одном фэт джаре вместе с фронтом и беком, который выполняет как авторизацию так и апи запросы - самый яркий пример. В кубер пихается, но жрёт неприлично много ресурсов, толком не масштабируется и вообще нахрен там не нужен. Дабы пихнуть его в кубер надо распиливать на микросервисы, независимые друг от друга, а именно: фронт, авторизация, и по сути по микросервису на каждый апи колл. Тогда каждый можно масштабировать в зависимости от определенных условий, в том числе и реализовать полноценный service mesh с прозрачными транзакциями и трейсингом на базе той же связки linkerd+jaeger.


Микросервисы смертны и ещё как. Задача оркестратора (кубера) отслеживать их здоровье и поднимать/опускать/масштабировать в зависимости от проб и нагрузки.


Касаемо бд - нефиг вообще на проде держать stateful нагрузки в кубах. Они не про это. Бд прекрасно кластеризуются и живут вне кубера или предоставляются клауд провайдером по схеме SaaS. Для дев сред никто не мешает поднять под с той же постгрей, но нужно понимать что в любой момент это может наебнуться.


Кубы про stateless приложения, которые не зависят друг от друга и спокойно переживают рестарты/масштабирования.



Надеюсь, ответил на ваши вопросы.

раскрыть ветку (2)
2
Автор поста оценил этот комментарий

да у меня к автору вопрос был, особенно про фокус с "монолит - пропадает бд и все падает, а микросервисы заебись и все живет".


и монолит, если он stateless, можно пихнуть в кубер и масштабировать.

разные поды с одним и тем же образом бека, а на nginx разделить, что куда пойдет.


и будут у тебя поды с одинаковым кодом:

- авторизация

- админка

- хуе-мое


и сможешь ты нормально мониторить, что именно и где тормозит, и масштабировать нужное (например увеличить число реплик подов с авторизацией)


Переписать под кубер с нуля конечно лучше, но кто-же это будет делать, особенно для тсарых проектов. Это не бесплатно как по стоимости разработки, так и по факапам, которые точно будут, при переписывании с нуля. А с легаси вполне можно работать в кубере, с масштабированием и т п. Это будет менее приятно(на самом деле ебать как неприятно) и дороже по железкам немного, но намного дешевле, чем переписывать

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

и будут у тебя поды с одинаковым кодом:
- авторизация
- админка
- хуе-мое
Так и буду называть разделы. Коротко, ясно, логично.

0
Автор поста оценил этот комментарий

Обоснуйте? Почему нельзя запустить монолит в кубере? Я такого не говорил, я сказал что это нежелательно. Хорошо спроектированная микросервисная архитектура не падает, при адекватном DR. Что из того что я сказал пиздеж? Если хоть 1 слово наврал, то согласен удалиться отсюда и больше не появляться, если же выясниться что нет то удаляетесь вы, идет?

раскрыть ветку (21)
0
Автор поста оценил этот комментарий

кубер вещь хорошая и при правильном подходе решает кучу проблем, но вот БД в нем не бессмертные.


Давай я лучше спрошу, какие ты бд завернул, какой там объем данных и какой qps?

0
DELETED
Автор поста оценил этот комментарий

Да ладно, не кипятись, полезная штука эти ваши микросервисы, но если у бд нет физических реплик с нонстоп синхронизацией(а это тот ещё гемор, либо мастер будет ждать слейвы и тормозить от перебоев связи, например, либо так себе синхронизация ) , то при падении БД пизда рулю. Что будет поднимать кубер? Бд из бэкапа с отставанием?

раскрыть ветку (19)
Автор поста оценил этот комментарий

master-master cync?

раскрыть ветку (18)
2
DELETED
Автор поста оценил этот комментарий

Master Master это пишем в оба и оба синхронизуются друг с другом. Если кто-то видел такое при хорошей нагрузке и когда стораджи не на соседних полках отпишите, интересно.

Более менее рабочий вариант, когда слейв при падении мастера становится мастером, но тут 2 варианта, либо слейв писался без обеспечения целостности в асинхроне не тормозя мастер и в синхроне, что опять же накладывает требования на то что слейв у нас блокируещее звено(но тут благо их можно сделать много)

раскрыть ветку (15)
0
Автор поста оценил этот комментарий

Так при нагрузке шардируешь. Тут то речь про надежность. Можно сделать master master и еще шардировать это дело.

раскрыть ветку (14)
1
Автор поста оценил этот комментарий

А можно не мучать жопу и не держать stateful нагрузки типа БД в окружении для них не предназначенных. Бд прекрасно живут и вне кубера, либо как SaaS.

раскрыть ветку (13)
0
Автор поста оценил этот комментарий

То, что у вас БД будет жить вне кубернетеса, как то отменяет репликацию и шардирование?

Кубер это всего лишь вариант как управлять вычислительными ресурсами. Вы можете подымать виртуалки, а можете контейнеры. По сути это как иметь скрипт и конфиг с параметрами для него. Только по сути скрипты написаны, осталось заполнить конфиг. БД в кубере точно также для внешнего пользователя будет как SaaS а для админа точно такой же геморой с шардированием и репликацией.

раскрыть ветку (12)
1
Автор поста оценил этот комментарий

Все верно, репликацию и шардирование бд это никак не отменяет. Бд это зона ответственности dba, вообще не надо её в кубер пихать, особенно на проде.

раскрыть ветку (11)
0
Автор поста оценил этот комментарий

Ну тут уж кому как, если люди уверены в своих силах, умеют это готовить, то почему нет? По сути обычно там выделяется под базу несколько отдельных хостов. Все это настраивается, шардирование и репликация, организуется как сервис, настраиваются сайдкары и амбасадоры и все у вас готовая к расширяимости бд. Разве что настроить все это задача совсем не тривиальная. Но в итоге получается единое облако и настройки в едином стиле (Мониторинг потребления ресурсов, алертинг и т.д.). Как то был доклад на этоу тему от компании Флант.

раскрыть ветку (10)
0
Автор поста оценил этот комментарий

Ага, потом ноды с бд перекатываются, репликация идёт по одному месту, и вы судорожно ищете бекапы. Не надо бд в бою держать в кубере.

раскрыть ветку (9)
0
Автор поста оценил этот комментарий

Не панацея при большом qps. Здесь ближе все таки шардирование данных и более глубокая работа с бд приложения.

(пс: если упомянал в ролике, то респект, само видео не смотрел)

0
Автор поста оценил этот комментарий

речь видимо о мускуле?

помимо этих вопросов #comment_182689015


раскажи, а master-master прям писать в 2+ инстанса приложениям, или как?

Вы смотрите срез комментариев. Чтобы написать комментарий, перейдите к общему списку