Безсерверні обчислення
Безсерверні обчислення (англ. serverless computing) — модель хмарних обчислень для яких платформа динамічно керує виділенням машинних ресурсів. Іноді безсерверні обчислення також іменують «Функція як послуга» (англ. Function as a Service, FaaS), тому що одиницею коду є функція, яка виконується платформою.[1] По суті для виконання одного запиту створюється окремий контейнер, який знищується після виконання.[2]
Звісно безсерверні обчислення потребують апаратне забезпечення і цей термін не варто розуміти буквально. Ця назва використовується тому, що користувачам такої платформи не треба мати справу з налаштуванням серверів для запуску коду: усі серверні налаштування, планування обчислювальних ресурсів цілком приховані від користувачів і керуються платформою. Безсерверний код може бути частиною застосунка побудованого на традиційній архітектурі, наприклад, на мікросервісах.
Безсерверні середовища виконання
Платформа AWS Lambda, випущена компанією Amazon в 2014[3] році була першою загальнодоступною платформою що пропонувала безсерверні обчислення. Наразі AWS Lambda підтримує Node.js, Python, Java, C Sharp і Go.
Google Cloud Platform пропонує Google Cloud Functions. Для написання функцій використовується JavaScript, для виконання — Node.js.
IBM пропонує OpenWhisk в якості безсерверного середовища виконання з відкритим початковим кодом. OpenWhisk має підтримку Node.js, Python, Java, та Swift.
Ще одним середовищем є Azure Functions від Microsoft Azure.
Безсерверні бази даних
Безсерверні бази даних розширюють модель безсерверного виконання до рівня баз даних.
Azure Data Lake це сховище даних з високим рівнем масштабування і аналітики. Розгортається в Microsoft Azure. Azure Data Lake Analytics надає розподілену інфраструктуру що динамічно виділяє або вивільнює ресурси, таким чином, клієнт платить лише за використані послуги.
FaunaDB глобально розподілена, транзакційна база даних, що базується на технології від Twitter. Вона охоплює декілька хмарних провайдерів з моделлю оплати «плати по ходу».
Переваги
Ціна
Безсерверні обчислення більш ефективні в плані ціни ніж оренда серверів, які зазвичай мають значне недовикористання ресурсів або простій.[4]
Час
Немає необхідності витрачати час на встановлювання та налаштування систем для масштабованості і виділення ресурсів — це відповідальність платформи, яка завжди слідкує за тим, щоб кількість виділених ресурсів відповідала потребам.[4]
Швидкість розробки
Розробник не повинен хвилюватись, наприклад, за обробку HTTP запитів у коді, що спрощує розробку і підвищує її продуктивність.
Недоліки
Продуктивність
Безсерверний код може страждати від затримки на запуск в порівнянні з виділеним сервером який постійно запущений. Причиною тому є автомасштабування — платформа зменшує або зупиняє потужності коли немає викликів безсерверного коду.
Моніторинг і зневадження
Діагностика проблем і пошук вад можуть бути ускладненими в порівнянні зі зневадженням на традиційних серверах. Особливо це стосується проблем продуктивності та надлишкового використання ресурсів.[5]
Примітки
- Haines, Steven. Serverless computing with AWS Lambda, Part 1. JavaWorld (англ.). Процитовано 30 січня 2018.
- Deep Dive into Architecture - Scalable microservices with Kubernetes - Udacity
- Miller, Ron. Amazon Launches Lambda, An Event-Driven Compute Service. TechCrunch (англ.). Процитовано 30 січня 2018.
- Miller, Ron. AWS Lambda Makes Serverless Applications A Reality. TechCrunch (англ.). Процитовано 30 січня 2018.
- MSV, Janakiram. PaaS Vendors, Watch Out! Amazon Is All Set To Disrupt the Market. Forbes (англ.). Процитовано 30 січня 2018.