Данный пост будет длинным, возможно чересчур эмоциональным и будет содержать негатив по отношению к ПО Nextcloud. Просто перескажу, с чем можно столкнуться при эксплуатации этой системы. Если вам очень нравится Nextcloud и вас все устраивает, то возможно, дальше вам читать не стоит. И не обновляйтесь пока. Блаженен тот, кто в неведении.
Итак, в компании, где я работаю, для организации внутреннего «облака» используется Nextcloud. Данное ПО было установлено еще несколько лет назад, начинали мы с версии 9. За эти годы впечатление система оставила неплохое. Работа шла, пользователи обменивались файлами, совместно редактировали документы – работали, в общем.
Первый тревожный звоночек был через пару лет, когда разработчики начали переписывать существенную часть кода. Меняли внутреннюю структуру системы, интегрировали приложения, которые раньше поставлялись отдельно. И конечно, одарили багами, некоторые из которых были особенно больными.
Например, мы активно используем функцию комментирования файлов. Один из багов привел к тому, что комментарии не прикреплялись к файлу формата PDF, если до него был открыт другой подобный файл. Другой баг ломал функцию клавиши Enter, позволяющий отправить комментарий без помощи мышки. Было и еще несколько неприятных моментов, но потом все как-то наладилось.
И вот настал день Х, обновляемся последовательно со старого 25-го релиза на 28-й. Разумеется, дождались выхода первого патча, 28.0.1. Из опыта знаю, что никогда, никогда нельзя обновляться на самую последнюю мажорную версию, если для нее не вышло хотя бы одно обновление, закрывающее самые первые, и зачастую самые лютые баги.
Причина обновления банальная – закончилась поддержка старой версии, плюс остро не хватало уникальной фишки 28-й. А именно, в ней появилась функция, ограничивающая возможность пользователей вставлять в имена файлов и папок запрещенные для Windows символы. При наличии таких символов, параллельный доступ по SMB к данным Nextcloud коверкал имена «неправильных» файлов, что уже успело нанести нам некоторый ущерб ранее (долго потом гадали, как раньше назывался файл, к примеру, GJLGRY~K.PDF). Что ж, долго Nextcloud к этому шел, но ладно.
Разумеется, перед обновлением был создан полный бэкап. Само обновление закончилось успехом, ничего не предвещало беды. А потом спустя время посыпались звонки. К сожалению, у нас техническая поддержка, системный администратор, программист (плюсом различная побочка и «факультативы») – это один человек. Немного непросто справляться в такой ситуации, и получилось так, что я упустил время. Была бы возможность сразу протестировать систему вдоль и поперек, я бы, конечно, сразу и откатился на бэкап, будучи изумлен увиденным. Но прошло несколько часов, и восстановление из бэкапа теперь приведет к потере наработок за эти часы, что недопустимо, без каких-либо оговорок. Да и объяснять пользователем (среди которых еще директора и замы!), что им придется вспоминать, что они делали и сделать это еще раз – та еще задача. Гораздо проще для их ушей прозвучит фраза «оно обновилось само и все сломалось, ждем патча от горе-разработчиков». Те, кто обновлял приложения на смартфоне, вопросы задавать не будут (приучены, что нельзя откатиться обратно).
В итоге, после обновления имеем насквозь глючную систему 🚽, еще и не поддерживающую даунгрейд на предыдущую мажорную версию. Никакая чистка кэша в браузере и иные подобные мероприятия не помогают. Что сломали разработчики:
Комментарии к файлам. В случае, если после того, как был открыт во внутреннем просмотрщике какой-нибудь документ PDF, мы открываем другой и попытаемся оставить к нему комментарий – то он прикрепится к первому.
Перетаскивание файла для загрузки (Drag’n’Drop) не работает. При попытки перетащить файл в окно Nextcloud интерфейс начинает «прыгать». Теперь загрузить файлы можно только через кнопку плюсик, которая еще и подписана как New (тот случай, когда кнопку «релизнуть» нажимаешь быстрее остальных).
Расшаривание папок по ссылке не работает. Вернее, ссылка-то генерируется, но вот если по ней пройти, то появляется пустая вкладка с бесконечным крутящимся кружком. И сюда 🐖 подложили, ну ок.
При переходе по папкам туда-сюда, открытии документов начинаются странные глюки. Например, может открыться случайный файл на просмотр (из числа открытых ранее), хотя мы пытались открыть папку.
Комментарии вообще перенесли на вкладку События (что на боковой панели справа, открывается через меню файла -> Подробности). Что сказать, спасибо – очень логично (нет).
Та самая вкладка События для части папок вообще не открывается, пишет «Не удалось загрузить список событий». Соответственно, поля ввода комментариев тоже нет и оставить их невозможно.
Клик правой кнопкой мыши по файлу открывает контекстное меню, но не в том месте, где был курсор. Это просто бесит, без последствий для работы. Но как разработчики умудрились сломать даже это?
Прокрутка списка иногда приводит к тому, что часть строк пропадает, вместо них появляется белый прямоугольник. Вау, низкий поклон профессионализму разработчиков 👏, так даже я не умею.
Бонусом у меня в интерфейсе администратора перестал открываться лог ошибок – «не удалось загрузить». Разработчикам настолько стыдно, что они его решили скрыть?
и еще куча мелких багов, о которых даже говорить не хочу, больно. Разработчики умудрились сломать почти всё 😱.
У меня только один вопрос к разработчикам Срамотаcloud Nextcloud – вы там что, совсем упоролись перед новым годом? Вы свое творение вообще запускали? Эта версия 28.0.1 была установлена мною из стабильной ветки и вышла еще до НГ! Что же тогда творится у вас в бета-версиях, там наверно совсем караул? И боюсь представить, что там вообще «под капотом», может еще и дыр для хакеров и вирусов на годы вперед понаделано…🤷♂️
Баги не просто тупые и «детские», их просто невозможно было бы не заметить при хотя бы каком-то минимальном тестировании софта, да даже просто при однократном запуске. Вас там не один-два человека сидит софт пилит. Да, я понимаю, что эта система бесплатная в основном, что разработчики мне и моим пользователям ничего не должны. И вообще весь код на Гитхабе – берите и сами правьте, что нужно. Но выпускать откровенно сырую версию в стабильной ветке – у меня просто нет слов. Это даже не бета-версия по качеству (его отсутствию), это смачный плевок какашками в лицо пользователям.
Но и я тоже хорош оказался, чего греха таить. Вот какие вещи я вынес из этой истории:
Обновление по-хорошему нужно делать вечером или в выходной, когда в системе никто не работает. И сразу досконально тестировать. Прописная истина, вот только на практике сложно – я много лет отказывался от личной жизни, больше могу, извините.
Если не получается п.1, то нужно заводить тестовый сервер и тестировать все обновления в первую очередь на нем. Правда, это удовольствие будет стоить денег, которых как известно, никогда не хватает.
Никогда не обновляться на свежий мажорный релиз, если для него не вышло как минимум десяток патчей, закрывающих все известные баги. Себе же потом дороже будет.
В идеале вообще не обновляться и не трогать то, что работает. Но это абсолютно непрофессионально для сисадмина и вообще чревато. Последствия в виде возможного взлома потом перевесят все мучения, вызванные багами. Некоторые компании после взлома вообще говорят «пока».
Если все же решили обновляться – прошерстить весь интернет, пытаясь выяснить, с чем возможно придется столкнуться. Хорошо, когда много лишнего времени, которого никогда нет.
Бэкап должен быть всегда перед любым обновлением, но, к сожалению, иногда он слишком быстро протухает. Терять данные или жить с глюками системы до следующего патча – тут уж каждый сам для себя решает.
Заранее продумываем, как будем восстанавливаться из бэкапа и стараемся минимизировать затрачиваемое на это время, выверяя все до мелочей заранее. Береженого бэкап бережет.
Устраиваться на одну должность, никаких совмещений обязанностей. Уверяю, что даже совместить только техподдержку и системного администрирование – это на грани возможного. В итоге все равно дойдете до того, что придется принимать антидепрессанты и седативные/успокоительные вкупе с десятком других лекарств от сопутствующих болячек. Правда, в небольших компаниях с ИТ всегда сложности и непонятки. Исконно считается, что сисадмин и программу напишет, и чайник починит, и вообще сделает все, что попросят – «все равно весь день сидит в монитор зырит, лентяй». А если еще и в маленьком городе живете – выбирать будет особо не из чего, если не говорить об удаленке.
Но пишу я сюда не потому, что я очень расстроен и мне хочется просто кому-то пожаловаться. У меня-то все будет хорошо. И не такое видел за свою карьеру, были вещи и похлеще. Но я в очередной раз хочу привлечь внимание к тому факту, что качество ПО неуклонно падает. Об этом уже не раз выходили заметки на разных ресурсах.
На мой взгляд, индустрия сильно меняется. Вместо программистов код, похоже, давно начали писать менеджеры, а теперь и такое явление последних лет, как ИИ. Тестирование больше не модно. Модно увеличивать ценник, показывая важность проведенной работы над новыми версиями. Даже если там только поменялся внешний вид и добавилось несколько функций, которыми возможно мы никогда и не воспользуемся. В идеале еще внедрить новый формат файлов, потому как продажи сами себя не сделают.
Все мы сталкивались с лютыми багами на примере той же Windows 10. То от принтеров нас отучают (думаю это с подачки «зеленых», бумагу экономить надо, лес беречь), то звук или блютус сломают. То еще что-нибудь испортят. А в Windows версии 11 успех решили дополнительно закрепить. Обновление сродни русской рулетке. И это платная ОС, установленная на большинстве компьютеров мира. И такое качество. Впрочем, Windows я люблю, иначе никак – благодаря ей я заработал приличную сумму денег на помощи в решении ее проблем у пользователей.
Сейчас давно уже не начало нулевых, когда выпуск глючного продукта на физическом носителе мог закончится крахом компании-разработчика. Ведь никто не придет и не принесет каждому обновление на дискетке, и интернет мало у кого был. Либо сразу делаешь «как надо», либо уступаешь место компаниям, которые могут писать рабочий код. Впрочем, распространена еще и идея, что необязательно делать лучший продукт – достаточно всех в этом только убедить.
А что сейчас – взять хотя бы предзаказы тех же игр, тонна багов на старте. Десятки патчей, тормоза, денуво. И за все это удовольствие вас еще и заплатить попросят. И кстати, весьма и весьма немало. Еще и заплатить попробуй найди способ в связи известными событиями.
Я считаю, что если хочется что-то поменять к лучшему в ИТ, то прежде всего, нужно начать с себя. Я, к примеру, вообще отказался от покупки видеоигр. Да, у меня большая библиотека в Стиме и мне немного обидно, что она больше не обновляется. Что нет удобного лаунчера, а вместо него теперь десяток ярлыков на рабочем столе, ведущих к папкам с запахом рома. Да, мне оказалось куда приятнее подождать полгода-год после релиза игры и тупо скачать ее с торрента, не заплатив не копейки. А потом удалить ее через час в 4/5 случаев, ибо мое время стоит дороже того шлака, который они называют играми. Аморально, и, если так будут поступать почти все – наверно видеоигр больше не будет. Или же начнут выходить действительно качественные продукты, оптимизированные и вылизанные еще на старте продаж. Может так и «ранний доступ» (бесплатный бета-тест в других словах) уйдет в небытие. Как знать, как знать. Но это лучше, чем и дальше ныть в стиле «выпускают одно говно, наживаются на микротранзакциях, оптимизаций нет, цены заоблачные, опять нужно новое железо и т.п.» и продолжать грызть порядком протухший кактус.
Наряду с этим, я регулярно отправляю баг-репорты для программ, которыми пользуюсь, независимо от модели их распространения. Обратная связь позволяет кардинально улучшить продукты, что, несомненно, будет только на пользу их пользователям. Но, конечно, когда я сталкиваюсь с полным пофигизмом и вредительством, навроде Nextcloud, я уже баг-репорты не пишу. Это впустую потраченное время, которое можно использовать разумнее – например, поискать альтернативное ПО.
А что-то из ПО пишу и сам, чем-то даже делюсь с остальным миром, в т.ч. иногда и исходниками. В основном то, для чего нет альтернатив, или когда альтернативы распухшие и неудобные. Но это я уже отвлекся.