Привет, Хабр! Меня зовут Александр Фикс, я менеджер по развитию бизнеса КРОК Облачные сервисы. Сегодня поговорим о тренде локализации, о том, что происходит на рынке файлообменников с уходом западных решений и какие альтернативные продукты есть у бизнеса в данный момент. Мы проанализировали возможные варианты, собрали текущие проблемы и требования корпоративных пользователей и решили представлять Nextcloud как сервис из Облака КРОК. Подробно расскажу о возможностях такого решения, покажу его архитектуру, интерфейс и подсвечу преимущества. Западные вендоры ушли с нашего рынка и отключают свои решения → российские компании остаются без привычного ПО и облаков обновлений и поддержки → нужны надежные локальные альтернативы, причем быстро. Все больше компаний хочет локализовать свою инфраструктуру — запрос за прошлый год вырос в 2,5 раза. С весны 2022 мы реализовали более 30 подобных проектов. Львиная доля поступающих к нам запросов касается файлообменников. Раньше компании вовсю пользовались OneDrive и аналогами, но сейчас у многих такой возможности больше нет. И здесь есть несколько выходов из сложившейся ситуации:  Отказаться от файлообменников и вернуться в каменный век, поднять шары и использовать общие папки на их основе. Это жизнеспособный подход, но во многом неудобный. Передача файлов вовне, онлайн редактирование документов, доступ с мобильных устройств — все это теперь представляет проблему, а то и вовсе невыполнимую  задачу .  Перейти на отечественные продукты. Они активно перепрофилируются под нужды бизнеса, но первоначально создавались как B2C-решения и обладают характерными ограничениями и особенностями. В их числе проблемы с интеграцией, зависимость от экосистемы и т. д. Не все компании готовы с этим мириться.  Использовать open source-решения и самостоятельно поднять файлообменник на собственной инфраструктуре или на арендованном сервере. В принципе многое такое ПО уже достаточно зрелое для корпоративного использования, но требует самостоятельного внедрения, отладки, обслуживания и постоянной поддержки по SLA. Для многих это проблема. Как показал опрос наших клиентов и партнеров, большинство компаний пользуется собственными файловыми шарами, в то время как преимущества open source-решений в глазах бизнеса зачастую недостаточны, чтобы оправдать связанные сложности. Таким образом, изучив рынок, мы не увидели решений, которые были бы также удобны, как классические корпоративные облачные хранилища, которых мы лишились. Пришлось снова “изобретать велосипед”, точнее, делать собственный сервис на базе облачной платформы КРОК и популярного опенсорсного Nextcloud. Так мы можем взять все сложности по поддержке и администрированию облака на себя и предоставлять клиентам удобную платформу будто из коробки, которую можно брать и пользоваться, как в старые добрые времена. Снабженный правильными плагинами и скриптами Nextcloud не уступает по функциональности зарубежным сервисам. Мы запустили сервис в конце 2022 года, и у нас уже более 20 клиентов. Это компании разных масштабов: от 50 пользователей и до рекордного количества в 12 тыс. человек. В основном клиенты мигрируют с OneDrive. Залить Nextcloud на виртуалку для личного использования сравнительно несложно, но сделать так, чтобы он без проблем обслуживал целую компанию –  задачка со звездочкой: требуется проработать архитектуру, развернуть кластер баз данных, кластер приложений, интегрировать их с S3. Сравнивать просто некорректно. Мы уже переделывали две таких корпоративных инсталляции с нуля и знаем, о чем говорим. Без должной настройки Nextcloud вроде и работает, но склонен тупить под высокой нагрузкой, зависать и радовать пользователей разнообразными ошибками. Пользоваться им в таком состоянии, мягко говоря, проблематично. Там возникает целый ряд вопросов к ручкам PHP, PHP-FPM и NGINX, но без прикрученного к системе мониторинга найти и исправить конкретные проблемы практически невозможно. Нужна взрослая архитектура с централизованным логированием. Поэтому для развертывания Nextcloud в Облаке КРОК мы выделили архитекторов, которые собаку съели в работе с приложениями на базе LAMP-стека. Конфигурация нашего сервиса, включая балансировщиков запросов, растянута на три наших дата-центра в России.  Nextcloud поддерживает работу с объектным хранилищем S3, и, таким образом, убивает сразу двух зайцев. Во-первых, использует уже готовый, быстрый и  масштабируемый до любых размеров кластер,. Во-вторых, позволяет заказчику экономить, ведь S3 – это еще и дешевое хранилище. С этим подходом связан ряд архитектурных особенностей: в S3 хранятся только файлы, а метаданные размещаются в Galera-кластере, основанном на MariaDB, так как S3 – это плоское объектное хранилище, по умолчанию в нем нет каталогов и подкаталогов. За ускорение запросов отвечает выделенный кластер кеширования. Также предусмотрен кластер Elasticsearch для поисковой аналитики. Для дополнительной защиты доступ ко всем компонентам Nextcloud происходит через jump host. Все это плотно обложено метриками на базе prometheus с grafana и alertmanager, и централизованного логирования ELK. К ним прикручены алерты, которые в режиме реального времени поступают службе поддержки. Кроме того, хочется отметить, что мы тестируем обновления Nextcloud перед тем, как раскатывать их на прод. Так, например, выяснилось, что в версии  27.0.0 не работает функция создания групп в веб-интерфейсе. Эту версию пришлось пропустить. Что касается отказоустойчивости, S3 уже обеспечивает резервирование данных, однако мы решили реализовать и дополнительные бэкапы. Например, на случай, если нужно восстановить файлы, которые пролежали в корзине Nextcloud более 90 дней или, например, были безвозвратно удалены обиженным сотрудником. Так как мы используем S3, файлы хранятся там без метаданных, это плоская структура, которая не соотносится с структурированной моделью хранилищ информации. Чтобы сделать бэкап, мы собираем файлы с метаданными, складываем их в отдельном месте, и затем бэкапим, например, средствами облачного CloudBerry или при помощи скриптов собственной разработки. Дополнительно обезопасить файлообменник можно при помощи интеграции с антивирусом. Для нас было важно не только разработать красивую и устойчивую архитектуру, но и сделать сам процесс переезда и использования нового сервиса действительно удобным. Сценарий развертывания сервиса выглядит так:  Мы выстраиваем инфраструктуру под клиента, после чего проводим интеграцию с доменной службой и интегрируем пользователей через службу каталога.  ↓ Завести пользователей можно вручную или экспортировать таблицу. Если права доступа не выстроены на основе доменной службы, придется настраивать руками.  ↓ Перенести файлы проще всего силами пользователей. Мы пишем документацию и короткую инструкцию, а пользователь устанавливает Nextcloud на локальный компьютер и заливает все необходимые файлы. Если заказчик может выгрузить бэкап своего файлового хранилища, возможна и централизованная миграция. Однако в случае использования OneDrive, особенно с Office 365, это затруднительно. ↓ Еще мы предлагаем локальную синхронизацию файлов. Для этого нужно выбрать на локальном компьютере папку, которая будет синхронизироваться с файлообменником. Базовая инсталляция системы занимает два-три дня. Процесс налажен и основная трудность — подобрать плагины и скрипты под потребности конкретного клиента.  Инсталляции делятся на бандлы по количеству пользователей, всегда можно бесшовно мигрировать на более масштабную инсталляцию. Более того, в теории (желающих пока не было) всю эту инфраструктуру можно перенести из Облака КРОК на серверные мощности, которые предоставляет другая компания. Пользовательский интерфейс Nextcloud настраивается. Так, на стартовую страницу облака можно вывести почту, календарь с ближайшими событиями и различные типы уведомлений Все это затевалось, чтобы предоставить компаниям достойную альтернативу тому же OneDrive и закрыть привычные сценарии файлообмена в компаниях. Для этого Nextcloud предоставляет обширный набор базовых функций. Кроме того, пользователи могут самостоятельно создавать личные папки для хранения файлов и синхронизировать их локально, можно создавать и общие папки групп, чтобы хранить там файлы одного отдела, например, бухгалтерии. Несколько типов папок с разными иконками: папки самого пользователя и групповые для общего пользования — все привычно и понятно Сервис позволяет делиться с пользователями корневыми папками и при этом гибко настраивать права на доступ к папкам внутри этого каталога. Например, можно дать доступ к папке тимлиду, а внутри создать папку персонально для каждого подчиненного. Никаких проблем с количеством вложенных папок нет. Есть интеграции со службами каталогов, как зарубежными (AD), так и отечественными, например, ALD Pro, настройка двухфакторной аутентификации, SSO (single sign-on). С Nextcloud работают онлайн-редакторы, при необходимости мы можем подключить к сервису  Р7 или МойОфис. Доступно редактирование файлов docx, xlsx и pptx. По умолчанию история изменения хранится пол года. За счет оптимизации на уровне инфраструктуры работать над одним документом и общаться во встроенном чате могут десятки пользователей. При этом все изменения отображаются мгновенно. У нас были файлы, в которых работало до 40 человек, и никаких проблем не было.  Поддерживается обмен файлами с внешними пользователями при помощи ссылок (в том числе с доступом по паролю и ограниченным сроком действия), имеется возможность приглашать гостевых пользователей по электронной почте. В Nextcloud реализован неплохой административный интерфейс, который позволяет: создавать пользователей с различными правами и выделять им квоты, видеть активных и отключенных пользователей, создавать группы и многое другое. Одна из особенностей нашего решения — кастомизация размеров пространства. Альтернативные сервисы зачастую предоставляют фиксированный объем, который нельзя гибко менять в зависимости от потребностей. А у нас можно выбрать любой размер хранилища для каждого пользователя либо группы и платить за тот объем, который утилизирован данными пользователя. То есть если мы выделили 200 ГБ пользователю, а он занял только 20 ГБ, то и платить нужно только за 20. Бизнес в срочном порядке ищет альтернативы продуктам ушедших с рынка компаний. В этой ситуации легко представить себе ситуацию, в которой руководство хватается за первый попавшийся, но далеко не самый оптимальный вариант. Однако нам кажется, что к локализации следует подходить с трезвой головой и долгосрочными планами. Так, даже при помощи open source-решений можно сделать сервис, который будет как минимум не хуже “чем раньше”. Потому мы и вкладываем так много сил и экспертизы в Nextcloud в Облаке КРОК. Очевидно, тренд на локализацию облачной инфраструктуры будет сохраняться, и мы к этому готовы.