57
0
0
Скопировать ссылку
Telegram
WhatsApp
Vkontakte
Одноклассники
Назад

Open Source вместо SaaS в небольшой организации: практические советы

Время чтения 4 минуты
Нет времени читать?
Скопировать ссылку
Telegram
WhatsApp
Vkontakte
Одноклассники
57
0
0
Нет времени читать?
Скопировать ссылку
Telegram
WhatsApp
Vkontakte
Одноклассники

После 2022 года многие российские компании столкнулись с одной и той же проблемой: привычные SaaS-сервисы, от Jira до Zoom, стали недоступны. Российских пользователей блокируют, а оплата оставшихся превратилась в квест, где сначала нужно достать карту зарубежного банка.

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

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

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

Open Source вместо SaaS в небольшой организации: практические советы

Open Source дает бизнесу 3 главных преимущества

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

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

И, наконец, полный контроль и конфиденциальность данных. Вы буквально обладаете своими данными в полной мере.

Что мы заменили

Мы начали с PLANKA — это Kanban-доска для управления проектами. Переехали с Trello.

Безлимитное количество пользователей, особенно гостей. Глоток свежего воздуха после тарифных планов с оплатой per user per month. Кроме этого, можно добавить сколько угодно проектов и досок в рамках каждого проекта. PLANKA использует Apprise, а это значит, что вы сможете настроить уведомления в практически любой сервис, доступный в наши дни.

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

Когда стало ясно, что Zoom неудобно оплачивать, мы перешли на Jitsi Meet. Запуск на своем сервере гарантирует отсутствие ограничений и полную конфиденциальность разговора.

Работает в браузере, а гости заходят по ссылке, без регистрации и назойливых предложений скачать мобильное приложение от сервиса. Хотя нативные приложения под мобильные операционные системы также имеются. Для митингов до 10 человек нам хватает сервера с конфигурацией 2 ядра, 4 ГБ ОЗУ.

Vaultwarden вместо облачного менеджера паролей. Это OS-сервер под Bitwarden-клиенты. За три года использования в команде из 10–15 человек инцидентов не случалось. Весомый нюанс: отсутствие официальных аудитов безопасности. У большинства небольших Open Source-проектов их нет, и Vaultwarden здесь не исключение. Это не делает его небезопасным, так как код проекта открытый, его просматривает сообщество, а ошибки быстро исправляются. Но есть важное следствие: ответственность за безопасность данных ложится на вас.

Для хранения файлов по проектам мы выбрали Nextcloud вместо Dropbox. Общие файлы буквально лежат на вашем диске, вы обладаете ими физически. И отчетливо понимаете, у кого есть к ним доступ. 

Gitea — Git-сервер, написанный на Go, который просто и честно работает.

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

Советы тем, кто задумывается о переходе 

Первое и самое важное. Безопасность — это ваша ответственность. Настройте SSH: отключите вход по паролю и авторизацию root-пользователю через ssh. Используйте вход по ssh-ключу с пасс-фразой, а еще лучше по аппаратному ключу. Настройте fail2ban, он защитит от перебора паролей и снизит шум в логах. Закройте неиспользуемые порты — для этого удобно задействовать ufw, его возможностей вполне хватит. Не забывайте регулярно обновлять систему и ПО.

Я использую Docker для всех сервисов. Каждый сервис изолирован, а пользовательские данные (volumes) и конфигурации (docker-compose.yml) для каждого сервиса хранятся отдельно. Такой подход упрощает создание резервных копий и ускоряет миграцию. Однажды из-за DDoS на наш хостинг-провайдер удалось провести восстановление сервисов на другом сервере из бэкапов за считаные часы.

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

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

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

А есть вариант попроще: можно развернуть Uptime Kuma в Докер-контейнере и следить за доступностью и состояниями ваших сервисов и контейнеров. Есть уведомления в Телеграм и множество других сервисов. 

Используйте HTTPS для ваших сервисов. Для получения SSL-сертификатов Let’s Encrypt и в качестве обратного прокси можно использовать Nginx Proxy Manager. Он гораздо проще и быстрее в настройке, чем ванильный nginx.

Кто занимается обновлением и поддержкой

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

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

Если у вас совсем нет ресурсов на сопровождение, возможно, проще оставить часть сервисов на SaaS.

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

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

Комментарии0
Тоже интересно
Комментировать
Поделиться
Скопировать ссылку
Telegram
WhatsApp
Vkontakte
Одноклассники