Воспоминания дiда Панаса. Первая серия

cd0bc366f1490d9a15d28e0f6b13edae.jpg

Сiдайте у гурток, малятки. Сейчас дiд Панас расскаже вам казочку.

Фирма, в которой дiд Панас работал году так в 2003, разрабатывала девайсы, которые сейчас, наверное отнесли бы к IoT.

Дело в том, что в США многие фирмы берут мультифункциональные устройства сканер-копир-принтер — причём не всякую мелочь, которая ставится на стол, а такие, которые сами со стол размером, и у дилера стоят как несколько годовых зарплат программиста — в аренду. Это позволяет маленькой фирме, во-первых, не вываливать такие суммы сразу, а, во-вторых, не заморачиваться покупкой расходников, техобслуживанием и проч.: от арендодателя такого девайса раз в какое-то время приходит специально обученный человек, открывает аппарат, засыпает тонер, смазывает что дОлжно, ну и так далее. Кроме всего прочего, этот человек считывает с аппарата показания счётчиков — сколько было отпечатано листов, сколько израсходовано тонера и т. п. — и записывает эти показания в свою книжечку. В своём центральном офисе он эти показания докладывает, и арендодатель выставляет арендатору счёт вида «Вы в прошлом месяце напечатали 4560 листов, оплатите $45.60».

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

И сел дiд Панас писать серверную часть, с которой коробочка должна была соединяться и передавать информацию. А саму коробочку — и железо, и софт — фирма аутсорснула в далёкую и загадочную страну Кетай.

Долго ли, коротко ли, прошли годы месяцы, и пришла из далёкой страны коробочка. И подключили её к серверам, и зажужжали тестовые MFC, и заморгала заморская коробочка, и потекли по проводам байтики, и прожевали их написанные дiдом Панасом со товарищи сервера, и выплюнули счета, и возрадовались и CIO, и CEO, и shareholder-ы, и выпустили коробочки в продакшн. А дiда Панаса отправили… нет, не на пенсию — на все четыре стороны отправили (слава богу, что с выходным пособием), ибо всем известно: дiд сделал своё дело — дiд может уходить.

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

И пошли и CEO, и CTO, и CIO, и shareholder-ы нет, shareholder-ы никуда не пошли — не барское это дело — к дiду Панасу на поклон. И встал дiд Панас со своей завалинки, взял в руки посох свой крепкий, деревянный, и молвил: «Помогу я вам, сынки, посмотрю на вашу проблему. Но за таксу не простую, а золотую.»

И взошёл дiд Панас в свой пыльный офис, и сел за свой пыльный компьютер, и призвал он демонов, именуемых словами страшными, колдовскими — trafshow(1) и tcpdump(8), и медитировал он над тем, что сказали ему демоны о продакшене. И дошло до дiда Панаса, почему работали коробочки в офисе фирмы, и не всегда работали в продакшне, и вспомнил он заклинания заветные: «maximum transmission unit» и «фрагментация пакетов», и про священные гарантии великого протокола IP.

В офисе, где использовалась сеть быстрая, Ethernet-овая, и jumbo-кадры по ней бродили непуганые — первый же пакет пересылаемый гарантированно вмещал в себя всё необходимое. А когда привозили коробочку к клиенту, путь данных от сервера к ней (и обратно) извилист был и тернист, и не всегда пролезали пакеты жирные через MTU интерфейса, и плакал интерфейс горючими слезами, и фрагментировал пакеты, и пропихивал через себя в полной уверенности, что приёмная сторона соберёт пакет исходный из кусочков, как завещали великие Винтон Серф и Боб Кан. Но кетайцы ушлые не чтили заветов Серфа и Кана, и обрабатывала их коробочка из приходящих к ней пакетов-кусочков только тот, который первым прибежать успел и не потеряться —, а остальные игнорировала. А из-за того, что не гарантирует великий протокол IP порядка, а беспорядок один (порядок и целостность — это уже TCP), и видели коробочки вместо стройных сообщений от сервера мусор всякий.

И указал дiд Панас перстом своим, от клавиатуры заскорузлым, на чушь сию несусветную заказчикам. И facepalm-нул CTO, и закручинился CIO, и вырвал попросил CEO вежливо у дiда Панаса посох его крепкий, деревянный, и умчался в далёкую страну Кетай, обещав напоследок чего-то раздать ушлым кетайцам — только ветер донёс что-то про »…юлей», и shareholder-ы нет, shareholder-ы никуда не пошли — не барское это дело.

Скоро сказка сказывается, но и …юли тоже не долго раздаются — не прошло и нескольких недель, как пришли из далёкой страны Кетай коробочки с исправленной прошивкой, и всё за…тряслось, запыхтело, и сервера зажужжали, и полились данные в глубокие закрома баз данных, и полились деньги мутным потоком в карманы shareholder-ов (и теперь уж они точно никуда не пошли: вот это — барское дело).

И я там был, только пива не пил — горькое оно. И вообще, сказка — ложь, да в ней намёк, добру молодцу про уровни модели OSI урок, не любо — не слушай, а семинар проводить не мешай,

© Habrahabr.ru