Здравствуйте, Sheridan, Вы писали:
S>Лежит у клиента — большой косяк, сам понимаешь.
S>Надо чтобы у клиента не лежало. А поэтому тестировать у себя на стейжах.
Как я протестирую софт всех других вендоров? Не либу, входящую в мой софт, а софт самостоятельный других вендоров?
S>Почему вы тогда волнуетесь? Пусть волнуется другой поствщик — проблема у него.
Потому, что когда другой поставщик исправит свои косяки, мне нужно будет убедится, что ничего не сломано у меня.
S>Зачем её решаете вы?
Потому, что клиенту пофиг, кто сломал, ему нужна моя работающая программа.
S>Я? Я не пишу об этом сценарии.
Кто писал с твоего аккаунта "allows the customer to save money by not allocating separate servers for our software"?
S>Английский поскипал, не силён в разговорном.
Просто возразить тебе нечего, вот и прикрылся якобы непониманием написанного. Старый прием.
S>От ветра — да. Пока ветер не превышает пределы прочности. S>>>Сильный порыв ветра — и всё, нет теплицы.
Ты там уже у себя в голове определись...
Здравствуйте, Sheridan, Вы писали:
S>Вы что, нетестированный на собственных полигонах софт сразу деплоите заказчикам? о0
Дерьмо случается
хочешь сказать у тебя за всю карьеру не было ни одного факапа, падения всего и вся и тд?
если нет — то ты или врешь или деплоишь ансиблом сайты визитки Вась Пупкиных
Здравствуйте, Sheridan, Вы писали:
C>>Мальчик, ты никогда не работал нигде серьёзно devops'ом. И даже не хочешь учиться. S>А ты ходить уже научился?
Да. А вы там ещё ползаете?
C>>Возможность отката нужна из-за того, что бывают ошибки, которые выявляются не сразу. Лично мной найденная, например: https://bugs.java.com/bugdatabase/view_bug.do?bug_id=JDK-8189789 — проявляется под сильной нагрузкой, в виде попадающего в бесконечный цикл потока. Как результат, production-серверы постепенно умирают. S>Я рад за вас. Но при чом тут откат, когда нужен хотфикс?
Хотфикс чего? JDK? Это занимает несколько дней для проведения полного цикла тестов. В таких случаях единственное решение — это откат до предыдущего состояния. А затем в спокойной обстановке уже разбираться со стратегией исправления ошибки.
C>>Так же было ещё штук 10 подобных историй — third-party библиотека логгирования, которая утекала память, изменившийся порядок шифров в SSL, который ломал клиентский файрвол, ложное срабатывание антивируса на наш WebAssembly-код, и т.д. S>Критические ошибки отлавливаются во время тестирования, некритические лечатся хотфиксами.
Ну что могу сказать...
C>>Естественно, тестируем. И имеем "план Б" на случай непредвиденной ситуации — у нас стоят тревожные сигналы, которые при любой аномалии просто откатят код до предыдущей версии. S>Ты не до конца ответил на вопрос.
У нас тестируется весь UI с помощью роботов, API с помощью интеграционных тестов, 85% кода сервисов покрыто unit-тестами. Вычислительные задачи валидируются на массиве тестовых данных и на задачах, которые запускались последние 2 недели. Помимо простого сравнения, используется AI для поиска аномалий (странное потребление памяти, увеличение времени работы и т.п.).
Каждые 6 месяцев мы отсылаем отчёты в правительство нескольких штатов для о результатах мониторинга реальных систем, построенных по нашим планам. Это нужно для поддержки сертифицированного статуса.
S>>>У проектов, которым важно качество всегда есть пул виртуалок с различными конфигурациями. В том числе и со снапшотами. C>>Ой, уже snapshot'ы появились. А кто ими управляет, как происходит развёртывание на кластер? Всё те же 2 строчки в Ansible, да? S>Да.
Не верю.
C>>Кроме того, как я уже показал, ошибка может возникнуть в любой момент в production. Она не детерминированная. S>Ну я так понимаю что ты хочешь спросить смогу ли я перехватить неперехватываемую ошибку, которая никогда категорически не перехватывается на тестах и обязательно рушит прод в ноль.
Именно так, да. Потому, что я так могу делать.
Да-да, Докер позволяет успешно обрабатывать неожиданные ошибки.
C>>Ок, принимается. И ты проиграл, у нас Docker используется для асинхронных задач (вычислительных на GPU) и постоянно работающих сервисов (ECS Fargate). Разделения на "бажных контейнеры" нет. S>Вообще непонятно для чего ты пришол доказывать что не верблюд, ибо ты и так не верблюд
Здравствуйте, Sheridan, Вы писали:
C>>Ну так как? Как будет выглядеть тестовый план, который найдёт указанную мной ошибку? S>Подклыдыванием фейкового цертбота например, который валится.
Именно между созданием и записью файла?
C>>>>У меня деплои проходят без моего вмешательства, под контролем автоматики. S>>>У тебя не деплои, у тебя просто файлики образов копируются. C>>Да, а что? S>Да то что ты путаешь деплой с копированием.
Тут есть целые дистрибутивы Линукса, которые только копированием работают...
C>>Мимо. Учим матчасть, в отличие от Ansible, который с песней будет пытаться запустить playbook при нулевом свободном месте, Docker будет автоматически очищать неиспользуемые образы и контейнерные ФС. S>Как у вас так получается — одновременно утверждать что у докера мусора нет и то, что всегда найдется мусор?
У Докера нет. Он хранит кэш слоёв (компонентов изображений), который автоматически чистится.
S>А если не будет места даже после очистки мусора? Ну, как себя поведет докер? Купит и добавит еще один винт в рейд?
А такого не может быть (если на сервере не порылся админ Sheridan).
Здравствуйте, Sheridan, Вы писали:
АБ>> — девопс или кто-то ещё приходит и говорит, что есть новая либа, переход на которую нам даст такие-то плюсы, S>Глупость. Очень большая глупость, которая всегда больно бьёт по яйцам в будущем. Если плавно не переходить с версии на версию, то когда это действительно станет нужно — у команды не будет ни опыта, ни времени.
типичный пример( правда из фронтенда ) :
либа MOBX
Browser support
MobX >=5 runs on any browser with ES6 proxy support. It will throw an error on startup on older environments such as IE11, Node.js <6 or React Native Android on old JavaScriptCore how-to-upgrade.
MobX 4 runs on any ES5 browser and will be actively maintained. The MobX 4 and 5 api's are the same and semantically can achieve the same, but MobX 4 has some limitations.
IE11 нужен клиенту, значит сидим на MobX 4. они хоть и обещают его своевременное обновление, но по факту это происходит через пень колоду
несколько раз было что minor версия приводила к падениям у клиента, причем трудно воспроизводимого. сейчас версия зафиксирована и никто без особых причин ее менять не будет
на бекенде куча подобного веселья была c PDF SDK от Datalogics
Здравствуйте, _ABC_, Вы писали:
S>>Лежит у клиента — большой косяк, сам понимаешь. _AB>
Именно так. Твой софт слёг на проде. рукилицо.
S>>Надо чтобы у клиента не лежало. А поэтому тестировать у себя на стейжах. _AB>Как я протестирую софт всех других вендоров? Не либу, входящую в мой софт, а софт самостоятельный других вендоров?
Зачем?
А. Теперь понятно почему нет времени ни на что. Ты тестируешь всё со всем. Ясен хрен что не остаётся времени на свой софт.
S>>Почему вы тогда волнуетесь? Пусть волнуется другой поствщик — проблема у него. _AB>Потому, что когда другой поставщик исправит свои косяки, мне нужно будет убедится, что ничего не сломано у меня.
Это должен делать заказчик. Сервера — его. Софт — он купил. Совместимость пусть проверяет сам. А потом вам в саппорт баги шлёт ежели что.
S>>Зачем её решаете вы? _AB>Потому, что клиенту пофиг, кто сломал, ему нужна моя работающая программа.
Твоя программа не работает из за того что ктото левый подгадил твоей программе, подложив говно мамонта вместо нормальной библиотеки, правильно? У вас что, настолько с бюджетом плохо что даже юриста знакомого нет?
Записывай, диктую; "Изучение проблемы выявило тот факт, что устаноленное рядом ПО в своём дистрибутиве имело устаревшую версию библиотеки Х, которую установило без соблюдения общепринятых правл в общесистемный каталог. Исправить проблему с нашим ПО можно, выполнив вот этот (ссылка) скрипт, который приведет наше ПО в рабочее состояние, но вероятно стороннее ПО перестанет работать. Возможные варианты решения проблемы: установить стороннее ПО на отдельный сервер, обратиться к поставщику сторонего ПО с просьбой актуализировать версию используемой библиотеки."
S>>Я? Я не пишу об этом сценарии. _AB> _AB>Кто писал с твоего аккаунта "allows the customer to save money by not allocating separate servers for our software"?
Ты контекст потерял? Это было про "актуализируйте либы и не надо будет плодить сервера/докеры только для того, чтобы иметь возможность две разные версии либы пользовать"
Впрочем ты прав, для этого не надо плодить ни сервера, ни докеры. Можно вполне штатно такую проблему разрулить.
S>>Английский поскипал, не силён в разговорном. _AB>Просто возразить тебе нечего, вот и прикрылся якобы непониманием написанного. Старый прием.
Нет. У меня нет практики в английском. Перепиши по русски и поговорим.
S>>От ветра — да. Пока ветер не превышает пределы прочности. S>>>>Сильный порыв ветра — и всё, нет теплицы. _AB>Ты там уже у себя в голове определись...
Может всётаки ты? Где тут противоречие?
Здравствуйте, mogadanez, Вы писали:
S>>Вы что, нетестированный на собственных полигонах софт сразу деплоите заказчикам? о0 M>Дерьмо случается M>хочешь сказать у тебя за всю карьеру не было ни одного факапа, падения всего и вся и тд?
Было. После одного такого факапа я теперь каждый раз проверяю — на том ли я серваке собрался чтото серьёзное запустить.
Но такие случаи единичны. Как правило совсем немного, штучно. И потом долго приходишь в себя, зато появляется полезная привычка.
F>В смысле кто против? Ты, не? Куче народу безуспешно доказываешь уже несколько дней, что докер на проде нельзя потому что лишняя шестеренка. Тебе реальные кейсы, а ты голую теорию в ответ.
Задайте кто-нибудь Шеридану простой вопрос. Все цитаты по Шеридану.
[1] Шеридан: «берутся во внимание только трудозатраты программистов? Или всётаки вы командой работаете?»
[2] Алсо Шеридан: «руками долго и сложно поддерживать единое окружение.»
[3] Алсо Шеридан: «Если квакнулся хост, то нагрузка должна уходить на соседние тут же. »
[4] Алсо Шеридан: "easy deployment, lack of dependence on mammoth shit, which allows the customer to save money by not allocating separate servers for our software"
[5] Асло Шеридан: «Разработчик должен писать код, девапс должен автоматизировать деплой.»
[6] Алсо Шеридан: «Три базовых подхода: масштабирование, рестарт, починка ошибки.»
Почему он против докера, который:
— [1] снижает трудозатраты и программистов и девопсов
— [2] обеспечивает легкость в поддержке единого окружения
— [3] (с кубернетесом) обеспечивает моментальный re-scaling/запуск нужных нод в случае, если нода навернулась, например
— [4] позволяет easy deployment, lack of dependence on mammoth shit, which allows the customer to save money by not allocating separate servers for our software
— [5] позволяет девопсу автоматизировать деплой так, что там ничего не надо «обскриптовывать» и не городить огород из « pacemaker/corosync, haproxy, от iputils с подниманием нужных адресов на сетевухах и описанием маршрутов до поднятия туннелей, systemctl status, разворачиваем ёлку, на хостах filebeat, без ватчдога не обойтись и нужно писать этот самый отдельний ватчдог-сервис» для развертывания, мониторинга и масштабирования
— [6] (с кубернетесом) позволяет автоматические масштабирование и рестарт без скриптования и вмешательства девопса (мечта девопса)
Здравствуйте, Cyberax, Вы писали:
C>>>Мальчик, ты никогда не работал нигде серьёзно devops'ом. И даже не хочешь учиться. S>>А ты ходить уже научился? C>Да. А вы там ещё ползаете?
У нас тут гравитация слабая, поэтому скорее летаем.
C>>>Возможность отката нужна из-за того, что бывают ошибки, которые выявляются не сразу. Лично мной найденная, например: https://bugs.java.com/bugdatabase/view_bug.do?bug_id=JDK-8189789 — проявляется под сильной нагрузкой, в виде попадающего в бесконечный цикл потока. Как результат, production-серверы постепенно умирают. S>>Я рад за вас. Но при чом тут откат, когда нужен хотфикс? C>Хотфикс чего? JDK? Это занимает несколько дней для проведения полного цикла тестов. В таких случаях единственное решение — это откат до предыдущего состояния. А затем в спокойной обстановке уже разбираться со стратегией исправления ошибки.
И в чём проблема? Откатили код обратно, сбросили изменения в отдельную ветку, собрали, задеплоили, тестируете. Багфикс пришёл — накатили фикс, накатили ветку. Тестируете.
Но нет, надо обязательно делать прыжок обратно всем продом на всех клиентах, ага.
C>>>Так же было ещё штук 10 подобных историй — third-party библиотека логгирования, которая утекала память, изменившийся порядок шифров в SSL, который ломал клиентский файрвол, ложное срабатывание антивируса на наш WebAssembly-код, и т.д. S>>Критические ошибки отлавливаются во время тестирования, некритические лечатся хотфиксами. C>Ну что могу сказать...
Просто перестань говорить. У тебя постоянно получается что всё критикал прилетает в заказчика. что сразу многое говорит о ваших производственных процессах.
C>>>Естественно, тестируем. И имеем "план Б" на случай непредвиденной ситуации — у нас стоят тревожные сигналы, которые при любой аномалии просто откатят код до предыдущей версии. S>>Ты не до конца ответил на вопрос. C>У нас тестируется весь UI с помощью роботов, API с помощью интеграционных тестов, 85% кода сервисов покрыто unit-тестами. Вычислительные задачи валидируются на массиве тестовых данных и на задачах, которые запускались последние 2 недели. Помимо простого сравнения, используется AI для поиска аномалий (странное потребление памяти, увеличение времени работы и т.п.).
Отлично. Почему тогда у вас так много инцидентов на проде заказчиков?
C>Каждые 6 месяцев мы отсылаем отчёты в правительство нескольких штатов для о результатах мониторинга реальных систем, построенных по нашим планам. Это нужно для поддержки сертифицированного статуса.
Отлично. Почему тогда огромная проблема актуализировать используемые библиотеки?
S>>>>У проектов, которым важно качество всегда есть пул виртуалок с различными конфигурациями. В том числе и со снапшотами. C>>>Ой, уже snapshot'ы появились. А кто ими управляет, как происходит развёртывание на кластер? Всё те же 2 строчки в Ansible, да? S>>Да. C>Не верю.
Не верь.
C>>>Кроме того, как я уже показал, ошибка может возникнуть в любой момент в production. Она не детерминированная. S>>Ну я так понимаю что ты хочешь спросить смогу ли я перехватить неперехватываемую ошибку, которая никогда категорически не перехватывается на тестах и обязательно рушит прод в ноль. C>Именно так, да. Потому, что я так могу делать.
Значит и я могу.
C>Да-да, Докер позволяет успешно обрабатывать неожиданные ошибки.
Приводящие к краху процесса? Системд тоже так умеет.
C>>>Ок, принимается. И ты проиграл, у нас Docker используется для асинхронных задач (вычислительных на GPU) и постоянно работающих сервисов (ECS Fargate). Разделения на "бажных контейнеры" нет. S>>Вообще непонятно для чего ты пришол доказывать что не верблюд, ибо ты и так не верблюд
. C>Где мои $2000? Можно на PayPal: alex.besogonov@gmail.com
Я не проиграл. Ты пропустил вспышку слева и пришёл мне доказывать что докер категорически нужен там где я изначально писал допустимость его использования.
Здравствуйте, Cyberax, Вы писали:
C>>>Ну так как? Как будет выглядеть тестовый план, который найдёт указанную мной ошибку? S>>Подклыдыванием фейкового цертбота например, который валится. C>Именно между созданием и записью файла?
А что изменится? Ну или будет скрипт который создаёт пустой файл и валится. Можно даже разбавить валидный церт мусором и не свалиться. Да что угодно.
C>>>>>У меня деплои проходят без моего вмешательства, под контролем автоматики. S>>>>У тебя не деплои, у тебя просто файлики образов копируются. C>>>Да, а что? S>>Да то что ты путаешь деплой с копированием. C>Тут есть целые дистрибутивы Линукса, которые только копированием работают...
я в курсе что dd чудеса творит, да.
C>>>Мимо. Учим матчасть, в отличие от Ansible, который с песней будет пытаться запустить playbook при нулевом свободном месте, Docker будет автоматически очищать неиспользуемые образы и контейнерные ФС. S>>Как у вас так получается — одновременно утверждать что у докера мусора нет и то, что всегда найдется мусор? C>У Докера нет. Он хранит кэш слоёв (компонентов изображений), который автоматически чистится.
Это и есть мусор.
S>>А если не будет места даже после очистки мусора? Ну, как себя поведет докер? Купит и добавит еще один винт в рейд? C>А такого не может быть (если на сервере не порылся админ Sheridan).
Всмысле? Образ весит Х+1 мегабайт, очистилось Х мегабайт. Места нет.
Здравствуйте, mogadanez, Вы писали:
M>IE11 нужен клиенту, значит сидим на MobX 4. они хоть и обещают его своевременное обновление, но по факту это происходит через пень колоду M>несколько раз было что minor версия приводила к падениям у клиента, причем трудно воспроизводимого. сейчас версия зафиксирована и никто без особых причин ее менять не будет
А что, обязательно нужен фанатизм? У вас вполне нормальный и адекватный повод не обновляться. Как только пофиксят — обновитесь. Я топлю не за фанатизм, а за поддержания актуальных версий либ. Чтобы говна мамонта на серверах не было.
Здравствуйте, mogadanez, Вы писали:
S>>Никак. Деплой прерван, сервисы не запущены. M>сервисы запускаются по очереди? может прерваться когда один запущен а другие еще нет?
Если это важно, то описываем это прямо в зависимостях юнитов системд.
Здравствуйте, Sheridan, Вы писали:
S>Твоя программа не работает из за того что ктото левый подгадил твоей программе, подложив говно мамонта вместо нормальной библиотеки, правильно? У вас что, настолько с бюджетом плохо что даже юриста знакомого нет? S>Записывай, диктую; "Изучение проблемы выявило тот факт, что устаноленное рядом ПО в своём дистрибутиве имело устаревшую версию библиотеки Х, которую установило без соблюдения общепринятых правл в общесистемный каталог*. Исправить проблему с нашим ПО можно, выполнив вот этот (ссылка) скрипт, который приведет наше ПО в рабочее состояние, но вероятно стороннее ПО перестанет работать. Возможные варианты решения проблемы: установить стороннее ПО на отдельный сервер, обратиться к поставщику сторонего ПО с просьбой актуализировать версию используемой библиотеки."
"Артель напрасный труд".
Можно распихать всё по контйнерам и вообще не сталкиваться с проблемой, что кто-то обновил библиотеки, что привело к конфликтам.
А можно обойтись без контейнеров и сталкиваться с описанными проблемами, тратя на решение доп. ресурсы.
П.С. А чем здесь юрист поможет?
— "общепринятых правл в общесистемный каталог" каких таких правил? Субподрядчик с этими правилами в установленном порядке ознакомлен?
— у него вообще в ТЗ и сопроводительных документах версии либ прописаны?
В этом случае субподрядчик берёт своего юриста, который составляет точно такое же письмо.
Результат: задействованно несколько дополнительных людей, потрачена куча времени, проблема не решена.
Здравствуйте, Klikujiskaaan, Вы писали:
K>Здравствуйте, Farsight, Вы писали:
F>>В смысле кто против? Ты, не? Куче народу безуспешно доказываешь уже несколько дней, что докер на проде нельзя потому что лишняя шестеренка. Тебе реальные кейсы, а ты голую теорию в ответ.
K>Не знаю, зачем вы две недели к ряду пытаетесь что-то доказать человеку, у которого отсутствует какое-либо критическое мышление. K>Он все свое существование на этом форуме был местной very special snowflake, проще научить свинью играть лунную сонату, нежели что-то втолковать шеридану.
Понятное дело, что самозатупляться никто не собирается. Но паттерны, ответы, реакция, рассуждения
Чтобы самому не походить в этих тапках. Когда растешь-растешь, потом попадаешь в зону комфорта и отсутствия конкуренции. И, незаметно для себя, превращаешься в самоуверенного самодура. Сравнивая и сопоставляя, можно будет заметить у себя опасные признаки.
Это дополнительный стимулирующий фактор. Например, менять ли хорошее на другое непонятное (регионы -> технологический центр). Как фактор развития, не связанный с деньгами.
Это реальный сценарий, который может случится незаметно с любым из нас. До Ансибла же Шеридан он дорос.
Хотелось бы помереть веселым стариканом с живым умом и не утерянным интересом к жизни. Это реальное качество жизни, которое можно утратить и состариться умом. Когда смотришь на престарелых родителей, понимаешь, что ты не теряешь их внезапно. Понимаешь, что теряешь их постепенно, раньше, вчера, сегодня, завтра- потихоньку. Это важнейшие темы для любого человека.