Позвольте мне сразу перейти к делу, бессерверные - это модное слово. Но это также отличный способ обозначить серьезные изменения в том, как мы создаем программное обеспечение. Да, серверы все еще задействованы, мы не избавились от них. Разница в том, что вы не беспокоитесь о них. Бессерверная система - это сосредоточение внимания на вашем коде, а не на инфраструктуре, на которой он работает. Вы арендуете достаточно вычислительной мощности, чтобы выполнять свою работу, когда она вам нужна.

Бессерверные вычисления - это возможность обращаться к огромному пулу ресурсов. Арендуйте необходимое количество ресурсов, чтобы выполнять свою работу в тот момент, когда она вам нужна. И верните его, как только закончите.

Я открыл для себя бессерверные вычисления еще в 2008 году, когда Google выпустил продукт под названием App Engine. У нас были проблемы с инфраструктурой для нашего стартапа, и App Engine выглядел интересно. В итоге мы создали на нем весь наш продукт Socialwok. Тогда я впервые понял, насколько велико преимущество создания продуктов с использованием бессерверной технологии.

С тех пор дела пошли далеко, и мы переходим в бессерверное будущее. Отсутствие необходимости заботиться об управлении инфраструктурой помогает вам двигаться быстрее и проявлять творческий подход. Я был так убежден в этом, что написал целую книгу, чтобы проповедовать мощь управляемой инфраструктуры.

Https://www.amazon.com/How-Build-Future-powered-software-ebook/dp/B01N580GJQ

Чтобы развить эту идею, я решил создать бессерверный стартап. Продукт, который потребляет очень мало ресурсов и при необходимости может масштабироваться до миллионов пользователей. При отказе от сервера есть несколько вариантов, из которых вы можете выбрать. Amazon Lambda и Google Firebase plus Cloud Functions - два популярных варианта. Я выбрал Google, так как я лучше знаком с их технологиями.

Созданный мной продукт Bell + Cat - это инструмент, который поможет вам организовать работу. Думайте об этом как о более простой электронной таблице. Я хотел, чтобы этот продукт оставался бесплатным и доступным для всех. Если миллион человек решит воспользоваться им, то обслуживание их будет стоить мне очень мало.

Чтобы это произошло, я решил использовать Google Диск для хранения данных пользователей. Он доказал свою безопасность, надежность и соответствует всем требованиям, которые могут понадобиться людям. Также приятно знать, что ваши данные где-то знакомы. Google Диск предоставляет всем 15 ГБ бесплатного хранилища, поэтому Bell + Cat - отличный способ использовать его больше. Я хотел обеспечить очень высокий уровень безопасности. Для этого я разработал его так, чтобы ваши данные передавались только между Google Диском и вашим браузером. И всегда в зашифрованном виде. Это делает его более безопасным, и мне не нужно беспокоиться о хранении конфиденциальной информации о пользователях.

Для размещения приложения я выбираю Google Firebase Hosting. Замечательный продукт, использующий сети CDN Google для максимально быстрого предоставления приложения любому пользователю в мире. Мне нравится, что требуется одна команда firebase deploy, чтобы запустить новую версию Bell + Cat за секунды. Мне нужно было сделать очень немногое.

Как только приложение начало набирать пользователей, я начал получать запросы функций. Одним из наиболее популярных запросов был способ поделиться файлом Bell + Cat с другими или встроить его на свой собственный веб-сайт. Эта функция потребовала от меня обработки некоторых внутренних вычислений. Традиционно для этого потребовалось бы запустить сервер, но в данном случае я использовал облачные функции. Это настоящая бессерверная инфраструктура, которая хорошо интегрирована в Firebase. Облачные функции позволяют выполнять небольшие фрагменты кода. Этим триггером может быть любое событие, например запрос из браузера. И с вас берут крошечные доли цента за каждую пробежку. Это составляет около 40 центов на миллион запусков. Важно помнить, что здесь нет серверов, которыми вы могли бы управлять, даже виртуальных.

Любой, кто занимается разработкой программного обеспечения, знаком с процессом разбиения более крупной проблемы на мелкие части. В облачных функциях каждая часть запускается только тогда, когда она запускается, и вы платите только тогда, когда она запускается. Я хотел бы думать, что Serverless поможет нам более эффективно использовать наши вычислительные ресурсы. И нам понадобится меньше серверов, чем было бы. Поскольку все берут на себя технологии, необходимость в меньшем количестве серверов в долгосрочной перспективе пойдет на пользу окружающей среде. Бессерверное мышление помогает нам создавать лучшие продукты с меньшими командами. Snapchat, который работает на Google App Engine. Они говорили о том, что в их команде никто не управляет серверами. Это очень необычно для продуктов такого масштаба.

«Если я видел дальше, то только стоя на плечах гигантов».
- Исаак Ньютон

Правильный выбор технологий может помочь вашей идее во многих отношениях. Как и в случае с Bell + Cat, это позволило мне сохранить продукт бесплатным и доступным для всех, кто в нем нуждается. Это также позволило одному разработчику сосредоточиться на основном продукте и быть очень продуктивным. Переход без сервера в Google Cloud дает Bell + Cat очень много бесплатно. Самые быстрые сети на планете, очень высокий уровень безопасности, сложная вычислительная инфраструктура, управляемая множеством очень умных людей. И для меня самое важное преимущество в том, что, когда я закрою эту статью и лягу спать, кто-то еще будет следить за тем, чтобы мой код продолжал работать.