
Мы создаем свой мессенджер, более подробно можно ознакомиться с ним вот здесь:
https://habr.com/ru/articles/1015930/
30-го апреля мы решили наконец то произвести первый деплой. Арендовали сервер у Яндекса (можно пожалуйста без томатов, на что были средства, то и взяли). Значит что у нас по конфигурации:
-
2CPU
-
4GB ОЗУ
-
20GB SSD
-
OS Ubuntu
Мы выбирали минимальный пакет под наши требования в рамках тестирования. Ценник говорить не буду, кому интересно можете сами посмотреть.
С какими проблемами мы столкнулись в рамках тестового релиза:
-
Баги, ошибки
-
Взлом
Теперь начнем по порядку)
Баги и ошибки — дело житейское. Забыли где-то подправить конфиги, в других местах заглушки убрать, на UI так вообще не учли изменения путей для файлов что ломало всю форму и все падало.
Но вот что удивило, это взлом.
Взлом
Начали замечать еще недели полторы назад что у нас вечно дропается база. По началу грешили на нехватку ресурсов и монга просто падала в 0 и запускалась с нуля — нет. Пришлось ставить временно мониторинг, по логам поняли что дело не в этом. Пошли смотреть докер файлы, может в Volume не указали — тоже нет, все есть. И в один из дней, вечером, просто ради интереса решил проверить записи в БД и обнаружил интересную коллекцию README, а там одна запись на eng «Мы дропнули вашу БД, если вы нам не дадите биткоинов — то опубликуем ее в открытый доступ». Тут я понял что чел перебором Public адресов нашел наши открытые порты и получил доступ.
Не страшно. Решил проверить еще и Redis, обнаружил там как раз скрипты которые все это запускали и создавали подпроцесс дополнительный. Дропнули весь сервер, настроили правила безопасности, закрыли все порты, открытым оставили только NGINX, заменили все что можно заменить, раскатили заново все. Дополнительно накатили еще UI модули для контроля MongoDB и Redis. Поставили везде пароли. Пока что уже как неделю все работает и без лишних скриптов)
Что дал нам этот кейс? То что в безопасности мы совсем 0, не учли самое важное. Сервисы — то настроили, ввели там кучу проверок, запретов, лимитов, но забыли про серверную составляющую.
Нагрузка
Тестировали мы на 10 человек, с выключенным AI для транскрипции. Нагрузка в пике при общении без трансляции видео = 18%. Без нагрузки сервисы все в т.ч. мониторинги едят так же 17-18%.
Потребление озу критично не вырастает, на старте было 1.1gb, стало 1.11gb, при звонке поднялось до 1.13gb.
Больше всего на себя забирает MongoDB, сервисы не растут, кроме Voice сервиса.
Тестирование
Мы активно полировали наше приложение с момент первого деплоя на тест. Исправили большое кол-во элементов, улучшили стабильность. Некоторые компоненты стали полностью переработанные, например:
Голосовые комнаты
Теперь в голосовых комнатах есть лобби. Вы не подключитесь к комнате пока не зайдете в лобби и не нажмете «Подключиться к голосовому чату».
Чат внутри звонка. Мы приняли идею Discord к себе и сделали временные чаты внутри голосовых комнат. В рамках встречи можно писать без лимита, но при выходе последнего пользователя все сообщения будут удалены.

Выбор качества разрешения при демонстрации экрана. Доступно 4 варианта 720p, 1080p (30 и 60fps), 2k.
Статистика вашего соединения

Direct чаты
Теперь список чатов приведен к общему стилю и не имеет такого скругления как было ранее

Мелкие исправления — их было много, местами правили стили, местами логику.
Планы на развитие приложения
В обозримом будущем мы планируем добавить сервис «Друзья», 2FA, SSO авторизацию, AI ассистента для всяких заметок и еще мелкие функции.
Возможно я бы написал больше технической части будь я DevOps инженер, но в основном все решалось в момент с помощью гугл и тех же нейросетей.
Да, приложение изначально создавалось как замена для Mattermost или Slack. Может конечно по началу и не со столь красивым UI, но с более полезным функционалом. Например мы полностью отказались от тредов внутри сообщений и сделали отдельно тред топик с поиском и прочими прелестями. Но в процессе развития мы поняли что хорошо подойдет и для общего использования. Мы не наминируем себя на премию «Лучшая разработка», аналогов полно и мы тоже дополнительный аналог. Но наш взгляд не = взгляду маркетологов. Мы сталкивались с различными проблемами при использований разных ресурсов и решили сделать что-то свое, позаимствовав самое лучшее у других. И тем не менее мы доступны для тестирования.
Приглашение на тестирование
Мы будем рады если кто-то из читателей данного поста захочет протестировать наш сервис и сказать свой взгляд. Для связи — можете написать комментарии «+» и я вышлю ссылку на установщик или написать на прямую мне в телеграмм AN_Cayo.
ссылка на оригинал статьи https://habr.com/ru/articles/1038806/