Мессенджер — один пользователь почти ничего не стоит, десять пользователей тоже, даже одна сотня ещё выглядит безобидно. А потом наступает момент, когда реальное множество людей начинают одновременно логиниться, отправлять сообщения, обновлять списки контактов, заходить в общие комнаты, и нагрузка растёт уже совсем по другой траектории. Не плавно. Скачком.
А мой бедный системник под такое лёг бы и не встал. Я это знал заранее, ещё когда писал первую строчку кода. Поэтому и делал систему так, чтобы потом без особых проблем перенести её на нормальный сервер. Временное решение хорошо ровно до того момента, пока оно остаётся временным.
Вариантов было два…
Глава 2
Артём
Первый — натаскать себе железа в новую подсобку. Купить три-четыре мощных системника, собрать из них небольшой серверный угол, кинуть туда нормальный канал и крутить всё у себя. Плюс — полный контроль над железом, всё под рукой. Минус — канал. В две тысячи пятом нормальный широкий интернет в Тюмени стоил как чугунный мост, а аплинк из обычного офиса под живой сервис быстро превращался в боль, дёрганья и бесконечные звонки в «Тюменьтелеком», где на меня начинали смотреть как на инопланетянина уже на этапе заказа обычной выделенки.
Второй вариант — аренда. Взять выделенный сервер у нормального хостера, желательно московского, у которого канал жирный, питание резервированное и админы не спят. Я этот путь уже знал по опыту. Да и… вот Вершинина та, странная, к слову, недавно весь свой сайт в Москву перетащила. Я из профессионального любопытства как-то посмотрел DNS и прогнал трассировку до «Медиа72». Раньше, помню, когда вначале смотрел, сайт крутился на местном хостинге, а теперь сидел на московской площадке. Видимо, не от хорошей жизни перетащила. Но решение правильное.
Я сел с калькулятором и листком.
Прикинул первоначальную загрузку. Расчёт был грубый, но другого взять неоткуда. Допустим, после мягкого запуска за месяц набегает пятьсот и более регистраций. Из них живых, кто реально сидит в онлайне вечерами, — процентов двадцать-тридцать. То есть пик одновременных — примерно сотня-полторы и больше. Трафик я с самого начала затачивал под копейки, протокол лёгкий, сообщения крошечные. Память на соединение — минимум, я её вылизывал три недели именно ради этого.
Выходило, что одной арендованной машины — нормальной, не топовой, с гигом памяти и приличным процом — хватит на первые несколько тысяч пользователей. С запасом. А когда упрёмся в потолок — добавлю вторую и разнесу нагрузку. Я уже заранее продумал, какие части системы первыми вынесу на отдельную машину, чтобы потом не переписывать всё с нуля. Такие вещи лучше закладывать заранее, пока продукт маленький и послушный.