@devops_ru

Страница 1457 из 4568
Andrey
29.10.2016
23:47:55
таковы большие париложения на С\С++

Vladimir
29.10.2016
23:48:06
вот на это ты можешь потратить полгода, а автор софтины 30 минут
если автора нет под боком, то как бы что поделать, раз есть задача и нет вариантов

Andrey
29.10.2016
23:50:35
вообще, есть такая книжка "совершенный код". Вот там всяко объясняется, зачем проге прятать секреты. (в данном случае дефайнить системные вызовы)

советую почитать

Google
Vladimir
29.10.2016
23:55:33
ты в момент написания своего кода знаешь требования?

Andrey
29.10.2016
23:55:46
конечно

но даже если в той же очередной реализации libc что-то сломают — виноват буду я

Vladimir
29.10.2016
23:56:12
а зачем ты закладываешься на не требования?

2. CoW никуда не уйдет

Andrey
29.10.2016
23:56:30
libc это сферический пример

я могу тебе пример из своей практики с cow рассказать )

Andrey
29.10.2016
23:57:07
дело было в memset() который оптимизируется

добавили форк. Без него оптимизация не роляла )

ну и потом дружно искали )

тоесть, я хотел копию памяти процесса и я писал в память, чтобы её получить

Google
Andrey
29.10.2016
23:59:31
но получал не всегда )

примерно на миллионый раз, я оказывался не в том месте и не в то время )

и самое смешное было, что gcc данные кейс не оптимизировал! умничала опять таки glibc )

а там где была другая реализация, было всё ок

Vladimir
30.10.2016
00:04:41
честно я не понял что конкретно ты сделал

Andrey
30.10.2016
00:05:10
это не суть

есть такой кейс, достаточно редкий. В основном используется для пробуждения ООМ киллера. Вроде там надо в обязательном порядке, сначала прочитать память, потом записать в неё и так далее в цикле, иначе glibc решит, что ты занимаешься бесполезной энтропией и будет скипать вызовы

и вот какая-то подобная кара пришла в мой код

к сожалению, уже точно не помню

Andrey
30.10.2016
00:09:55
чтобы симулировать случаи не боевом сервере. Например будет ли это всё работотать, если я настрою оверкоммит

кстати ты писал про тестирование. Как по мне — всё это полная хрень. Говоришь тестировщику как тестировать, он в точности повторяет твои действия. Почти всегда

просто потому, что не понимает, что происходит

лучшие тестировщики — таки админы :)

Александр
30.10.2016
00:15:41
Andrey
30.10.2016
00:15:59
я бы сказал не так

Vladimir
30.10.2016
00:16:04
@abagrintsev у тебя раз ты говоришь что есть тз, значит есть понимание где должна быть твоя софтина запущена

и поэтому ни о каких uclibc, plan9 и пр херне речи не идет

Andrey
30.10.2016
00:16:18
отцы сервисодержатели

Vladimir
30.10.2016
00:16:32
в общем это твоя проблема как разработчика сделать пакеты (или бинарники) для целевой штуки

Google
Andrey
30.10.2016
00:16:37
пока ты ищешь багу, они ночами с телефона перезапускают твой говносервис, который плодит коры )

Александр
30.10.2016
00:16:38
отцы сервисодержатели
Да я про тестирование продукта

В каждую дырку лезут

?

А потом выясняется, это забыл, там не до делал и т.п

Vladimir
30.10.2016
00:17:47
пока ты ищешь багу, они ночами с телефона перезапускают твой говносервис, который плодит коры )
как часто у вас софт написанный под linux + glibc запускали на plan9 или хотя бы uclibc?

Andrey
30.10.2016
00:18:12
в общем это твоя проблема как разработчика сделать пакеты (или бинарники) для целевой штуки
слушай, я уже писал, что всё не так просто. Многие либы не стесняются работать в терминах ABI. Тоесть либа, под которую я писал, может в новой версии убунты сменится, но моей проге представиться иначе, на манер своего предшественника

и cmake тут никого не спасёт

миллионы вкладывают в синтаксические анализаторы, только потому, что компилятор не в силах проверить всё

Vladimir
30.10.2016
00:19:14
а вы новую версию убунты сразу в продакшн пихаете?

Andrey
30.10.2016
00:19:34
нет, это конечно долгий процесс

но есть софт который писался некими людьми, в таких то годах

Vladimir
30.10.2016
00:19:50
и такие особенности не отлавливаются в процессе впихивания в прод?

Andrey
30.10.2016
00:19:57
а старая убунта уже кончилась, продлить нельзя

они отлавливаются, но на это тратится много моих нервов и сил

Vladimir
30.10.2016
00:20:37
поэтому проще сделать так чтобы код никогда не собрался ни под чем кроме того что есть сейчас?

Andrey
30.10.2016
00:20:46
хотелось бы не ловить их а видить в консоли чёткие нарушения контракта

нас мало, а софта много

и на основне нарушений контракта производить детальные расследования

Google
Andrey
30.10.2016
00:21:39
тесты не покрывают всё

Vladimir
30.10.2016
00:21:47
напиши такие чтобы покрывали

Andrey
30.10.2016
00:21:53
тест отработал 1 раз и считается что всё ок

а баг проявляется под нагрузками

Vladimir
30.10.2016
00:22:32
а баг проявляется под нагрузками
ну так отработали тесты, воткнули под нагрузочное тестирование и погоняли там, в чем проблема то?

Andrey
30.10.2016
00:22:54
нагрузочное тестирование это синтетика

Vladimir
30.10.2016
00:23:05
Andrey
30.10.2016
00:23:10
воо

Vladimir
30.10.2016
00:23:10
без ответа реальным пользователям

Admin
ERROR: S client not available

Andrey
30.10.2016
00:23:17
выкатываем мы говно на продкашн

сидой админ кидает в мой угол корку

Vladimir
30.10.2016
00:23:28
выкатываем мы говно на продкашн
нет, копия продакшена != выкатка на продакшн

Andrey
30.10.2016
00:23:43
и я такой пошёл искать капканы в яме со змеями

Vladimir
30.10.2016
00:24:01
берете запросы с продакшена и кормите его своей софтине на минимизированной копии продакшена

со снэпшотами реальных баз и пр.

Andrey
30.10.2016
00:24:33
вот например писал я rpc сервис. Тестеры обстреляли меня яндекс.танком и доверительно заявили что всё ок

а потом выяснилось, что на проде rpc сервисы дерутся за создание пользователя

а всё потому, что стреляли патронами где линейная нагрузка и запросы шли разными пачками

Daniel
30.10.2016
00:26:05
ну - двойка им

Google
Andrey
30.10.2016
00:26:36
увы

Vladimir
30.10.2016
00:29:08
Andrey
30.10.2016
00:30:20
в больших и сложный проектах копия продакшена почти всегда невозможна

потому что работаешь с одним компонентом, который опирается на что-то ещё

Daniel
30.10.2016
00:31:27
но запросы-то из логов прода нет никаких проблем надергать

Andrey
30.10.2016
00:32:03
если служба безопасноти не сильно дрючит админов и ты умеешь их расположить к себе )

Vladimir
30.10.2016
01:02:37
как появляется требование - возможности находятся

Игорь
30.10.2016
01:22:07
тест отработал 1 раз и считается что всё ок
Рандомизированное и нагрузочное тестирование для кого придумали?

Vladimir
30.10.2016
01:32:55
A/b тесты в очень худшем случае тоже помогают

Например выкатить апдейт на каждый 1000ый хост

Или взять 0.1% аудитории

Alexander
30.10.2016
03:36:52
здесь вот что - технически можно сделать как угодно, но есть стоимость поддержки и если сделать очень круто - стоимость поддержки всей этой инфраструктуры тестирования может оказаться выше, чем выигрыш от обнаружения бага на ранней стадии

даже Apple косячила не раз с теми же апдейтами

тут как с ОС - лучше всего было бы иметь кастомизированный, вылизанный Gentoo со специальными бинарными пакетами персонально для моих серверов и оптимизированным ядром, на фактически у меня Ubuntu по одной причине - так меньше стоимость владения

от зулу ubuntu — человечность

3 человека под палящим солнцем Африки танцуют африканские танцы, держась за руки

а здесь 3 белых человека уже загорели)) а с солнцем что-то случилось)

это же люди, вид сверху, вот в таких позах

http://www.4dancing.ru/files/u5304/0000271f_medium.jpeg

Страница 1457 из 4568