{"id":14293,"url":"\/distributions\/14293\/click?bit=1&hash=05c87a3ce0b7c4063dd46190317b7d4a16bc23b8ced3bfac605d44f253650a0f","hash":"05c87a3ce0b7c4063dd46190317b7d4a16bc23b8ced3bfac605d44f253650a0f","title":"\u0421\u043e\u0437\u0434\u0430\u0442\u044c \u043d\u043e\u0432\u044b\u0439 \u0441\u0435\u0440\u0432\u0438\u0441 \u043d\u0435 \u043f\u043e\u0442\u0440\u0430\u0442\u0438\u0432 \u043d\u0438 \u043a\u043e\u043f\u0435\u0439\u043a\u0438","buttonText":"","imageUuid":""}

Не храните в Notion важные данные, они могут оказаться недоступны

Эта статья ориентирована на тех, чей бизнес зависит от Notion. Подумайте, что будет если завтра Notion окажется недоступен целиком. Если это будет критическим ударом, то эта статья для вас.

Экран смерти базы данных в исполнении Notion Скриншот с сайта Notion

TL;DR: встретив критичный баг, ваше обращение к поддержке может свестись к их молчанию или ответам «нам очень жаль, нам понадобится ещё времени, мы ответим в четверг четвёртого числа», а данные из Notion вам могут быть недоступны целиком, если нет бэкапов.

Предыстория

Мы (онлайн-школа программирования Хекслет) используем Notion (на тарифе Team) в компании, как основной рабочий инструмент — там и документация, и канбан-доски, и некоторые базы данных. Две основные базы для любого бизнеса: это список контактов и список компаний-партнёров. Остальные базы данных завязаны на эти и формируют очень сложную иерархию.

До момента инцидента у нас накопились базы на 5500+ пользователей и 600+ компаний. Сотрудники периодически жаловались, что Notion не тянет такой объём данных — глючит поиск, долго думает, некоторые страницы оказываются недоступны. Кроме того, удобство на самом деле оставляет желать лучшего, на таких объёмах данных быстро вылезают все недоработки системы.

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

База пользователей оказалась недоступна

В начале ноября база пользователей перестала открываться, все 5500+ записей были скрыты за уведомлением «Упс! Что-то пошло не так». С точки зрения бизнеса, полностью пропавшая база контактов — это «упс» масштаба полного прекращения работы. В нашем случае, это были только внешние коммуникации, а собственных клиентов мы храним в своём сервисе, но ситуация всё равно достаточно критичная.

Хронология событий

8 ноября из приложения и веб-версии вместо базы пользователей отдавалось «Упс! Что-то пошло не так».

Экран смерти базы данных в исполнении Notion Скриншот с сайта Notion

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

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

11 ноября я обнаружил, что Notion API отдаёт базу пользователей, но без реляционных связей. О чём так же написал в поддержку в тот же чат. И поскольку уже более суток ответа не поступало, я начал волноваться. Вечером этого же дня вместо чата поддержки я написал на почту [email protected], что мы всё ещё горим. Ответом мне была тишина.

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

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

Твиты с обращениями к Notion по теме плохой работы поддержки Скриншот с сайта Twitter

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

@NotionHQ, our database has been down for a week. Support accepted the request on November 9 and became unresponsive. There is also silence at [email protected]. Can't you tell corporate clients the status of a problem resolution at least once a day?
Обращение к Notion в Twitter

Наша база данных не работает всю неделю. Служба поддержки приняла запрос 9 ноября и перестала отвечать. Также тишина на [email protected]. Разве вы не можете сообщать корпоративным клиентам статус решения проблемы хотя бы раз в день?

Перевод моего твита

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

Фрагменты общения поддержки Скриншот из почты

Мы все еще работаем над этим. Хотя у нас еще нет сроков решения, вы можете ожидать ответа не позднее конца дня следующего вторника с обновлением статуса. Благодарим за терпение, пока мы над этим работаем.

Поддержка Notion

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

Базу данных можно было восстановить за сутки

Ошибка при отображении базы данных в браузере Скриншот с сайта Notion

Параллельно с общением в поддержке, я изучал тексты ошибок, дёргал базу через API и фактически делал работу поддержки своими силами. Что мне удалось выяснить:

  1. В базе накопилось некоторое количество записей, которые по какой-то причине не отображаются на фронтенде. Но нормально отдаются через API.
  2. Похоже, что большое количество таких записей повлияло на отображение всей базы данных. Потому что ошибка в БД ровно такая же, как и в каждой записи (скриншот выше).
  3. Через API отдавалась база без реляционных свзей, потому что надо добавить своё приложение в каждую связанную базу данных. Поддержке я этот вопрос писал, но ответить они не смогли или не захотели. Тут я не буду вдаваться в технические детали. Если вам интересно узнать продвинутые техники работы с Notion, пишите в комментарии.

Днём 13 ноября я скачал базу пользователей через API и создал её на новой странице отдельно — она заработала. То есть по сути надо было сделать бэкап и накатить его заново. Это случилось на 4й день после первого обращения в поддержку и через ~5 часов после последней отмазы поддержки.

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

Фрагмент общения поддержки Скриншот из почты

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

Поддержка Notion

Отсюда я могу сделать вывод, что если бы к моему тикету привлекли хотя бы одного технического специалиста, он бы со своим инструментарием восстановил бы базу за сутки. Или, как минимум, через сутки написал бы что-то в духе: «Мы нашли ошибку и завтра починим». И поддержка так ничего и не сделала, то есть изначально упавшая база так и не работает.

Всё познаётся в сравнении

В ту же неделю у нас была ошибка при обработке записи Zoom. Я также обратился в поддержку и за 15 минут с момента обращения ребята выяснили детали, предложили несколько возможных решений, признали ошибку на своей стороне, проинформировали по срокам решения, завели обращение в help desk и устранили ошибку в установленные сроки.

Зарегистрированное обращение в поддержку Zoom Скриншот с сайта Zoom

Ребята не сожалеют, а работают. На этом контрасте хорошо видно как клиенту доносится информация о статусах решения его запроса. Несомненно, у вас найдутся кейсы, когда и поддержка Zoom не помогла. Но у них хотя бы есть видимая инфраструктура (help desk) и процессы, которые у команды Notion отсутствуют совсем.

Выводы

С одной стороны, у истории «счастливый финал» — мне удалось сделать бэкап всей базы данных и восстановить её работоспособность инструментами самого Notion. Но мне повезло, потому что ошибка была в клиентской части, а я достаточно программист, чтобы использовать Notion API. Если бы ошибка была на сервере, или не было бы API, то мы могли бы остаться с сожалениями поддержки и нерабочей базой пользователей.

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

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

Несмотря на то, что сейчас я критикую конкретно команду Notion, мораль будет довольно простая.

Люди делятся на два типа — кто ещё не делает бэкапы и кто уже делает.

Неизвестный автор

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

0
35 комментариев
Написать комментарий...
Иван Сизов

"Люди делятся на два типа — кто ещё не делает бэкапы и кто уже делает."
Есть еще третий тип людей: те, кто уже делает и проверяет возможность восстановления)

Ответить
Развернуть ветку
Дмитрий Жучков

Только я один вижу рекламу курсов?

Ответить
Развернуть ветку
Sanches Bez

«Мы школа Hexlet и мы учим этому на наших курсах” это то из-за чего кроме рекламы вы для себя ничего не нашли? Для меня как для пользователя Notion информация была актуальной, хотя бы просто за напоминание: «Делайте бекап»

Ответить
Развернуть ветку
Сергей Мелодин
Автор

В статье ещё была ссылка, я её скрыл, чтобы не нервировать :)

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
Кирилл Томарев

Забил на нотион после их фокусов с промокодами.

Ответить
Развернуть ветку
p0st

Писали такую под себя в одной из прошлых компаний, вместо amo и jira. Ген. директор всё хочет её продать в рынок, но не уверен, насколько она отвязана в коде от зависимостей на конкретную компанию и тут явно пахнет интеграцией и бюджетом под неё (могу спросить у бывших коллег).

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

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

Ответить
Развернуть ветку
Сергей Мелодин
Автор
Вывод - писать лучше самим, но для этого нужны ресурсы и время,

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

На крайний случай, я напишу крон-задачу для выгрузки бэкапов из ноушена. Но за предложение спасибо :) И рад, что статья оказалась полезна!

Ответить
Развернуть ветку
Андрей Карпушенков

Копец. У меня там база работ и сроков с часами, потраченными на работы за 2 месяца ещё счета клиентам не выставлены. Хрен с ним с удобством, я валю. Налететь на доходы за месяц другой... Оно того не стоит! Все приходится самому писать и бекапить(

Ответить
Развернуть ветку
Сергей Мелодин
Автор

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

Ответить
Развернуть ветку
Андрей Карпушенков

Ну я как я сказал. Все приходится писать самому.

Ответить
Развернуть ветку
К М

Evernote

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
Дмитрий Цибизов

теперь Evernote не принимает платежи из РФ, даже с карт других стран - накрылся медным тазом нормальный эверноут(

Ответить
Развернуть ветку
К М

Но бесплатная версия работаетнаверно

Ответить
Развернуть ветку
Maxim

А есть варианты, чем хотите заменить Notion?

Ответить
Развернуть ветку
Родитель номер один

Джирой видимо

Ответить
Развернуть ветку
Сергей Мелодин
Автор

Если говорить в разрезе таск-трекера, то заменить можно много чем - Trello, YouTrack, Redmine, Jira. Даже у Notion есть аналоги, например, Confluence, Loop от Microsoft и даже какие-то open source решения.

Ответить
Развернуть ветку
Maxim

Сейчас есть ещё достаточно популярное ClickUp.

Ответить
Развернуть ветку
Сергей Мелодин
Автор

Есть варианты с Google Peoples, Airtable или других сервисов для хранения контактов, будем посмотреть их. Целиком уезжать из Notion нецелесообразно на данный момент, но вот для важных БД как контакты и компании точно будем выбирать альтернативное хранилище.

Ответить
Развернуть ветку
Евгений Алиев

Люди делятся на два типа — кто ещё не делает бэкапы и кто уже делает.

Прям по больному бьете)

Ответить
Развернуть ветку
Сергей Мелодин
Автор

Всё как-то не доходили руки, но напишу, что в итоге принял решение выгружать данные из ноушена в гуглотаблицу. У нас используется сервис Pipedream (а-ля Zapier, Automateio, etc...). Пришлось поработать именно над кодом, так как не было удобного визуального редактора, но в итоге получилось так:
1. Запускается крон-задача, которая скачивает данные из нужных БД.
2. Создаётся в гуглотаблице новый лист с датой выгрузки и названием базы.
3. Туда вставляются данные из таблицы. Последним столбцом идёт JSON-объект, из которого бэкап и создавался для данной строки.

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

Возможно, кому-то будет полезно, интересно посмотреть, поэтому код я выложил на гитхаб и сделал генерацию в файлы: https://github.com/Melodyn/notion-database-backup
Реализация не самая аккуратная, но идея будет понятна.

Ответить
Развернуть ветку
Юрий

"Специализированное хранилище контактов и компаний" это вы про CRM говорите? Есть какие-то требования какие функции Вы хотите получать?

Ответить
Развернуть ветку
Сергей Мелодин
Автор

Самый приближенный вариант - Google Peoples. Правда, там только база контактов.

CRM - это обычно комплексное решение. А хотелось бы базу контактов, базу компаний, установка связей между ними "компания - контактное лицо" и всякие автобэкапе, апишки и т.п. То есть узконаправленный инструмент. Ну и чтобы там полнотекстовый поиск, быстрота работы и так далее.

Ответить
Развернуть ветку
Maksim Tsisar

Ну для такого тот же Битрикс24 в самый раз

Ответить
Развернуть ветку
Vitaly Karasik

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

Ответить
Развернуть ветку
Сергей Мелодин
Автор

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

Ответить
Развернуть ветку
Vitaly Karasik

Да, я согласен что это другое. Это баг в managed service, и да - вполне возможно, что альтернативы более стабильные и с более серьезной поддержкой.

Ответить
Развернуть ветку
Олеся Капитонова

Подскажите, если другие пользователи Notion дублируют к себе мою страницу, то должно приходить об этом оповещение?

Ответить
Развернуть ветку
Сергей Мелодин
Автор

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

Ответить
Развернуть ветку
Svyatoslav Esekhin

А к Notion нельзя подключить внешнюю базу данных как источник?

Ответить
Развернуть ветку
Сергей Мелодин
Автор

Можно написать интеграцию через API самому. Просто подключить сейчас "по клику" нет пока возможности. Если что, их API в beta-версии и появилось относительно недавно.

Ответить
Развернуть ветку
Антон Кальмбах

Долгое время искал блокнот в сочетании с удобным планировщиком дел, календарём, быстрыми заметками, возможностью вписать программный код и выделить зрительно, ну и дизайн, конечно. Что-то прочитал этот пост и хочется от Notion свалить теперь + мой личный опыт по взаимодействию с поддержкой дал похожий результат. Простой вопрос - неверный, это я выяснил также сам, ответ. Благо, платить за него не приходится. За статью спасибо!

Ответить
Развернуть ветку
stonefield

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

Ответить
Развернуть ветку
Никита Салтанюк

На самом деле, такая вещь со многими сервисами. Почему все упорно продолжают все это использовать?
И рекламировать AI от Notion, тем более

Ответить
Развернуть ветку
32 комментария
Раскрывать всегда