Email or username:

Password:

Forgot your password?
s1dul

Знаете такой инженерный принцип KISS? Это который сводится к тому, чтоб делать проще? Так вот, в пятницу один коллега предложил, руководствуясь этим принципом засунуть все нужные мне сервисы в один докер-контейнер. Меня это как-то непропорционально взбесило. Ну подумаешь, чувак не врубил, как оно все устроено. Но до сих пор не могу успокоиться.

Есть ли какой принцип, который учит не давать советы по вопросам, в которых ты ни черта не понимаешь?

26 comments
Nanao Ei

@s1dul надо просто спокойно объяснить, что атомарность == KISS. Когда контейнер становится комбайном != KISS.

Александр

@s1dul @exo Кстати, это не всегда так.

Иногда эта самая излишняя атомарность создаёт ненужное усложнение и легко заменяется чем-то давно сложившимся, слежавшимся и потому де-факто монолитным.

Nanao Ei

@shuro сложно представить, когда разбивка чего-то большого на меньшие "кусочки", которые отвечают только за одну функцию - усложняет. Ну только если коллеги не понимают, как эти кусочки между собой связаны. Тогда надо просто написать доку.

Монолит - это хорошо, но только тогда когда все понимают из чего он состоит. Когда это не так, то лучше дробить. Эт относится как к технологиям так и таскам.

Александр

@exo Несложно :)

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

Nanao Ei

@shuro не, все что касается php (бекенд) ты пихаешь в один контейнер.Иначе оно не будет работать. А вот Nginx (aka Ingress) должен быть отдельно.

Александр

@exo Ну так KISS не обязательно вращается вокруг контейнеров, он появился ещё до них.

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

Nanao Ei

конечно KISS появился до контейнеров, но его принципы прекрасно перелагаются на них. Всякими docker compose'ами и прочими кубернетесами :) Про недопонимание полностью согласен, потому и написал первым комментом, что надо спокойно донести свою точку зрения. Ведь все люди разные и по-разному видят абстракции :blobcatshrug:

s1dul

@shuro @exo не. Там один и тот же сервис в двух конфигурациях, и все это в двух репликах. Мы балансировщик пилим, а ему надо чтоб было куда балансировать, чтоб потестить

Aleksei � Matiushkin

@s1dul

не вижу никаких проблем потестировать балансировщик с одним контейнером, даже проще

@shuro @exo

s1dul

@exo @shuro это, как раз, очень просто. Больше компонентов - сложнее взаимодействие между ними. С базами данных это наиболее выпукло - сравни няшный простой метод, который обновляет по одной строке в трёх табличках в одной транзакции с тремя компонентами, которым нужно взаимодействие, сеть, протокол, монстрозная распределённая транзакция или возня с компенсацией транзакций

Iron Bug
@s1dul @exo вы о чём вообще? KISS - это, блин, отсутствие всякого говножира вроде контейнеров. нормально собранная система с мелкими и быстрыми утилитами и сервисами, собранными и оптимизированными для конкретного железа.
у меня на ноуте после загрузки занято 120 мегабайт рамы. это - KISS. учитесь, школота.
Nanao Ei

@iron_bug ну, удачи пердолиться с утилитами 1000 летней давности. Как только запустишь что-то, что пользует больше чем 2 человека на твоем ноуте, так приходи и расскажи про говножир и прочее.

Iron Bug
@exo использую нормальный софт. имею собственный кастомизированный дистрибутив. многократно разворачивала серверы. собирала прошивки для эмбеддеда, ими пользуются очень многие (это массовая продукция). были девайсы, когда я в 32 мегабайта заталкивала ядро и всё нужное окружение. в том числе, писала софт, который работал целиком в кернеле.
и да, у вас там - говножир и стопроцентный говнокод. поэтому вы не можете нормально использовать софт: ваше говнище надо заворачивать в контейнеры, чтобы оно не текло и не воняло, и не сегфолтилось время от времени. нормальному софту это не требуется. он работает 24/7 без утечек и косяков. в том числе с фиксированным объёмом памяти, если требуется.
так что даже не примазывайтесь к KISS. у вас нет прав произносить это слово, пока у вас такая помойка на машинах. контейнеры - признак говнокода и кривых рук из жопы.
@exo использую нормальный софт. имею собственный кастомизированный дистрибутив. многократно разворачивала серверы. собирала прошивки для эмбеддеда, ими пользуются очень многие (это массовая продукция). были девайсы, когда я в 32 мегабайта заталкивала ядро и всё нужное окружение. в том числе, писала софт, который работал целиком в кернеле.
Nanao Ei

@iron_bug ну и пердолься со своим дистрибутивом с ембедами, зачем к нормальным людям лезть? У тебя забыли спросить какие слова называть, а какие нет.

Iron Bug
@exo ну, я кроме того пишу серверный софт для хай-лоада. там миллионы юзеров. всё нормлально работает.
я нормальных пока тут не вижу. я вижу, что вы оскорбили принцип KISS своими говноподелками и распространяете ложные представления об инженерных и программистских подходах к разработке. имею вам сказать, что ваши кривые поделки не имеют абсолютно никакого отношения к KISS. от слова совсем. так что не надо тут распространять дезинформацию.
s1dul

@iron_bug @exo ну, kiss это в первую очередь "от задачи". Откуда тебе знать, как проще, если ты не знаешь, что я делаю? А строю я интеграционное и смоук тестирование балансировщика нагрузки. Чтоб протестировать всякие кейсы с отказами и работой в разных режимаж, мне надо 5 сервисов туда-сюда. Как мне это на голом железе поднимать, чтоб не вспотеть?

s1dul

@iron_bug @exo

Был у меня такой начальник один. Я ему там за CI/CD затираю, за тестирование правильное. А он мне - а мы в 1731-м году методом конечных элементов на 4-х килобайтах и перфокартах о-го-го что делали!

Очень продуктивно поговорили, короче.

Roman

@s1dul логика называется. Спросил бы как они все на одном порту работать будут, если сервисы сетевые. Или подобные вопросы. Если таких вопросов голова не рождает, стоит задуматься, а надо ли оно или это все "потомучта взрослые пацаны так сказали" :)

s1dul

@3draven на это ответ будет, ну сделай на разных, ко-ко-ко

H.O.F.

@s1dul Есть много принципов как не беситься, если кто-то начинает давать советы по вопросам в которых он/она ничерта не понимают ))))

Go Up