Что такое технология serverless? Расскажем, как с её помощью можно экономить бюджет и планировать время разработчиков.
Когда e-commerce только зарождался, вариантов для создания интернет-продуктов было немного. Точнее один: нужно было запускать сайт на собственном сервере. Определить заранее, сколько ресурсов потребуется, было возможно не всегда. Из-за этого компании переплачивали, да еще и содержали штат программистов, чтобы сайт работал исправно.
Позже появилась альтернатива – взять сервер в аренду. Уже лучше: выбираете только необходимые ресурсы и пространство, за лишнее не платите. Но появляется другой минус. Сайт может не работать в период пиковых нагрузок – и даже хостинг с автоматическим масштабированием не всегда решит эту проблему.
Хорошая альтернатива – запустить код в контейнере. Он не зависит от ресурсов хостинга и работает быстро. Достаточно его настроить, загрузить код и можно работать на любой инфраструктуре.
Но что, если не хочется ничего настраивать и следить за масштабированием. Но при этом сохранять производительность и не платить за неиспользуемые мощности.
Возможно ли это? Да. С помощью технологии бессерверных вычислений.
Что такое serverless
Работая на этой технологии, вы не привязаны к конкретному серверу. Достаточно загрузить код функции – он сохраняется в виде пакета на серверах провайдера. Пользователь посылает запрос к приложению, провайдер создает для него контейнер, выполняет запрос, а после – его уничтожает.
Масштабирование происходит автоматически. Если нагрузка внезапно увеличится – появятся новые контейнеры, которые их обработают.
Можно не думать о сервере: не придется заниматься его настройкой, обновлениями, даже не нужно выбирать объем хранилища. Все процессы полностью на стороне провайдера. А программисты могут сфокусироваться на бизнес-ценности продукта.
Тарификация динамическая. Вы платите только за то, что потратили. То есть только в тот момент, когда код приложения или сайта реально работает.
Увеличиваем скорость – снижаем стоимость
Serverless – технологии ускоряют разработку. Программисты могут быстро развернуть типы back-end функций и сконцентрироваться на интерфейсе. Это поможет снизить затраты – ведь стоимость разработки напрямую зависит от потраченного времени.
Разработка становится проще. Процесс делится на микрозадачи: код пишется небольшими функциями, их сопровождение в дальнейшем минимально. Это позволяет быстрее погружать в работу новых инженеров.
Переход на serverless – отличная возможность повысить бизнес-ценность продукта. У разработчиков появляется время, чтобы развивать приложение и улучшать пользовательский опыт.
Не нужно нанимать целый штат backend-программистов. Чтобы создавать масштабируемые приложения – достаточно иметь одного разработчика, который владеет основами DevOps. Этот метод разработки позволяет быстро создавать и обновлять ПО. С его помощью запускаются функции на бессерверной модели.
Сценарии использования
Давайте посмотрим, когда использование serverless особенно актуально:
Сезонная или проектная нагрузка
Модель serverless – отличный вариант, если спрос на ваш товар или услуги подвержен сезонности или определенным событиям. Бессерверная инфраструктура выдержит нагрузки перед Новым годом и в «Черную Пятницу» – покупатели всегда смогут попасть к вам на сайт и в приложение.
Для примера возьмем кейс Auto.ru – сервис обратился в Yandex.Cloud для запуска проекта «Большой экзамен ПДД». Это онлайн-тест для пешеходов и водителей. Нагрузка ожидалась высокая.
Проект решили запускать на бессерверной инфраструктуре – с помощью сервиса Yandex Cloud Functions.
Разработчиков было двое. Они сосредоточились на коде: не пришлось думать о поддержке серверов и настройке СУБД. Сервис успешно запустили, и он выдержал пиковые нагрузки – в тестировании участвовало более 100.000 пользователей.
Стартапы и разработка MVP
Если создаете онлайн-продукт, важно сфокусироваться на пользе для конечного клиента. Уделить внимание пользовательскому опыту. Бессерверные технологии помогают погрузиться в те процессы разработки, где ваше участие наиболее необходимо.
Малый бизнес
Разработка – дорогостоящий процесс для малого бизнеса. Yandex Cloud Functions позволит не экономить на качестве: сконцентрируйтесь на коде, с которым взаимодействует клиент. А serverless возьмет на себя backend – с его настройкой справится один DevOps-инженер.
Если статья оказалась полезной, ставьте 👍