Справка по аббревиатурам облачных услуг

14 Августа 2021

As-a-Service-PNGHQ2.pngВозможно вы уже слышали что-нибудь о некоторых из следующих технологий: IaaS, PaaS, SaaS, DaaS, FaaS, DBaaS. Если вы не инженер DevOps, то вы, вероятно, слышали об этих концепциях, но не обо всех. Думаю, даже если вы использовали некоторые из них, вы, скорее всего, не знаете тонкости их применения. Возможно, вы даже использовали некоторые из них в проектах, не зная названия применяемой концепции.

Вне зависимости от технического бэкграунда пользователя, рассмотрим подробнее, зачем вообще переходить на облачную архитектуру, чтобы лучше понять, что они собой представляют.

  1. Аварийное восстановление - у вас может быть много кластеров данных по всему миру, например, в США, Великобритании, Японии, Австралии, и если где-то случится ураган, наводнение или лесной пожар, вы можете клонировать свои данные из уцелевших хранилищ данных.

  2. Доступность - допустим, ураган в Пуэрто-Рико, где у нас есть нерушимые серверы в бомбоубежище, но там отключено электричество, так что на два дня Пуэрто-Рико полностью отрезан от остального мира. К счастью, у нас есть другие серверы в Германии, поэтому веб-приложение все еще доступно.

  3. Масштабируемость - представим, что у нас есть большая серверная комната, поэтому, когда количество пользователей нашего приложения, данных и запросов вырастет, мы сможем разместить там новые процессоры и модули ОЗУ, но в конечном итоге не останется места, чтобы разместить больше. К счастью, с облачной архитектурой это больше не проблема, потому что вы можете использовать ресурсы, расположенные в любой точке мира.
  4. Никаких затрат (по крайней мере для клиентов) на некоторые базовые функции - развертывали ли вы когда-нибудь веб-приложение? Вы покупаете свой собственный сервер или просто пользуетесь каким-либо сервисом, например Heroku, бесплатно?
  5. Простота - продолжим тему развертывания. Как вы развертываете приложение? Каждый раз вручную? Или вы создаете свою собственную систему непрерывного развертывания? Или вы просто пользуетесь готовыми сервисами, такими как Heroku или Google App Engine?
  6. Автоматические обновления программного обеспечения - например, вы используете mLab и периодически бесплатно устанавливается обновленная версия MongoDB с возможным временем простоя. В случае облачной архитектуры время простоя может практически отсутствовать.
  7. Работа из любого места - например, вы можете редактировать Google Docs с любого устройства или отправить код в репозиторий GitHub с любого компьютера.
  8. Корпоративная коллаборация - например, таблицу Google могут редактировать многие пользователи, даже если им предоставлены различные уровни разрешений.
  9. Контроль версий - вы можете использовать такую ​​платформу, как GitHub, BitBucket, GitLab, или просто управлять версиями документов в Google Docs или Confluence.
  10. Безопасность - даже если ваш ноутбук, планшет или смартфон украден, вы можете сделать резервную копию в DropBox, Google Диске или iCloud.

Итак, далее речь пойдет об облаке в контексте веб-приложений.

Если облака для вас
не просто теория
Широкий спектр услуг
по выделенным северам
и мультиклауд-решениям
Конфигурация VPS и бесплатный тест уже через 2 минуты
Организация вашей IT-инфраструктуры на основе мультиклауд-решения

Основные типы серверной архитектуры

Монолит. Вся серверная часть развернута в одном месте, поэтому ее очень сложно масштабировать для больших приложений.

Микросервисы. Бэкэнд разделен на множество (в основном это зависит от размера приложения, но обычно от 10 до 80) микросервисов, которые могут быть развернуты на разных физических серверах, каждый микросервис должен отражать бизнес-функцию, например, аутентификацию, платежи, электронную почту или инвентарь. .

Функции. В отличие от монолита и микросервисов, они не являются демонами (работают постоянно), а выполняются только в течение нескольких секунд, когда в этом есть необходимость. Примером может служить AWS Lambda, написанная на es7.

XaaS

Это общая аббревиатура, объединяющая в себе любые решения aaS.

DBaaS

База данных как услуга - это платформа, на которой размещается база данных, обеспечивающая резервное копирование, кластеризацию и высокий уровень доступности. Самыми популярными DBaaS являются Amazon Aurora, Amazon DynamicDB, mLab, IBM Cloudant и MongoDB Atlas.

IaaS

Инфраструктура как услуга представляет собой низший уровень управления из всех XaaS, что обеспечивает большую мощность, но требует настройки. IaaS предоставляет виртуальную машину, которую мы должны поддерживать.

Разница между IaaS и наличием физической серверной комнаты в том, что нам не нужно покупать какие-либо физические компоненты, а кроме этого, у нас могут быть серверы в разных частях мира. Однако по сравнению с другими XaaS, IaaS сложнее поддерживать, и для этого требуется опытный инженер DevOps, который настраивает виртуальные машины для эффективной и безопасной работы.

PaaS

Платформа как услуга - это простой способ развернуть приложение с использованием определенной технологии (например, Node.js, Ruby, PHP, Python, Java, .NET). Самые популярные платформы - Heroku и Google App Engine.

Как правило, вам не нужно настраивать непрерывную интеграцию. Просто отправьте коммит и она распознает, что приложение находится в Node.js, и запустит npm install (вы можете добавить дополнительные команды в сценарий postinstall, который запускается NPM после установки зависимостей) и npm start. Если приложение написано на Ruby, оно будет запускать установку пакета и аналогично для других сред.

Главный недостаток в том, что он не слишком гибкий, потому что невозможно установить собственные системные зависимости (например, из apt-get), и вы можете использовать только одну из доступных технологий. Поэтому, если вы создаете свой собственный язык программирования, который не работает на каких-либо доступных платформах (например, в Node.js вы можете использовать TypeScript, CoffeeScript, Elm, кроме Java), но компилируется непосредственно в байт-код, вы не можете использовать PaaS.

Еще один недостаток - данные вне сохранности. Если, например, вы используете Heroku как Paas и mLab как DBaaS, доступ к вашим данным будет иметь не только mLab, но и Heroku, потому что вы никогда не знаете, какой код на самом деле выполняется на сервере.

SaaS

obl-hosting-2.jpgSaaS услуги предоставляют готовое программное обеспечение, такое как библиотеки NPM или GEM, но не требуют от нас какого-либо развертывания или обслуживания сервера.

Простым примером является почтовое приложение, такое как SparkPost или SendGrid. Все, что нам нужно сделать, это отправить HTTP-запрос с адресом отправителя электронной почты, адресом получателя, темой электронной почты, содержимым электронной почты и так далее. С другой стороны, без такого инструмента нам пришлось бы настроить SMTP-сервер и масштабировать его по мере роста количества писем.

Другие примеры: Google Apps (например, Google Drive), DropBox и Slack - эти приложения могут использоваться пользователем, но они также имеют отличные возможности интеграции. Помимо уже существующего Storage as a service, некоторые компании (например, SAP) предлагают писать новые SaaS по запросу.

DaaS

Data as a service имеет много общего с SaaS, ее можно даже рассматривать как подмножество SaaS. В частности, это API (обычно HTTP), который возвращает некоторые данные, например курсы валют, спортивные результаты или прогнозы погоды.

Что такое самый большой DaaS? Вероятно, Facebook, собирающий много данных и предоставляющий их для приложений Facebook. Другими популярными DaaS являются Google Maps, Google Translate API или AccuWeather.

FaaS

lambda логоFaaS или функция как услуга даже проще, чем PaaS. Как следует из названия, она основана на функциях, которые могут запускаться определенным событием, поэтому это архитектура, основанная на событиях. Уровень простоты настолько высок, что ее называют бессерверной архитектурой. Разработчик просто пишет функцию, и ему не нужно задумываться о таких темах, как развертывание, ресурсы сервера, масштабируемость. Это возможно потому, что FaaS автоматически масштабируется.

Наиболее ярким примером является AWS Lambda, но есть и другие, такие как Google Cloud Functions, Microsoft Azure Functions, Iron.io и Webtask.io.

Один из самых больших недостатков FaaS - поддерживаемые технологии. Доступных технологий даже меньше, чем с PaaS. Например, AWS Lambda поддерживает .NET, Java, Node.js и Python.

Что умеет FaaS?

Давайте разделим функции в соответствии с особенностями Microsoft Azure Functions:

  • Общий вебхук - обрабатывает HTTP-запрос, как контроллер внутри монолита или микросервиса, может быть вызван либо из нашей системы (другая функция или микросервис), либо из внешней системы, поддерживающей вебхуки (это означает, что внешняя система отправляет HTTP-запрос на наш вебхук) как Stripe или Slack.

  • Вебхук GitHub - определенный вид вебхуков вызываемых событиями GitHub, в архитектуре микросервисов или монолита, что может быть выполнено с помощью CI.

  • TimerTrigger - вызывается в указанное время, в архитектуре микросервисов или монолита может выполняться внутри кода или с помощью инструмента организации очереди, такого как RabbitMQ.

  • CosmosDBTrigger - вызывается при добавлении или обновлении документов Cosmos DB, поэтому он работает как триггер базы данных. На платформах, отличных от Microsoft Azure Functions, функции FaaS могут запускаться из других СУБД.

  • BlobTrigger - вызывается, когда большие двоичные объекты службы хранилища Microsoft Azure добавляются в контейнеры. Полезное приложение для изменения размера изображений

  • QueueTrigger - позволяет обрабатывать очереди, в архитектуре монолитов или микросервисов может быть достигнуто с помощью инструмента организации очередей, такого как RabbitMQ.

  • EventHubTrigger - используется в Интернете вещей

Как видите, с помощью FaaS мы можем реализовать любой алгоритм (полнота по Тьюрингу), потому что мы можем обрабатывать HTTP-запросы, отправить другой HTTP-запрос и, более того, мы можем обрабатывать время и очередность.

Чего не может FaaS?

Единственные ограничения касаются поддержки определенных технологий, например, данный провайдер FaaS не поддерживает протокол MQTT, поэтому для этого требуется приложение, которое преобразует MQTT в HTTP, другой формат, поддерживаемый в FaaS, или конечная часть системы, которая взаимодействует с пользователем (веб-приложение, мобильное приложение или настольное приложение) или физической средой (робот, проверяющий погодные условия, принтер) - все это может быть построено в архитектуре FaaS, но требует некоторых адаптеров за пределами мира FaaS .

Функции можно комбинировать с микросервисами, поэтому мы можем соединить FaaS с PaaS, но также можно построить весь бэкэнд на FaaS (с некоторыми ограничениями на технологии, используемыми на стороне бэкэнда).

Однако следует выделить еще один недостаток - мы пишем код, который работает на определенном FaaS (например, Microsoft Azure Functions), поэтому переход на другой FaaS (например, Google Functions) может потребовать переписывания даже половины кода, написанного как функции FaaS. С другой стороны, переход от одного PaaS к другому должен быть относительно простым.

MaaS

maas схемаMonitoring as a service или MaaS предоставляет решения безопасности, которые необходимы организациям, полагающимся на ИТ-инфраструктуру. Однако для эффективного и действенного мониторинга организация должна располагать современными технологиями, экспертами, обладающими передовыми техническими навыками, масштабируемыми процессами безопасности, и все это требует огромных затрат.

До появления электронных устройств, которые используются для предоставления услуг безопасности, для мониторинга использовались только человеческие ресурсы для выполнения всех этих действий, что само по себе неэффективно.

MaaS предлагает эффективное решение этой проблемы. Он обеспечивает круглосуточный мониторинг в режиме реального времени, сообщает о любых проблемах в инфраструктуре безопасности и защищает важные данные своих клиентов.

HaaS

Hardware as a service или аппаратное обеспечение как услуга представляет собой бизнес-модель, при которой компании продают пакеты, включающие оборудование, программное обеспечение, обслуживание и, иногда, установку, за ежемесячную плату. В рамках HaaS клиенты платят за услуги, следовательно, контракты HaaS часто включают соглашение об уровне обслуживания (SLA).

BaaS

Онлайн-служба резервного копирования, также известная как облачное резервное копирование или Backup as a service (BaaS), представляет собой метод внешнего хранения данных, при котором провайдер регулярно выполняет резервное копирование файлов, папок или всего содержимого жесткого диска на удаленное устройство.

Цель резервного онлайн-копирования проста и понятна: защитить информацию - будь то деловые или личные данные - от риска потери, связанной с ошибкой пользователя, взломом или любой другой неприятностью..

NaaS

Сеть как услуга (NaaS) - это модель облачных услуг, в которой клиенты арендуют сетевые услуги у провайдеров. NaaS позволяет клиентам управлять своими собственными сетями без поддержки собственной сетевой инфраструктуры.

Как и другие облачные сервисы, провайдеры NaaS запускают сетевые функции с помощью программного обеспечения, что по сути позволяет компаниям создавать свои собственные сети без использования оборудования. Все, что им нужно, - это подключение к Интернету.

Резюме

Как видите, многие из XaaS могут даже иметь один и тот же акроним, и одно может быть подмножеством другого. Сложный вопрос, какой XaaS следует использовать в том или ином проекте и конкретной ситуации. Разные инженеры DevOps могли бы выбрать совершенно разные решения. Оптимальный подход - создать архитектуру, ориентированную на микросервисы, в PaaS, потому что она сочетает в себе гибкость и простоту.

Конечно, мы должны облегчить себе жизнь, используя некоторые внешние SaaS, такие как интеграции SparkPost или Slack, и некоторые внешние DaaS, чтобы легко получать данные, такие как текущие курсы обмена валют. Более того, мы можем основать некоторую (5% ~ 20% в зависимости от потребностей) часть системы на FaaS - простых функциях без сохранения состояния, которые соединяют несколько сервисов, благодаря чему использование FaaS просто сэкономит время на развертывании и мониторинге.

Популярные услуги
Получить консультацию специалиста
Персональный ассистент
Cloud.Xelent