Рубрики
Uncategorized

Панель лидеров Sre: тестирование в производстве

Первоначально опубликовано в неудаче неизбежно. Безумный недавно имел привилегию размещения некоторых … Помечено с Sre, DevOps, Testing, TechTalks.

Первоначально опубликовано на Ошибка неизбежна Отказ

Безопасность в последнее время имела привилегию размещения некоторых фантастических лидеров в сообществе SRE и устойчивости к обсуждению группы.

  • Шелби СПЭФ Разработчик адвоката в Соты
  • Талия Наси Разработчик адвоката в Split.io.

Наши участники дискуссии обсудили тестирование в производстве, как функция промежуточная и тестирование может помочь нам сделать это, и как получить менеджеров на борту с тестированием в производстве.

Приведенная ниже стенограмма была легко отредактирована, и если вы заинтересованы в просмотре полной панели, вы можете сделать это здесь.

Amy Tobey: Всем привет. Я Эми Тоби, сотрудники Sre в безупречном. Я долго занимаюсь Я на самом деле в сообществе SRE и выяснять, как мы можем включить надежность во всех наших организациях. Сегодня я действительно взволнован, чтобы присоединиться к Шелби Спью из Соты и Талию Насси из Сплита. Я собираюсь позволить им представиться.

Шелби СПИ: Я Шелби. Я защитчик разработчика по соту. Я разрабатываю программное обеспечение и работаю по производству систем в течение пяти лет, и я хочу помочь людям доставлять больше ценности в своем бизнесе.

Талия Насси: Я талию. Я защитчик разработчика в разделении. До этого я был инженером QA и автоматизации в течение шести лет, поэтому у меня есть фон в тестировании. Вот почему я так увлечен тестированием в производстве. Я действительно взволнован здесь.

Amy Tobey: Чтобы начать, давайте поговорим о развитии на основе багажника. Во-первых, мы собираемся поговорить о том, что я считаю, что большинство людей должны делать по умолчанию: тестирование нашего кода с единицей и функциональными тестами на наших рабочих станциях и в наших средах Dev. Прежде чем объединить наш код на нашу главную ветку, это должно быть готово к производству.

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

Talia Nassi: С разделением вы можете использовать флаги функций. Для тех из вас, кто не знаком, флаг функции в основном является куском кода, который отличается развертыванием кода из выпусков функций. Вы можете развернуть код, и он не будет доступен для ваших конечных пользователей. Это будет доступно только для конкретной группы людей, которые вы можете указать в пользовательском интерфейсе. Если вы делаете разработку, основанную на багажнике, вы можете развернуть свой код до производства за флагом функции, а затем, как только вы будете готовы, и вы проверили код в производстве, вы можете включить флаг функции.

Amy Tobey: Пространство флага функций много расширилось за последние несколько лет. Я слышал, что вы говорите что-то о способности поворачивать флаги на фракцию пользователей. Не могли бы вы говорить о том, как это позволяет нам уверенно отправлять код?

Талия Насси: Допустим, я разработчик в команде, и я работаю над списком дел. Я хочу добавить возможность удаления элементов из списка. Я являюсь интерфейсным разработчиком, и разработчик Backend создает этот новый API для удаления задач. Итак, мои изменения делаются, и я должен ждать разработчика Backenc.

Либо я могу дождаться, пока можно сделать разработчик Backenc, или я могу заставить код добычей за флагом функции, дождитесь выполнения бэкэндов, и у него будет выполнение бэкэнда Отказ Тогда я могу поставить себя внутри флага функций, что означает, что только я смогу увидеть эти изменения и может проверить его как с интерфейсом, так и с изменением бэкэнда. Это способ сделать это безопасно, не затрагивая ваши конечные пользователи.

Amy Tobey: Давайте сказать, что молодой разработчик имеет эти инструменты и находится в системе развития, основанной на багажнике. Они положили флаг функции. Они делают все правильные вещи. Они развертывают его до производства, и они переворачивают флаг и идут домой на выходные.

Мы тестируем в производстве. Сервис клиентов просыпается, и есть жалобы. Возможно, инженерия должна выяснить, что происходит. Я думаю, что именно здесь мы можем отдать в Шелби и немного поговорить о роли наблюдательности.

Шелби СПИ: будь то используете флаги функций или нет, я думаю, что флаги функций являются основной частью этого. Но даже если вы не за флагом функций, и вы просто хотите наблюдать ваши изменения, имея данные, чтобы позволить вам соблюдать это изменение и увидеть влияние ваших изменений в реальных пользователях, это действительно важно.

Что касается наблюдаемости, это то, что она требует высококачественных, высоких контекстных данных, а контекст, о котором мы говорим, это контекст, который вы заботитесь о том, как вы пишете свой код. Как вы пишете свой код, вы думаете: «Хорошо, что важно для этого? Как я узнаю, что это работает в производстве? «Это похоже на то, как мы занимаемся разработкой для тестирования. Мы говорим: «Как я знаю, этот тест эффективен? Откуда я знаю, что этот код эффективен? «Сначала вы пишете тест на заполнение, а затем вы пишете код, чтобы пройти тест. Вы можете сделать что-то очень похожее, где вы пишете приборы и взаимодействуете с вашей системой и живу в этом производственном пространстве, чтобы учиться из фактического поведения.

Когда вы получаете пейджер или жалобы клиентов, говоря: «Эй, есть что-то не так», — вы можете отбросить флаг вашего функции. Это действительно быстрый способ исправить это. Тогда вы можете вернуться и посмотреть на разницу между тем, кто был за этот флаг функции против нашей базовой линии и понять влияние.

Amy Tobey: подразумевает ли это, что в интеграции между сервисом помещения функций и службой наблюдаемости флаг функции будет передан в состав событий, отправляемых в систему наблюдеемости?

Шелби СПИ: Абсолютно. Вы можете отправить это контекст вместе со всеми видами другого контекста.

Talia Nassi: Я хотел отключить то, что сказал Шелби: что, если вы отпустите в подмножество пользователей или всей пользовательской базы, вы можете контролировать с наблюдателем. Это также действительно важный момент. Когда вы выполняете канарную версию или процентное отверстие, в котором вы отпускаете функцию только для небольшого подмножества пользователей, то идет рука об руку с тестированием и производством, потому что если что-то пойдет не так, вы бы хотели использовать 1% ваших пользователей на опыт Эта проблема, или 100%? Это дополнительный слой защиты, чтобы иметь процентное раскаты, где вы постепенно развернули изменение, в отличие от всех, которые видят эту функцию все сразу в производстве.

Amy Tobey: У нас есть система на месте, и мы продвигаем код. Допустим, на этот раз все идет довольно хорошо. Но скажем, мой директор по программному проекту регулярно меня регулярно меняется. Что дальше?

У нас есть возможность увидеть, как код ведет себя в производстве. У нас есть возможность иметь очень низкую задержку, мелкозернистый контроль над тем, какие функции включены в производство. Какие другие слои вы видите в дикой природе, которые помогают людям строить эту уверенность? Эти вещи дают нам много уверенности, но всегда есть немного больше, чем мы можем сделать.

Шелби СПИ: Дорогается до метрики Доры: как быстро вы можете изменить выйти на производство? Ваше время руководства порядка недель до месяцев или его порядка до нескольких часов? Если требуется несколько недель между написанием кода, и он проживает в производстве, вы теряете все это контекст. Когда что-то неизбежно не идет прямо в тысячах изменений в течение года, вы захотите увидеть влияние работы, которую вы сделали. Но вы теряете все это контекст. Это гораздо дороже, чтобы собрать все, что вернулось в твою голову и помнит точку этой вещи, над которой вы работали.

Время заказа для изменений, выкатывающих — большой. Вот где CI Tooling имеет большое значение. А на сотах мы инструменте наши строящиеся, чтобы мы могли видеть не только как долго, чтобы построить для бега, но в какой части она медленная, а ли это можно оптимизировать. Мы стараемся сохранить нашу сборку в течение 10 минут, потому что мы не хотим, чтобы люди начнут работать над чем-то другим, а затем придется переключать контекст назад, чтобы посмотреть, не удалось, не удалось, не удалось, не удалось ли выполнена ли сборка. Переключение контекста настолько дорого, и это то, о чем я чувствую себя действительно увлеченным.

Эми Тобе: это уверенно. Это огромный источник познавательных ресурсов. Мне нравится, как вы принесли это. Ванесса спросила в чате о людях, использующих развитие на основе багажника. Если в коде известные дефекты или это неполное, это все еще безопасно, чтобы отправить за флагом функции?

Talia Nassi: Пока правило по умолчанию выключено, то безопасно сделать это, потому что если вы в этом пузыре (если вы внутренне или если вы являетесь частью нашей группы бета-тестирования), то вы можете увидеть Все дефекты, играют с этой вещью, и сломайте его в производстве. Но если нет, то вы не увидите, что что-то связано с этой функцией. AAS давно по умолчанию выключен, то он безопасен для развертывания.

Amy Tobey: Здесь есть преимущество прямо здесь: современный программный инжиниринг о работе команд и групп. Допустим, я сделаю код UI, и я уверен, что симулятор для API. Я отправляю его, и флаг функции выключен, и теперь команда Backeng не должна ошибаться и заставить другой контекстный выключатель или ждать меня ответить. Они могут просто включить его в их окружающую среду.

Существует новый уровень координации, который в настоящее время захвачен в технической системе, в отличие от нас, чтобы погулять и поговорить друг с другом.

Шелби СПИ: Что я действительно ценю в этом рабочем процессе (и одно из преимуществ разработки на основе багажника), заключается в том, что у вас нет вашей функции интерфейса, сидя на ветке функции в течение нескольких недель и падают за багажник.

Я люблю git. Я использовал имя пользователя Gitgoddess. Я преподавал Git к юниорам и пожилым людям на разных работах, но заставляя людей управлять интеграциями на уровне GIT, подвержены ошибкам и сложному. Использование флагов функций для управления, когда все будет намного лучше. Я был человеком, чтобы войти и сквошить и управлять филиалами других людей. Один был 115 коммит, шесть месяцев работы. Я сломал это, как девять PRS или что-то.

Я не хочу, чтобы кто-то когда-либо должен это сделать. Надеюсь, это никогда не получает так плохо, но даже до того, как вы будете готов выпустить функцию, охраняемую его флаг функции удаляет всю эту когнитивную нагрузку и сложность.

Amy Tobey: Мы много говорили о производстве и позволяем нашим разработчикам летать немного быстрее. Но вдоль этого есть ряд тестирования и проверки, которые мы можем сделать. Нити Twitter, которые мы видели за последние пару недель об этом, получили OH-ALL — нет ответов. Я думаю, что это пришло из места необходимости уверенности, прежде чем мы поставим что-либо в производство. Итак, каковы наши варианты предварительного добычи, которые эти инструменты помогают нам проводить в наших средах разработки и интеграции или даже локальные тестирования? Что эта инструмента помогает нам ускорить?

Талия Наси: Рекомендуемый подход к тестированию или тестированию единиц или интеграции. Что-то полезное, что я недавно узнал о том, чтобы сделать пользовательский флаг функции абстракции. Давайте скажем, что вы разработчик, который экспериментирует с предоставлением людям бесплатную доставку на сайте электронной коммерции и теперь вы проверяете калькулятор доставки. Если флаг функции включен для вас, вы получаете бесплатную доставку, и если флаг функции выключен для вас, вы получите существующую стоимость доставки.

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

С таким подходом вы находитесь супер явным в тесте, а затем тест просто становится гораздо более самодоступным и описательным.

Amy Tobey: Мне нравится, как это устанавливает людей, чтобы подтвердить обе пути параллельно. Я видел так много инцидентов, где то, что текущий путь работает нормально, новый путь работает нормально, но однажды оба попадают в производство вместе, они взаимодействуют в странных и необычных способах.

Талия Наси: Я на самом деле только что узнал об этом подходе, а до нескольких месяцев назад я всегда рекомендую получать ваши тестовые пользователи и нацелены на ваши тестовые пользователи внутри флага функций, а затем используя их для запуска. Но это может быть хрупким. Если кто-то удаляет пользователю из определенного лечения в UI, это вызывает проблемы, потому что вы не единственный человек, который может настроить изменения в пользовательский интерфейс. Мне нравится этот подход намного лучше, потому что вы забираете эту хрупкость.

Шелби СПИ: Спускается, как думать о влиянии всех ваших изменений. Как это тривиально, так как звучит, чтобы включить и выключить флаги функций, он все еще добавляет вилку на дороге, это все еще другой путь, который может принимать ваш код. Вы хотите быть преднамеренным о том, где вы его включаете, почему вы в том числе, как вы знаете, что он будет успешным, а затем тестирование на это.

Amy Tobey: Это возвращает меня в Хаос Инжиниринг, где мы должны иметь гипотезу, прежде чем мы начнем, и если мы этого не сделаем, это разница между наукой и завинчиванием. Это гипотеза.

Шелби СПИ: Так много команд бросают вещи на стену и посмотрите, какие палки. Есть времена, когда вам нужно сделать это, но я думаю, что мы можем сделать действительно хорошую работу по сокращению того, сколько времени мы бросаем вещи на стену и подумаем о воздействии этого изменения. Если вы знаете влияние изменений, вы можете включить, что в вашем PR, и это облегчает обзор кода, и это облегчает передачу знаний в вашей команде. Это поможет вам написать лучший код, который больше самодокументирует, напишите лучшие комментарии к вашему коду и напишите лучшую документацию по вашему коду. Быть преднамеренным помогает вам просто построить лучшее программное обеспечение.

Amy Tobey говорит о намеренности, у нас есть эта вилка на дороге. Когда мы получаем вилку на дороге, мы нажимаем на новый флаг функции на 0%. А потом мы приносим его до 1%. Мы делаем весь процесс, и в конечном итоге мы переворачиваем его до 100%. В какой-то момент есть цикл обратно через процесс, чтобы удалить мертвый путь. Не могли бы вы немного поговорить о процессах, которые вы видели, работая, чтобы это произошло? Я видел инциденты, где флаг функции сидел забыт за месяцы или годы, а затем надолго позже кто-то другой идет: «Что это?» И они переворачивают это И тогда есть инцидент.

Талия Насси: Первое, что наклоняется от того, что сказал Шелби. Изменения в ваших функциях должны быть обработаны как изменения в вашей кодовой базе из-за их чувствительности. Если вам требуется два обзора кода для толкания кода к производству, то вам необходимо требовать двух отзывов кода для внесения любых изменений в ваших функциях. С точки зрения того, что делать, когда у вас есть устаревшие флаги функций, есть несколько вещей.

Многие системы управления функциями имеют предупреждение, которое скажет: «Эй, этот флаг Функции не оказал никаких впечатлений», что означает, что люди, входящие в изменения и внесенные изменения или нацеливаются в этот флаг. Это спросит, вы хотите выключить это? Вы хотите удалить это? Что ты хочешь делать?»

В UI есть некоторая конфигурация для настройки. В вашей системе управления задачами, таких как Jira или Asana, всякий раз, когда вы создаете билет, чтобы настроить флаг, запустить тест, бросить функцию и т. Д. Вы также должны создать билет, чтобы удалить флаг и удалить старый код. Тогда внутри кода флаг функции — это просто оператор IF/ELSE. Вы говорите, если вы в этом ведре, сделайте это, и если вы в этом другом ведре, сделайте это другое. Что, если/else average просто нужно переработать, и любая ваша версия, которую вы выбрали, необходимые, и что, если/else astrue необходимо выбрать.

Amy Tobey: Тогда, если бы/остальные тоже должны храниться как можно просто, потому что если вы получите заявление о случаях, то вы просто просим проблему по дороге.

Шелби СПИ: Итак, ранее в этом году, один из наших инженеров, Allison, написал сообщение в блоге об использовании сота, чтобы помнить, чтобы удалить флаг функции. Это гигиена вещь. Я ценю идею, когда вы открываете билет, который включает в себя создание флага функций, вы также открываете билет, чтобы позже удалить этот флаг. К счастью, удаление флага функций из кода включает проверку кода, поэтому есть передача знаний и совместное использование контекста. Наличие этого шага заставляет вас быть похожим на «Хорошо, какое это влияние?» Затем, если вы используете инструменты наблюдеемости, вы можете увидеть, есть ли кто-нибудь, кто еще за этот флаг функции.

Amy Tobey: Будет ли это через метаданные, которые приходят в событиях, или вы на самом деле украшаете свой код флага функций с пропандами? Или, может быть, ситуативный?

Шелби СПИ: Я думаю, вы просто добавляете свой обычный код с ним. Вы можете добавить произвольные поля. Вы можете просто дать ему имя, которое говорит, что флаг функции XYZ.

Amy Tobey: Мне просто было интересно, если бы были случаи, когда у меня есть флаг А и Б, а может в А, у меня новый пролет или что-то. Соответствует ли этому влиянию на способность мою систему наблюдаемости последовательно отображать и сравнивать пролеты?

Шелби СПИП: Это может быть действительно полезно с трассировкой, если код за флагом функции усложняется, но вы, вероятно, прибор его именно так, как вы хотели бы прибор без функций, чтобы увидеть, как он будет вести себя нормально, и добавить Флаг функции как поле.

Amy Tobey: Когда мы делаем эти тесты в производстве, иногда они могут реализовать или влиять на наши данные и наши бренды. Что вы видели в поле для техники для людей, говорящих: «У нас есть новый маршрут для записи в базу данных, мы заменяем старый. «Мы переверняем к новому, но, возможно, это написание данных в немного другом формате. Есть все эти побочные эффекты, которые все еще могут произойти и выходить на производство, вызывающие инциденты, которые больше работают для меня. Так что вы видели там, что люди делают, чтобы защитить данные?

Талия Наси: Некоторые из вещей, которые я видел, которые работали хорошо, — это когда вы дифференцируете данные теста и реальные производственные данные. Первое, что ваши тестовые пользователи должны иметь какую-то булевую или какое-то что-то в бэкере, который говорит, что это тестовый пользователь, и это было бы равно правдам. Так что-нибудь, что этот тестовый пользователь делает в производстве, он будет отмечен этим логическим, установленным на True И тогда, куда бы вы ни собирали ваши данные, вы можете просто сказать, если у вас есть какие-либо действия, исходящие из этого тестового пользователя, поместите его где-нибудь еще, не помещайте его в то же место, что и производство, потому что в производстве это ложно.

То же самое со всеми другими тестовыми субъектами. Если у вас есть тестовая тележка и тестовая страница или какие-либо какие-либо тестирующие объекты, то у тех, кто должен иметь какой-то флаг на бэкэнде для «тестового объекта», и это должно быть установлено значение true. Тогда все, что имеет этот флаг набор, следует поставить куда-нибудь еще на вашу приборную панель.

Шелби СПИ: Другое дело, если вы тестируете на реальные производители, которые реальные производственные данные. Это может быть как эксперимент, но каждый раз, когда вы выпускаете изменения, что что-то меняет. И вы не можете знать, что. Это основная тема, когда мы говорим о тестировании в продуктах. Вы просто не намерены об этом. Разница здесь заключается в том, что если у вас есть подмножество вашего трафика за флагом функции, если вы знаете, что они специально выбраны в качестве бета-пользователей. Затем, как говорит Талия, вы можете пометить их как бета-пользователей или тест пользователей. Если вы доживаете, и вы ограничиваете вещи своей внутренней командой, то эти люди должны быть помечены как пользователи вашей команды.

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

Эми Тоби: Мы немного говорили о доверии, риску и опасности. Я хочу перейти и говорить о возможностях, которые предусматривают новые инструменты. Я делал это более 20 лет. Назад, когда мы начали, у нас не было этого материала. У нас были камни и долоты, а затем у нас есть Vim, и некоторые люди утверждали, что это не на самом деле шаг вперед.

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

Shelby Spees: Я поделюсь еще одним сотовым блогем от одного из наших пользователей, которые использовали соты для отладки возникающей неудачи в Redis. Он обезьяна пропитал библиотеку Redis Ruby, чтобы наблюдать, что происходит. Они оказались со всеми этими соединениями. Редис назвал их и сказал: «Мы выключаем вас. «Это была эта огромная проблема, которая без наблюдаемости он не мог отлавить. Он не мог воспроизвести его локально или в QA. Вам нужна определенная сумма трафика, чтобы отладить его.

Я ценю, что есть отрасли и определенные домены, где вам нужно иметь синтетическую среду. Если вы работаете над кардиостимуляторами, это действительно важно. Вы хотите быть очень, очень уверенным в ваших тестах. Но есть также стоимость этого. Подобно тому, как мы говорим о трех нищих, по сравнению с четырьмя ними, в качестве порядка больше усилий. Это похоже на испытание на тестовую среду, которая точно представляет собой производство, чтобы дать вам какие-либо ответы.

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

Талия Насси: Вы проповедуете в хор. Раньше я был инженером автоматизации. До самого конца этой части моей карьеры я только тестировал в постановке, потому что компании, которые я работал, не тестировал в производстве. Я бы потратил так много времени тестирования в постановке. Они были бы толкнули на производство, а затем разбиться в производстве, но они отлично работали в постановке, поэтому в чем то, что тестирование в постановке, если они собираются нарушать в производстве? Мои пользователи не идут и используют продукт в постановке, так почему мне все равно? Это потребовалось достаточно, что происходит снова и снова, где я был похож на: «Хорошо, должен быть еще один способ сделать это», а потом я взял интервью у компании, которая проверила в производстве, и я не оглянулся назад.

Шелби СПИ: Дело в том, что вы, в том, что вы, как тестер ответственны за качество выхода из кода. Он супер деморализирует, когда у вас есть определенный уровень уверенности в постановке, а затем все это распадается в производстве. Это как, что вы даже тестировали? Вы делали свою работу в соответствии с тем, что вам поручено, но вы не можете выполнить свою работу в соответствии с тем, что на самом деле хорошо для бизнеса. Для таких людей, как мы, которые заботятся о воздействии изменений, мы хотим быть в состоянии проверить это. Мы хотим иметь возможность чувствовать, что все будет работать хорошо.

Я говорил с несколькими тестерами, которые изучают наблюдаемость и пересечение между тем, чтобы быть тестером и наблюдаемыми изменениями кода. Там так много о тестировании, что включает в себя чувство ответственности и собственности на услуги по производству. Вам не нужно быть разработчиком, чтобы там оказать воздействие. Я действительно ценю вашу историю, потому что я полностью чувствую тебя на этом.

Amy Tobey: Многие магазины все еще имеют выделенные тестеры, делающие старую школу QA. Но то, что мы хотим, — это поднять тех людей, чтобы они делали более высокую работу, так же, как мы пытаемся сделать через всю нашу карьеру. Может быть, место для них двигаться к достижению этой идеи владения и воспитанием тестового спектра, но продлевая, что все выход в производство.

Талия Насси: И когда у вас есть доступные инструменты, они работают вместе, и вы можете увидеть влияние ваших изменений и проверить их в производстве, прежде чем они выйдут к вашим конечным пользователям, вы создаете этот пузырь по смягчению рисков Отказ Если что-то пойдет не так, вы покрыты. Вы можете посмотреть на свои журналы и посмотреть, что происходит до того, как они будут затронутыми им. Вы делаете это самым безопасным способом возможным с правильными инструментами. Что еще тебе нужно?

Amy Tobey: Мы ушли с начала цикла развития, где у нас есть наши модифицированные тесты, и мы все проходили до производства, но иногда прокладывают. Наличие этих инструментов на месте все еще делает нашу жизнь лучше. Я командир инцидента. Я в том, что задаю вопросы, пытаясь принести инцидент к разрешению. Теперь с наблюдаемостью и контролем функций на месте у нас есть дополнительные инструменты для разрешения этого инцидента. Может быть, мы могли бы поговорить об этом на секунду.

Талия Насси: Это возвращается к тому, что Шелби говорил о том, что не сможет воспроизвести проблему в производстве. Если в производстве есть инцидент, я не собираюсь идти на постановку, чтобы проверить его. Я собираюсь пойти на производство, чтобы выяснить, как воспроизвести вопрос. Это то, что раньше произошло, когда я был инженером QA. Были бы инциденты, и нам сообщалось о нас в производстве. Это один из тех, — ой, он работает на моей машине, «типы вещей, где я сделал все, что мог, чтобы проверить это, и было бы хорошо для меня в постановке, а потом вы бы пошли на производство, и эти инциденты будут только в производстве. Вы никогда не будете знать различия между вашу промежуточной средой и вашей производственной средой, пока вы не тестируете в производстве.

Шелби СПИ: Мы говорим об этом на сотах с точки зрения приближения к вызову здоровым способом. Если ваш инженер на звонках работает на два утра, и оказывается что-то, где они могут отключить флаг функции, а затем отладить его утром, когда у них было достаточно сна, а чашку кофе, почему aren «Мы делаем это больше? По-вызыва не нужно столько, сколько мы делаем это. Это не должно быть этого болезненным. Мы можем поставить опекуны на месте, чтобы инциденты были решены, и мы перестаем сразу влиять на клиентов, а затем у нас есть наблюдаемость, чтобы вернуться и на самом деле решить, что пошло не так. Вы можете исправить код, но с полной ночью сна.

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

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

Amy Tobey: С моей шляпой Sre, я бы сказал, что мы должны поддерживать только инженеры только для вещей, которые на самом деле вредят нашим клиентам. Если он не влияет на критические поездки пользователей, то мы должны спать и ударить его полным умом утром.

Shelby Spees: вот где вошли бюджеты SLOS и ошибок. Новая книга Alex Hidalgo, реализация целей уровня обслуживания, точно говорит о том, как мы можем уменьшить усталость оповещения и иметь более значимые страницы. Он также обсуждает, как быть в состоянии предвидеть такие вещи, как: «Хорошо, вещи влияют на крошечный, крошечный процент трафика прямо сейчас, но через четыре часа это начнет влиять на всех. Должен ли я разбудить кого-то, чтобы исправить это или может подождать до утра? ». Это именно то, как вы это делаете. Он включает в себя немного математики за кулисами, но когда у вас есть хорошие данные о здоровье вашей системы, это намного проще иметь возможность предупреждать о значимых вещах вместо использования CPU или потому, что трафик не находится в группе, которую мы ожидаем этого быть. Вы не должны разбудить кого-то для этого, если он не будет повлиять на ваш клиентский опыт.

Эми Тоби: Я думаю о тех, о тех, что о тревожных оповещениях. Они не знают, что что-то не так. Вы просто, возможно, беспокоятся, что что-то может быть не так. Это просыпается и собирается: «Это хорошо? Ребенок хорошо? » Это не отлично подходит для кого-либо, потому что нарушенные узоры сна плохими для нас.

Талия Наси: Шелби, и я разговаривал по твиттере вчера, и она сказала что-то действительно умное. Она сказала, что многие компании, и люди принимают деловые решения на основе Hunches или идеи, но они не смотрят на данные. Настолько важно, чтобы вы пишете тест на основе фактических данных и принимаете ваши бизнес-решения на основе данных, которые происходят от производства. Использование инструмента наблюдаемости, такого как сота, позволит вам сделать это.

Amy Tobey: И сделав его на основе вашей оценки риска из ваших SLOS в отличие от некоторой нечеткой идеи о том, насколько проходит оповещения, которые никто не имеет четкой картины в любой инфраструктуре размера.

Шелби СПИ: У меня всегда есть вопросы о культурных изменениях в команде. Если вы смотрите этот разговор, и вы похожи: «О, мужчина, как я понимаю. Некоторые вещи, которые мы не можем помочь. Единственный способ проверить это в продуктах, — и вы идете в свой менеджер, и вы похожи: «Почему мы не делаем это?», И твой менеджер, «как ты говоришь?» «Как вы начинаете двигать иглу? Как вы начинаете толкать для этих культурных изменений в ваших командах и в ваших организациях?

Талия Насси: Что-то я всегда люблю говорить людям, — это использовать примеры из вашего прошлого. Если это то, что последовательно происходит, когда вы полностью проверяете что-то в постановке, и он работает, и ваши тесты автоматизации проходят, а затем вы нажимаете на производство, и он не удается, то, возможно, это то, что вы должны поднять. Можем ли мы получить испытание над этими инструментами, которые нам нужно просто видеть, работает ли он для нас на несколько недель?

Amy Tobey: Большая часть моего тестирования в производстве ранее в моей карьере была проведена на правилах «легче просить прощения, чем разрешение. «Это было бы просто, — ну, у нас на самом деле нет способ сделать это. Я просто собираюсь сделать это И я не собираюсь никого спросить. «Я не рекомендую этому для всех, если вы не уверены в своей способности получить новую работу. Но мы часто застряли в этих местах.

Шелби СПИП: На моей последней работе мой менеджер сказал мне, чтобы занять больше рисков, потому что я бы узнал быстрее. Я действительно ценил, что потому, что, как правило, очень нерешится, что не является созданием хорошего тестера. Я был на команде DEVOPS. У меня был доступ ко всем нашим производственным системам. Поэтому я не хотел просто внести изменения Вилли-Неилли.

Amy Tobey: Обычно это то, что ищет наше руководство. То, на что я тренируюсь, — подумать о целях наших лидеров. Их работа — дать уверенность в бизнесе в том, что мы делаем. Будь мы писать программное обеспечение или нет, часто задача — сказать: «Это скорость, которую я должен предложить вам, и это моя уверенность в этой скорости. » В операциях Обычно это, как правило, «это доступность, которую я могу предложить вам, и это уверенность, которую у меня есть в этом. «Мы начали переходить на более закодированные системы, такие как SLOS для доступности. Мы также используем его для флагов функций и наблюдательности. Это наша метрика, которую мы используем для определения того, будут ли наши оценки доверия встречаются на фактических колесах на дороге.

Наш следующий вопрос: «Теперь я думаю о разрушительных тестах в таких продуктах, как стресс-тесты, тесты безопасности. Должен ли я избегать таких испытаний в производстве и иметь ли у вас какой-то опыт? » Итак, давайте начнем с стресс-тестов. Есть ли флаги функций, и как мы интегрируем это с помощью нашего режима стрессового тестирования?

Talia Nassi: Когда вы управляете этими тестами, лучше сделать это самостоятельно во время с низким трафиком, а не иметь падение вашего сайта в производстве, потому что вы не выполняли эти типы испытаний в производстве. Так что да, вы должны проводить производительность, нагрузки и стресс-тесты в производстве, но вы должны сделать это во время низкого трафика и время, когда вы знаете, что если вы запустите тест и сбои сайта, вы можете вернуть его обратно вверх. Флаги функций могут играть роль в этом, но да, они определенно должны быть сделаны.

Amy Tobey: Вы также можете сделать такие вещи, как включить. Если ваше стресс-тестирование имеет синтетический пользователь, вы могли бы включить функции только для теста стресса. Затем вы можете вернуться к вашей системе наблюдения и увидеть влияние нового кода в ваших системах.

Шелби СПИП: он возвращает меня в Хаос Инжиниринг и как, если вы собираетесь выполнить эксперимент Chaos, вы хотите уверены, что ваша система будет устойчивым, независимо от того, когда вы его развернули. Но в то же время вы не хотите бросать его в Черную пятницу. Я имею в виду черную пятницу, — это эксперимент на хаос в себе, например, вы хотите быть умным, когда вы начинаете эксперимент или вы выпускаете сценарий обезьян хаоса. Это то же самое с выполнением стресс-тестов или тестов безопасности, если у вас есть тестеры ручек за кулисами. Вы хотите, чтобы быть уверенным, что если они начинают вызывать проблемы, вы можете либо блокировать их от остальной части трафика, карантин их или запретить их, и что у вас есть меры по смягчению последствий. Точка этих испытаний состоит в том, чтобы иметь больше уверенности в вашей производственной среде. Так что абсолютно вы должны делать это в производстве. Но также также должно быть уверенность в вашей производственной среде.

Amy Tobey: Многие стандарты вокруг безопасности означают, что тесты перо должны произойти в производственной среде, чтобы действительно действовать. Мне очень нравится эта идея быть в состоянии включить новые функции только для команды безопасности, чтобы дать им возможность атаковать его, пока она в реальном мире, но До того, как он подвергается воздействию диких полкусов ботов и котенок и вещей.

Талия Наси: Думаю много лет назад не было никакого способа благополучно сделать это в производстве. Инструменты наблюдеемости и флаконование функции не существовали. Теперь, когда есть эти инструменты доступны, те люди, которые все еще находятся в технике, когда эти инструменты не были доступны, все еще в этом мышлении вроде: «Нет, это невозможно».

Шелби СПИП: Это заставляет меня подумать о цели проведения всех этих программных систем, которые мы работаем. Мы здесь, чтобы доставлять деловую ценность, и тестирование в продуктах дает нам больше уверенности в наших системах и помогает нам узнать больше о наших системах, чтобы мы могли сделать лучшую работу по доставке бизнеса. Поэтому, когда вы отказываетесь даже признать возможность тестирования в продуктах, это все равно что пытаться доставить пакеты на лошадях, когда вы можете доставить пакеты на поездах. Вы будете застрять позади, потому что вы просто не узнаете о своих системах, и вы не можете решить проблемы, которые есть там. Они просто собираются оставаться под поверхностью навсегда.

Эми Тоби: Ты тоже почистил элемент доступности там, что старые пупки, как я, и некоторые из моих сверстников смотрят на нас и собираются: «Вы люди, что вы делаете? Тестирование в производстве? Это верботен. «Но у нас также есть молодые разработчики или новые технологии, которые сейчас уполномочены делать то, что мы не способствовали бы молодому разработчику сделать 10 лет назад.

Талия Наси: Всегда будут те люди, которые говорят: «Тестирование в производстве никогда не будет работать. Что вы, ребята, делаете? » Эти посылки, я люблю их называть. Честно говоря, мне не волнует этих людей.

Эми Тоби: Я просто называю их неправильными.

Талия Наси: Ты застрял в этом мышлении, и вы абсолютно отказываетесь менять свое мышление. Хорошо. Вы делаете тебя. Я буду здесь тестирование в продуктах.

Шелби СПИ: Вы уже тестируете в производстве. Добавьте инструменты в ваш панель инструментов, чтобы вы могли получить наибольшее значение из тех рисков, которые вы уже принимаете, потому что каждый раз, когда вы вытесните изменения, это тест.

Talia Nassi: Сота есть Бесплатная версия и раскол имеет Бесплатная версия . Я бы вступил и скачал их обоих, начните их использовать и определить, если инструменты подходят для вас, если вам нравится процесс тестирования в производстве. И снова используйте примеры из вашего прошлого, чтобы привести это к вашему управлению.

Amy Tobey: Так что с этим это наше время. Спасибо Талию и Шелби так много для присоединения к нам сегодня. Я отлично провел время. Я надеюсь, что вы тоже это сделали. К нашей аудитории, спасибо, что присоединились к нам и так, чтобы мы все могли иметь это время вместе во время, когда мы не можем быть вместе. Будьте в безопасности там, оставайся здоровым и оставайся устойчивым.

Следуйте за Безупречный в Twitter и проверить наш Страница событий Чтобы остановиться на будущих вебинарах и событиях!

Рекомендуемое чтение:

Оригинал: «https://dev.to/blameless/sre-leaders-panel-testing-in-production-l4k»