Как облачные технологии изменили мир IT

Обложка: Как облачные технологии изменили мир IT
3

Облачные технологии стремительно завоевывают мир разработки. Сейчас не нужно иметь много денег или серьёзные вычислительные мощности в дата-центре для успешного начала работы стартапа. Достаточно приобрести соответствующий план подписки на сервисы любого поставщика облачных вычислительных мощностей. На сегодняшний день лидером является компания Amazon с ее облачным решением Amazon Web Services (AWS).

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

Что такое облачные технологии и чем они отличаются от традиционных

Для полного понимания темы необходимо знать основные определения в области облачных вычислений. Давайте разберёмся с базовыми понятиями:

  • Облачные вычисления — это вычислительные сервисы, такие как серверы, хранилища, базы данных, программное вычисление, которые доставляются к конечному пользователю по подписке, используя третье лицо в качестве провайдера интернета. В качестве примера облачных вычислений можно назвать электронную почту, например, Gmail, Yahoo, Яндекс.Почту; социальные сети, такие как Facebook, «ВКонтакте»; различные сервисы хранения данных, такие как Dropbox, Яндекс.Диск.
  • Облачный сервис — это IT-услуга, которая предоставляется облачным провайдером.
  • Облачный провайдер — компания, которая предлагает облачные сервисы для организаций и частных лиц.
  • Потребитель — организация или частное лицо, которое использует облачный сервис.
  • Pay as you go или pay per use — модель оплаты , в которой потребитель платит только за то, чем пользуется. Это очень похоже на счёт за услуги связи или интернета. В такой модели вы не платите за инфраструктуру, обслуживание, электричество, которые потребляется вычислительными мощностями. Вы оплачиваете только сервисы, которыми пользуетесь. Например, во многих облачных сервисах, которые предоставляют дисковое пространство, существует определённый лимит на использование гигабайт. Если пользователь хочет большее количество гигабайт, то ему надо доплатить.
  • Мультитенантность — это своего рода архитектура, в которой один экземпляр программного обеспечения работает на сервере и обслуживает нескольких клиентов.
  • «X» как сервис — некоторая облачная мощность, которая доставлена клиентам как сервис.

Ключевые характеристики облачных вычислений

Если вы поищете в любом поисковом сервисе, что такое облачные вычисления, то найдёте 5 ключевых характеристик. Я предлагаю разобраться с ними подробнее.

  • Предоставление облачных вычислений по запросу, по требованию (self-sevice, on-demand). Пользователь может использовать облачные ресурсы по мере надобности, автоматически и без человеческого взаимодействия. Пользователю не нужно физически присутствовать в вычислительном центре, достаточно лишь отправить набор команд через терминал или веб-сайт.
  • Широкий сетевой доступ. Это возможность быть доступным через сеть, используя стандартные механизмы — например, интернет.
  • Объединение ресурсов. Эта характеристика подразумевает предоставление ресурсов, которые объединены и способны работать для множества пользователей, используя мультитенантность.
  • Быстрая эластичность. Эта характеристика подразумевает возможность расширения или наоборот уменьшения количества и размера сервисов в зависимости от плана подписки пользователя. Причём пользователю не нужно осуществлять действий по увеличению в сервере железной составляющей. Например, если на вашем веб-сайте увеличилось число посетителей, то не нужно докупать оперативную память для обработки запросов или дополнительные жёсткие диски для увеличения базы данных. И наоборот, если нагрузка уменьшилась, вам не нужно обслуживать дорогой и мощный сервер. Вы просто можете изменять мощность сервера в пару кликов.
  • Измеряемый сервис. Эта характеристика подразумевает, то что все логи могут быть просмотрены.

Эти далеко не всё, что в данный момент использует AWS. Указанные характеристики могут дать лишь общее представление об облачных сервисах и подготовить к знакомству с AWS.

Модели предоставления облачных вычислений

Облачные вычисления предлагают четыре модели:

  • On-premises. Самая старая модель построения. Она предполагает, что всё оборудование установлено у владельца. Именно владелец должен осуществлять полный менеджмент и обслуживание оборудования.
  • IaaS. Инфраструктура как сервис. В этой модели предполагается, что пользователь не владеет инфраструктурой. Следовательно, он лишь покупает подписку на оборудование и не осуществляет его физическое обслуживание. Ярким примером такого подхода является использование сервиса Amazon EC2, в котором пользователь арендует сервер с операционными системами Windows или Linux. Пользователь также обязан осуществлять полное обслуживание программного обеспечения на таком сервере, вплоть до операционной системы.
  • PaaS. Платформа как сервис. В этой модели предполагается, что пользователь управляет лишь приложениями и данными. Остальную часть, такую как обслуживание оборудования, операционной системы и гипервизора, берёт на себя компания по предоставлению сервиса. Примером может служить AWS Elastic Beanstalk. В этом сервисе пользователь только загружает код. Он не беспокоится о том, на каком оборудовании тот будет работать, какая операционная система будет этим кодом управлять и т.д.
  • SaaS. Программное обеспечение как сервис. В этой модели всё управляется провайдером. Пользователь лишь концентрируется на своем бизнесе. Примером могут служить такие приложения, как Facebook или даже Dropbox.

Для лучшего понимания представлено изображение:

Схемы разных моделей представления облачных вычислений

Модели предоставления облачных вычислений

Это просто базовые модели инфраструктуры. Причём последние три делают фантастические вещи для выхода на рынок нового стартапа сегодня. Например, имея команду из нескольких человек и не имея достаточно денег для покупки дорогостоящего сервера, можно взять в аренду сервер на AWS и вывести на рынок новый продукт.

История облачных вычислений

История облачных вычислений неразрывна с историей развития AWS. Это самая популярная в мире облачная платформа, которая насчитывает более 200 различных сервисов. На этой временной шкале представлена её краткая история развития:

История развития AWS

Ключевые даты развития AWS

  • 2002 год — начало разработки;
  • 2004 год — тестовый запуск сервиса SQS;
  • 2006 год — запуск сервисов S3, EC2, SQS;
  • 2010 год — все сервисы онлайн-продаж перемещены в облако AWS;
  • 2012 год — запуск облачной NoSQL-СУБД DynamoDB;
  • 2015 год — продажи AWS достигли 1.57млрд $;
  • 2018 год — доход достиг 25 млрд $.

Инфраструктура

Как было сказано ранее, AWS насчитывает по крайней мере 200 сервисов. Они расположены в географически разнесённых центрах обработки данных. Amazon предъявляет серьёзные требования к доступу в них. Центры обработки данных располагаются в 25 регионах, объединяемых в группы по географической близости. Внутри регионов образуется несколько зон доступности (availability zone), коих насчитывается более 80.

Каждый регион имеет не менее двух зон доступности и физически изолирован от остальных регионов, но соединён посредством частной связи. Каждая зона доступности имеет по крайней мере один центр обработки данных, которые физически разделены и изолированы от остальных центров обработки данных. При этом у каждой зоны доступности есть так называемый Edge Location, который позволяет доставлять контент с как можно меньшей задержкой в сети до конечных пользователей.

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

Регионы покрытия AWS

Покрытие AWS

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

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

AWS IAM

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

  • Пользователь — позволяет создавать отдельных пользователей.
  • Роль — позволяет назначить роль пользователю.
  • Группа — позволяет управлять разрешениями с помощью групп.
  • Разрешения — позволяет назначить минимальные привилегии.
  • Аудит — позволяет провести аудит с помощью AWS CloudTrail.
  • Пароль — позволяет настроить политику требований к надежности паролей.
  • Ключи API — позволяет подключить прилежания с помощью программного доступа.

Более того, AWS поддерживает Identidy Federation, что позволяет подключить уже созданные роли в Active Directory в Windows Server. Рассмотрим пример. Пользователь заходит с помощью своей учётной записи в консоль управления AWS. Его права регулируются политикой с назначенными минимальными привилегиями. Кроме того, права пользователя могут регулироваться политикой безопасности групп пользователей, что позволяет объединять пользователей и добавлять групповые права.

AWS EC2

Elastic Compute Cloud (EC2) или EC2 — веб-сервис в облаке AWS, который предлагает безопасные и масштабируемые вычислительные мощности. Пользователь может легко выбрать тип процессора, оперативной памяти, жесткого диска. Более того, AWS EC2 обладает самыми мощными инстансами на базе графических процессоров для организации курсов по машинному обучению и графического отображения рабочих нагрузок.

Сервис позволяет разворачивать виртуальные машины на операционных системах Linux или Windows, а также является единственным поставщиком облачных сервисов, который предлагает развернуть вычислительную машину на macOS. Однако этот перечень не ограничивается указанными операционными системами.

Говоря об AWS EC2, нельзя не сравнить его с традиционными серверами, которые установлены в дата-центрах компаний. Сервер в дата-центре имеет центральный процессор, память, жёсткий диск и сетевую карту, которая обеспечивает выход в сеть. Всё это, как правило, управляется операционными системами Windows или Linux. Однако если компания растёт, то для апгрейда практически любого компонента или сервера в целом нужно останавливать сервисы, приобретать отдельные компоненты.

AWS EC2 имеет несколько другой подход. Пользователю предоставляется индивидуальный виртуальный сервер. Он также имеет все железные составляющие сервера, такие как центральный процессор, память, жёсткий диск и сетевую карту. Однако пользователю предлагается при конфигурации выбрать тип операционной системы. На его сервер может быть установлена практически любая ОС из EBS Snapshot, что является элементарный копией диска с операционной системой.

Всего на AWS EC2 имеется около 400 типов серверов для удовлетворения любых потребностей бизнеса.

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

AWS предлагает разные типы оплаты за EC2-сервера или, как их называют в AWS, инстансов:

  • On-Demand инстансы — позволяет платить посекундно за запущенные инстансы.
  • Reserved ­инстансы — позволяет пользователю сократить расходы на Amazon EC2, взяв на себя обязательство поддерживать согласованную конфигурацию инстанса, включая тип и регион, сроком на 1 или 3 года.
  • Spot ­инстансы — позволяет запросить неиспользуемые инстансы, которые могут значительно снизить расходы на Amazon EC2. По сравнению с традиционными инстансами по подписке такой подход  позволяет сократить до 70 % расходов. Однако такие инстансы не являются лучшим примером для использования в непрерывных сервисах.
  • Dedicated хосты — позволяет пользователю заплатить за физический хост, полностью выделенный для работы инстансов, и перенести имеющиеся лицензии на программное обеспечение на сокет, ядро или виртуальную машину, чтобы сократить расходы.
  • Dedicated инстансы — позволяет пользователю осуществлять почасовую оплату инстансов, работающих на однопользовательском оборудовании.

AWS S3

AWS имеет решение для облачного хранилища данных. Cервис называется Simple Storage Service (S3). Он позволяет дёшево хранить данные в облаке. Это не единственный сервис хранения в AWS, но один из самых продвинутых. Другие решения имеют немного другое предназначение.

S3 работает как любой другой сервис ShareDrive. Однако AWS обеспечивает 99.00% доступности ваших файлов и 99.99999999999% живучести (durability). Это значит, что если по каким-то причинам вы не можете получить доступ к вашим файлам, то 99 и 11 девяток процентов, что они не пропали. Сервис также предназначен для хранения бэкапов. Кроме того, он позволяет размещать статический веб-сайт прямо в хранилище. Вдобавок ко всему в этом сервере можно хранить Big Data Analitycs. Максимальный размер файла, который можно загрузить, — 5 терабайт.

Основные типы хранения файлов на S3:

  • Amazon S3 Standard — стандартный доступ к файлам. Ваши файлы всегда и быстро доступны.
  • Amazon S3 Standard Infrequent Access — для доступа к нечасто используемым файлам, имеет меньшую цену хранения.
  • Amazon Glacier — хранилище для архивных данных, например, для отчётов, которые как правило не нужны каждый день, однако могут требоваться при проверке. Доступ к ним занимает время, но имеет самую дешёвую цену хранения. Есть несколько типов самого Amazon Glacier.
  • Reduced Redundancy Storage — представляет собой облачное хранилище, но уже с меньшей гарантией сохранения данных — 99.99 против 99.99999999999 у обычного стандартного архива. Запись файлов производится в один центр обработки данных против двух у стандартного архива. Естественно, и цена немного меньше.

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

Базы данных

Всего AWS предоставляет три сервиса для хранения баз данных. Первый — Amazon RDS (Relationship Database Service), который предлагает использование реляционных БД из предложенного перечня:

  • MS SQL
  • MySQL
  • PostgreSQL
  • MariaDB
  • Oracle
  • Amazon Aurora

Это имеет свои плюсы, так как пользователю не нужно осуществлять менеджмент операционной системы, на которую установлена база данных. Причем автоматический бэкап включен по умолчанию. Это позволяет сосредоточить внимание на приложениях, чтобы обеспечить для них высокую производительность, доступность, безопасность и совместимость. C помощью сервиса AWS Database Migration Service можно просто перенести или реплицировать существующие базы данных в Amazon RDS.

Если вам нужны NoSQL базы данных, можно воспользоваться сервисом Amazon DynamoDB. Эта БД может расширяться без остановки и обрабатывать более 10 трлн запросов в день, а также справляться с пиковыми нагрузками, превышающими 20 млн запросов в секунду.

Если пользователю нужна другая СУБД, он может установить её на EC2 инстанс и пользоваться без проблем.

Заключение

Это далеко не весь перечень сервисов AWS. Однако он даёт представление о том, что облачные решения от Amazon являются лучшими на сегодняшний день. Любой стартап может начать работать в очень короткие сроки, используя AWS. В ближайшей перспективе будущее тоже за облачными технологиями.


У нас также есть отдельная статья полезные инструменты и фичи для разработки в AWS.

Хинт для программистов: если зарегистрируетесь на соревнования Huawei Cup, то бесплатно получите доступ к онлайн-школе для участников. Можно прокачаться по разным навыкам и выиграть призы в самом соревновании.

Перейти к регистрации

Что думаете?