Основы работы с Linux. / Работа с AWS. / Безсерверные технологии.
Безсерверные технологии
Это архитектура, позволяющяя отделить исходный код от серверного окружения.
Весь программный код оформляется внутри функции которая по триггеру может запускаться.
Бессерверная архитектура — это следующий этап эволюции облачных платформ в направлении полностью облачного машинного кода. С бессерверной архитектурой разработчики оказываются ближе к бизнес-логике и при этом могут не беспокоиться об инфраструктуре. Это шаблон, который не подразумевает “нет сервера”, а “меньше сервера”. Бессерверный код управляется событиями. Код может запускаться чем угодно — от традиционных веб-запросов HTTP до таймера или результата передачи файла. Инфраструктура без сервера позволяет мгновенно масштабироваться в соответствии с эластичными требованиями и предлагает микро-выставление счетов, чтобы действительно “платить за то, что вы используете”.
AWS предоставляет сервисы по требованию. Вы получаете столько сервисов или серверов сколько хотите и можете легко расширять структуру.
Технология революционная и многие ее используют.
AWS представила специальные AWS Lambda функции в 2014 году.
AWS Lambda — наиболее проработанная и широко используемая FaaS-платформа, основанная на модели «функция как услуга» или Устойчивая функция.
Распространение таких систем, как Azure Functions и Google Cloud Functions
Приемущества:
Долговечность. Безопастность. Производительность.
Так же предоставляет свободу выбора архитектуры и подхода использования этих функций.
Если раньше разработчики настраивали сервера и ложили туда логику приложения, то теперь облачные провайдеры сами разворачивают для нас сервера и предоставляют возможность на них запускать “виртуальные функции”. Таким образом резко сокращается количество ресурсов, т.к. раньше нам нужно было платить за все сервера, а щас мы делаем маленький сервер (для активации сайта и отдачи страниц), и внутри используем лямбда функции для вычислений всего что нужно на облаке.
Устойчивые функции
Устойчивые функции упрощают создание рабочих процессов с отслеживанием состояния, состоящих из дискретных долго выполняющихся действий, в бессерверной среде. Устойчивые функции могут отслеживать ход выполнения рабочих процессов и периодически создавать контрольные точки в журнале выполнения, поэтому они предоставляют возможности реализации некоторых интересных шаблонов.
Использование сервисов вместо клиентского кода.
Бессерверные приложения обычто содержат несколько AWS сервисов и логики, которая заключена в лямбда функции.
Лямбда функции могут быть интегрированы во многие AWS сервисы.
Вычисления: AWS Lambda
Хранение данных: Amazon S3, Amazon DynamoDB, Amazon RDS
API: Amazon API Gateway
Приложения для интеграции: Amazon EventBridge, Amazon SNS, Amazon SQS
CloudWatch Events - планировщик задач
Amazon SNS (simple notification services) - нотификация по емейл, смс и т.д.
Инструментальные средства: AWS Step Functions
Стриминг и анализ данных: Kinesis
Авторизация: AWS Cognito
CloudWathc Logs - Логи
Поддерживаемые паттерны.
Очереди
Шина событий
Издатель/подписчик
Оркестрация (Цепочка функций, Асинхронные API HTTP, Наблюдение)
Эволюция облачных платформ.
До появления облачных платформ существовала четкая граница между разработкой и использованием. Для развертывания приложения приходилось заботится о настройке сервера и всех зависимочтей проекта.
К счастью, с появлением технологии виртуализации (например, Hyper-V) и виртуальных машин возникла концепция инфраструктуры как услуги (IaaS).