Jesus prays in the clouds.
В этой статье я хочу познакомить вас с основными понятиями в теме облачных вычислений. Рассмотрим также лидеров рынка среди провайдеров облачных технологий и их услуги.
Термин «облако» (с англ. — cloud) — используется для абстрактного описания удаленного сервера с доступом через сеть. Когда нужно отметить такие серверы схематично или на сетевых диаграммах, то изображают именно облако.
Обычным пользователям облако описывают как все то, к чему есть доступ через интернет.
Когда говорят, что что-то хранится в облаке, подразумевается — на удаленном сервере.
Другой связанный термин — это облачные вычисления (Cloud Computing). Приблизительно полвека назад начали говорить об облачных вычислениях как одной из форм публичного сервиса (public utility), которая, например, как и в случае с электричеством, однажды будет служить для решения повседневных задач.
С развитием веб-технологий, широкополосного доступа, железа серверов, различных технологий кластеринга и грид-вычислений, виртуализации и мультиарендности такая форма публичного сервиса стала доступна уже сегодня.
Существует много определений термина Cloud Computing, в том числе достаточно точные от Gartner Glossary или Forrester Research. Наиболее удачным мне кажется определение NIST (National Institute of Standards and Technology).
Облачные вычисления описываются как модель обеспечения повсеместного и удобного доступа по запросу через сеть к общему пулу вычислительных ресурсов (сетей, хранилищ, сервисов, серверов и т.п.). Они могут быть оперативно предоставлены с минимальным взаимодействием с провайдером.
В NIST также определили пять основных характеристик облачных сервисов:
NIST рассматривает Cloud Computing с точки зрения трех сервис-моделей. Это набор компонентов для разработки продукта: от настройки низкоуровневой инфраструктуры до готовых к использованию бизнес-компонентов.
Провайдер поддерживает, заменяет и физически защищает серверы и другое железо — таким образом это перестает быть проблемой для заказчика.
Заказчик занимается только теми компонентами, которые лежат над гипервизером. То есть он изолируется от железа, занимается настройкой операционной системы, файловой системой хранилища, деплоем приложения или контейнера. Как пример, к решениям IaaS относятся Compute Engine от Google и EC2 от Amazon, сервисы DigitalOcean провайдера.
Провайдер занимается настройкой сети, ОС, хранилища и т.д. Здесь все зависит от потребностей клиента. Заказчику остается «прослойка» для развертывания и запуска приложения, где можно описать бизнес-логику выполнения.
В качестве примера можно поднять базу данных и отвечать за логику наполнения БД, ее модель, схему. В этом случае провайдер следит за масштабированием, размером дисков, бекапом базы, балансировкой нагрузки и так далее. В качестве примеров PaaS могу упомянуть Pub/Sub от GCP и Kinesis от Amazon, сервисы Heroku провайдера.
Провайдер продает готовый к использованию продукт, который можно кастомизировать в рамках существующей платформы. Таких продуктов много. Это могут быть сервисы для бизнес-аналитики, где не нужно с нуля заботиться об инфраструктуре и писать код-базу продукта, а можно использовать существующий интерфейс. Другие примеры — Google Apps, Salesforce, GitHub, Jira.
С помощью этой иллюстрации посмотрим, какие компетенции принадлежат провайдеру, а какие — команде поддержки продукта:
Что касается первой колонки On premises — здесь нет провайдера, который поможет развернуть систему с нуля. Пользователю нужно самостоятельно заниматься всеми аспектами своей системы. Преимущественно это сильная команда инфраструктуры, которая занимается железом, сетью, организацией дата-центров, возможно, еще и ПО для создания виртуалок и, наконец, разработкой приложения.
В случае IaaS требования немного проще. Обычно здесь оперирует команда DevOps. Эти специалисты разворачивают уровень, обеспечивающий выполнение системы. Здесь настраиваются процессы CI/CD, происходит их поддержка, мониторинг, настройка имеющихся инструментов для создания виртуалок, контейнеров — то есть среда выполнения.
NIST выделяет четыре модели развертывания в облаке:
Один из первых провайдеров Cloud Computing была компания Salesforce. В конце 1990-х компания начала предоставлять свои удаленные серверы для коммерческого использования. Позже к ним присоединился Amazon, запустив в 2002 году Amazon Web Services. В 2010 году на рынке появилась платформа Microsoft Azure, а через три года — Google Cloud Platform.
Ссылаясь на исследование Gartner, наиболее популярные провайдеры облачных услуг — Amazon Web Services, Azure от Microsoft и Google Cloud Platform (уже несколько лет подряд). Рассмотрим немного поподробнее каждый из них.
Наиболее зрелый и проверенный поставщик. В соответствии с рекомендациями по использованию — ничего конкретного, поскольку если продукт, неважно сложной или простой архитектуры, можно запустить в виртуализированной среде, это можно сделать и в AWS.
Среди сильных сторон — это лидер на рынке, проверенный временем. AWS включает в себя все основные сервисы для разработки и в то же время продолжает развивать новые и инновационные сферы. Провайдеру доверяют развертывание критической инфраструктуры с большими рабочими нагрузками и продукты из чувствительных доменов. Есть много кредитов и скидок, которые предлагают стартапам и новичкам, а также сертификатов и лицензий на требования различных регуляторов.
Среди недостатков — богатое разнообразие сервисов, требующих глубокой технической экспертизы при выборе. В то же время AWS — это большая платформа, где что-то постоянно дорабатывается, меняется с точки зрения технологий и практик. А это создает трудности даже для самых гибких команд. Также есть некоторые сырые сервисы с точки зрения коммерческого использования (хотя по ним предоставляются скидки).
Платформа предоставляет немного меньше, чем AWS. Ее главное преимущество — широкая интеграция с продуктами материнской компании и разнообразные партнерские программы (VMware, NetApp, Red Hat, Cray, Databricks и так далее). Также в Azure активно развиваются направления Edge Computing и IoT.
По данным Gartner, к недостаткам платформы часто относятся замечания клиентов на периодические проблемы с SLA в критических сервисах, сложности при заключении коммерческих контрактов и недостаточное качество платной технической поддержки.
Основные возможности подобны AWS и Azure. В том же исследовании Gartner особо выделили упор платформы на работу с Big Data, Machine Learning и аналитикой. А еще в Google предлагают более выгодные условия, что объясняется желанием привлечь часть рынка. Правда иногда это создает сложности для клиентов. GCP может переводить заказчиков на другие тарифные сетки позже уже при работе с пользователем. К минусам можно отнести некоторые трудности в сотрудничестве с энтерпрайз-компаниями. Это больше связано с быстрым ростом и организационной незрелостью платформы.
Возможности разных клауд-провайдеров схожи. Разница лишь в особенностях использования тех или иных сервисов. Рассмотрим распространенный пример дата пайплайна — когда нужно организовать работу с большим массивом данных. Основными сервисами могут быть:
Все эти сервисы развернуты вокруг таких основных компонентов клауда, как нетворкинг, компьютер и IAM (Identity & Access Management).
Так что подведем небольшой итог. Система в облаке состоит из сервисов. Кроме технических деталей и терминологии, у каждого провайдера есть набор подобных сервисов. Зная, как построить решение на одном клауде, вы уже сможете построить нечто похожее на другом.
Следующая моя статья на Highload будет посвящена бизнес-драйверам и рискам миграции в облако, а также best practices в проектировании облачных приложений. Так что не пропустите!
В благословенные офисные времена, когда не было большой войны и коронавируса, люди гораздо больше общались…
Вот две истории из собственного опыта, с тех пор, когда только начинал делать свою карьеру…
«Ты же программист». За свою жизнь я много раз слышал эту фразу. От всех. Кто…
Отличные новости! Если вы пропустили, GitHub Copilot — это уже не отдельный продукт, а набор…
Несколько месяцев назад мы с командой Promodo (агентство инвестировало в продукт более $100 000) запустили…
Пару дней назад прочитал сообщение о том, что хорошие курсы могут стать альтернативой классическому образованию.…