Это очень философский вопрос. Вам нужно быть на 100% уверенным в своем продукте, что бы строить такие долгосрочные перспективы. Это далеко не всегда возможно.
Происходит это потому, что менеджеры чаще всего ни черта не понимают в разработке.
Мне кажется, вы не правы. Происходит это все потому, что чаще всего, такой подход устраивать бизнес. То есть, бизнес устраивать то, что через 3-5 лет код нужно будет выкинуть. Потому что при разумном подходе у них будут деньги на "выкинуть".
Запись встроенная куда? В очки, которые будут носить 10% людей?
серийные убийцы и маньяки, просто психопаты, воры и грабители(можно будет спокойно даже не заботиться о закрытии двери дома)
Из моего дома будет 24/7 идти стрим всех комнат что ли?)
педофилы(про реальных педофилов), ложные показания об изнасиловании или педофии(довольно актуальная тема, между прочем)
О да, ведь мы будем записывать 100% земного шара в 100% качестве? И темные подворотни, и всякие злачные места, где камеру скорее всего, сломают в первый день?
больше не будет антипрививочников и тех кто специально/или по тупости распространяет заразу, людям не зачем будет бояться заразиться
Зачем? Просто запретите антипрививочникам посылать детей в школу и садик, это работает.
Больше не будет такого, что люди будут оставлять машины в неположенных местах и превышать скорость, а также не пристёгиваться, так как ИИ будет их штрафовать(на первых порах это будет делаться человеком).
О да. Ведь сейчас полиции проходить и выдавать штрафы в самых популярных местах незаконных парковок просто невозможно, да? У нас в Киеве регулярные рейды полиции приучили большинство водителей не ездить по полосе автотранспорта.
Знаете, лично я готов пожертвовать своей свободой ради безопасности
Ради чьей безопасности? Тут какая штука, вашу безопасность вполне можно обеспечить старыми добрыми аналоговыми способами, если захотеть. У некоторых стран вполне неплохо получилось.
А если даже полиция не принимает заявления про угрозы жизни, вы думаете, автоматическая система, написанная для той же полиции будут лучше? Цели то перед ней будут ставить те же самые люди.
Для них это огромная проблема, страшно подпускать случайных людей к серверу, который обрабатывает транзакций на миллиарды рублей, а то и долларов.
Вы же понимаете, что в крупном банке ни один программист не имеет доступа ни к проду, ни к реальным данным в большинстве случаев? А код на тестовых серверах заваливают мануальщиками и автотестами.
Если вы зададите какой-то вопрос архитектору с кучей сертификатов, и он на него не ответил, это не значит, что он дурак, а значит, что он не может ответить на отдельный конкретный вопрос, либо сам вопрос сформулирован нечетко или некорректно.
Мне кажется, что если архитектор не смог ответить на вопрос, потому что тот был сформулирован нечетко или некорректно, то это ставит такой жирный крест на нем окончательно и бесповоротно.
Я согласен с людьми ниже, что тесты очень часто показывают только умение проходить тесты, а даже не уровень знания теории. Не говоря уже о том, что бы показывать уровень применения теории на практике.
По идее, как и любая архитектура. Как только проект начинает расти вширь и приходится много работать с кодом, то тут начинаются проблемы с тестами, поддержкой кода и т.д, если архитектура плохая
Боги послали нам коллективные иски, как уже отписали ниже. Я очень сомневаюсь, что требовать отказ от коллективных исков законно.
Строго говоря, как я понимаю, на данный момент законодательства согласно таким вот арендам не существует и оно все белыми нитками пришивается к существующим законам. А значит это все-таки больше серая зона.
Однако спустя время, Cloudflare решает отказать сайту 8chan в обслуживании на основании своих представлений о морали.
Это может быть и не очень хорошо, но это вроде как не цензура. Они не забанили, а просто решили отказать им в предоставлении услуг. 8chan вполне может воспользоватся другим сервисом, cloudflare пока не такой монополист, что бы без него прям жить было невозможно.
И чувакам из Zalando тоже везло. И еще куче людей. Как в мире много везения, не находите?)
ansible? в топку компоуз
Тут есть два нюанса:
docker-compose.yml из-за того, что его можно шаблонизировать через тот же ansible позволяет реализовывать сложные развилки в духе "использовать хостовую сеть или конкретный bridge" куда проще, альтернативой будет разве что развлекаться с несколько этапными вызовами модулей ansible, но тут есть второй нюанс
Ребята из ansible умудряются ломать хотя бы один из модулей docker_* семейства (не docker_service/docker_compose) с завидной регулярностью. То рестарт контейнера через docker_container пересоздает его, то docker_network необратимо ломает сеть для всего хоста. В какой-то момент я просто устал и переписал все на docker-compose + его вызов через модуль ansible.
Я не очень понимаю, почему вы думаете, что стоить умозрительную модель двух баров, различающихся только одной деталью не корректно
Как минимум потому, что такой вариант подразумевает, что у пользователя есть выбор. Обычно же A/B тестирование работает довольно ультимативно и как раз не предоставляет пользователю выбора (хотя бы потому, что выбор это очень сложно и дискомфортно). В рамках аналогии с баром, это было бы верно, если бы в баре 10% пользователей наливали бы pepsi вместо колы.
Проблемы начинаются при обновлении. Без даунтайма сложно компоузом делать замену контейнера.
У вас есть на выбор blue-green или же просто завести две ноды. И то и другое спокойно решается при помощи условного docker-compose + nginx/traefik.
По базам данных — после того как у меня при рестарте контейнеров начал рушиться постгрес — никогда на докере.
Уже больше 3 лет всегда держу базы в докере, перед этим все файлы прокидывая через mount на хостовую систему, никогда ничего не разлеталось. Я вот никогда не понимал, мне везло или просто я аккуратно пользуюсь докером.
Вы же понимаете, что в микросервисах изоляцию нарушить можно только методом "сходим ка бы напрямую в бд", а использование методов, которые описаны в контрактах не считается нарушением изоляции.
Зато все эти способы можно найти глядя в код.
А вы пробовали? Вот взять и найти все способы, где используется модель, описанная в одном модуле? Даже в средней кодовой базе очень легко пропустить один или два неочевидных места, в которых не импорты напрямую.
В монолите можно предупредить всех и ночью накатить огромный патч на кодовую базу (поменять имена методов, разделить и тп).
А вы пробовали? У нас, не смотря на наш маленький монолитик, такое пару раз делали и… выглядит это как-то так. Разработчик садится и начинает править один из главных модулей недель так на 3. В это время всем остальным разработчикам нужно найти задачи, которые не дай бог не пересекаются с этим модулем (а это сложно). После чего он вливает это в релиз и еще месяц мы фиксим то, что отвалилось.
Проблема в том, что в монолите очень легко нарушить изоляцию столькими способами, что потом и вспомнить их все не получится .
(у нас к примеру 4 микросервиса отправки смс за 6 лет… хотели как лучше, а получилось вот так).
И вы за 6 лет не смогли все перевести на один? Печально :( С другой стороны у вас всего 4 микросервиса за 6 лет, что не так уж и плохо, учитывая, что различные АПИ вызваны, скорее, различным набором требований. У нас просто такая ситуация, тоже будем переделывать апи для сервиса смсок, так как появились новые требования к нему :(
В монолите, особенно если он нормально спректирован
Только, если он нормально спроектирован и написал, что, довольно сложно (вообще код нормально писать оказывается довольно сложно).
На практике, очень часто ситуация выглядит как-то так:
Хочется обновить интерфейс взаимодействия с моделями
Обновили
Поменяли все места, где оно используются.
Вы замечательны
Деплоите
Оказывается, что в 3 случаях из 5 предыдущий разработчик клал на этот интерфейс и работал напрямую с моделиями.
Переписали
Деплоите
Оказывается, что другой предыдущий разработчик был большим фанатом отсутствия связности, поэтому он вытягивал модель из реестра, а на импортом, потому IDE ее не смогло найти
Переписали
Деплоите
...
Выбирая между хорошим монолитом и хорошим микросервисом понятно, что нужно брать микросервисы, так как туда еще входят профиты скалирования и так далее.
Но на практике, чаще всего у вас выбор между так себе монолитом и так себе микросервисами. В случае микросервисов, если основную экспертизу вложить в контракты, то качество кода внутри них не будет прям катастрофически влиять на все.
Ну да, распределенные кеша, протоколы согласования их, распределенные транзакции, eventual consistency, много разных хранилищ данных, которые нужно синхронизировать, все это упрощает разработку.
Можно подумать, в монолите не бывает случаев, когда нарушается нормальная форма и приходится страдать со всем этим чудом? Да в каждом втором :)
Это очень философский вопрос. Вам нужно быть на 100% уверенным в своем продукте, что бы строить такие долгосрочные перспективы. Это далеко не всегда возможно.
Мне кажется, вы не правы. Происходит это все потому, что чаще всего, такой подход устраивать бизнес. То есть, бизнес устраивать то, что через 3-5 лет код нужно будет выкинуть. Потому что при разумном подходе у них будут деньги на "выкинуть".
И где они теперь?)
А причем тут это? Там где-то написано что "следите за родителями 24/7 дома" или вы про перегибы на местах?
Камеры все еще расставляют в общественных местах. Как там дела с камерами в подъездах, на этажах домов?)
Ну и в добавок, как там дела с камерами, которые работают в темноте?
И как?
Запись встроенная куда? В очки, которые будут носить 10% людей?
Из моего дома будет 24/7 идти стрим всех комнат что ли?)
О да, ведь мы будем записывать 100% земного шара в 100% качестве? И темные подворотни, и всякие злачные места, где камеру скорее всего, сломают в первый день?
Зачем? Просто запретите антипрививочникам посылать детей в школу и садик, это работает.
О да. Ведь сейчас полиции проходить и выдавать штрафы в самых популярных местах незаконных парковок просто невозможно, да? У нас в Киеве регулярные рейды полиции приучили большинство водителей не ездить по полосе автотранспорта.
Ради чьей безопасности? Тут какая штука, вашу безопасность вполне можно обеспечить старыми добрыми аналоговыми способами, если захотеть. У некоторых стран вполне неплохо получилось.
А если даже полиция не принимает заявления про угрозы жизни, вы думаете, автоматическая система, написанная для той же полиции будут лучше? Цели то перед ней будут ставить те же самые люди.
Вы же понимаете, что в крупном банке ни один программист не имеет доступа ни к проду, ни к реальным данным в большинстве случаев? А код на тестовых серверах заваливают мануальщиками и автотестами.
Мне кажется, что если архитектор не смог ответить на вопрос, потому что тот был сформулирован нечетко или некорректно, то это ставит такой жирный крест на нем окончательно и бесповоротно.
Я согласен с людьми ниже, что тесты очень часто показывают только умение проходить тесты, а даже не уровень знания теории. Не говоря уже о том, что бы показывать уровень применения теории на практике.
По идее, как и любая архитектура. Как только проект начинает расти вширь и приходится много работать с кодом, то тут начинаются проблемы с тестами, поддержкой кода и т.д, если архитектура плохая
Вы же знаете, что лицензионное соглашение это вообще не истина в последней инстанции?
Это может быть и не очень хорошо, но это вроде как не цензура. Они не забанили, а просто решили отказать им в предоставлении услуг. 8chan вполне может воспользоватся другим сервисом, cloudflare пока не такой монополист, что бы без него прям жить было невозможно.
Ну, если они не читают документацию, кто им доктор :(
У saltstack, если я правильно помню, файл с тасками тоже по факту шаблон, это убирает проблематику первого пункта, например :)
Это, кстати, вообще не проблема докера :) Это эластик сам развлекается и если запустить его вне контейнера такая же фигня будет.
Ну, мне как-то везло и мне docker-compose не подкидывал сюрпризов.
К сожалению, с ним нюансов полно и докер не самый первый в очереди :(
И чувакам из Zalando тоже везло. И еще куче людей. Как в мире много везения, не находите?)
Тут есть два нюанса:
Ну, тогда вы вместо модели без выбора предлагаете модель с выбором. Как уже указали раньше, люди очень часто не выбирают "лучшее" ...
Как минимум потому, что такой вариант подразумевает, что у пользователя есть выбор. Обычно же A/B тестирование работает довольно ультимативно и как раз не предоставляет пользователю выбора (хотя бы потому, что выбор это очень сложно и дискомфортно). В рамках аналогии с баром, это было бы верно, если бы в баре 10% пользователей наливали бы pepsi вместо колы.
Это пример так себе спроектированного монолита. Потому что если вы умеете проектировать, то страдать то все равно не будете.
Ну нет. Для такого нужно еще доступы выбить, коннект настроить. Куда проще, чем написать стремноватый код в монолите.
Как команда из 5 человек может писать небольшой проект?( Мне кажется, что 5 человек это уже довольно много все-таки.
У вас есть на выбор blue-green или же просто завести две ноды. И то и другое спокойно решается при помощи условного docker-compose + nginx/traefik.
Уже больше 3 лет всегда держу базы в докере, перед этим все файлы прокидывая через mount на хостовую систему, никогда ничего не разлеталось. Я вот никогда не понимал, мне везло или просто я аккуратно пользуюсь докером.
Вы же понимаете, что в микросервисах изоляцию нарушить можно только методом "сходим ка бы напрямую в бд", а использование методов, которые описаны в контрактах не считается нарушением изоляции.
А вы пробовали? Вот взять и найти все способы, где используется модель, описанная в одном модуле? Даже в средней кодовой базе очень легко пропустить один или два неочевидных места, в которых не импорты напрямую.
А вы пробовали? У нас, не смотря на наш маленький монолитик, такое пару раз делали и… выглядит это как-то так. Разработчик садится и начинает править один из главных модулей недель так на 3. В это время всем остальным разработчикам нужно найти задачи, которые не дай бог не пересекаются с этим модулем (а это сложно). После чего он вливает это в релиз и еще месяц мы фиксим то, что отвалилось.
Проблема в том, что в монолите очень легко нарушить изоляцию столькими способами, что потом и вспомнить их все не получится .
И вы за 6 лет не смогли все перевести на один? Печально :( С другой стороны у вас всего 4 микросервиса за 6 лет, что не так уж и плохо, учитывая, что различные АПИ вызваны, скорее, различным набором требований. У нас просто такая ситуация, тоже будем переделывать апи для сервиса смсок, так как появились новые требования к нему :(
Только, если он нормально спроектирован и написал, что, довольно сложно (вообще код нормально писать оказывается довольно сложно).
На практике, очень часто ситуация выглядит как-то так:
...
Выбирая между хорошим монолитом и хорошим микросервисом понятно, что нужно брать микросервисы, так как туда еще входят профиты скалирования и так далее.
Но на практике, чаще всего у вас выбор между так себе монолитом и так себе микросервисами. В случае микросервисов, если основную экспертизу вложить в контракты, то качество кода внутри них не будет прям катастрофически влиять на все.
Можно подумать, в монолите не бывает случаев, когда нарушается нормальная форма и приходится страдать со всем этим чудом? Да в каждом втором :)