Чему я научился после проведения тысячи собеседований: часть первая

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

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

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

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

Пойдем по порядку.

Ход собеседования

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

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

Сколько времени должно занимать собеседование?

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

Помню, как проходило моё «собеседование», когда я решил присоединиться к команде основателей VectorWatch. Всё свелось к тому, что мы с основателем вместе пообедали и он расспросил меня, что я умею.

Основатель: Бэкенд сделаешь?
Я: Само собой! Что еще нужно?
Основатель: Еще я ищу мобильного разработчика на Android…
Я: Тебе повезло, я и приложениями на Android занимаюсь между делом. Могу взяться.
Основатель: Возможно, нам еще понадобится Windows Phone.
Я: Посмотрю, что там и как… это ведь всё та же мобильная разработка, верно?

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

Собеседования в стартапах

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

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

Оставшиеся полчаса уходили на то, чтобы понять, хорошо ли кандидат дополнит стартап.

  • Фильтр на козлов. Неважно, будь кандидат хоть гением, если он козел, с которым невозможно работать, это сразу отказ.
  • Умение сотрудничать. Спросите, как проходила у канидидата совместная работа над одним из предыдущих проектов. Внимательно слушайте, что он говорит о взаимодействии с другими людьми, просите больше конкретики.
  • Отношение к разногласиям, способность их разрешать. Неплохо бы узнать позицию кандидата в таких ситуациях. Он настаивает на том, чтобы прийти к какому-то согласию, легко уступает, ведет себя агрессивно?
  • Инициативность, желание активно подключаться к задачам. В стартапах нужны инициативные люди, которые оперативно доводят дело до конца, хотят стремительно осваивать новое и подниматься по карьерной лестнице в том же темпе, в котором развивается стартап – то есть быстро.

Кто принимает итоговое решение?

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

Собеседования в крупных компаниях

Здесь отбор проводится более тщательно: за разные модули отвечают отдельные люди, которые и проводят соответствующие этапы собеседования.

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

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

Кто решает, проходит кандидат или нет?

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

Какие качества нужно искать в кандидатах?

Коллеги часто задают мне этот вопрос: когда вы выбираете, кого нанять, какие качества выделяете особо?

Краткий ответ на этот вопрос дал Джоэль, и мне он очень понравился сразу же, как только я его услышал:

«Умеет мыслить и получает результат».

Эта формула годится и для стартапов, и для крупных компаний. Проводя собеседования, мы, по сути, отвечаем на вопрос: «Умеет ли кандидат мыслить, способен ли получать результат и хорошо ли дополнит культуру команды или компании?»

Попробую раскрыть каждый из компонентов подробнее.

Умеет ли кандидат мыслить?

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

Раньше компании выясняли этот момент при помощи головоломок. Не могу сказать, что разделяю такой подход; сам я обычно использую какую-нибудь известную задачу на алгоритмы. От кандидата требуется пересказать мне ход мысли, тем самым показывая своё алгоритмическое мышление и логику процесса. Я хочу пронаблюдать, на каких моментах человек заходит в тупик, как при этом действует, как переосмысляет, задает ли вопросы по делу и так далее.

Я стараюсь, чтобы задачи были как можно ближе к практике – что-то такое, с чем кандидат, возможно, сам встречался в работе, или что-то существующее в окружающей действительности. От задач типа «волшебные гномы стоят кружком, держась за руки, и передают от одного к другому мячик» я воздерживаюсь.

Способен ли кандидат получать результат?

Здесь я расспрашиваю о прошлых проектах. Я стараюсь узнать побольше о сложных проектах и возникающих в них ситуациях – мне нужно понять, как кандидат к ним подходил и становился ли движущей силой при разрешении. Как ему удалось справиться с затруднениями?

Некоторые кандидаты часто используют слово «мы». Мы сделали то, мы сделали это. Это, конечно, хорошо – значит, человек воспринимает достижения как итог усилий всей команды, но всё-таки важно понять, что именно сделал сам кандидат для этих достижений. Так что не нужно бояться уточнять, какая у него-то была в этом всем роль, и закапываться в детали прошлого опыта.

Как он дополнит культуру?

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

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

Также важно помнить, что

Совместимость кандидата и компании – понятие двустороннее.

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

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

Правило «никаких козлов» очень важно и может избавить вас от многих проблем в будущем. Козлы, как правило, не меняются или меняются с большим трудом. Уж поверьте, мне со многими довелось помучиться, и все они в итоге увольнялись, доведя команду до белого каления, и хорошо, если половина команды не уходила до них. Если совершите такую ошибку, вам придется тащить человека либо на путь истинный, либо на выход. Других вариантов нет.

До, после и в процессе собеседования

Перед собеседованием

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

В ходе собеседования

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

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

После собеседования

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

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

На какие должности сложнее всего набирать людей?

Зависит от компании. Я бы сказал, что каждое решение по найму имеет существенное значение. Неудачный выбор может сказаться на команде, на проекте, а то и на всей компании.

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

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


ссылка на оригинал статьи https://habr.com/ru/companies/productivity_inside/articles/738814/

Kafka за 20 минут. Ментальная модель и как с ней работать

Привет! Меня зовут Глеб Гончаров, и я руковожу подгруппой ИТ-инфраструктуры в СберМаркете. В работе мы широко используем Kafka как шину данных для микросервисов и не раз убедились на практике, что к инструменту важно подобрать правильный подход. Об этом сегодня и поговорим в двух частях — сначала обсудим основы, а в конце статьи будет ссылка на практические задания.

В теоретической части мы:

Предыстория

Долгое время инженеры разрабатывали программы, которые оперируют объектами реального мира и сохраняют состояние о них в базы данных. Это могли быть пользователи, заказы или товары. Представление о вещах мира как объектах широко распространено в парадигме ООП и разработке в целом. Но всё больше современных компаний оперируют не самими объектами, а событиями, которые они порождают.

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

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

Как устроен Apache Kafka

TLDR

Основы кластера Kafka — это продюсер, брокер и консумер. Продюсер пишет сообщения в лог брокера, а консумер его читает.

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

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

Продюсеры

Для записи событий в кластер Kafka есть продюсеры — это приложения, которые вы разрабатываете.

Программа-продюсер записывает сообщение в Kafka, тот сохраняет события, возвращает подтверждение о записи или acknowledgement. Продюсер получает его и начинает следующую запись.

Брокеры

Кластер Kafka состоит из брокеров. Можно представить систему как дата-центр и серверы в нём. При первом знакомстве думайте о Kafka-брокере как о компьютере: это процесс в операционной системе с доступом к своему локальному диску.

Все брокеры соединены друг с другом сетью и действуют сообща, образуя единый кластер. Когда мы говорим, что продюсеры пишут события в Kafka-кластер, то подразумеваем, что они работают с брокерами в нём.

Кстати, в облачной среде кластер не обязательно работает на выделенных серверах — это могут быть виртуальные машины или контейнеры в Kubernetes.

Консумеры

События, которые продюсеры записывают на локальные диски брокеров, могут читать консумеры — это тоже приложения, которые вы разрабатываете. В этом случае кластер Kafka — это по-прежнему нечто, что обслуживается инфраструктурой, где вы как пользователь пишете продюсеров и консумеров. Программа-консумер подписывается на события или поллит и получает данные в ответ. Так продолжается по кругу.

Архитектура Kafka

TLDR

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

Посмотрим на архитектуру Kafka более внимательно. Слева есть продюсеры, в середине брокеры, справа — консумеры. Инструмент представляет собой группу брокеров, связанных с Zookeeper-кворумом. Kafka использует Zookeeper для достижения консенсуса состояния в распределённой системе: есть несколько вещей, с которыми должен быть «согласен» каждый брокер и Zookeeper помогает достичь этого «согласия» внутри кластера.

Начиная с Kafka 3.4 необходимость в использовании Zookeeper отпала: для арбитража появился собственный протокол KRaft. Он решает те же задачи, но на уровне брокеров

Начиная с Kafka 3.4 необходимость в использовании Zookeeper отпала: для арбитража появился собственный протокол KRaft. Он решает те же задачи, но на уровне брокеров

Zookeeper — это выделенный кластер серверов для образования кворума-согласия и поддержки внутренних процессов Kafka. Благодаря этому инструменту мы можем управлять кластером Kafka: добавлять пользователей и топики, задавать им настройки.

Также Zookeeper помогает обнаружить сбои контроллера, выбрать новый и сохранить работоспособность кластера Kafka. А ещё он хранит в себе все авторизационные данные и ограничения или Access Control Lists при работе консумеров и продюсеров с брокерами.

Устройство брокеров

TLDR

Топики в Kafka разделены на партиции. Увеличение партиций увеличивает параллелизм чтения и записи. Партиции находятся на одном или нескольких брокерах, что позволяет кластеру масштабироваться. 

Партиции хранятся на локальных дисках брокеров и представлены набором лог-файлов — сегментов. Запись в них идёт в конец, а уже сохранённые события неизменны.

Каждое сообщение в таком логе определяется порядковым номером — оффсетом. Этот номер монотонно увеличивается при записи для каждой партиции.

Лог-файлы на диске устаревают по времени или размеру. Настроить это можно глобально или индивидуально в каждом топике. 

Для отказоустойчивости, партиции могут реплицироваться. Число реплик или фактор репликации настраивается как глобально по умолчанию, так и отдельно в каждом топике.

Реплики партициий могут быть лидерами или фолловерами. Традиционно консумеры и продюсеры работают с лидерами, а фолловеры только догоняют лидера.

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

Топики

Топик — это логическое разделение категорий сообщений на группы. Например, события по статусам заказов, координат партнёров, маршрутных листов и так далее.

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

Топик удобно представлять как лог — вы пишете событие в конец и не разрушаете при этом цепочку старых событий. Общая логика:

  • Один продюсер может писать в один или несколько топиков 

  • Один консумер может читать один или несколько топиков

  • В один топик могут писать один или более продюсеров

  • Из одного топика могут читать один или более консумеров 

Теоретически, нет никаких ограничений на число этих топиков, но практически это ограничено числом партиций. 

Партиции и сегменты

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

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

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

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

Разберём детали на примере. В кластере Kafka есть три брокера: 101, 102 и 103. Топик A отмечен бирюзовым, топик B — жёлтым, C — оранжевым. На картинке у каждого топика по три партиции, но их число может быть разным и настраивается для каждого топика.

Партиции распределены между брокерами — кластер Kafka делает это автоматически при создании топика. Инструмент автоматически не следит за размером каждой партиции, не занимается ребалансировкой записи и чтения в кластере, не перемещает партиции между брокерами. Для этого уже существуют opensource-инструменты и готовые enterprise-платформы как Confluent, но сейчас для нас это не важно.

Каждая партиция на брокере представлена набором сегментов. Число сегментов у партиций тоже может быть разным. Оно варьируется в зависимости от интенсивности записи и настроек размера сегмента.

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

Можно также добавлять новые партиции в топике — это увеличит параллелизм записи и чтения со стороны продюсера и консумера.

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

Поток данных как лог

Сегмент тоже удобно представить как обычный лог-файл: каждая следующая запись добавляется в конец файла и не меняет предыдущих записей. Фактически это очередь FIFO (First-In-First-Out) и Kafka реализует именно эту модель.

Семантически и физически сообщения внутри сегмента не могут быть удалены, они иммутабельны. Всё, что мы можем — указать, как долго Kafka-брокер будет хранить события через настройку политики устаревания данных или Retention Policy.

Числа внутри сегмента — это реальные сообщения системы, у которых есть порядковые номера или оффсеты, что монотонно увеличиваются со временем. У каждой партиции свой собственный счётчик, и он никак не пересекается с другими партициями — позиции 0, 1, 2, 3 и так далее у каждой партиции свои. Таким образом, продюсеры пишут сообщения в партиции, а брокер адресует каждое из таких сообщений своим порядковым номером. 

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

Начальная позиция первого сообщения в логе называется log-start offset. Позиция сообщения, записанного последним — log-end offset. Позиция консумера сейчас — current offset.

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

Теперь пора посмотреть, из чего состоит отдельное сообщение Kafka. Если упростить, то структура сообщения представлена опциональными заголовками. Они могут быть добавлены со стороны продюсера, ключом партицирования, пэйлоадом и временем или timestamp

Каждое событие — это пара ключ-значение. Ключ партицирования может быть любой: числовой, строковый, объект или вовсе пустой. Значение тоже может быть любым — числом, строкой или объектом в своей предметной области, который вы можете как-то сериализовать (JSON, Protobuf, …) и хранить.

В сообщении продюсер может указать время, либо за него это сделает брокер в момент приёма сообщения. Заголовки выглядят как в HTTP-протоколе — это строковые пары ключ-значение. В них не следует хранить сами данные, но они могут использоваться для передачи метаданных. Например, для трассировки, сообщения MIME-type, цифровой подписи и т.д.

Устаревание данных

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

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

Простыми словами, настроенная политика устаревания не означает, к примеру, что из топика пропадут события старше 7 дней. Kafka удаляет закрытые сегменты партиций, а число таких партиций зависит от размера сегмента и интенсивности записи в партиции.

Но ничто не мешает хранить сообщения дольше или совсем их не удалять. Для хранения исторических данных в инструменте нет никаких ограничений, кроме размера дисков и числа брокеров, чтобы эти данные хранить.

Репликация данных

Если одна партиция будет существовать на одном брокере, в случае сбоя часть данных станет недоступной. Такая система будет хрупкой и ненадёжной. Для решения проблемы Kafka представляет механизм репликации партиций между брокерами.

У каждой партиции есть настраиваемое число реплик, на изображении их три. Одна из этих реплик называется лидером, остальные — фолловерами. Продюсер подключается к брокеру, на котором расположена лидер-партиция, чтобы записать в неё данные.

Записанные в лидера данные автоматически реплицируются фолловерами внутри кластера Kafka. Они подключаются к лидеру, читают данные и асинхронно сохраняют к себе на диск. В настроенном кластере Kafka репликация обычно занимает доли секунд.

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

С версии 2.4 Kafka поддерживает чтение консумерами из фолловеров, основываясь на их взаимном расположении. Это полезно для сокращения задержек при обращении к ближайшему брокеру в одной зоне доступности. Однако, из-за асинхронной работы репликации, взамен вы получаете от фолловеров менее актуальные данные, чем они есть в лидерской партиции.

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

Продюсеры

TLDR

Продюсеры самостоятельно партицируют данные в топиках и сами определяют алгоритм партицирования: он может быть как банальный round-robin и hash-based, так и кастомный. Важно помнить, что очерёдность сообщений гарантируется только для одной партиции.

Продюсер сам выбирает размер батча и число ретраев при отправке сообщений. Протокол Kafka предоставляет гарантии доставки всех трёх семантик: at-most once, at-least once и exactly-once.

У exactly once есть цена. Для надёжной записи вам необходимо использовать подтверждение как от лидера, так и от реплик, включить идемпотентность и использовать транзакционный API. Всё это негативно влияет на время записи.

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

Если вы хотите писать в Kafka надёжно, указывайте при создании топика min.insync.replicas меньше, чем общее количество реплик. В противном случае, лишившись брокера в случай аварии вы рискуете вовсе ничего не записать, т.к. не дождётесь подтверждения записи.

Если вы указываете acks=all, то включайте и enable.idempotence. Накладных расходов на идемпотентность нет.

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

Балансировка и партицирование

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

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

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

Также существуют List-based partitioning, Composite partitioning, Range-based partitioning и другие алгоритмы, каждый из которых подходит для своих задач. Вся логика реализации партицирования данных реализуется на стороне продюсера.

Дизайн продюсера

Типичная программа-продюсер работает так: пэйлоад упаковывается в структуру с указанием топика, партиции и ключа партицирования. Далее пэйлоад сериализуется в подходящий формат — JSON, Protobuf, Avro или ваш собственный формат с поддержкой схем. Затем сообщению назначается партиция согласно передаваемому ключу и выбранному алгоритму. После этого она группируется в пачки выбранных размеров и пересылается брокеру Kafka для сохранения.

В зависимости от настроек продюсер дожидается окончания записи в кластере Kafka и ответного подтверждающего сообщения. Если продюсер не смог записать сообщение, он может попытаться отправить сообщение повторно — и так по кругу.

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

Семантики доставки

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

  • Семантика at-most once означает, что при доставке сообщений нас устраивают потери сообщений, но не их дубликаты. Это самая слабая гарантия, которую реализуют брокерами очередей

  • Семантика at-least once означает, что мы не хотим терять сообщения, но нас устраивают возможные дубликаты

  • Семантика exactly-once означает, что мы хотим доставить одно и только одно сообщение, ничего не теряя и ничего не дублируя.

На первый взгляд самой правильной для любого приложения кажется семантика exactly once, однако это не всегда так. Например, при передаче партнёрских координат вовсе не обязательно сохранять каждую точку из них, и вполне хватит at-most once. А при обработке идемпотентных событий нас вполне может и устроить дубль, если статусная модель предполагает его корректную обработку.

В распределённых системах у exactly-once есть своя цена: высокая надёжность означает большие задержки. Рассмотрим, какие инструменты предлагает Kafka для реализации всех трёх семантик доставки сообщений в брокер.

Надёжность доставки

Со стороны продюсера разработчик определяет надёжность доставки сообщения до Kafka с помощью параметра acks. Указывая 0 или none, продюсер будет отправлять сообщения в Kafka, не дожидаясь никаких подтверждений записи на диск со стороны брокера.

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

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

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

Наконец, устанавливая acks в -1 или all, вы просите брокера с лидерской партицией отправить вам подтверждение только тогда, когда запись попадёт на локальный диск брокера и в реплики-фолловеры. Число этих реплик устанавливает настройка min.insync.replicas.

Частая ошибка при конфигурировании топика — выбор min.insync.replicas по числу реплик. При таком сценарии в случае выхода из строя брокера и потери одной реплики продюсер больше не сможет записывать сообщение в кластер, поскольку не дождётся подтверждения. Лучше предусмотрительно устанавливать min.insync.replicas на единицу меньше числа реплик. 

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

Идемпотентные продюсеры

Даже с выбором acks=all возможны дубликаты сообщений. В штатном режиме работы продюсер отправляет сообщение брокеру, а тот сохраняет данные в логе на диске и отправляет подтверждение продюсеру. Последний снова формирует пачку сообщений и так далее. Но ни одна программа не застрахована от сбоев.

Что, если брокер не смог отправить подтверждение продюсеру из-за сетевых проблем? В таком случае, продюсер повторно отправляет сообщение брокеру. Брокер послушно сохраняет добавляет ещё одно сообщение в лог — появляется дубликат.

Эта проблема решается в Kafka благодаря транзакционному API и использованию идемпотентности. В брокере есть специальная опция, которая включает идемпотентность — enable.idempotence. Так каждому сообщению будет проставлен идентификатор продюсера или PID и монотонно увеличивающийся sequence number. За счёт этого сообщения-дубликаты от одного продюсера с одинаковым PID будут отброшены на стороне брокера.

Если говорить проще — когда вы используете acks=all, нет никаких причин не включать enable.idempotence для своих продюсеров. Так вы добьётесь гарантии exactly once при записи в брокер и избежите дубликатов. Но у этого могущества есть своя цена — запись будет идти дольше.

Консумеры

TLDR

Партиции в консумер-группах распределяет автоматически Group Coordinator при помощи Group leader — первого участника в группе. Каждый консумер в группе может читать одну и более партиций разных топиков. Если консумеру не достанется партиции, то он будет бездействовать, что мешает масштабированию.

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

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

Любая смена композиции партиций в топиках и участников в группе запускает ребалансировку. Это болезненный процесс для консумеров. В этот момент все консумеры остановят чтение и не начнут его до полной синхронизации и стабилизации группы. Есть различные алгоритмы ребалансировки, которые позволяют смягчить процесс, но по умолчанию это Stop-The-World.

В новом консумере важно правильно выбрать политику оффсета. Иногда читать с начала не нужно и достаточно «перемотать» оффсет в конец, чтобы сразу получать только новые события.

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

Последняя часть — консумеры и то, как они читают данные из Kafka. 

Дизайн консумера

Типичная программа-консумер работает так: при запуске внутри неё работает таймер, который периодически поллит новые записи из партиций брокеров. Поллер получает список батчей, связанных с топиками и партициями, из которых читает консумер. Далее полученные сообщения в батчах десериализуются. В итоге консумер, как правило, как-то обрабатывает сообщения.

В конце чтения консумер может закоммитить оффсет — запомнить позицию считанных записей и продолжить чтение новой порции данных. Читать можно как синхронно, так и асинхронно. Оффсет можно коммитить или не коммитить вовсе. 

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

Главное — консумер периодически вычитывает новую порцию данных, десериализует их и следом обрабатывает.

Консумер-группы

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

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

Есть одна консумер-группа с двумя экземплярами одной и той же программы — это одна и та же программа, запущенная два раза. Эта программа-консумер читает два топика: X и Y.

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

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

Каждая такая группа имеет свой идентификатор, что позволяет регистрироваться на брокерах Kafka. Пространство имён консумер-групп глобально, а значит их имена в кластере Kafka уникальны.

Наконец, самое главное: Kafka сохраняет на своей стороне текущий оффсет по каждой партиции топиков, которые входят в состав консумер-группы. При подключении или отключении консумеров от группы, чтение продолжится с последней сохранённой позиции. Это делает консумер-группы незаменимыми при работе event-driven систем: мы можем без проблем деплоить наши приложения и не задумываться о хранении оффсета на стороне клиента.

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

Ребалансировка консумер-групп

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

При появлении новых участников в группе JoinGroup, в специальном процессе брокера Group Coordinator первому вошедшему консумеру присваивается роль Group Leader.

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

Процесс ребалансировки группы по умолчанию заставляет все консумеры в группе прекратить чтение и дождаться полной синхронизации участников, чтобы обрести новые партиции для чтения. В Kafka есть и другие стратегии ребалансировки группы, включая Static membership или Cooperative Incremental Partition Assignor, но это тема для отдельной статьи.

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

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

Чтобы Group Coordinator в кластере Kafka знал, какие из его участников активны и работают, а какие уже нет, каждый консумер в группе регулярно в равные промежутки времени отправляет Heartbeat-сообщение. Временное значение настраивается программой-консумером перед запуском.

Также консумер объявляет время жизни сессии — если за это время он не смог отправить ни одно из Heartbeat-сообщений брокеру, то покидает группу. Брокер, в свою очередь, не получив ни одно из Heartbeat-сообщений консумеров, запускает процесс ребалансировки консумеров в группе.

Процесс ребалансировки проходит достаточно болезненно для больших консумер-групп с множеством топиков. Он вызывает Stop-The-World во всей группе при малейшей смене композиции участников или состава партиций в топиках. Например, при смене лидера партиции в случае выхода брокера из кластера при причине аварии или плановых работах, Group Coordinator также инициирует ребалансировку.

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

Значения интервала Heartbeat и время жизни сессии следует устанавливать так, чтобы Heartbeat-интервал был в три-четыре раза меньше session timeout. Сами значения выбирайте не слишком большими, чтобы не увеличивать время до обнаружения «выпавшего» консумера из группы, но и не слишком маленьким, чтобы в случае малейших сетевых проблем, группа не уходила в ребалансировку.

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

Отсюда возникает следующая базовая рекомендация: устанавливайте достаточное число партиций на старте, чтобы вы могли горизонтально масштабировать ваше приложение. Увеличение партиций в моменте не принесёт вам почти никакого результата. Уже записанные в лог сообщения нельзя переместить и распределить между новыми партициями средствами Kafka, а репартицирование своими силами всегда несёт риски, связанные с очерёдностью и идемпотентностью.


🎉 Поздравляю! Вы прочитали до конца. Теперь можно закрепить теорию и перейти к практической части. Буду рад ответить на вопросы в комментариях

Tech-команда СберМаркета ведет соцсети с новостями и анонсами. Если хочешь узнать, что под капотом высоконагруженного e-commerce, следи за нами в Telegram и на  YouTube. А также слушай подкаст «Для tech и этих» от наших it-менеджеров.


ссылка на оригинал статьи https://habr.com/ru/companies/sbermarket/articles/738634/

Как мы переработали личный кабинет Soax с учётом пользовательских сценариев

Всем привет! Это команда UX-студии Everest. Мы разрабатываем личные кабинеты, порталы, интранеты и другие внутренние и внешние веб-сервисы с фокусом на пользовательский опыт.

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

В рамках задачи предстояло:

  • решить проблемы с логикой интерфейса: выделить пользовательские сценарии и облегчить запутанную структуру, в которой клиентам приходилось разбираться самостоятельно;

  • упростить систему покупки трафика;

  • разработать адаптивную версию личного кабинета под мобильные устройства;

  • вовлечь и мотивировать пользователей продолжить работу в сервисе.

Последний пункт был особенно интересным с точки зрения взаимодействия пользователя с интерфейсом. Многие клиенты не пользовались продуктом после покупки: им необходимо было помочь с настройкой, подсказать дальнейшие шаги, предложить техподдержку. Здесь помог наш опыт в проектировании и разработке онбордингов. Для Soax мы реализовали три вида онбординга: пошаговый, обучающий и с геймификацией процесса. Каждый — под определённую группу пользователей и для достижения конкретных целей. Но об этом расскажем дальше.

Бизнес-анализ и анализ текущего сервиса

Идентификация клиентов

Начали с глубинного интервью с клиентом. Выяснили, что прокси может использоваться как для легальных вещей, так и нелегальных. Вторых Soax строго отсекает. Для этого новым пользователям при регистрации аккаунта нужно пройти проверку KYC (Know Your Customer — верификацию личных данных). Процесс схож с проверкой при работе с банковскими системами и криптовалютами.

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

Варианты оплаты

В начале мы уже писали, что модель подписки на тарифный план нуждалась в оптимизации. Клиенты оплачивали тариф (пакет), вырабатывали его и покупали новый. То есть им ещё до начала работы нужно было попытаться оценить необходимое количество мегабайт, а потом следить за остатком трафика и не забывать покупать новые пакеты.

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

Возможность делиться трафиком

В текущей системе клиенты Soax сталкивались с проблемой разделения купленного трафика между своими сотрудниками. У одного пользователя могло быть несколько клиентов/проектов, а каждого клиента мог обслуживать свой менеджер. Для этого нужно делить купленный трафик, чтобы вести настройку и статистику по клиентам/проектам. Пример такого кейса — аккаунт SMM-компании с большим количеством клиентов и проектов.

Мы предложили способ быстро поделиться аккаунтом через email-адрес (как при работе с google-документами). Владельцу аккаунта в таком случае достаточно сформировать ссылку для нового пользователя на его почту. После перехода по ней гость получал доступ к личному кабинету и мог сам настраивать прокси для своих задач. У владельца аккаунта при этом оставалось право отключить гостевых пользователей, а также контролировать количество доступного им трафика.

Настройка прокси

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

Конкурентный анализ

Чтобы подробнее изучить сферу, провели конкурентный анализ. Взяли четырёх предоставленных бизнесом конкурентов. Ещё двух добавили по ключевым словам из поисковых систем, исключив брендовые запросы.

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

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

Разработка пользовательских сценариев

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

Архитектура навигации сервиса

Разработали карту разделов и страниц личного кабинета для понимания навигации. К ней же обращались в дальнейшем для проверки сценариев. Проверяли, удобно ли с такой навигацией двигаться назад и вперёд по сценариям.

Интерфейсные решения

Дашборд

Наиболее сложная и нагруженная страница личного кабинета, у которой есть три состояния.

#1 — Пользователь зарегистрировался, но ещё не купил подписку.

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

#2 — Подписка куплена, но пользователь ещё не настроил прокси.

Задача этого дашборда — направить пользователя в раздел с прокси.

#3 — Трафик с прокси начал расходоваться (самое нагруженное состояние).

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

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

Настройка прокси

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

Для удовлетворения потребности двух групп пользователей мы разделили страницу на две вкладки: Quick access (Быстрый доступ) и Export proxy list (Получить список прокси). В двух вкладках дали возможность настроить фильтр по странам, но при этом в Quick access задействовано минимальное количество элементов управления (контролов), что позволяет разобраться даже новичку. Для более продвинутых пользователей предусмотрены расширенные настройки в Export proxy list.

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

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

Покупка подписки и финансы

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

Тарифные планы

Тарифные планы
Таблица сравнения тарифов

Таблица сравнения тарифов

Для контроля финансовых операций пользователю доступен раздел «Финансы», где он может посмотреть свои оплаты, скачать документы или пополнить баланс альтернативными способами — например, биткоинами или через PayPal.

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

Для B2B-клиентов мы предусмотрели также оплату через банковский платёж. Сценарий выбрали простой: клиент указывает сумму и скачивает счёт на оплату, оплачивает удобным ему способом и загружает платёжку. Деньги поступят на счёт после проверки менеджером.

Онбординг и уведомления

Из-за сложности продукта мы приняли решение сделать 3 варианта онбординга новых пользователей.

Первый вариант: пошаговый

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

Второй вариант: обучающий

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

Третий вариант: с геймификацией процесса

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

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

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

Спецификации экранных форм

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

Результат

За 4 месяца работы над проектом мы погрузились в сферу бизнеса клиента, разобрались в продукте и решили ряд интерфейсных задач:

  • Выделили пользовательские сценарии, проработали по ним интерфейсы, разбили процессы на отдельные этапы.

  • Адаптировали личный кабинет для новой системы оплаты в формате ежемесячной подписки.

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

  • Вынесли настройку прокси в отдельный раздел, добавили вкладки для новичков и опытных пользователей.

  • Продумали и реализовали тройную систему онбординга.


ссылка на оригинал статьи https://habr.com/ru/articles/738816/

Фудтех в формате 3D: от стейка до ресторана

В 2022 году индустрия 3D-печати отметила свое первое десятилетие, как инструмент аддитивного производства. Отрасль развивается и проникает во все сферы жизни человека: медицина, космос, фармацевтика, электроника, машиностроение, а также фудтех: создание альтернативных продуктов, автоматизация процессов приготовления, масштабирование производства. Пока 3D-продуктов нет в каждом холодильнике, но в некоторых городах мира можно купить 3D-бургер или поужинать в ресторане с 3D-блюдами.

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

История 3D‑печати

Классический 3D-принтер – это не технологическая новинка последних лет. История создания этого прибора длилась много лет, а над разработками трудились ученые всего мира. Каждый внес свой вклад в развитие 3D-технологий.

Первый прототип 3D-принтера был изобретен доктором Хидео Кодама  из муниципального научно-исследовательского института промышленности Нагои в 1981 году. Прибор быстрого прототипирования создавал детали слой за слоем, используя смолу, полимеризуемую под воздействием ультрафиолетового света.

В 1983 году французские инженеры национального центра научных исследований Ален Ле Мехо, Жан-Клод Андрэ и Оливье де Витт придумали прибор, который под воздействием лазера превращал мономер в полимер. Свою технологию они назвали стереолитографией. Благодаря этому названию самый известный формат файла для 3D-печати называется STL (stereolithography).

Отцом-изобретателем 3D-печати принято считать американского исследователя и основателя  3D Systems Чака Халла. В 1986 году он представил миру свой прибор для трехмерной печати, которую назвал «установка для стереолитографии».

Чак Халл-  - соучредитель, исполнительный вице-президент и главный технический директор компании 3D Systems. Источник

Чак Халл- — соучредитель, исполнительный вице-президент и главный технический директор компании 3D Systems. Источник

Чак Халл разработал новый метод 3D-печати (размещение тонкого пластика послойно с УФ-технологией) и основал компанию 3D Systems. В 1988 под его руководством был выпущен первый коммерческий 3D-принтер – модель SL1. В случае использования метода SLS, лазер превращает сыпучий порошок (а не смолу) в твёрдый материал.

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

Первые 3D-принтеры были дорогостоящими и громоздкими,  поэтому использовались только в крупных компаниях. Но 2005 год стал знаковым для технологии 3D-печати благодаря появлению проекта с открытым исходным кодом под названием RepRap Project, основанного профессором Университета Бата  Адрианом Боуэром. Им был создан 3D-принтер RepRap, который с того момента стал источником вдохновения для создания практически всех недорогих и удобных в использовании 3D-принтеров. В 2009 в США открылась компания по производству настольных FDM принтеров – MakerBot. 

Развитие 3D-печати продолжалось. Ученые начали разрабатывать 3D-печать с помощью живых клеток – биопринтинг. Американец Томас Боланд из Клемсонского Университета создал и запатентовал струйную печать из живых клеток, что стало большим шагом на пути к печати человеческих органов на 3D-принтере. В 2008 году произошла первая печать протезов, которые были успешно трансплантированы пациенту. В настоящий момент многие компании занимаются разработками в области печати бионических протезов и органов.

В 2012 году 3D-печать проникла в область фудтеха: в Барселоне была создана инновационная бытовая техника для кухни Natural Machines, в том числе машина Foodini для 3D-печати еды дома из свежих продуктов. В этом же году компания Essential Dynamics анонсировала первый в мире пищевой 3D-принтер Imagine Machine.

Есть мнение, что вся индустрия пищевых принтеров началась с компании Fab@Home. Дело в том, что создатели этого устройства, Ход Липсон и Эван Малоун из Корнелльского университета, всего лишь решили поставить эксперимент по внедрению быстрого прототипирования в широкие массы по низкой цене, а инструкцию выложили в открытый доступ. На этом их задача была выполнена. С 2010 года их лаборатория вместе с партнерами на местах, например, французским кулинарным институтом, начали экспериментировать с пищевой экструзией: 3D-печенье с запеченными внутри буквами, гребешки в форме космических кораблей, шоколад, глазурь, сыр и многое другое.

Что касается отечественных разработок в фудтехе, то ещё в 2015 году компания 3D Bioprinting Solutions начала сотрудничество с KFC по разработке инновационной технологии создания куриного мяса с помощью 3D-биопринтера. В 2018 году компания запустила магнитный биопринтер, а в сентябре 2020 фудпринтер от 3D Bioprinting Solutions был представлен в ресторане Twins Garden. Там на нём напечатали кальмара из растительного белка. 

Сегодня 3D-принтеры для пищевой промышленности производят массово, а ученые создают новые методы производства продуктов. Несмотря на то, что технология пищевой трехмерной печати является самой молодой в области 3D-моделирования, она динамично развивается и совершенствуется.

Сейчас существует множество пищевых 3D-принтеров, но есть два основных вида:

  • 3D-принтер карусельного типа, который вращает над рабочей поверхностью емкости с сырьем, выбирая нужный ингредиент и выдавливая указанную в рецепте дозировку продукта. В базе пищевого 3D-принтера карусельного типа может храниться практически неограниченное количество рецептов, а для его использования не нужны специальные навыки. Широкий ассортимент ингредиентов, подходящих для работы с трехмерными устройствами, дает возможность создавать практически любые объемные модели.

  • 3D-принтер экструзионного типа слой за слоем выдавливает съедобную массу на рабочую поверхность. Он может формировать полноценное блюдо или продукт.

Фудтех и 3D-печать

По прогнозам аналитиков компании Emergen Research, мировой рынок пищевых технологий достигнет $342,52 млрд к 2027 году. И в таких условиях развитие съедобной 3D-печать сулит значимую выгоду производителям, так как технические особенности процесса позволяют создавать новые вкусы и блюда без построения сложной производственной линии. Кажется, что скоро «напечатать» можно будет любое блюдо.

Если верить фильму «Звездный путь», то именно 3D-печать будет, единственным способом приготовления пищи через 2 000 лет, ну а пока предлагаем познакомиться с успешными проектами России и мира в области пищевой 3D-печати.

3D-принтер для печати ягод и фруктов

Британская компания Dovetailed представила 3D Fruit Printer, способный печатать объемные фрукты, но в формате желатиновых капсул.

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

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

Фрукты в формате желатиновых икринок. Источник

Фрукты в формате желатиновых икринок. Источник

Твердое яблоко с помощью 3D Fruit Printer напечатать нельзя. Вместо него вы получите шарики, наполненные яблочным соком. Процесс приготовления таких фруктов занимает пару секунд.

3D-шоколад для кондитеров

Choc Edge Choc Creator 2.0 Plus – это пищевой 3D-принтер для профессиональных кондитеров. С его помощью можно создавать шоколадный декор разной сложности.

Чтобы напечатать изделия, нужно залить нагретый шоколад в специальные 30-миллиметровые шприцы. Принтер оснащен сенсорным ЖК-дисплеем, а шаблоны моделей загружаются через USB-носитель.

С помощью 3D-принтеров, которые печатают шоколадом, можно создавать объемные фигурки, плоские изображения и надписи. 

3D-принтер для профессиональных кондитеров. Источник

3D-принтер для профессиональных кондитеров. Источник

Жидкий 3D-орех

3D-принтер Goop от Biozoon – по-настоящему интересное изобретение. В принтере используется технология переработки любого продукта до жидкого состояния и распечатка из полученного материала изделия любой формы.

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

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

Продукты из 3D-принтера Goop от Biozoon. Источник

Продукты из 3D-принтера Goop от Biozoon. Источник

Стейки, кебаб и рыба от Steakholder Foods

Израильская компания Steakholder Foods занимается производством стейков, сочетая 3D-печать и технологию культивации мяса.

В основе производства лежат клетки животных, которые проходят процесс стимуляции роста жировых клеток и мышц. Далее 3D-принтер равномерно распределяет мышцы и жиры тонкими слоями.

Мясные стейки от Steakholder Foods. Источник

Мясные стейки от Steakholder Foods. Источник

Особенность технологии Steakholder Foods в том, что на принтере можно регулировать вкус, сочность, питательную ценность и мраморность мясных стейков. Прежде чем пустить своё изобретение в производство, сотрудники провели ряд исследований с готовыми стейками. Результаты доказали, что биохимический состав, вкус и питательная ценность 3D-стейков идентичны показателям обычного мяса.

Компания также производит 3D-кебаб. По мнению премьер-министра Израиля Биньямина Нетаньяху, который недавно посетил Steakholder Foods, вкус у 3D-блюда восхитительный.

Недавно в ассортименте бренда появилась новинка – напечатанная на принтере рыба групер. Это совместный проект с компанией Umami Meats, которая занимается культивированием морепродуктов. Процесс печати нового блюда приурочили к приезду премьер-министра Израиля.

Рыба групер от Steakholder Foods. Источник

Рыба групер от Steakholder Foods. Источник

Напечатать рыбу оказалось намного сложнее, чем альтернативный стейк. Сотрудникам компаний пришлось изобрести уникальный алгоритм, имитирующий слоеную текстуру рыбы.

По словам руководства Steakholder Foods, компания не собирается останавливаться на достигнутых результатах, а планирует развивать технологию, расширять ассортимент и географию продаж.

Филе лосося в 3D

Израильский стартап Plantish разработал технологию 3D-печати растительного филе лосося из белков бобовых и экстракта водорослей. 

Компания специализируется только на производстве 3D-лосося, чтобы сделать продукт совершенным. Цель стартапа — стать ведущим мировым рыбным брендом, не причинив вреда ни одной рыбе.

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

Сейчас продукция бренда продаётся только в нескольких магазинах на территории Израиля, но к концу 2024 года компания планирует расширение производства и запуск продаж по всей стране.

Филе лосося от Plantish. Источник

Филе лосося от Plantish. Источник

Мечта кондитеров и 3D-десерты

3D-печать открывает безграничные возможности для творчества кондитеров. Именно кондитерское производство рассматривается аналитиками как та отрасль кулинарии, которая может значительно развиться благодаря внедрению трёхмерной печати.

Сначала 3D-технологию в кондитерском деле использовали только для создания декора: небольшие фигурки, изображения, украшения, мини-конфеты, безе. Сегодня же есть возможность создавать десерты целиком.

Учёные из Колумбийского университета (США) создали алгоритм для 3D-печати чизкейка из семи компонентов. Для создания 3D-блюда использовали печенье, глазурь, клубничное желе, шоколадную и арахисовую пасту, вишнёвый соус и бананы. Алгоритм использовался на принтере с возможностью термической обработки напечатанных слоёв с помощью лазерного излучения. Чтобы кусочек десерта получился треугольной формы, инженеры сначала напечатали нижние слои десерта из более твёрдых ингредиентов. По вкусу и внешнему виду 3D-чизкейк ничем не отличается от настоящего из кондитерской.

Команда проекта планирует создавать десерты из десяти и более ингредиентов, а также экспериментировать с очень сложными формами 3D-выпечки и разными десертами.

3D-чизкейк из Колумбии. Источник

3D-чизкейк из Колумбии. Источник

Ресторан с 3D-меню

Продукты в 3D-формате могут не только продаваться в магазинах, но и выступать главными блюдами в меню.

Ресторан Food Ink в Испании предлагает своим гостям полноценное меню, составленное из 3D-блюд. Средний чек – от 16 000 рублей. По словам шеф-повара ресторана Матеу Бланча, скоро кухня ресторана будет похожа на кофеварки Nespresso: «достаточно просто вставить капсулу и приготовить заданный рецепт».

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

FoodInk использует технологии компании byFlow, которая разработала портативный 3D-принтер для печати из различных материалов. В устройство можно загрузить любой съедобный ингредиент мягкой кремовой текстуры: например, шоколадный мусс, тесто для пиццы, хумус или сыр. Пастообразная смесь загружается в контейнер, напоминающий по форме шприц. Смесь нагревается и из контейнера выдавливается тонкий слой съедобных «чернил». Слой за слоем формируется трехмерный объект, который можно подавать клиентам. FoodInk есть и в Лондоне. Здесь всё — от посуды и приборов до десертов — напечатано на 3D-принтере

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

Сотрудники ресторана также отмечают, что производство продуктов на 3D-принтере позволяет экономить ингредиенты и производить меньше лишней еды.

Портативный 3D-принтер в ресторане FoodInk. Источник

Портативный 3D-принтер в ресторане FoodInk. Источник

Российские технологии 3D-печати

В России рынок 3D-печати активно развивается в последнее десятилетие. В ходе исследования, проведенного NeoAnalytics, выяснилось, что в России рынок аддитивных технологий развивается быстрыми темпами, однако достаточно отстает от темпов роста мирового рынка. В 2022 г. объем рынка аддитивных технологий в России составлял около 4 млрд. долл. и вырос за год на 3,3%.

В мае 2023 года мэр Москвы Сергей Собянин в своем телеграм-канале сообщил, что продукты первых российских производителей 3D-принтеров пользуются спросом в странах Ближнего Востока, Юго-Восточной Азии и Латинской Америки.

По словам главы города, спектр применения отечественной техники достаточно велик. Например, московская компания PICASO 3D выпускает модели для печати: от мельчайших деталей для медицинского оборудования до составляющих крупных арт-объектов.

«3D-принтеры используют и в сфере образования. На примере моделей школьники и студенты изучают строение вирусов и тестируют разработки для своих проектов, — уточнил Сергей Собянин. — Дизайнеры и художники-реконструкторы в области искусства и моды создают детали для уникальных костюмов и предметы интерьера». Предлагаем подробнее узнать о компании PICASO 3D и других российских проектах.

PICASO 3D создает 3D-принтеры в России

PICASO 3D – это первый российский производитель персональных 3D принтеров. Компания с 2011 года ведет разработки и производит 3D принтеры, опережающие зарубежные аналоги. На сегодняшний день PICASO 3D объединяет безопасность и легкость использования офисного оборудования и профессиональное качество промышленных 3D принтеров.

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

Ученые «печатают» стерлядь в биопринтере

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

«Нами впервые разработана технология получения мышечных клеток для выращивания искусственного мяса рыбы. Мы выбрали стерлядь, так как она отличается высокой пищевой ценностью и является деликатесом», – рассказывает заведующая НИЛ «Регенеративная ветеринария» Елена Закирова.

Суть используемого метода заключается в выращивании рыбы в биоректоре на основе миобластов из мышц. Чтобы получить структурированное мясо рыбы, используется биопринтер: клеточный материал смешивают с биочернилами и «печатают». На созревание готового продукта требуется до 14 дней в инкубаторе.

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

3D-стерлядь в видении нейросети

3D-стерлядь в видении нейросети

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

К участию в конкурсе приглашаются студенты ведущих вузов страны, обучающихся на технических факультетах и специальностях, имеющих прикладное значение для ИТ и АПК.

Стипендиальный конкурс дает студентам возможность применить свои знания на практике и внести вклад в цифровую трансформацию сельского хозяйства, разработав прототип решения для одной из платформ банка: РСХБ в цифре, Своё Родное, Своё За городом, Своё Село, Я в Агро.

Всего 40 студентов по итогам отбора станут стипендиатами и будут получать стипендию в размере 15 000 рублей в месяц в течение целого учебного года. 

Для участия в конкурсе необходимо выбрать задание на платформе РСХБ в цифре и в срок до 31 августа 2023 направить решение: описание концепции, прототип и видео-презентацию. 

Сделайте шаг в ИТ-карьеру!

Российский 3D-шоколад

Шоколадные 3D принтеры Chocolate Fiesta — российская разработка для кондитерских производств. Chocolate Fiesta — это первая компания, которая применяет кондитерскую 3D-печать на российском рынке с 2017 года.

Шоколадный 3D-принтер создан специально для кондитерских производств и проведения оригинальных мастер-классов. Команда потратила несколько лет, чтобы создать экструдеры Chocol3D.

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

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

Это первый в мире шоколадный 3D-принтер с двумя экструдерами. В принтере можно печатать разноцветные шоколадные изделия, конкретные шоколадные логотипы под уникальные заказы. Например, на таком принтере выполнили заказ на пятьсот двухцветных шоколадных логотипов с символикой ассоциации «Технет» к форуму «Открытые инновации».

Шоколадные логотипы из принтера Chocolate Fiesta. Источник

Шоколадные логотипы из принтера Chocolate Fiesta. Источник

Биопринтер печатает шоколад, пирожные и наггетсы

Пищевой 3D-принтер с системой «умных» рецептов, который печатает продукты питания с заданными свойствами, создали ученые Московского государственного университета пищевых производств (МГУПП).  Его главным отличием являются модифицированные под задачи пищевой промышленности узлы. Уникальная технология позволяет брать устройство для печати пластиком и модернизировать его под печать пищевым сырьем. Под каждый вид сырья принтер формирует необходимую климатическую среду: свою температура, влажность и т. д.

Разработка ученых МГУПП позволяет делать 3D-принтер любых размеров и под любые задачи, а также увеличить площадь печати до полутора метров, что на 1,2 метра больше, чем у существующих аналогов.

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

Одной из задач разработки пищевого 3D-принтера была возможность создания продуктов питания, богатых витаминами, микронутриентами и антиоксидантами, которые станут полезной альтернативой традиционным блюдам. В будущем проект планирует открыть лабораторию по производству «культурного» мяса совместно с компанией 3D Bioprinting Solutions.

Шоколадные шахматы, напечатанные в 3D-принтере. Источник

Шоколадные шахматы, напечатанные в 3D-принтере. Источник

Будущее съедобной 3D-печати

Домашнее использование 3D-принтеров пока не получило широкого распространения, но технология незаметно проникает в нашу жизнь. Так, почти 99% изготовленных на заказ слуховых аппаратов уже много лет печатаются на 3D-принтере из акриловой смолы.

Что ждет 3D-печать в будущем? Скорее всего, внедрение потребительских 3D-принтеров продолжиться, а компании будут создавать новые проекты в области фудтеха. Возможно, эта технология разовьется до уровня голосового помощника, и принтер будет печатать яичницу после фразы: «Пожалуйста, приготовь мне завтрак!».

Кроме того, 3D-продукты смогут решить одну из глобальных проблем нашего времени — нерационального использования продуктов, ведь около 1,3 млрд тонн еды просто выбрасывается.

По прогнозу маркетплейса печати деталей Hubs, рынок 3D-печати к 2026 году вырастет почти в три раза, это около  $44,5 млрд. Эти цифры лишь подтверждают невероятные перспективы и потенциальную выгоду 3D-печати.

Вы бы хотели иметь такого помощника на кухне?

 

 

 


ссылка на оригинал статьи https://habr.com/ru/companies/rshb/articles/738840/

Как правильно бегать, чтобы прибежать к нужному результату

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

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

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

Взгляд изнутри: польза бега для организма

О том, что бег полезен, мы все хорошо знаем с детства. А вот почему и что именно происходит с нашим организмом во время бега, знают не все. Мы остановимся на этом подробнее, чтобы объяснить процессы и их взаимосвязь с результатом в виде укрепления здоровья.

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

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

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

Активная работа сердечно-сосудистой системы благотворно влияет и на сами сосуды: при усиленном и увеличенном кровотоке улучшается эластичность их стенки.

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

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

Также бег положительно влияет на желудочно-кишечный тракт, улучшается перистальтика кишечника.

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

На старт. Внимание. Марш!

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

Давайте вспомним основные правила, которые важно соблюдать, чтобы бегать правильно и получать максимальную пользу от процесса.

1. Начните с разминки. Перед бегом необходимо разогреть мышцы и суставы, чтобы избежать травм. Разминка должна включать в себя легкие упражнения на растяжку и ходьбу в течение 5–10 минут.

2. Выберите правильную обувь. Обувь должна быть удобной и соответствовать размеру ноги. Лучше всего выбирать кроссовки с амортизацией и хорошей поддержкой стопы. Также в кроссовках для бега пятка всегда выше носка (на 2-3 см), это нужно, чтобы снимать нагрузку с ахиллово сухожилия. 

3. Следите за техникой бега. Бежать нужно полной стопой, отталкиваясь ее верхней частью, и ни в коем случае не приземляться на пятки. Спина должна быть прямой, корпус немного наклонен вперед (примерно на 15 градусов). Ноги ставим под корпус, смотрим только вперед. Овладеть правильной техникой поможет тренер.

«Техника бега закладывается с детства. Если вы решили начать бегать во взрослом возрасте, именно тренер должен вам подсказать, как бежать и какие ошибки вы совершаете. Это всё индивидуально. Опытный тренер сразу увидит, кто бежит с пятки, косолапит, не толкается стопой», — рассказывает Марина Родченкова, заслуженный мастер спорта России по легкой атлетике, тренер-преподаватель молодежного центра «Галактика».

4. Следите за дыханием. Правильное дыхание во время бега помогает снизить нагрузку на сердце и легкие. Дышите ртом, чтобы захватывать больше кислорода. Вдыхать нужно глубоко и равномерно. Это поможет увеличить кислород в крови и улучшить работу легких. 

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

«Важно ориентироваться на пульс. Во время бега он не должен быть очень высоким, т. к. это говорит о перегрузке нашего сердца, ему тяжело справляться с текущей нагрузкой, оно не успевает полноценно расслабиться и наполниться кровью. Если усреднить, то границы пульса при беге должны быть 120–150», — советует Анастасия Бруевич.

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

«Для полноценных тренировок, конечно, нужен тренер, который подскажет, как правильно подготовиться к старту. Я не советую людям, которые вдруг для себя решили пробежать дистанцию в 10 км или 20 км, самим готовиться. Это может быть опасно. Готовиться к старту надо за 3 месяца, нужно быть готовым к болям в мышцах, нагрузкам, микротравмам. Просто захотел и побежал — так не получится! Это большая ошибка всех начинающих бегунов», — отмечает Марина Родченкова.

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

7. Не забывайте о правильном питании. Употребление достаточного количества воды, белков, углеводов и жиров поможет поддерживать энергию и здоровье. Перед тренировкой (за 1,5 часа) обязательно поешьте, еда должна быть углеводной, а после тренировки — перекусите белковой пищей. Это поможет восстановить силы и ускорить процесс восстановления мышц. Пить во время тренировки нежелательно, но можно по мере необходимости. Лучше просто прополоскать рот или сделать 2–3 небольших глотка. Так вы не будете перегружать свой организм дополнительной работой и отвлекать его от тренировки.

Обязательно возьмите эти правила на вооружение. Но, пожалуй, самое главное — всегда прислушиваться к своему организму.

«Во время бега важно обращать внимание на свое самочувствие. Если возникают боли в груди, чрезмерная одышка, желательно сначала пройти осмотр врача, чтобы не усугубить ранее не выявленные заболевания», — напоминает Анастасия Бруевич.

История одного бегуна

Знакомиться с историями успеха не только интересно, но и полезно. Чужой опыт поможет настроиться, ответить на какие-то ваши вопросы, а возможно снять внутренние зажимы и страхи. Мы расскажем историю нашего коллеги Дмитрия Радаева, руководителя проектов AGIMA, который пришел в бег совсем без опыта, а уже через несколько лет смог пробежать марафон.

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

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

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

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

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

Во-вторых, важна роль тренера. Он поможет подобрать правильную одежду и обувь, исправить технику бега, составить программу тренировок, что особенно актуально для новичков.

В-третьих, все цели достижимы, главное — ваше желание и настрой на победу! «Главный залог успеха — регулярность. Залог высокого успеха – индивидуальная программа, составленная грамотным тренером, и неукоснительное ее соблюдение. Плюс правильное питание в правильное время. И тогда всё получится!» — делится Дима.

Куда бежать: какие старты взять на заметку новичку

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

Новичку можно рассмотреть следующие забеги:

1. Забеги на средние дистанции — это забеги на дистанции от 600 м до 3 км, которые могут быть отличным выбором для начинающих бегунов.

2. Бег по шоссе — это забеги по дорогам и тротуарам на 5 км, 10 км и 15 км. Они могут стать хорошим вариантом для тех, кому нравится бег в городских условиях. 

3. Полумарафон и марафон — это забеги на дистанцию от 21 км до 42 км. С такими стартами новичку не нужно торопиться. Эти дистанции длинные и сложные, они могут быть опасным испытанием для начинающих. А вот опытные бегуны вполне могут их рассмотреть.

Все вышеперечисленные дистанции, рассчитанные на новичков и профи, вы найдете на RUNIT — ежегодном забеге для IT-специалистов.

RUNIT проводится с 2018 года, и с каждым годом участников в забеге всё больше. В 2022 году на старт вышло более 2500 человек, это представители крупнейших российских IT-компаний, таких как Вконтакте, Яндекс, Газпром, Х5 Tech, HeadHunter и т. д.

RUNIT предлагает участникам разные дистанции — от 3 км до 25 км, вы сможете выбрать ту, что вам по силам. А еще три разных зачета:

  • Личный зачет: дистанции на 3 км, 5 км, 10 км или 25 км.

  • Командный зачет: дистанции на 5 км и 10 км (команды от 5 человек).

  • Эстафета: команда из 5 человек — по 5 км на каждого.

В этом году RUNIT пройдет 18 июня в Измайловском парке. Регистрация уже открыта.

Заключение

Бег — отличный выбор, который подойдет практически каждому. Главное все делать аккуратно и вдумчиво, вооружившись рекомендациями наших экспертов.

Если вы ведете малоподвижный образ жизни, у вас сидячая работа или работа, связанная с длительным нахождением в одной позе, если вы хотите укрепить свой организм, повысить выносливость, привести свое тело в тонус, начинайте бегать! И прибегайте на RUNIT. 😊

А за всеми новостями RUNIT можно сделать в телеграм-канале.


ссылка на оригинал статьи https://habr.com/ru/companies/agima/articles/738830/