Найти тему
Точка контакта

Используем облака правильно

Оглавление

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

Что такое облако?

Если рассматривать облако и обычный хостинг, то первая технология отличается по нескольким моментам:

  1. Делегирование ответственности за инфраструктуру и другие элементы архитектуры.
  2. Быстрый доступ к необходимому объему вычислительных мощностей.
  3. Перенос всех эксплуатационных сложностей с компании-клиента на провайдера облачных услуг.

В облаке можно реализовать любую функциональность, установить на них нужные приложения и т. д., как и на локальном сервере. Однако на создание собственной серверной нужны крупные стартовые вложения. Нужно купить оборудование и нанять специалистов, что может обойтись компании в несколько миллионов рублей.

Рынок облачных решений в России

Лидером мирового рынка еще в 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 и различным подходам к реализации клиенты могут получить инфраструктуру интегрированных сервисов, которые будут удовлетворять потребности бизнеса. Провайдеры предлагают гибкие и удобные решения, которые по функциональности не уступают созданию собственных серверов. При этом компании не нужно заботиться об обслуживании машин, так что они могут сконцентрироваться на решении бизнес-задач, пока поставщик облачных услуг занимается обновлениями и масштабированием.