Облачные технологии — удобное решение для бизнеса, позволяющее использовать вычислительные мощности провайдера. Однако нельзя считать их “волшебной коробочкой”, гарантирующей 100% неубиваемость и доступность. Облако — это скорее про быстрое получение необходимых мощностей без создания собственных сервисов. В бекенде работают те же сервисы, но обслуживанием платформы занимается другая компания.
Что такое облако?
Если рассматривать облако и обычный хостинг, то первая технология отличается по нескольким моментам:
- Делегирование ответственности за инфраструктуру и другие элементы архитектуры.
- Быстрый доступ к необходимому объему вычислительных мощностей.
- Перенос всех эксплуатационных сложностей с компании-клиента на провайдера облачных услуг.
В облаке можно реализовать любую функциональность, установить на них нужные приложения и т. д., как и на локальном сервере. Однако на создание собственной серверной нужны крупные стартовые вложения. Нужно купить оборудование и нанять специалистов, что может обойтись компании в несколько миллионов рублей.
Рынок облачных решений в России
Лидером мирового рынка еще в 2006 году стал Amazon с его AWS. Другие компании (Microsoft Azure, Google Cloud) предлагают примерно такие же решения. Разница в основном заключается в тарифных планах. Российские провайдеры решили развиваться в этом же направлении, опираясь на опыт зарубежных конкурентов.
В 2022 году иностранные провайдеры ушли из России, поэтому лидерами сразу стали отечественные аналоги:
- Yandex Cloud.
- Selectel.
- T1 Cloud.
- Megafon Cloud.
- КРОК Облачные сервисы.
- Timeweb Cloud.
Большая часть провайдеров предлагает все необходимые услуги для бизнеса — S3-хранилищ, database-as-a-service (DBaaS), Kubernetes, Cloud-балансировщики и т. д. При этом российские провайдеры развивают такую технологию, как Virtual Desktop Infrastructure. Она позволяет установить на сервер офисный софт и другие программы и работать с ним, как с обычным ПК.
Уровни абстракции облачных услуг
Если компания планирует пользоваться облаком, то нужно учитывать не только предлагаемую функциональность, но и уровень абстракции. От них зависят принцип работы сервиса и возможные сложности.
IaaS (Infrastructure-as-a-service)
Данная модель предполагается, что клиент получает доступ к вычислительным мощностям в виде виртуальных серверов, сетевых ресурсов и других компонентов, которые нужны для их эксплуатации. IaaS похожа на стандартный вариант низкоуровневого администрирования. Однако в случае с облаком серверная часть стала виртуальной, и клиент отвечает только за нее. Если же сама машина повредится (например, сломается диск), то провайдер сам устранит поломку.
Особенности Infrastructure-as-a-service — нужно учитывать риски недоступности региона, задержки сервера до клиента и самостоятельно управлять операционной системой.
PaaS (Platform-as-a-service)
Это второй уровень абстракции, который больше подходит компаниям, не имеющим специалистов для обслуживания облачной инфраструктуры. Клиент получает доступ к базовому программному обеспечению, развернутому на облаке (например, базе данных или контрольной панели Kubernetes).
В случае с PaaS не придется волноваться об инфраструктуре и заниматься настройкой репликации, резервным копированием, отказоустойчивостью и т. д. Компания просто управляет сервисов, используя абстрактные мощности (например, размер жесткого диска, объем оперативной памяти).
SaaS (Software-as-a-service)
Провайдеры берет на себя полную ответственность за работу как аппаратной, так и программной составляющей облака. Поставщик предоставляет клиенту API, онлайн-сервис или программу для доступа к сервису, который он поддерживает.
Пример SaaS — Gitlab. Он работает на стороне провайдера, поэтому пользователю не нужно заниматься обновлениями, резервированием данных. В зоне ответственности клиента находится только управление софтом, интегрированным в его бизнес-процессы.
Виды облаков
Облачные платформы разделяют на 3 вида в зависимости от того, сколько пользователей работает с ними:
- Публичные. Провайдер предлагает свои услуги всем клиентам, готовым оплатить их по тарифу. К примеру, Amazon, Yandex или Microsoft.
- Частные. Такой вариант встречается у корпораций. Мегафон создал собственный облачный сервис для решения внутренних задач. По функциональности частные облака не отличаются от публичных.
- Гибридные. Данный вариант стал возможен благодаря появлению гибридных серверов. Компании имеют собственный сервер в офисе. Если же его мощности не хватает, то часть вычислений отдают на аутсорс. Для этого подключаются к Yandex Cloud или AWS.
Что предлагают провайдеры облачных решений
AWS — один из первых провайдеров, который стал законодателем мод в индустрии. Российские и зарубежные аналоги во многом копируют его. Поэтому после ухода Amazon с отечественного рынка бизнес может подключиться к другому провайдеру, не почувствовав какую-то разницу.
Разберем основные функции AWS.
Autoscaling
Это метод, используемых в облаке, который позволяет регулировать объем вычислительных ресурсов в зависимости от нагрузки. EC2-инстансы объединены в одну группу, которая автоматически масштабируется с опорой на показатели мониторинга.
Пример автоскейлинга — подключение дополнительных узлов с worker’ами на Go для обработки поступающих запросов. Триггерами для масштабирования могут стать метрика утилизации процессора или большая очередь в redis. Они сигнализируют о том, что воркеры просто не успевают.
Load balancer
Второй важный компонент — балансировщик нагрузки, распределяющих нагрузку между инстансами приложения в backend. Провайдеры самостоятельно перенаправляют задачи в зависимости от состояния машину.
Раньше такой функции не было, из-за чего клиентам приходилось подключать дополнительные виртуальные машины, настраивать haproxy или nginx, подключить autodiscovery при создании новых узлов. Такой вариант сравнительно сложен в реализации и требует найма разработчиков.
Application Firewall
Amazon создал инструмент AWS WAF — встроенная в серверы защита от различных видов хакерских атак. Она способна отсеивать ботов от реальных пользователей. Фаервол защищает приложение, онлайн-сервис и снижает риски атак. Пока AWS WAF — лучшее решение на рынке облачных технологий и на российском рынке нет полных аналогов. Однако отечественные провайдеры также предлагают свои решения для защиты инфраструктуры от атак.
Content delivery network
CDN — важный элемент IT-инфраструктуры, который нужен для оптимизации доставки и дистрибуции контента в интернете. У облачных провайдер с развитой инфраструктурой есть ЦОД в локациях с большой плотностью населения. Наличие серверов в разных точках страны или мира и Content delivery network решает сразу 2 задачи:
- Минимизация задержки между клиентским запросом и доставкой ответа.
- Снижение нагрузки на корпоративный backend. Вместо обработки типичных запросов в бэкенде, можно делегировать это на распределенный CDN.
S3
Это файловый хостинг, встроенный в экосистему Amazon Web Services. Здесь клиенты могут хранить и получать данные. При этом пользователи настраивают бакеты, версионирование и все остальное, что нужно для работы с контентом.
База данных
У американского провайдера есть сервис Amazon Relational Database Service, который позволяет быстро создать и настроить распределенную базу данных. Не нужно искать специалистов и разворачивать собственную БД. Клиент получает готовый к работе и отказоустойчивый кластер.
Физическая связность
Облачный сервис — это не только центры обработки данных в различных странах. Между ними топовые провайдеры создают сети оптоволоконных кабелей, которые по скорости передачи данных обходят все существующие аналоги. Отечественные компании обычно имеют сети только внутри СНГ, а Amazon создал трансокеаническую сеть кабелей в 25 регионах со 108 точками подключения.
Благодаря физической связности регионов компании могут сделать свои сервисы и приложения геораспределенными. При этом конечный пользователь не будет сталкиваться с задержками, а данные по пути точно не украдут. Информация будет идти по выделенным физическим линиям, созданным провайдером.
Если говорить о гибридной инфраструктуре, то компании могут подключить внутреннюю инфраструктуру к линиям провайдера, самостоятельно проведя оптоволоконные линии. В результате физические серверные будут объединены с облачной частью выделенными линиями.
Что нужно знать об Immutable infratstructure
Облачные решения, реализованные по этому подходу состоят из 2 компонентов:
- Stateless-часть. Инстансы являются иммутабельными и идемпотентными, т. е. они не сохраняют состояния и изменяют принципы работы в зависимости от накопленного состояния. Они могут хранить исполняемые файлы, скрипты, статичный контент, но требующие сохранения данные (например, user generated content) они загружают в stateful-часть.
- Stateful-часть. Ее реализуют по классической схеме с выделенными серверами или облачными сервисами, объектными и блочными хранилищами.
Создание комплексной инфраструктуры позволяет компания обновлять приложения посредством пересоздания stateless-инстансовс базовых имиджей и быстро масштабировать, запуская дополнительные экземпляры.
Заключение
Облако стало практически инфраструктурным фреймворком. Благодаря API и различным подходам к реализации клиенты могут получить инфраструктуру интегрированных сервисов, которые будут удовлетворять потребности бизнеса. Провайдеры предлагают гибкие и удобные решения, которые по функциональности не уступают созданию собственных серверов. При этом компании не нужно заботиться об обслуживании машин, так что они могут сконцентрироваться на решении бизнес-задач, пока поставщик облачных услуг занимается обновлениями и масштабированием.