Если вы когда-нибудь задавались вопросом, что такое serverless и почему он был создан, то вы попали по адресу: в этой статье я расскажу вам немного о том:
- что такое serverless (небольшое погружение в историю),
- и, моя любимая часть — развенчание некоторых мифов, связанных с serverless.
Что вы должны знать?
Почему эта статья может быть не такой технической, она требует от вас хотя бы фоновых знаний об облачных вычислениях.
Что такое бессерверные технологии?
Бессерверные технологии со временем становятся все более интересными и кажутся очень перспективными. Это не технология или архитектура, бессерверные технологии — это набор решений, которые обещают большие преимущества в администрировании приложений, например, низкий входной барьер, экономическая эффективность, высокая доступность и масштабируемость.
Как появилась бессерверная технология, эволюция
Некоторые люди утверждают, что serverless — это следующий этап эволюции в облачных вычислениях.
Насколько это правда?
Чтобы узнать ответ на этот вопрос, я должен перенести вас в эпоху до строительства Великой китайской стены, я шучу.
До эпохи облачных вычислений, чтобы создавать приложения, нужно было думать о множестве концепций (например, управление мощностями, установка оборудования, управление серверами, физическая безопасность, обновление программного обеспечения, виртуализация и т.д.), и все это отвлекало вас от самой цели разработки программного обеспечения.
К 2006 году Amazon запустил инфраструктуру как услугу, в которой всего несколькими щелчками мыши и запросом API я могу создать сервер на базе Linux где-нибудь в Северной Калифорнии, пока ем рис «Джоллоф» в своем родном городе в Нигерии, да, это так просто. Теперь все, на чем мне нужно сосредоточиться, — это предоставление программного обеспечения, управление ОС, масштабирование и т.д.
Всего за небольшой промежуток времени облачные вычисления стали очень популярными, и все захотели вскочить на поезд, начиная с Google и Microsoft, создающих свои собственные услуги IaaS, и заканчивая традиционными хостинговыми компаниями, также использующими облако, ландшафт разработки программного обеспечения начал кардинально меняться.
Примерно в 2013 году ситуация стала еще лучше, появились контейнеры, назовем их Container as a Service (CaaS). Контейнеры помогли командам DevOps ускорить цикл разработки, тестирования и производства программного обеспечения. Это позволило нам упаковывать наши приложения в контейнеры и запускать их на платформе оркестровки, такой как Kubernetes. CaaS сократил количество времени, затрачиваемого на инфраструктуру, но не полностью, нам по-прежнему приходилось создавать инфраструктуру, управлять автомасштабированием, отслеживать и регистрировать события и т. д.
Почему был создан Serverless.
При всех огромных преимуществах, которые дает облако, бессерверные технологии продвинули их еще дальше. Бессерверная технология была представлена примерно в 2014 году, пионером которой в основном стала компания Amazon.
Бессерверная технология обещала: вам не нужно думать об управлении инфраструктурой, просто создайте желаемую инфраструктуру, используя FaaS (Function as a Service), т.е. функции Azure, а ваш поставщик услуг (т.е. Azure) займется этим дальше.
Однако, хотя бессерверная технология имеет большие преимущества, она также имеет некоторые препятствия, новые технологии, инструменты и архитектурные модели, которые необходимо изучить.
Некоторые компании, которые в настоящее время используют serverless, — это Coca-Cola, Netflix, Codepen, Nordstream и др. Coca-Cola смогла снизить стоимость обработки транзакций торговых автоматов на 99%, когда перешла на бессерверные технологии. Как я уже сказал, это многообещающая технология.
Теперь перейдем к моей любимой части…
Некоторые мифы о serverless.
1. Бессерверные и не очень бессерверные технологии
Миф: Для гуру языка, читающих это, вы должны знать, что с лингвистической точки зрения serverless означает «без серверов». Ну, это название не говорит всей истории, это так же, как облачные вычисления, когда они только появились, и мы задавали вопросы: есть ли компьютеры или серверы в облаке?
Ответ: нет, серверы находятся на земле, но доступ к ним можно получить из любого места.
Истина: в фоновом режиме все еще существуют серверы, работающие с внутренними сервисами. Бессерверная технология означает, что вы можете сосредоточиться на своей работе и позволить облачному провайдеру заниматься предоставлением серверов и инфраструктуры, которая работает бесперебойно.
Почему же тогда его назвали бессерверным?
По моему личному мнению, такие слова (облако, бессерверный) являются скорее маркетинговой тактикой.
2. Требуется больше, чем один клик
Миф: Развернуть код и запустить его одним кликом.
Правда: Чтобы заставить ваше приложение работать на бессерверной платформе, требуется несколько процессов. Есть технологии, которые необходимо освоить, конфигурации и проекты, которые необходимо сделать.
На примере Azure. С помощью Azure Functions вы можете предоставить полностью управляемую вычислительную платформу для обработки данных, интеграции систем и создания простых API и микросервисов. Они автоматизируют административные задачи от разработки до развертывания и обслуживания.
Функции Azure — это файлоподобное руководство, которое сообщает Azure, какие службы должны быть предоставлены, т.е. количество серверов, размер процессора, интегрируемая база данных, обработчики событий или триггеры и т.д.
Бессерверное развертывание уменьшает относительное трение для разработчика в плане прохождения необходимых шагов, которые не добавляют прямой ценности в его рабочий процесс, например, создание контейнера для каждого нового выпуска кода или мониторинг и ведение журнала.
Если вы хотите, чтобы я написал окончательное руководство по развертыванию с помощью serverless или функций, дайте мне знать в разделе комментариев.
3. Serverless подходит для всех приложений
Одним из основных недостатков бессерверных вычислений является их непостоянное состояние или задержка ответа.
Задержка ответа — это время между моментом подачи запроса и моментом реакции программы. В облаке бессерверные вычисления не работают постоянно, они выключаются между запросами.
Подробнее о задержке ответа в бессерверных вычислениях и способах ее устранения можно узнать здесь.
Фух!
Вот и развенчаны некоторые мифы. Надеюсь, теперь вы лучше понимаете, что такое бессерверные вычисления и их историческую подоплеку.