ru:https://highload.today/blogs/kak-ispolzuyut-oblaka-v-it-vse-chto-vy-hoteli-znat-ob-oblachnyh-tehnologiyah/ ua:https://highload.today/uk/blogs/yak-vikoristovuyut-hmari-v-it-vse-shho-vi-hotili-znati-pro-hmarni-tehnologiyi/
logo
Облака      19/12/2022

Как используют облака в IT: все, что вы хотели знать об облачных технологиях

Юрій Швидкий BLOG

Data Engineer в NIX

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

Что такое облачные технологии

Термин «облако» (с англ. — cloud) — используется для абстрактного описания удаленного сервера с доступом через сеть. Когда нужно отметить такие серверы схематично или на сетевых диаграммах, то изображают именно облако.

Обычным пользователям облако описывают как все то, к чему есть доступ через интернет.

Когда говорят, что что-то хранится в облаке, подразумевается — на удаленном сервере.

Другой связанный термин — это облачные вычисления (Cloud Computing). Приблизительно полвека назад начали говорить об облачных вычислениях как одной из форм публичного сервиса (public utility), которая, например, как и в случае с электричеством, однажды будет служить для решения повседневных задач.

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

Существует много определений термина Cloud Computing, в том числе достаточно точные от Gartner Glossary или Forrester Research. Наиболее удачным мне кажется определение NIST (National Institute of Standards and Technology).

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

В NIST также определили пять основных характеристик облачных сервисов:

Курс Англійської.
Тут навчають за методикою Кембриджу, завдяки якій англійську вивчили понад 1 мільярд людей. Саме вона використовується в найкращих навчальних закладах світу, і саме за нею створені курси.
Реєстрація на курс
  • On-demand self-service. Пользователь может самостоятельно выделить и управлять вычислительными ресурсами (при необходимости автоматизировать этот процесс) без коммуникации с провайдером.
  • Broad network access. Ресурсы должны быть доступны в сети.
  • Resource pooling. Общий пул ресурсов сразу могут использовать несколько пользователей, мультиарендность.
  • Rapid elasticity. Облачная модель должна уметь оперативно и при необходимости автоматически масштабироваться в соответствии с нагрузкой.
  • Measured service. Отслеживание и измерение облачных услуг позволяет рассчитать и взимать плату за услугу.

NIST рассматривает Cloud Computing с точки зрения трех сервис-моделей. Это набор компонентов для разработки продукта: от настройки низкоуровневой инфраструктуры до готовых к использованию бизнес-компонентов.

Infrastructure as a Service

Провайдер поддерживает, заменяет и физически защищает серверы и другое железо — таким образом это перестает быть проблемой для заказчика.

Заказчик занимается только теми компонентами, которые лежат над гипервизером. То есть он изолируется от железа, занимается настройкой операционной системы, файловой системой хранилища, деплоем приложения или контейнера. Как пример, к решениям IaaS относятся Compute Engine от Google и EC2 от Amazon, сервисы DigitalOcean провайдера.

Platform as a Service

Провайдер занимается настройкой сети, ОС, хранилища и т.д. Здесь все зависит от потребностей клиента. Заказчику остается «прослойка» для развертывания и запуска приложения, где можно описать бизнес-логику выполнения.

В качестве примера можно поднять базу данных и отвечать за логику наполнения БД, ее модель, схему. В этом случае провайдер следит за масштабированием, размером дисков, бекапом базы, балансировкой нагрузки и так далее. В качестве примеров PaaS могу упомянуть Pub/Sub от GCP и Kinesis от Amazon, сервисы Heroku провайдера.

Software as a Service

Провайдер продает готовый к использованию продукт, который можно кастомизировать в рамках существующей платформы. Таких продуктов много. Это могут быть сервисы для бизнес-аналитики, где не нужно с нуля заботиться об инфраструктуре и писать код-базу продукта, а можно использовать существующий интерфейс. Другие примеры — Google Apps, Salesforce, GitHub, Jira.

С помощью этой иллюстрации посмотрим, какие компетенции принадлежат провайдеру, а какие — команде поддержки продукта:

Что касается первой колонки On premises — здесь нет провайдера, который поможет развернуть систему с нуля. Пользователю нужно самостоятельно заниматься всеми аспектами своей системы. Преимущественно это сильная команда инфраструктуры, которая занимается железом, сетью, организацией дата-центров, возможно, еще и ПО для создания виртуалок и, наконец, разработкой приложения.

В случае IaaS требования немного проще. Обычно здесь оперирует команда DevOps. Эти специалисты разворачивают уровень, обеспечивающий выполнение системы. Здесь настраиваются процессы CI/CD, происходит их поддержка, мониторинг, настройка имеющихся инструментов для создания виртуалок, контейнеров — то есть среда выполнения.

NIST выделяет четыре модели развертывания в облаке:

  1. Public cloud. Пользователи в любой точке мира подключаются к клауду для управления вычислительными ресурсами в дата-центре через открытый интерфейс.
  2. Private cloud. Инфраструктура внутри одной компании, которая по определенным причинам не может пойти в публичное облако, есть свой ЦОД. Доступ к клавуду возможен только внутри этой компании.
  3. Community cloud. Представляет собой сочетание нескольких организаций или общин, создавших единое облако для решения конкретных задач. Может быть развернута как в частном, так и в публичном облаке.
  4. Hybrid cloud. Это комбинация трех предыдущих моделей. Чаще всего это Private- и Public-клауды, интегрированные через VPN-тоннель. Подобная схема используется в разных ситуациях. К примеру, у компании есть дешевые серверы в Private для хранения чувствительных данных. При этом компания раз в месяц нуждается в тяжелых вычислениях. Но только для этого покупать дорогой сервер нецелесообразно. Поэтому такие сделки выгоднее запускать в Public и платить за фактическое использование оборудования.

Лидеры рынка cloud-технологий

Один из первых провайдеров Cloud Computing была компания Salesforce. В конце 1990-х компания начала предоставлять свои удаленные серверы для коммерческого использования. Позже к ним присоединился Amazon, запустив в 2002 году Amazon Web Services. В 2010 году на рынке появилась платформа Microsoft Azure, а через три года — Google Cloud Platform. 

Курс QA Manual (Тестування ПЗ мануальне).
Навчіться знаходити помилки та контролювати якість сайтів та додатків.
Записатися на курс

Ссылаясь на исследование Gartner, наиболее популярные провайдеры облачных услуг — Amazon Web Services, Azure от Microsoft и Google Cloud Platform (уже несколько лет подряд). Рассмотрим немного поподробнее каждый из них.

1Amazon Web Services

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

Среди сильных сторон — это лидер на рынке, проверенный временем. AWS включает в себя все основные сервисы для разработки и в то же время продолжает развивать новые и инновационные сферы. Провайдеру доверяют развертывание критической инфраструктуры с большими рабочими нагрузками и продукты из чувствительных доменов. Есть много кредитов и скидок, которые предлагают стартапам и новичкам, а также сертификатов и лицензий на требования различных регуляторов.

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

2Azure

Платформа предоставляет немного меньше, чем AWS. Ее главное преимущество — широкая интеграция с продуктами материнской компании и разнообразные партнерские программы (VMware, NetApp, Red Hat, Cray, Databricks и так далее). Также в Azure активно развиваются направления Edge Computing и IoT.

По данным Gartner, к недостаткам платформы часто относятся замечания клиентов на периодические проблемы с SLA в критических сервисах, сложности при заключении коммерческих контрактов и недостаточное качество платной технической поддержки.

3Google Cloud Platform

Основные возможности подобны AWS и Azure. В том же исследовании Gartner особо выделили упор платформы на работу с Big Data, Machine Learning и аналитикой. А еще в Google предлагают более выгодные условия, что объясняется желанием привлечь часть рынка. Правда иногда это создает сложности для клиентов. GCP может переводить заказчиков на другие тарифные сетки позже уже при работе с пользователем. К минусам можно отнести некоторые трудности в сотрудничестве с энтерпрайз-компаниями. Это больше связано с быстрым ростом и организационной незрелостью платформы.

Возможности разных клауд-провайдеров схожи. Разница лишь в особенностях использования тех или иных сервисов. Рассмотрим распространенный пример дата пайплайна — когда нужно организовать работу с большим массивом данных. Основными сервисами могут быть:

  • Object storage — распределенное хранилище, не накладывающее ограничений на формат хранения объектов. Позволяет настроить жизненный процесс данных: репликацию, размещение в некоторых регионах и т.д. В AWS для этого используется хранилище S3, в Azure — Blob Storage, в GCP — Cloud Storage.
  • Message queue — у каждой системы для работы с данными должна быть своя «кровеносная система», позволяющая перемещать данные между разными сервисами. К этой категории относятся Kinesis/Managed Kafka в AWS, Storage Queues в Azure и Pub/Sub в Google Cloud Platform.
  • Data ingestion tool — используется для интеграции внутренних сервисов обработки данных с любым источником данных. Это Glue в AWS, Data Factory в Azure и Cloud Data Fusion на базе GCP.
  • Compute engine — обычно это сервер, в который встроен фреймворк вроде Spark, Link или Storm для работы с данными в больших масштабах. Речь идет не просто о перемещении данных, а о реализации конкретных бизнес-задач. Например, прогона ML-моделей, аналитики и т.д. В AWS для этого есть EMR, в Azure — Data Explorer, в Google Cloud Platform — Dataflow/Dataproc.
  • MPP SQL DB — база данных, реализующая паттерн параллельной обработки. С ее помощью можно подготовить и проанализировать данные без потери масштаба. Позволяет аналитикам работать через SQL-интерфейс. Но это не традиционная БД, поскольку слои хранения и обработки разделены. Это как двигатель для трансляции SQL-запроса в распределенное приложение, выполняющее с данными определенную операцию. К примеру, это Redshift/Athena (AWS), Synapse Analytics (Azure), BigQuery (GCP).
  • Operational DB — применяются для выгрузки наиболее часто используемых данных. Обычно их немного, и поэтому нет смысла использовать MPP SQL DB и загружать ее постоянными реквестами, достаточно дорогими, учитывая их цену использования. Примеры операционных БД: BigTable(KV), Spanner(SQL)(GCP); DynamoDB(KV), Aurora(SQL)(AWS); CosmosDB(KV), Azure SQL(SQL)(Azure) и т.д.
  • Orchestration tools — необходимые для управления сложными процессами с заданным порядком выполнения тасков. С их помощью можно, скажем, прибавлять логику на том или ином этапе. У каждого провайдера есть свои инструменты оркестрации. В AWS это Data Pipeline, Azure имеет Data Factory, а в GCP есть Composer.

Все эти сервисы развернуты вокруг таких основных компонентов клауда, как нетворкинг, компьютер и IAM (Identity & Access Management).

Итоги

Так что подведем небольшой итог. Система в облаке состоит из сервисов. Кроме технических деталей и терминологии, у каждого провайдера есть набор подобных сервисов. Зная, как построить решение на одном клауде, вы уже сможете построить нечто похожее на другом.

Следующая моя статья на Highload будет посвящена бизнес-драйверам и рискам миграции в облако, а также best practices в проектировании облачных приложений. Так что не пропустите!

If you have found a spelling error, please, notify us by selecting that text and pressing Ctrl+Enter.

Курс Англійської.
Тут навчають за методикою Кембриджу, завдяки якій англійську вивчили понад 1 мільярд людей. Саме вона використовується в найкращих навчальних закладах світу, і саме за нею створені курси.
Реєстрація на курс

Этот материал – не редакционный, это – личное мнение его автора. Редакция может не разделять это мнение.

Топ-5 самых популярных блогеров февраля

Всего просмотровВсего просмотров
229
#1
Всего просмотровВсего просмотров
229
Всего просмотровВсего просмотров
209
#2
Всего просмотровВсего просмотров
209
QA в CodeGeeks Solutions
Всего просмотровВсего просмотров
156
#3
Всего просмотровВсего просмотров
156
Senior Project Manager at Nemesis
Всего просмотровВсего просмотров
99
#4
Всего просмотровВсего просмотров
99
Software Architect at Devlify
Всего просмотровВсего просмотров
95
#5
Всего просмотровВсего просмотров
95
Рейтинг блогеров

Ваша жалоба отправлена модератору

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: