Когда мы работаем с облачными сервисами, то у нас есть возможность использовать различные типы сервисов (Iaas, Paas, Saas). Я раньше скидывал хороший пример
Pizza as Service, на котором видно в чем разница. Один из самых популярных сервисов на AWS - это
Lambda функции.
Идея простая. Например, нам нужно выполнить код. Обычно мы создаем виртуальную машину, используем крон (утилита на линукс, чтобы выполнять задачки по расписанию), чтобы запускать наш код по расписанию. Вместо этого, мы можем поместь наш код в Лямбду, и она будет выполнять его по необходимости, то есть
1)Мы экономим, нам не нужно использовать виртуальную машину
2)Мы повышаем устойчивость, так как возможность сбоя виртуальной машины и других компонентов достаточно велика, а если у нас еще много сложных взаимосвязий, то все легко может поломаться.
3)Решение может легко масштабироваться, потому что это сервис, который менеджиться AWS, мы только платим за использование.
Когда создают решение на AWS, очень часто используют Лямбду, для выполнения блоков кода.
Есть понятие
Monolithic vs. Microservices Architecture, то есть архитектура нашего решения монолитная или распределенная. Это используется не только для разработки ПО, но и для аналитики. Идея простая, мы хотим иметь независимые элементы системы, которые работают автономно, чтобы повысить производительно и стабильность решения. Особенно удобно для задач ML.
Я пока не использую этот подход, но это важный навык для инженера данных. Из простых примеров - у меня есть Redshift Data Warehouse, для его успешной работы мне нужно собирать статистику таблиц. Я могу использовать вирутальную машину и поставить скрипт на расписание, а могу использовать
Лямбду и она будет выполнять мой скрипт по сбору статистики. Таким образом, мне не нужна дополнительная виртуальная машина.