Каждый, кто хоть раз занимался развертыванием Telegram-ботов, ну или просто внимательно читал наши статьи рубрики «Боты для арбитража», не даст соврать — прежде чем переходить непосредственно к деплоингу, сначала нужно настроить сервер. В противном случае ничего работать не будет. Ну или будет, но совсем не так, как задумано. Однако прежде чем сервер настраивать, им нужно было сначала разжиться. И это хорошо, если вы читали нашу статью и знаете, как развернуть его на домашнем ПК, а если не читали?
А если вдобавок ко всему вы совсем новичок в этом всем и вам нужно одновременно и найти сервер, и понять, подойдет ли он вам, и еще заблаговременно заложить в свой выбор описанные ранее настойки (которые вам лишь предстоит увидеть в будущем). В общем, на практике все сводилось к тому, что приходилось менять несколько серверов, просто чтобы понять, какой вообще подходит. И это все, напоминаем, не бесплатно. И вот, внезапно, зайдя в настройки BotFather, вы вдруг видите, что там появился пункт Serverless…
Что такое Serverless-хостинг от Telegram
Собственно, как можно понять из названия, Serverless-хостинг от Telegram — это хостинг без сервера. На самом деле технически Telegram нагло врет — ибо сервер, разумеется, есть. Вот только его наличие, а точнее, его отсутствие, перестает быть вашей головной болью. Проще говоря, Serverless-хостинг от Telegram — это хостинг от самой Телеги.
Плюсы Serverless-хостинга от Telegram
Сам факт того, что хостинг является частью архитектуры платформы Telegram, само по себе предопределяет ряд его преимуществ перед прочими видами хостингов, а именно:
Снижение порога входа — да, с хостингом от Телеги нужно разбираться. И да — если мы говорим об условном «Hello World», то классический хостинг или даже описанный нами хостинг на домашнем ПК может оказаться проще. Однако если бот тяжелее двух строк кода, то эта разница нивелируется. И чем больше в боте функций, тем ниже будет порог входа при выборе Serverless-хостинга от Telegram. Почему? Смотрите следующий пункт.
Преднастройка из коробки — в отличие от обычного хостинга, который, даже если он позиционируется как заточенный под Телегу, на деле все равно является сторонним железом, Serverless-хостинг от Telegram не просто заточен под Телегу, он и есть Телега. Посему в 99,9% случаев вам не придется мучиться с подбором дистрибутивов, плагинов и настройкой. Все самое важное и так настроено оптимальным образом.
Идеальный мэтч с Телегой — собственно, этот пункт — логическое продолжение предыдущего. Собственный внутриплатформенный хостинг от Телеги не может быть недонастроен и не может конфликтовать с платформой. Просто потому, что, как мы уже писали ранее, он и есть платформа. Это, в свою очередь, означает, что вы никогда (буквально никогда) не столкнетесь с проблемой несовместимости.
Автообновление — проблема устареваний версий ПО также перестанет вас беспокоить. Да что уж там — вам в принципе не придется обновлять серверное ПО, что, опять же, снижает порог входа.
Независимость от хостинг-провайдера — этого мы, конечно, гарантировать на 100% не можем, но ситуаций, когда в районе, где находится дата-центр, выключили свет, и ваш бот упал, точно станет меньше. Все же сервера Телеги разнесены даже не по нескольким дата-центрам, а по нескольким десяткам стран. Соответственно, и ваш хостинг упадет лишь в том случае, если упадет добрая половина всей платформы.
Оперативность масштабирования — и снова логическое продолжение пункта выше. Чем мощнее серверная инфраструктура, тем проще масштабироваться. Причем, в отличие от «классики», Телега сделает это мгновенно. Вам не нужно будет выискивать более мощное железо, переезжать с одного хостинга на другой и устраивать прочие танцы с бубнами. Нагрузка выросла — мощности выделились.
Экономичность — а если нагрузка упала, то и мощности забрали. Подобное, конечно, есть у многих хостинг-провайдеров, но там все равно есть нюансы. Хотя бы потому, что серверу хостинг-провайдера нужно сначала узнать у сервера Телеги, как дела с нагрузкой. Да и от вашего кода много тоже зависит. Serverless-хостинг от Telegram же — это буквально идеал с точки зрения оптимизации расхода процессорного времени.
Нулевой пинг — продолжение продолжения прошлого пункта… Так как и Телега, и хостинг находятся в одной среде, то и задержки минимальны. Технически пинг, конечно, будет, но с точки зрения вас как пользователя этот пинг будет абсолютно незаметным. И уж точно в разы ниже, чем если бы все делалось через классический хостинг.
Отказоустойчивость — совокупность отсутствующего (технически — минимального, но минимальным обычно называют просто «самый низкий») пинга и ранее упомянутой инфраструктуры создает, не побоимся этого слова, беспрецедентные (вообще, оно не совсем в тему, но наиболее близкое по смыслу к замыслу автора) условия для отказоустойчивости. Пока сама Телега «на плаву», то и ваш бот упадет, только если вы сами накосячите в его коде.
Защита от DDOS — и это, в свою очередь, создает беспрецедентную защиту от DDOS-атак. Да, формально ваш бот все еще можно будет заддосить, но это развлечение будет сопоставимо по стоимости с DDOS’ом самой Телеги. Когда дешевле будет найти вас вживую на необитаемом острове, нежели пытаться уронить ваш бот. Но повторим — это актуально лишь в том случае, если в коде самого бота нет косяков.
Бесшовная авторизация — впрочем, часть потенциальных косяков Serverless-хостинг от Telegram также нивелирует. Например, все, что связано с авторизацией, — ведь она попросту не нужна. Платформа и так знает все, что ей нужно для идентификации владельца бота.
Единая среда разработки — ну кодинг сводится к тому, чтобы накнопать и жмакнуть «Enter». А потом вжух — и бот уже запущен.
Согласитесь, список плюсов внушителен! Впрочем, даже столь объемный список не является исчерпывающим — фича свежая, и на практике могут быть еще плюсы.
Минусы Serverless-хостинга от Telegram
Однако важно понимать, что есть у такого подхода и ряд минусов, а именно:
Кабала у Дурова — из-за особенностей «прямой интеграции», вы не сможете просто взять и переехать на другой сервер. Во-первых, взаимодействие с платформой происходит через SDK, не по API. Полноценным CLI это, конечно, тоже не назвать, но такой формат скорее ближе ко второму, нежели к первому. Во-вторых (хотя это скорее во-первых или даже в-нулевых), ваш бот в принципе не будет существовать в виде «программы» — он будет представлять собой разнесенные наборы функций. Все это, конечно, можно копипастить ценой кропотливой ручной работы — но зачем, если все равно придется переписывать под API?
Кабала у Дурова 2 — а еще, в отличие от классического хостинга, Телега будет видеть всю архитектуру вашего бота и сможет украсть ваши решения. И если вы думаете, что этого не будет — подумайте еще раз, ведь это база в современном мире разработки. Причем что-то доказать или хотя бы просто получить «вкусняшку» от Дурова вы вряд ли сможете. Здесь кто-то может возразить, мол, Телега и так может воссоздать ваш бот, видя API-обращения и то, что видит юзер. И да, может — но вот заметить, что ваш бот в принципе чем-то ценен, при таком формате работы в разы сложнее. Ведь «рядом» сотни, если не тысячи менее ценных аналогов.
Жесткий JavaScript — забудьте про Python. Вообще обо всем забудьте. Only 8V-ЯП. Only hardкоръ. Если вы совсем уж не любите JS, немножко выбора Дуров вам все же дал — есть еще TypeScript. Но сами понимаете, что разницы особо нет. Как ни крути, а TS — все тот же JS, а не Python. Да даже не GO или «++». Хотя… а точно ли это проблема платформы, а не «программистов», которые хотят ею воспользоваться? :D
Только Тележные процессы — увы, но большую часть тех решений, что можно было бы реализовать вне Телеги, на хостинге от самой Телеги реализовать не получится. И уж тем более не получится заниматься чем-либо, что запрещено ее правилами.
Лотерея по лимитам — на момент написания статьи какой-либо информации от самого Telegram касательно лимитов на использование нет. Однако очевидно, что, по мере того как фича будет становиться популярной, такие лимиты появятся — в противном случае любители халявы просто положат всю Телегу своими проектами. Частично лимиты уже есть — в виде лимитов самих ботов, но что-то подсказывает автору, что на этом все не закончится.
Геморная отладка — фактически вы будете ограничены тем, что позволяет делать платформа. Впрочем, справедливости ради — и багов будет меньше из-за идеальной совместимости.
Только боты — строго говоря, это не минус, а изначальное свойство. Но вдруг кто-то увидит слово «хостинг» и захочет размещать сайт — сайт разместить не получится. Как, к слову, и так называемых юзер-ботов (скриптов, взаимодействующих с профилями пользователей, а не профилей с суффиксом _bot).
Как и в случае с плюсами, возможные минусы данным списком не ограничиваются — здесь важно понимать, какие у вас ожидания от своего проекта, чтобы заранее оценить, подойдет ли вам Serverless-хостинг от Telegram.
Саммари
Serverless-хостинг от Telegram — это отличная альтернатива классическому хостингу, если речь касается развертывания Telegram-ботов, архитектура которых не выходит за рамки самой Телеги. Однако если вы хотите чего-то большего, вам все еще придется арендовать хостинг. Впрочем, кто знает, какие возможности там появятся к моменту, когда фичу выкатят в паблик. Например, пока писалась эта статья, добавили возможность взаимодействия с внешними API. Так что советуем держать руку на пульсе и не формировать у себя ложных предубеждений — фича активно развивается.