Рубрика «надежность»

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

Что такое надёжность

Давайте синхронизируемся, что же мы будем понимать под надёжностью в этой статье.

Читать полностью »

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

Читать полностью »

Рисунок 1 – функциональная блок схема «NMR»

Рисунок 1 – функциональная блок схема «NMR»

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

Для себя поставил такое ТЗ:

Введение

Все, кто участвовал в запусках космических аппаратов, знает, что на этапе разработки нужно уделить большое внимание надежности разрабатываемых электронных систем. Казалось бы, звучит довольно банально, ведь любой разумный инженер должен обдумывать риски. Проблема, с которой сталкиваются, разработчики космических аппаратов (в отличие от иной промышленности) заключается в том, что никто и никогда не полетит чинить поврежденную электронику.Читать полностью »

Это просто бомба или почему взрываются электронные устройства - 1

Читать полностью »

Привет, меня зовут Евгений. Я работаю в инфраструктуре поиска Яндекс.Маркета. Хочу рассказать сообществу Хабра о внутренней кухне Маркета – а рассказать есть что. Прежде всего, как устроен поиск Маркета, процессы и архитектура. Как мы справляемся с внештатными ситуациями: что случится, если упадёт один сервер? А если таких серверов будет 100?

А ещё вы узнаете, как мы внедряем новую функциональность на куче серверов сразу. И как тестируем сложные сервисы прямо в production, не доставляя пользователям никаких неудобств. В общем, как устроен поиск Маркета, чтобы всем было хорошо.

Как устроен поиск Яндекс.Маркета и что будет, если упадёт один из серверов - 1
Читать полностью »

Программист-защитник сильнее энтропии - 1

© Dragon Ball. Goku.

Программист-защитник в любой момент и в любом месте кода ожидает появления потенциальных проблем и пишет код таким образом, чтобы заранее от них защититься. А если от проблемы нельзя защититься, то хотя бы сделать так, чтобы её последствия и влияние на пользователей были минимальными.

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

Давайте разберёмся подробнее, что входит в понятие «падать изящно».

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

Читать полностью »

Метод дублирования. 11 примеров из конструкции ДВС - 1

Дублирование (от французского doubler удваивать) в системе это вид резервирования, имеющего минимальную избыточность.

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

Читать полностью »

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

SamsPcbGuide, часть 12: Технологии — корпуса BGA-типа, пластик и космос II - 1

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js