Получи случайную криптовалюту за регистрацию!

Распределенный вперед. Стажеру или джуну простят незнание арх | //АйТи интерн

Распределенный вперед.

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

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

Я потратил несколько дней на эту проблему, а потом подошел к своему тимлиду и он сказал: “так у тебя 2 мастера, это split brain, нет консенсуса, пофикси.” Понятнее тогда мне не стало, но я узнал о совершенно новом для себя пласте проблем после часа общения с гуглом.

Этот пласт - отказоустойчивые распределенные системы. Конечно, отказоустойчивость относится не только к распределенным системам, но я не мог ее не упомянуть. Во-первых, приложение методов и практик построения отказоустойчивых решений напрямую относятся к распределенным системам. А во-вторых, я про это писал диплом. Зря что ли?

Известный и признанный исследователь Мартин Клеппман определяет распределенную систему как систему, в которой множество узлов (компьютеры, телефоны, сервера, роботы, и т.д.) выполняют какую-то вычислительную задачу вместе, взаимодействуя друг с другом по коммуникационной сети.

Он также написал всемирно известную книгу “Designing Data-Intensive Applications” про создание больших, производительных и поддерживаемых систем. По-русски книжка называется “кабанчик”.

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

Этим постом мы открываем серию небольших заметок про распределенные системы и большую тематику постов про архитектуру в целом. В следующий раз мы расскажем про основные проблемы распределенных систем - Split-brain, Quorum и Fencing.

@it_intern

#архитектура #распределенные_системы