Облачное хранилище данных google диск это пример iaas модели paas модели saas модели
Облачные технологии используют в девяти бизнесах из десяти, опрошенных RightScale в 2019 году.
Почему облака — это новая норма? Потому что это удобно: вы не покупаете нужное оборудование, а берете его в аренду, не нанимаете для его обслуживания своих специалистов, а отдаете администрирование на аутсорс — и так экономите деньги и ресурсы компании. В этом главное преимущество облачных технологий для бизнеса. Давайте разберемся, что это такое и как работает.
Основные преимущества облачных технологий
Позволяют получить нужные ресурсы по запросу, без покупки оборудования. Облако дает возможность гибко реагировать на потребности компании или ситуацию на рынке.
Спрос компании на ресурсы или программы неоднороден, например:
Так как в облаке ресурсы предоставляются по требованию (on demand), вы платите только за те мощности, которые нужны прямо сейчас. Применение облачных технологий позволяет получить инфраструктуру для цифровых продуктов, которая легко растет или уменьшается в зависимости от ваших потребностей.
Позволяют снять часть нагрузки с IT-отдела. Развертывание серверов и их администрирование — непрофильная задача для большинства бизнесов.
Переход в облако означает, что:
- Вам не нужно покупать собственные серверы и тем более строить дата-центр, то есть вы снижаете капитальные расходы на IT.
- Вам не нужно нанимать экспертов, занимающихся развертыванием инфраструктуры и управлением ею: виртуализацией серверов, гипервизорами, распределением виртуальных ресурсов, настройкой и поддержкой облачных баз данных и других платформ. Это берет на себя провайдер.
- Также вы можете отдать провайдеру на аутсорс администрирование серверов, баз данных, платформ и другие услуги, для которых нужны узкоспециализированные эксперты. Это предельный уровень аутсорсинга, который называют Managed services.
Позволяют быстро запускать новые проекты или MVP для стартапов и исследовательских отделов. Можно арендовать вычислительные ресурсы и с их помощью быстро разрабатывать минимально жизнеспособные продукты (MVP), чтобы тестировать бизнес-гипотезы. Это могут быть мобильные приложения и игры, программы на основе машинного обучения, SaaS-решения, которые компания продает клиентам.
Облачные технологии отлично подходят для проектов с высокой долей неопределенности, позволяя быстро запустить проект, сэкономить на оборудовании и не понести большие убытки, если гипотеза не сработает. А если сработает — легко масштабировать решение.
Позволяют снизить риски при сбоях и авариях. В облаке возможны разные сценарии аварийного восстановления: периодические бэкапы, резеврная инфраструктура и другие. Восстановление из бэкапов, снимаемых с определенной периодичностью, подходит, когда содержание резервной инфраструктуры обходится дороже, чем простой сервисов в течение какого-то времени.
Если же простой недопустим, компании запускают в облаке резервную инфраструктуру, в которую данные постоянно копируются из основной. В этом случае простой сервисов после сбоя если и будет, то минимальный.
Облачные вычисления являются отличным выбором как для крупных корпораций, так и для небольших предприятий. Они позволяют передать управление частью инфрастуктуры третьей стороне, что значительно сокращает расходы и повышает продуктивность команды, поскольку фокус внимания остается на наиболее важных для бизнеса аспектах. По прогнозам Gartner, к 2022 году размер рынка и рост отрасли облачных услуг почти в три раза превысят общий рост IТ-услуг.
На данный момент существует три самые популярные облачные модели:
- Infrastructure as a Service (IaaS) — инфраструктура как услуга.
- Platform as a Service (PaaS) — платформа как услуга.
- Software as a Service (SaaS) — программное обеспечение как услуга.
В данной статье, мы рассмотрим концепцию каждой модели, особенности, преимущества, недостатки и расскажем об основных различиях между ними, чтобы Вы смогли выбрать наиболее подходящую модель для своего бизнеса.
IaaS, инфраструктура как услуга, предполагает использование облачных сервисов (хранилище данных, виртуальный сервер, операционная система) без необходимости физического обслуживания и управления всей инфраструктурой. Облачные сервисы предоставляются через панель управления или интерфейс прикладного программирования (API).
Кому подходит IaaS
Данная модель будет актуальна для:
- Старапов и небольших компаний, которые не нуждаются в покупке или разработке программного обеспечения;
- Развивающихся компаний, которые используют определенное программное обеспечение по мере развития своего бизнеса.
- Крупных компаний, которым нужен полный контроль над приложениями и инфраструктурой и возможность ее индивидуальной настройки для нужд организации.
- Полный контроль над инфраструктурой для клиентов.
- Инфрастуктуру легко автоматизировать.
- Высокая масштабируемость.
- Стоимость компонентов зависит от объема использования.
- Отсутствие затрат на аппаратную инфраструктуру (серверы, хранилище, и т.д.).
- Могут возникать проблемы с безопасностью, поскольку ресурсы доступны многим пользователям и некоторые клиенты могут получить доступ к данным, которые были размещены предыдущими пользователями.
- Для эффективного управления инфраструктурой клиентам может потребоваться дополнительное обучение.
-
- это облачная платформа от компании Miscrosoft, которая позволяет создавать, развертывать и управлять приложениями. - позволяет развертывать приложения и увеличивать их производительность; предлагает многопользовательский доступ.
PaaS, платформа как услуга, предполагает предоставление разработчикам необходимых инструментов и платформы, которую они могут использовать для создания и развертывания приложений. С помощью данной услуги, программисты могут создавать как несложные мобильные приложения, так и первоклассное программное обеспечение, призванное решать различные бизнес-задачи. Обновление программного обеспечения и обслуживание оборудования обеспечивается сторонним провайдером, а управление приложениями доступно клиентам.
Кому подходит PaaS
Данная модель подходит для группы разработчиков, которые вместе работают над одним проектом или для IT-компаний.
- PaaS позволяет создавать доступные и масштабируемые приложения.
- Платформа доступна нескольким пользователям.
- Пользователям предоставляются встроенные программные компоненты, поэтому разработчики проще и экономичнее реализуют проекты любой сложности.
- Поддерживаются разные языки программирования, поэтому клиенты могут одновременно работать над несколькими проектами.
- Есть возможность увеличивать или уменьшать ресурсы в случае необходимости.
- Данные хранятся на сторонних облачных серверах, которые контролируются провайдером, поэтому их безопасность может быть под угрозой.
- Некоторые провайдеры не предлагают возможность переключения на альтернативные варианты PaaS, поэтому смена поставщика может быть проблемой.
- PaaS может ограничивать операционные возможности.
-
- платформа, используемая для создания, тестирования, запуска и развертывания приложений. - это система, которая позволяет создавать высококачественные приложения с помощью языков программирования Java и Python. Недостатком является то, что разработчик ограничен использованием только доступных языков программирования и бесплатное использование системы возможно только при условии соблюдения квот, установленных Google.
Программное обеспечение как услуга (SaaS) позволяет клиентам использовать настроенное программное обеспечение, установленное на удаленном сервере, с помощью сети Интернет. Для использования приложений, установка дополнительных компонентов не требуется.
Кому подходит PaaS
- SaaS подходит для небольших компаний или стартапов, которые не хотят тратить время на решение проблем с ПО.
- Клиентов, которым необходимы приложения с веб-доступом и мобильным доступом.
- Краткосрочных проектов, которым требуются быстрые и простые решения.
- Упрощает управление бизнесом, поскольку пользователь не тратит время на управление и обеспечение программного обеспечения.
- Доступ к программному обеспечению обеспечен в любое время для любого устройства, установка программного обеспечения не нужна.
- Четкая и простая система оплаты - модели SaaS предлагают фиксированную ежемесячную плату.
- Отличная масштабируемость: есть различные уровни для малых и средних компаний, а также крупных корпораций.
- Сервисы работают бесперебойно с минимальным участием со стороны клиента.
- Иногда для SaaS требуется разработка индивидуальной системы интеграции.
- Не каждый провайдер использует стандартные протоколы и API, поэтому обмен данными между приложениями различных поставщиков может быть затруднен.
- SaaS не предлагает широкий спектр настроек и пользователи ограничены определенным функционалом.
- Приложения обслуживаются сторонними поставщиками, поэтому нерегулярное обновление, внеплановое обслуживание, проблемы с сетью могут негативно повлиять на производительность.
-
- это облачное хранилище, которое предлагает возможность синхронизации различных файлов вне зависимости от их размера. Пользователи могут синхронизировать файлы через Интернет или персональные компьютеры, делиться рабочими документами с коллегами и партнерами, работать с файлами в автономном режиме. Кроме того, доступна функция автоматического резервного копирования и восстановления предыдущих версий файлов. - это платформа, предлагающая инструменты для управления бизнесом в сфере продаж, клиентского сервиса и цифрового маркетинга.
Каждая из моделей подходит для конкретных бизнес-решений, необходимых компании-клиенту. В зависимости от требований организации, специфики проекта и конечной цели, Вы можете выбрать IaaS, PaaS, SaaS или поочередно несколько облачных моделей.
- IaaS предоставляет общий центр обработки данных и контроль над готовой инфраструктурой.
- PaaS позволяет сфокусироваться на разработке приложений вместо управления всей инфраструктурой. Отличное решение для компаний, нуждающихся в платформе для создания индивидуальных программных продуктов.
- SaaS предлагает готовые решения для эффективного бизнес-процесса.
Безусловно, использование облачной модели - это будущее бизнеса, которое оптимизирует бизнес-процессы и делает их более эффективными. Каждая проанализированная модель предлагает определенные возможности, которые подходят для компаний различного масштаба с разными потребностями.
Если Вы заинтересованы в готовых приложениях, тогда Вашим выбором является SaaS. PaaS - лучший вариант для разработчиков, которые создают настраиваемые приложения. С IaaS клиенты получают полный контроль над всей инфраструктурой без необходимости ее обслуживания.
Облачные технологии гибче и оперативнее в сравнении с традиционными, требующими на начальном этапе значительных вложений в собственные сервера, дата-центры и высококвалифицированный персонал, который умеет работать с подобным непростым оборудованием. А в текущих реалиях менеджмент компаний и ИТ подразделений столкнулись с непростой задачей обеспечения непрерывности бизнеса в условиях изоляции сотрудников. Для этого приходиться вносить серьёзные изменения как в ИТ-инфраструктуру компании, так и внедрять новые приложения и это надо делать очень и очень быстро.
Весь спектр облачных решений можно уместить в три большие категории: IaaS, PaaS и SaaS.
Что же они означают и в каких случаях эти технологии применяются?
Чтобы понять разницу между этими аббревиатурами, давайте проясним сначала кратко суть, затем разберем их на понятной бытовой аналогии и потом посмотрим, в каких случаях имеет смысл обращаться к тому или иному решению или сервису.
Если вкратце, то при IaaS (Infrastructure as a Service) компания арендует у поставщика IT-услуг "виртуальное железо" или "виртуальную инфраструктуру", которые размещаются в дата-центрах, а также набор операционных систем, баз данных, кабинеты управления "виртуальной инфраструктурой" и другого системного ПО.
При PaaS (Platform as a Service) арендуется платформа с операционными системами, серверами, системами хранения, базами данных, средствами разработки, серверами приложений, нейронными сетями, которые обеспечивают заданную производительность и обладают API для разработки приложений. Клиент самостоятельно использует все программное обеспечение для разработки своих приложений и расходует тот объем ресурсов, который ему нужен для выполнения задач. При необходимости этот объем может быть оперативно увеличен или сокращен.
При SaaS (Software as a Service) клиент получает в удаленном режиме доступ к конкретным программам, сам ничего не администрирует (кроме самих настроек сервиса) и вообще не вникает в то, что происходит «по ту сторону» монитора, только пользуется сервисом.
Доступнее всего понять разницу между этими подходами можно на примере визита в кинотеатр.
Представьте, что вы приходите посмотреть кино в пустой зал (вы можете выбрать зал любого размера от 10 кресел и до стадиона вместимостью 100 000), в котором есть все – кресла, экран, разные кинопроекторы и колонки, но все это свалено в одном углу. Вы все расставляете как надо, выбираете кинопроекторы и колонки с нужными характеристиками и подключаете. После этого настраиваете изображение и звук, выбираете фильм, загружаете его и смотрите. Иными словами, делаете все, что касается содержания, получая от поставщика услуг, то есть владельца кинотеатра, лишь форму помещения и набор необходимых устройств с различными характеристиками.
Теперь посмотрим на иной подход. Помимо стен и правильно установленного экрана и кресел уже есть преднастроенные проектор и колонки с определенными характеристиками. Все это работает, вам остается занять место в кресле, слегка подстроить резкость и звук, выбрать фильм. Такой подход характерен для PaaS. При этом владелец кинотеатра в ряде моментов может вам предоставить готовые дополнительные сервисы, скажем, сделать изображение черно-белым, вырезать ненужные кадры.
Ну и то, что нам всем знакомо лучше всего: мы пришли в кино на конкретный выбранный нами фильм, сели в кресло – и все, остальное сделали за нас. Это – SaaS.
К схеме IaaS обычно прибегают большие корпорации, которым для бесперебойной работы нужны значительные компьютерные мощности в разных регионах и в различные промежутки времени. У них есть штат администраторов и программистов, которые в состоянии наладить функционирование виртуальной IT-инфраструктуры, провести перенос систем при необходимости и т.п.
В качестве примера возьмем авиакомпанию, осуществляющую перевозки между многими странами, а то и по всему земному шару. Зимой, в низкий сезон, спрос на услуги авиаперевозчика незначительный. Летом, в высокий туристический сезон, он вырастает в несколько раз. Нагрузка на сервера скачет, оставляя компанию перед выбором: либо держать избыточные мощности зимой, либо сталкиваться с перегрузками и отказом оборудования летом. Первое экономически невыгодно, второе – чревато для доходной части и репутации. Прибавьте к этому офисы в разных странах, которые обрабатывают значительные объемы данных. Их, разумеется, можно замкнуть на центральный сервер в штаб-квартире, но здесь возникает риск глобального сбоя всей системы, если в центре, условно говоря, что-то «коротнуло»; во-вторых, создает нагрузку на каналы связи.
IaaS позволяет нашему перевозчику арендовать в текущий момент ровно столько вычислительной мощности, сколько ему требуется, не переплачивая за «отдыхающую» оперативную память и мощности процессора и не опасаясь сбоев. При необходимости он может легко и быстро масштабировать хранилища (чего не скажешь о ситуации с собственными серверами и дата-центром). Кроме того, поставщик инфраструктуры позаботится о том, чтобы информация была доступна и сохранна: распределяя операции клиента по множеству серверов, он убирает «единую точку отказа». Если «завис» один сервер, операции тут же переводятся на другой.
PaaS чем-то напоминает кружок рисования, в котором помимо ватмана и красок художнику при необходимости выдается целый набор советов, как создать то или иное произведение, и готовые комбинации инструментов для этого. Ну а что получится в итоге – зависит только от самого художника, в нашем случае от клиента.
Американская компания MLB Advanced Media специализируется на анализе спортивных игр, сборе статистики отдельных игроков, ее обработке и представлении в наглядном виде. Перед ней встала задача разработать систему слежения за игроками, которая позволяла бы выдавать информацию об их игре в режиме реального времени и дополнять ею, допустим, телевизионную картинку в прямом эфире. Очевидно, что это должна быть серьезная программа из тысяч строк кода и столь же серьезной инфраструктурой – серверами, API, протоколами, по которым данные будут передаваться с сервера в адрес той же телевизионной станции и пр.
Однако MLB Advanced Media – не софтверная компания, и инфраструктуры для разработки у нее нет, а создавать ее на отдельный, пусть и большой, проект бессмысленно. Как нет смысла основывать строительный трест для возведения единственного дома.
На помощь в подобных случаях и приходит PaaS – платформа, которая, собственно, и является той самой инфраструктурой со всеми необходимыми инструментами для создания программы, ее хранения и распространения. Единственное, что требуется от клиента, – дать доступ к этим инструментам своим программистам, которые, используя, в том числе для экономии времени, какие-то готовые шаблонные решения, напишут необходимый софт. О сохранности софта, преемственности его различных версий и о совместимости с внешними «приемниками», заботится владелец платформы, освобождая клиента от рутины и прочих операций, не связанных непосредственно с созданием продукта.
В настоящее время PaaS уже широко применяется крупными и средними корпорациями, а также относительно небольшими компаниями, которые не хотят тратиться или вникать в вопросы IT-инфраструктуры, но у которых есть потребность в создании приложений.
Так, корпорация News UK, издающая известные газеты The Times, The Sun и другие, сначала попробовала перенести в облако систему, которая регулировала доступ подписчиков газет к онлайн-контенту. Перенос операции на внешнюю платформу оказался эффективным, и теперь News UK управляет через PaaS ключевыми бизнес-процессами, пользуясь инструментами для создания новых услуг и сервисов и переложив заботу о сохранности информации на плечи провайдера.
Для управления бизнесом требуется достаточно много дорогостоящего программного обеспечения: для управления отношений с клиентами (CRM), системы учета (ERP), электронная почта, документооборот, система управления процессами и проектами, коллоборация, и другие корпоративные приложения.
SaaS позволяет пользоваться нужными программами удаленно, без необходимости их разворачивания на собственной инфраструктуре, а также нести расходы, на которые пришлось бы пойти при «традиционном» варианте. Важный момент: технология SaaS позволяет в любой момент быстро увеличить или сократить количество сотрудников, которые имеют доступ к той или иной программе.
Именно удобство, масштабируемость и определенная экономия и послужили основными причинами, по которым модель SaaS резко набирает популярность среди предприятий любого размера.
Наша компания Flexbby в своем подходе использует использует гибридную модель продажи ПО для автоматизации бизнес процессов.
Во-первых у нас есть собственное облако, которое создано с помощью технологии LXC. Для каждого нашего клиента, покупающего подписку на наше бизнес приложение по модели SaaS, мы разворачиваем отдельный изолированный контейнер, что обеспечивает полную изоляцию и большую эластичность. В зависимости от размера и требуемой производительности контейнера (подписки) мы его можем мигрировать между нодами облако, которые могут находиться, где угодно.
Наше облако является гибридным и в зависимости от задача мы можем разворачивать и управлять контейнерами, как на физических серверах, так и при необходимости арендовать IaaS инфраструктуру у таких поставщиков, как Amazon или MS Azure.
Во-вторых, мы используем "главных" поставщиков IaaS, как маркетплейс для нашего решения.
Это примерно тоже самое, что AppStore или GooglePlay, только для бизнес-приложений.
Компании покупают сервис, который сразу разворачивается на инфраструктуре IaaS провайдера, автоматически или полуавтоматически интегрируется с ранее купленными сервисами.
Работа с маркетплейсами приложений для бизнеса это отдельная тема и можно написать не одну статью.
Переход на облачную архитектуру обеспечивает легкую масштабируемость, безопасность и расширенную совместную работу.
Может быть, вы уже слышали что-нибудь о некоторых из следующих возможностей: IaaS, PaaS, SaaS, DaaS, FaaS, DBaaS. Возможно, вы даже использовали некоторые из них, не зная названия применяемой концепции.
Итак, давайте поговорим об облаке в контексте веб-приложений.
Монолитная. Вся серверная часть развернута в одном месте, поэтому ее очень сложно масштабировать для больших приложений.
Микросервисная. Бэкэнд разделен на подмножества (в основном это зависит от размера приложения, но обычно от 10 до 80) микросервисов, которые могут быть развернуты на разных физических серверах, каждый микросервис должен отражать бизнес-функцию, например, аутентификацию, платежи и т.д.
Функциональная (по событию). В отличие от монолита и микросервисов, выполняются только в течение нескольких секунд, когда в этом есть необходимость; Примером может служить AWS Lambda, написанная на es7:
import _ from 'lodash'; import request from 'superagent'; const retrieve = url => request(url).then((< body >) => body); export const findMostExpensiveItem = async (event, context, callback) => < console.log(`Running $
Итак, давайте рассмотрим подробнее, чтобы лучше понять, что они из себя представляют.
Это общий акроним, означающий любые решения aaS.
База данных как услуга ⸺ это платформа, на которой размещается база данных, обеспечивающая резервное копирование, кластеризацию и высокую доступность. Самыми популярными DBaaS являются Amazon Aurora, Amazon DynamicDB, mLab, IBM Cloudant и MongoDB Atlas.
Инфраструктура как услуга ⸺ это самый низкий уровень из всех XaaS. Это дает нам большие возможности, но требует сложной настройки. IaaS предоставляет виртуальную машину, которую мы должны поддерживать. Разница между IaaS и наличием физической серверной комнаты в том, что нам не нужно покупать какие-либо физические компьютеры, и у нас могут быть серверы в разных частях мира. Однако по сравнению с другими XaaS, IaaS сложнее поддерживать, и для этого требуется хороший инженер DevOps, который настраивает виртуальные машины для эффективной и безопасной работы.
Как правило, вам не нужно настраивать CI (непрерывную интеграцию). Просто нажмите коммит, он распознает, что приложение находится в Node.js, и запустит npm install (вы можете добавить дополнительные команды в сценарий postinstall, который запускается NPM после установки зависимостей) и npm start. Если приложение написано на Ruby, оно будет запускать установку пакета и аналогично для других сред.
Главный недостаток ⸺ это не гибкость, потому что невозможно установить собственные системные зависимости (например, из apt-get), и вы можете использовать только одну из доступных технологий.
Еще один недостаток ⸺ данные небезопасны. Если, например, вы используете Heroku как Paas и mLab как DBaaS, доступ к вашим данным будет иметь не только mLab, но и Heroku, потому что вы никогда не знаете, какой код на самом деле выполняется на сервере. Может быть, что кроме вашего кода, они добавляют свои собственные промежуточные программы, чтобы что-то регистрировать.
Программное обеспечение как услуга предоставляет готовое программное обеспечение, такое как библиотеки NPM / GEM, но оно не требует от нас какого-либо развертывания / обслуживания сервера.
Другие примеры: Google Apps (например, Google Drive), DropBox и Slack ⸺ эти приложения могут использоваться в повседневных задачах, но они также имеют большие возможности интеграции. Помимо уже существующего SaaS, некоторые компании (например, SAP) предлагают писать новые SaaS по запросу.
Что такое самый большой DaaS? Вероятно, Facebook, собирающий много данных и предоставляющий их для приложений Facebook. Другими популярными DaaS являются Google Maps, Google Translate API или AccuWeather.
Список полезных DaaS будет в следующей статье, подписывайтесь.
Функциональность как услуга ⸺ даже проще, чем PaaS. Как следует из названия, сервис основан на функциях, которые могут запускаться заданным событием, поэтому это архитектура, основанная на событиях. Уровень простоты настолько высок, что это называется бессерверная архитектура. Разработчик просто пишет функцию, и ему не нужно задумываться о таких темах, как развертывание, ресурсы сервера, масштабируемость, потому что FaaS автоматически масштабируется. Таким образом, выставление счетов основывается на реальном потреблении, а не на заявленных потребностях в ресурсах.
Наиболее ярким примером является AWS Lambda, но есть и другие, такие как Google Cloud Functions, Microsoft Azure Functions, Iron.io и Webtask.io.
Разделим функции по особенностям Microsoft Azure Functions:
Функции можно комбинировать с микросервисами, поэтому мы можем соединить FaaS с PaaS, но также можно построить весь бэкэнд на FaaS (с некоторыми ограничениями на технологии, используемые на стороне бэкэнда).
Однако давайте обсудим еще один недостаток ⸺ мы пишем код, который работает на определенном FaaS (например, функции Microsoft Azure), поэтому переход на другой FaaS (например, функции Google) может потребовать переписывания даже половины кода, написанного как функции FaaS. С другой стороны, переход от одного PaaS к другому относительно проще.
XaaS даже больше, чем вы можете себе представить:
- Аналитика как услуга
- Аутентификация как услуга
- Резервное копирование как услуга
- Бизнес как услуга
- Связь как услуга
- Вычислительная техника как услуга
- Контент как услуга
- Рабочий стол как услуга
- Хранение энергии как услуга
- Мошенничество как услуга
- Игры как услуга
- Оборудование как услуга
- IT как услуга
- Работа как услуга
- Знания как услуга
- Ведение журнала как услуга
- Мэшапы как сервис
- Мобильный бэкэнд как услуга
- MongoDB как услуга
- Мониторинг как услуга
- Сеть как услуга
- Oracle как услуга
- Платежи как услуга
- Качество как услуга
- Запрос как услуга
- Восстановление как услуга
- Репликация как услуга
- Робот как услуга
- Маршрутизация как услуга
- Поиск как услуга
- Безопасность как услуга
- Хранение как услуга
- Тестирование как услуга
- Утилиты как услуга
- Виртуализация как услуга
- Беспроводная связь как услуга / Wi-Fi как услуга
- Оптимизация WAN как услуга
Как видите, многие из XaaS могут даже иметь один и тот же акроним, и одно может быть подмножеством другого. Сложный вопрос, какой XaaS следует использовать в том или ином проекте и конкретной ситуации. Я полагаю, что в то же время разные инженеры DevOps могли бы выбрать совершенно разные решения. Мой любимый подход: создать архитектуру, ориентированную на микросервисы в PaaS, потому что она просто сочетает в себе гибкость и простоту.
Конечно, мы должны облегчить себе жизнь, используя некоторые внешние SaaS, такие как интеграции SparkPost или Slack, и некоторые внешние DaaS, чтобы легко получать данные, такие как текущие курсы обмена валют. Более того, мы можем основать некоторую (5% ~ 20% в зависимости от наших потребностей) часть нашей системы на FaaS, простые функции без сохранения состояния, которые соединяют несколько служб, поэтому использование FaaS просто сэкономит время на развертывании и мониторинге.
Я надеюсь, что эта статья поможет вам выбрать правильный XaaS (или несколько из них одновременно) в вашем проекте.
😏 Материалы о создании и развитии цифровых продуктов для предпринимателей, менеджеров и специалистов на канале Цифровая ферма единорогов и чат Мышление предпринимателя.
Об облаках, облачных технологиях и виртуализации говорят уже долго, особенно о трех наиболее популярных моделях обслуживания: программное обеспечение как услуга (SaaS), платформа как услуга (PaaS) и инфраструктура как услуга (IaaS). В сегодняшнем материале мы бы вновь хотели обратиться к этому вопросу и поговорить об особенностях и применимости облачных сервисов.
/ Flickr / Robert / CC
Стек облачных технологий состоит из трех частей, каждая из которых представляет отдельную категорию сервисов. На верхнем уровне располагается SaaS — по сути, это облачные приложения, доступ к которым предоставляется через веб-интерфейс. За ним следует PaaS — платформа для самостоятельной разработки и развертывания приложений.
На третьем уровне расположился IaaS — серверы, хранилища, сети, вычислительная инфраструктура, которую клиент получает в пользование для запуска своих решений. Описанная структура может быть представлена в виде следующей схемы:
Для демонстрации этих трех типов услуг часто применяется аналогия с пиццей — своеобразная «Pizza as a Service». Когда потребитель заказывает и поедает пиццу в кафе или ресторане, то это SaaS, а если заказывает её себе на дом, то это PaaS. Если же он пошел в магазин, купил ингредиентов и приготовил блюдо самостоятельно, то, можно сказать, что это IaaS.
Теперь слегка углубимся в каждую из этих технологий и начнем с конца стека — IaaS.
Уровень инфраструктуры
-
— базовая услуга облачных провайдеров, аналог обычного компьютера с ОС и приложениями, только в облаке. С их помощью запускают сайты и приложения. Серверы выбирают по объему вычислительных ресурсов (мощности, памяти и так далее), которые вам потребуются. Услугу по аренде такого отдельного сервера также иногда называют VPS/VDS.
- Настройки сети между облачными серверами. Как правило, в компании больше одного сервера — чтобы связать их в одну сеть и нужен этот уровень. На нем задают связи серверов друг с другом, с серверами за пределами облака и интернетом.
В настройки сети входят:
- настройки доступа серверов — когда вы хотите одни серверы открыть для пользователей из интернета, другие — закрыть, поскольку они для служебного пользования, а также определить, какие конкретные сотрудники куда имеют доступ;
- настройки VPN — когда вы хотите соединить облачные серверы со своим физическим дата-центром. Все данные при передаче между облаком и дата-центром должны шифроваться, такое шифрование обеспечивает VPN;
- балансировщики нагрузки — распределяют трафик между виртуальными серверами, чтобы нагрузка на каждый отдельный сервер была меньше. Так снижается риск того, что один из серверов станет точкой отказа.
-
. От обычных облачных дисков, которые знакомы всем пользователям интернета (например Облака VK), они отличаются объемом и производительностью. В них можно хранить любые файлы и данные, даже бэкапы целых инфраструктур из многих серверов вместе с их настройками.
Облако подходит и для хранения персональных данных, законодательство не запрещает их передачу облачному провайдеру, если он сертифицирован и может обеспечить нужный уровень безопасности облачных технологий. Также провайдеры могут подстраивать инфраструктуру под требования определенной сферы бизнеса, например, медицины или ритейла.
Промежуточный уровень — контейнеры
Управление контейнерами Docker с помощью Kubernetes — это стандарт для современной разработки, потому что контейнеры позволяют создавать надежные и устойчивые к нагрузкам облачные приложения.
Облачные провайдеры предоставляют в виде облачной услуги настроенные контейнеры под управлением Kubernetes. Контейнеры — в каком-то смысле маленькие виртуальные машинки, которые можно отнести к уровню инфраструктуры. Но провайдеры предоставляют Kubernetes как платформу, скрывая доступ к лежащим под ними виртуальным машинам — в этом смысле услуга находится на следующем уровне, уровне платформы.
Виды облачных технологий: уровни инфраструктуры и платформы
Что на самом деле скрывается за словами «инфраструктура» и «платформа»? Это просто разные варианты услуг, которые предоставляет облачный провайдер.
В чем суть облачных технологий на примере аренды компьютера
Облачные технологии — это услуга, с помощью которой вы получаете через сеть вычислительные ресурсы (процессорное время, оперативная память, дисковое пространство, сетевые соединения), сервисы или программы и можете пользоваться ими для решения своих IT-задач.
Есть три основных модели облачных сервисов: IaaS, PaaS и SaaS. Мы покажем, в чем между ними разница с помощью аналогии — это поможет понять принцип работы облачных технологий.
Давайте представим, что вы в компьютерном клубе и арендуете время на компьютере, приставке или игровом автомате:
- На компьютере можно распечатать документ на принтере, скинуть файлы на флешку, скачать и установить программу. Другими словами, у вас есть доступ к операционной системе и большая свобода действий на этом компьютере. Если перенести эту аналогию на облако, аренду одного компьютера называют виртуальным сервером, а целый клуб с соединенными в одну сеть машинами — IaaS (инфраструктура как услуга). При аренде виртуального сервера у вас есть доступ к операционной системе.
- При аренде приставки нужно только залогиниться и получить доступ к играм. Хотя, по сути, приставка — это тоже такой специализированный компьютер, доступ к его операционной системе вам не нужен — достаточно того, что вы можете скачивать свои игры. Точно так же в облаке можно арендовать уже настроенные платформы, которые называют PaaS (платформа как услуга). Такие облачные платформы можно использовать, например, для обучения нейронных сетей или работы с базами данных. Хотя эти платформы установлены на каких-то виртуальных машинах, вы эти машины не видите и не имеете доступа к их ОС. Вам доступен только интерфейс платформы, например — для загрузки и запроса данных в базе данных.
- На игровом автомате можно запустить только одну игру, есть определенный набор клавиш, чтобы им управлять — и больше ничего. Вы не сделаете того, что разработчик не предусмотрел. Такое готовое программное обеспечение, размещенное в облаке, называют SaaS (программа как услуга).
Если обобщить, то IaaS, PaaS и SaaS отличаются только глубиной погружения в систему, теми настройками, к которым вы имеете доступ. И поскольку какое-либо глубокое погружение нужно только разработчикам, основные пользователи IaaS и PaaS — именно они. Эти типы облаков нужны, чтобы создавать приложения. Простым смертным такие сервисы не нужны, они пользуются готовыми облачными приложениями (SaaS) — от «ВКонтакте» и облачных хранилищ файлов до 1С:Бухгалтерии. Также об отличиях IaaS и PaaS мы написали в отдельной статье.
Немного о SaaS
В случае SaaS потребитель приобретает возможность пользоваться приложениями поставщика, выполняемыми в облаке. Приложения доступны с различных клиентских устройств, например через браузер. Как сообщает Gartner, рынок SaaS вырос на 21,7% до 38,9 млрд долларов в 2016 году. В 2017 году темпы роста только увеличатся.
В случае SaaS в зону ответственности облачного провайдера передаются вопросы настройки приложений, мониторинга и резервного копирования. Поэтому такая модель работы не требует наличия в команде организации технического специалиста — все делает провайдер.
Таким образом, чем более высокоуровневую модель вы планируете использовать, тем меньший уровень компетенций в ИТ требуется от команды. Справедливо и обратное — чем ниже уровень ИТ-зрелости вашей компании, тем более высокоуровневая модель вам потребуется.
Уровень платформы
Те самые PaaS, о которых мы говорили выше. Примеры облачных технологий этого уровня: базы данных, платформы компьютерного зрения, искусственного интеллекта, машинного обучения, анализа больших данных, разработки приложений для интернета вещей. Они экономят ресурсы IT-отдела, снимая нагрузку, связанную с обслуживанием соответствующих платформ. Это ускоряет разработку и вывод цифровых продуктов на рынок (time-to-market).
Помимо IaaS, PaaS и SaaS вы можете столкнуться с другими примерами продуктов, предоставляемых aaS (as a service), то есть как услуги. Из-за быстрого развития облачных технологий такие новые обозначения постоянно возникают, но не успевают стандартизироваться. Поэтому, например, у одного провайдера аварийное восстановление данных будет называться RaaS, или Recovery as a service, а у другого — DRaaS, или Disaster Recovery as a service.
Что такое PaaS
Платформа как услуга, или PaaS, упрощает развертку приложений и управление ими, при этом скрывая внутри себя работу с серверами, балансировку нагрузки, DNS и др. Поэтому отпадает необходимость нанимать инженеров для обслуживания инфраструктуры. Это позволяет разработчикам уделять больше внимания разработке и проблемам развертывания.
Здесь следует отметить, поскольку PaaS является вторым уровнем пирамиды облачных услуг, то он строится на основе IaaS, однако еще сильнее уменьшает время с момента генерации идеи до её воплощения. Это достигается за счет большей автоматизации процессов и абстракции от железа.
Чтобы абстрагировать концепцию работы с серверами, было проделано следующее:
- Реализована система сборки, компилирующая и хранящая код;
- Внедрена база данных управления приложениями, следящая за версиями и метаданными;
- Запущен планировщик заданий, обрабатывающий большую группу серверов и запускающий приложение на нескольких машинах как на одной;
- Балансировщик нагрузки управляет интернет-трафиком;
- Работа DNS автоматизирована;
- Реализована форма контейнеризации (FreeBSD Jail, Solaris Zones, Linux Containers), предотвращающая вмешательство одного приложения в работу другого.
Компании используют архитектуры и микросервисы, ориентированные на работу с программным обеспечением, потому что они предлагают возможности по автоматическому развертыванию и тестированию кода, а также масштабирования в зависимости от нагрузки. Этот функционал и реализует PaaS.
К сожалению, такой подход имеет один серьезный недостаток. Вы передаете часть контроля своеобразному черному ящику и попадаете в зависимость от него. Однако в противном случае компании постоянно заново изобретают велосипед или начинают использовать медленные инструменты.
Что такое IaaS
При выборе IaaS, вы получите серверы, сетевые ресурсы и хранилища в качестве подключаемой услуги. Получается, что компания приобретает вычислительные ресурсы у поставщика, избегая необходимости закупать собственное железо и поддерживать его. При этом сервис может быть предоставлен по типу публичного облака, частного облака или комбинированного подхода.
Понятие IaaS включает в себя следующие особенности:
- Ресурсы — это услуга. Клиент имеет возможность в любое время увеличивать и уменьшать объемы потребляемых ресурсов
- С физическими ресурсами могут работать несколько пользователей благодаря возможностям виртуализации
- Гибкие модели оплаты (например, вариант pay as you go, когда компания платит только за потребляемые мощности)
Еще один вариант — компания представляет собой стартап, у которого нет средств на приобретение собственного «железа» и его поддержание, или же организация хочет запустить экспериментальное направление бизнеса и закупать оборудование для этого не всегда бывает целесообразно (проект может не взлететь).
Однако несмотря на гибкость и масштабируемость IaaS, технология имеет определенные ограничения. В связи с этим есть ситуации, когда использовать её не рекомендуется. Например, компания является игроком регулируемой отрасли, правила которой не разрешают хранение данных на серверах, не принадлежащих компании.
Здесь хотелось бы добавить, что существует мнение, якобы не стоит использовать облачные решения для бизнес-критичных приложений. Однако отметим, что это не так. Критичное бизнес-приложение может быть развернуто на производительном сервере с 16 ядрами и терабайтами памяти, в котором предусмотрено дублирование ряда компонентов (в том числе и на более высоких уровнях).
Читайте также: