Безсерверні обчислення

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку

Безсерверні обчислення (англ. 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]

Примітки[ред. | ред. код]

  1. Haines, Steven. Serverless computing with AWS Lambda, Part 1. JavaWorld (англ.). Архів оригіналу за 7 лютого 2018. Процитовано 30 січня 2018. 
  2. Deep Dive into Architecture - Scalable microservices with Kubernetes - Udacity
  3. Miller, Ron. Amazon Launches Lambda, An Event-Driven Compute Service. TechCrunch (англ.). Процитовано 30 січня 2018. 
  4. а б Miller, Ron. AWS Lambda Makes Serverless Applications A Reality. TechCrunch (англ.). Процитовано 30 січня 2018. 
  5. MSV, Janakiram. PaaS Vendors, Watch Out! Amazon Is All Set To Disrupt the Market. Forbes (англ.). Процитовано 30 січня 2018.