Введение в Serverless
- Serverless - это подход к разработке ПО, который позволяет разработчикам сосредоточиться на коде и не заботиться об инфраструктуре.
- Serverless-сервисы могут снизить операционные расходы и минимизировать риски непредсказуемости спроса.
- Курс "Serverless-разработка" обучает использованию ключевых инструментов serverless-экосистемы Yandex Cloud.
- Основные сервисы: Yandex Cloud Functions, API Gateway, Serverless YDB, Yandex Message Queue.
- Для успешного прохождения курса необходимы базовые понятия и инструменты: сервисные аккаунты, мониторинг, работа с YDB, биллинг.
Введение в Serverless
Что такое Serverless
Что бы вы подумали, если бы с вас потребовали поминутную оплату за время, проведённое в магазине? Если бы ресторан предложил вам арендовать повара и официанта на время ужина? Или если бы вам в кофейне сказали закупить зёрна, арендовать бариста и научить его готовить ваш кофе?
То, что кажется бессмыслицей в обычной жизни, по иронии судьбы до сих пор является стандартом в мире разработки ПО. Чтобы запустить приложение, нужно арендовать виртуальную машину определённой мощности, настроить на ней операционную систему и развернуть среду исполнения своего кода. Чтобы записывать и читать данные в БД, нужно определить, сколько потребуется CPU, какой будет нужен объём памяти и жёсткого диска. И оплачивать их, вне зависимости от того используете вы их или нет.
Разработчики привыкли к этому и всегда думают о серверах. Но иногда очень хочется иметь возможность просто узнать цену чашки кофе, операции с БД или запуска определённой функции приложения. Не переплачивать, если операций мало и они не загружают арендованные серверы. Не сталкиваться с отказами приложений, если операций больше, чем серверы могут обработать. Брать сколько нужно, когда нужно и получать скидки, если берёшь много!
Serverless — выкинуть серверы из головы. В этом и есть суть одного из важных направлений в развитии облачных сервисов, о котором и пойдёт речь в данном курсе.
Использование serverless-сервисов при разработке приложений даёт следующие преимущества:
- Позволяет разработчикам сфокусироваться на работе над кодом. Больше не нужно разворачивать, настраивать и обслуживать какую-либо инфраструктуру (серверы, виртуальные машины, контейнеры).
- Часто даёт возможность снизить операционные расходы по сравнению с запуском приложений на виртуальной машине или в средах контейнерной виртуализации — за счёт более эффективного распределения мощностей провайдером.
- Позволяет минимизировать риски непредсказуемости спроса — в случае как переоценки, так и недооценки будущей нагрузки. А значит, становится проще принимать решения о добавлении в приложение новых функций или о запуске рекламной кампании.
Задача этого курса — научить вас использовать ключевые инструменты serverless-экосистемы в Yandex Cloud. Мы не только познакомим вас с этими технологиями и объясним, как их объединить для решения бизнес-задач, но и расскажем, как прогнозировать расходы.
Содержание курса «Serverless-разработка»
Этот курс построен вокруг четырёх основных сервисов экосистемы serverless в Yandex Cloud:
- Yandex Cloud Functions. Вы узнаете, как запускать код ваших приложений в изолированной, автоматически масштабируемой и безопасной среде исполнения, а также настраивать события, при наступлении которых этот код будет выполняться. Вы также научитесь отслеживать показатели работы приложений и читать журнал исполнения кода для работы над их производительностью.
- API Gateway. Вы научитесь создавать API-шлюзы для интеграции компонентов микросервисных приложений и разрозненных API.
- Serverless YDB. Вы узнаете, как получить быстрое, надёжное и дешёвое реляционное или документное хранилище данных без необходимости управлять его ресурсами. Познакомитесь с возможностями работы с YDB через Document API, доступными только для serverless-режима.
- Yandex Message Queue. Вы научитесь создавать и настраивать очереди для обмена сообщениями между компонентами вашего приложения.
А в конце курса вас ждёт финальная практическая работа, в которой вы объедините все эти сервисы для решения конкретной задачи — создания сервиса, конвертирующего длинные ссылки в короткие.
Необходимые навыки для успешного прохождения курса
Чтобы быстрее освоить этот курс, нужно быть знакомым с некоторыми базовыми понятиями и инструментами.
● Сервисные аккаунты. Их использование позволяет получать программный доступ к сервисам Yandex Cloud, а также гибко настраивать права доступа к ресурсам для написанных вами программ. Рекомендуем прочитать руководство «Как начать работать c сервисными аккаунтами» в документации к Yandex Identity and Access Management.
● Мониторинг. Во всех сервисах Yandex Cloud есть функция мониторинга тех или иных метрик. Мы рекомендуем агрегировать нужные метрики в сквозном сервисе Yandex Monitoring. Как это сделать, рассказывается в курсе «DevOps и автоматизация», а также в документации.
● YDB. В рамках данного курса мы познакомим вас с особенностями работы с YDB в бессерверном режиме: что можно получить бесплатно, как формируется стоимость и каким образом можно её минимизировать. Для полного понимания этой информации нужно знать, как работать с данными через SQL, о чем рассказывается в соответствующем разделе курса «Хранение и анализ данных».
● Биллинг. Чтобы правильно выбирать подход к проектированию приложений и сервисов, важно понимать принципы тарификации используемых ресурсов и уметь считать расходы. Этой теме посвящён курс «Прогнозирование затрат и оптимизация расходов».