Предисловие: зачем компании свое «облако»
К облачным хранилищам привыкли и люди, и компании. «Облака» покорили нас своей надежностью и простотой: чтобы организовать файловое хранилище, не нужно нанимать бригаду айтишников, а бесценные данные находятся под надежной защитой IT-гигантов. Чтобы настроить обмен информацией между филиалами из разных городов или стран, достаточно скачать программу и ввести данные аккаунтов. Фантастика!
Тем не менее, бывают ситуации, когда компании (да и частные пользователи), отказываются от этих преимуществ и решаются на авантюру в виде облака на своем сервере. Зачем? Основной мотиватор — деньги. Например, Дропбокс объёмом 5гб на 5 пользователей обойдется в $750 за год:
А что такое 5гб для компании? Ничего, по сути. В такие моменты руководители или айтишники компаний и задумываются о том, что неплохо было бы в офисе иметь небольшой сервер для хранения данных, который позволит сотрудникам работать с этими данными там, где удобно, а не только в офисе.
История внедрения облака в одной компании
Примерно год назад мне поступил запрос: нужен файловый сервер в офис небольшой компании. В самом начале задача звучала так: настроить в офисе компьютер с общей папкой, чтобы пользователи могли обмениваться файлами. Аппарат для этих целей уже был: небольшой системный блок HP на Intel Core i5 с лицензионной Windows 10 pro.
Но, как только я начал уточнять ТЗ, задача стала усложняться. Во-первых, нужно было обеспечить доступ к файлам через интернет, чтобы работать можно было и из дома. На этом этапе я подумал про FTP-сервер или какой-нибудь файловый менеджер для сервера, например, Filerun. И уже в конце опроса клиент обронил фразу, что нужно перенести данные из Дропбокса. Это в корне поменяло задачу. Оказалось, нам нужно было не только запустить сервер, но и перенести данные в соответствии с правами доступа, а также дать пользователям возможность самостоятельно менять права и делиться файлами. По сути, нам нужен был свой «Дропбокс». Я взял недельную паузу на поиск и тестирование решения, так как ТЗ сильно видоизменилось, и отправился искать. В заявленную неделю я не уложился, зато выяснил много интересного про «облака» и задачу в итоге выполнил. Ниже — описание решений, с которыми я познакомился за время поисков.
Список неполный, это решения, что попались мне под руку. Если знаете еще — поделитесь опытом в комментариях, буду рад. Имейте в виду, что после описываемых приключений прошел год, поэтому я мог упустить из виду некоторые особенности, которые появились в приложениях. Этот список мне бы очень помог год назад. Поэтому надеюсь, что и вам пригодится, если нужно решить подобную задачу.
Выбор решения
Классические «Облака» состоят из двух частей: одна серверная, она отвечает за хранение файлов и настройки всего, что настраивается. Вторая, клиентская, отвечает за доступ и синхронизацию на устройствах пользователей.
Клиентские программы большинства решений кроссплатформенные, а серверная часть чаще использует Линукс. Но, так как в качестве ОС на сервере мне предложили использовать установленную на нем Windows 10 pro, я начал поиски с Windows-совместимых решений. И почти сразу наткнулся на Pydio.
Pydio
«Оно!» — подумал я, когда увидел демоверсию: приложение поразило меня своим функционалом. Удобный веб-интерфейс, возможность совместной работы и гибкие настройки прав доступа. Казалось бы: что еще нужно? Оставалось протестировать на своем компьютере и изучить возможность коммерческого использования. Но когда дело дошло до установки, мое восхищение пропало. Инсталляция происходит из командной строки и разбита на несколько шагов, где нужно вводить требуемые параметры. На одном из шагов программа начала сыпать ошибками, описания которых в документации я не нашел. Я решил не мучаться и отложил Pydio на потом, если не найду ничего более подходящего. На этом наше знакомство было закончено.
Afterlogic Aurora Files
Aurora Files — платформа хранения файлов с открытым исходным кодом для небольших команд и персональных пользователей. Так написано на их сайте. Есть также версия Corporate, но тестировал я именно personal. Поддерживает интеграцию с Onlyoffice и своим почтовым клиентом, также имеет встроенный чат. Aurora заработала на Windows 10 с установленным веб-сервером и позволяет загружать и скачивать файлы, а также делиться ими с коллегами. Я уже собрался презентовать систему заказчику, и тут узнал про Owncloud.
Owncloud
Очень функциональный продукт для того, чтобы развернуть облако в компании. Исследований я не проводил, но мне это решение показалось самым популярным в этой теме. Проект немолодой и актуальный по сей день. Я уже почти остановил свой выбор на нем, пока не узнал, что есть кое-что поинтереснее и называется оно Nextcloud.
Nextcloud
Форк Owncloud, который по функционалу перерос своего родителя. Если вы ищете свой Дропбокс, Nextcloud для вас. Я почитал описание приложения в интернете, понял, что это именно то, что я ищу и приступил к тестированию. Посмотрев, как это работает, я предложил клиенту остановить свой выбор на этом решении, несмотря на то, что для его работы требовался Linux. Ради любопытства я изучил еще одно приложение, но решения своего не изменил.
Seafile
Надежное и эффективное решение для синхронизации и совместного использования файлов — указано на сайте проекта. Помимо синхронизации и обмена файлами, заявлена возможность создать базу знаний компании посредством встроенного вики-функционала. Серверная часть рассчитана на Linux-решения, клиенты работают и на других платформах.
Syncthing
Это решение я нашел после того, как мы все настроили. Возможно, если бы нашли вовремя, остановились бы на нем — функционал неплохой, есть мобильные клиенты, а настроить обмен файлами можно за 5 минут. Если ищете решение под Windows — рекомендую протестировать, прежде чем продолжить поиски. Syncthing — очень простой способ обмениваться файлами. С настройкой разберется почти любой человек, хоть немного знакомый с компьютером. Для начала работы нужно просто установить программу на компьютеры и выбрать папку, которую хотим синхронизировать.
Почему я выбрал Nextcloud?
Из всех описанных мной решений Nextcloud максимально подходил для решаемой задачи и заработал без ритуальных танцев. Например, когда я установил свежую версию Owncloud на хостинг, вместо работающей системы получил белый экран. Поиск на англоязычных ресурсах намекнул, что у меня слишком свежая версия php. Когда я нашел решение проблемы, узнал про Nextcloud и решил попробовать его. И здесь все заработало так, как я этого ожидал, без дополнительных манипуляций. К тому же Nextcloud наиболее функционален из всего, что я здесь рассматриваю. На мой субъективный взгляд, конечно.
Хостинг или свой сервер?
Облако можно «поднять» на своем или виртуальном сервере. Но гораздо проще развернуть его на хостинге и «прикрутить» на поддомен сайта. Рассмотрим плюсы и минусы обоих решений.
Хостинг
Легко настроить, просто организовать доступ. Кроме того, на хостинге обычно есть автоматические бэкапы, что немаловажно. Nexcloud на обычном тарифе виртуального хостинга работает очень шустро. Правда, я его не тестировал под нагрузкой. Не знаю, как он будет себя вести, когда к нему будут одновременно подключаться 120 сотрудников вашей компании.
Свой сервер
Этот вариант сложнее реализуем и несет в себе больше рисков, хотя и преимуществ у него немало. Если на хостинге за 50 гб придется отдать плюс-минус 5000 в год, то на своем сервере можно хранить 5 терабайт почти даром.
Правда, обеспечить стабильность работы ПО и защитить сервер от атак злобных хакеров — ваша головная боль. И бэкапы надо настроить, и хранить резервные копии где-то надо. В общем, за все отвечать вам.
Виртуальный сервер
Если вам важна мощность, но не хочется мороки с администрированием сервера, можете рассмотреть этот вариант. Он совмещает в себе преимущества первых двух решений. Но стоит это дороже, чем обычный хостинг, а за безопасность и обновление ПО отвечать придется тоже самостоятельно.
Если взглянуть на системные требования, станет понятно, что для начала работы нам подойдет даже недорогой VPS, а дальше можно расширяться по мере необходимости.
Как установить
На виртуальном хостинге достаточно залить архив в корневую папку сайта и создать БД, после чего пройти несколько простых шагов инсталлятора.
На VPS/VDS, как и на локальной машине, нужно сначала «поднять» веб-сервер и сервер БД, после чего, опять-таки скачать и разархивировать приложение в нужную папку на сервере.
Подробную инструкцию по настройке приводить не буду, т.к. в интернете их немало. Вот примеры:
Пример установки на Ubuntu 20.04
В качестве операционной системы я выбрал CentOs 8, на котором «поднял» Nginx и mariaDB.
Как это работает?
Работа в Nextcloud организована так же, как в привычных Dropbox, Google drive и других: вы можете загружать на сервер файлы и делиться ими с командой. Когда вы редактируете документ у себя на компьютере, изменения синхронизируются для всех пользователей после того, как закроете документ.
С файлами можно работать через веб-интерфейс или установить клиент для компьютера. Я настраивал клиенты для Windows и MacOs, работает очень просто: при установке клиента и авторизации на компьютере пользователя скачиваются, к которым настроен доступ. Пользователь редактирует файл, открывая его на компьютере и после закрытия документа остальные участники видят обновленную копию.
Вот как выглядит веб-интерфейс приложения:
Здесь можно управлять и делиться файлами, а также администрировать пользователей и настраивать систему. Здесь же можно устанавливать приложения.
Клиенты для компьютеров
Установленное приложение создает папку на компьютере, в которую загружаются файлы пользователя в соответствии с настроенными правами доступа. Когда документ изменился, программа отправляет его на сервер и он обновляется у всех пользователей облака.
Мобильный доступ
Nextcloud доступен на платформах ios и android. Приложения позволяют загружать файлы на сервер и скачивать их. Возможен просмотр pdf, фото и видео.
Как и в облачных приложениях от гигантов рынка, можно отметить нужные файлы для оффлайн доступа и наоборот, выбрать папку на устройстве для автоматической загрузки на сервер.
С телефона также отлично открывается веб-интерфейс. Он адаптивный и работать с ним достаточно комфортно.
А безопасность?
Безопасности стоит уделить особое внимание, если настраиваете локальную машину или VDS. Я выполнил базовые вещи для защиты: настроил Firewall, отключил root и настроил блокировку IP после трех неудачных попыток авторизации при помощи fail2ban.
Доступ через интернет
В нашем случае провайдер использует белый IP, поэтому обошлось без приключений: я пробросил порты в маршрутизаторе и все работает до сих пор. Для домашнего использования подойдет сервис динамических DNS. Я тестировал KeenDNS, встроенный в роутер Keenetic — работает. Но если настраиваете в офисе, лучше купить у провайдера белый IP-адрес. Мороки будет меньше. Важно! Для доступа через интернет нужно добавить в конфигурационный файл Nextcloud доверенный домен: ip-адрес или домен, к которому обращаемся при доступе извне.
Что еще умеет Nextcloud
Главное: решение «на ура» выполняет свою задачу — хранит файлы пользователей и обеспечивает гибкие настройки доступа к ним. При необходимости функционал можно расширить за счет приложений — их целый магазин. Можно интегрировать Onlyoffice, Collabora, «прикрутить» карты и много чего еще. Например, организовать сервер конференций и чатов. Для этого есть приложение Talk, о котором стоит рассказать подробнее.
Talk для Nextcloud
Приложение, которое позволит в два клика развернуть свой сервер для чатов, конференций и звонков. В том числе доступна видеосвязь. Talk я тестировал позже на стареньком двухъядерном сервере, у меня тормозила видеосвязь даже между двумя участниками. Обмен же сообщениями и файлами проходил без замечаний. Также приложение поддерживает обмен голосовыми сообщениями, но у меня записи получались приглушенными, возможно, сервер так пережимал аудио. Я не разбирался в причинах, так как не было необходимости. Главное - это работает и очень просто настраивается.
Альтернативы
Если ищете аппаратное решение, обратите внимание на сетевые хранилища Synology, в которых с некоторых пор реализована поддержка облачного доступа и есть клиенты для компьютеров и мобильных устройств. Я еще не изучал эти устройства, но на первый взгляд они способны обеспечить достаточный функционал и безопасность при минимуме заморочек. При возможности обязательно протестирую.
Что сейчас?
Спустя год сервер исправно работает, замечаний нет. Работает шустро при умеренной активности почти тридцати пользователей. Пару раз были сбои при отключении интернета. Лечилось перезапуском. Были жалобы пользователей, что приложение отказывается синхронизировать некоторые документы. При беглом взгляде стало понятно, что Nextcloud терпеть не может кавычки в имени файла. Решили проблему, отказавшись от кавычек.
Недавно я с сожалением узнал, что срок поддержки CentOs 8, на котором работает сервер, истекает в конце 2021 года вместо заявленного 2029. Предупредил клиента, ответа пока нет. Скорее всего, будем переезжать на VPS.
Выводы
Свое облако для компании — это не модная фишка, а очень полезный и востребованный инструмент. Современные IT-решения позволяют настроить обмен файлами в компании без серьезных затрат. Разместить облако можно на хостинге, «прикрутив» к поддомену сайта. Есть и совсем простые решения под Windows, с которым разберется почти любая домохозяйка. Также есть аппаратные решения, например, NAS Synology, которые заявляют подобный функционал. Перед приобретением обязательно уточните, соответствует ли решение вашим задачам.
Другие мои публикации:
Как не потерять концентрацию на работе и сфокусироваться на рабочем процессе
Если статья оказалась Вам полезной, можете поддержать лайком или см.