В нашем блоге на Хабре мы любим разбирать интересные кейсы, связанные с практической стороной использования виртуальной инфраструктуры стартапами. Помимо этого мы обращаем внимание и на зарубежный опыт — анализируем все, что связано с работой сложных ИТ-систем, инфраструктуры и железа.
Например, совсем недавно мы рассказывали:
Сегодня мы расскажем о главных отличиях между PaaS и IaaS.
/ фото Fondo Antiguo de la Biblioteca de la Universidad de Sevilla CC
Основное отличие — уровень абстракции поверх оборудования, которое так или иначе расположено в ЦОД. Каждое из решений подходит для соответствующих задач.
О чем мы говорим:
Плюсы и минусы выделенных серверов («голое железо»):
К сожалению, недостатки здесь зачастую перевешивают возможности, для использования которых нужен серьезный опыт. На помощь приходит виртуализация, когда один физический сервер делят несколько виртуальных. Технологии: Xen, KVM, VMware и Hyper-V и еще многие другие.
Плюсы и минусы:
Здесь подразумевается программный доступ к вычислительным мощностям и хранилищам, а также сетевым ресурсам и конфигурациям. Платить нужно только за время использования ресурсов ЦОД.
Теперь бизнесу не нужно задумываться о покупке своего оборудования и тратить средства на администрирование. Можно очень быстро запускать экспериментальные проекты и быстро масштабировать те, которые стали успешными.
Автоматизация различных частей дата-центра уже произошла: хранилища, сетевые технологии и огромное количество других систем, которые требовали определенного набора навыков, стали управляться через API, что открыло новые горизонты возможностей обществу разработчиков.
Пример PaaS-провайдера — Heroku. Он полностью работает поверх AWS. Без IaaS, такие платформы как Heroku, скорее всего, не появились бы. PaaS-провайдеры используют IaaS для того, чтобы предоставлять свои услуги.
PaaS позволила еще сильнее уменьшить время, проходящее с момента появления идеи до развертывания приложения — еще большая автоматизация процессов, которые должны были выполняться вручную, а также снижение необходимого уровня знаний для работы со специализированными системами.
Создать PaaS очень сложно. Здесь потребуется создать БД управления приложениями, которая следит за изменениями в Git, рабочими версиями и мета-данными приложения. Помимо этого — планировщик заданий кластеров, балансировщик нагрузки, автоматизировать работу DNS и внедрить определенную форму контейнеризации (FreeBSD Jail, Solaris Zones, Linux Containers).
Говоря простым языком, IaaS напоминает сдачу сервера в аренду на определённый промежуток времени. PaaS можно описать как нечто-более сложное: связанный набор инструментов, позволяющих запустить ваше веб-приложение и управлять им.
«Соседи», работающие на одном PaaS-провайдере, могут влиять на производительность друг друга. В случае IaaS вы можете использовать инстансы больших размеров, что чаще всего означает выделенный доступ к физической машине, у которой нет «соседей». Большее число компонентов PaaS-системы означает больше точек риска, где может потребоваться вмешательство.
Хотя большинство PaaS-платформ предоставляют универсальный интерфейс для управления приложениями. Подкупает то, с какой легкостью вы можете дублировать целые среды. Вы можете запустить клона всей своей системы всего за пару минут. Вот только стоимость некоторых платформ, например, Heroku, может быстро стать слишком большой (даже по меркам IaaS).
Получилось так, что в некоторых сферах выигрывает PaaS, а в других — IaaS. Такова реальность. Если вы можете позволить себе большую степень риска, то PaaS предлагает гибкие возможности по управлению приложениями, позволяющие значительно ускорить этот процесс, по сравнению с IaaS.
Дополнительное чтение:
Например, совсем недавно мы рассказывали:
- о том, как Spotify масштабирует Apache Storm,
- рассматривали аппаратное обеспечение для глубокого обучения
- и бегло поговорили о примере оптимизации полосу пропускания в сетях Ethernet.
Сегодня мы расскажем о главных отличиях между PaaS и IaaS.
/ фото Fondo Antiguo de la Biblioteca de la Universidad de Sevilla CC
Немного терминологии
Основное отличие — уровень абстракции поверх оборудования, которое так или иначе расположено в ЦОД. Каждое из решений подходит для соответствующих задач.
О чем мы говорим:
- Инфраструктура как услуга (IaaS);
- Платформа как услуга (PaaS).
Плюсы и минусы выделенных серверов («голое железо»):
- Производительность — прямой доступ к железу, но и управлять сложнее;
- Надежность — но только если вы сами не допустите ошибку в обслуживании;
- Использование ресурса — при использовании выделенных серверов процессы не борются с другими процессами или виртуальными машинами за вычислительные мощности процессора, память и сетевые ресурсы;
- Цена — вы платите только за аппаратную часть (арендуете её у провайдера).
К сожалению, недостатки здесь зачастую перевешивают возможности, для использования которых нужен серьезный опыт. На помощь приходит виртуализация, когда один физический сервер делят несколько виртуальных. Технологии: Xen, KVM, VMware и Hyper-V и еще многие другие.
Плюсы и минусы:
- Быстрое клонирование виртуальных машин;
- Простые бэкапы образов виртуальных машин;
- Работа с виртуальными машинами требует экспертизы.
Инфраструктура как услуга
Здесь подразумевается программный доступ к вычислительным мощностям и хранилищам, а также сетевым ресурсам и конфигурациям. Платить нужно только за время использования ресурсов ЦОД.
Теперь бизнесу не нужно задумываться о покупке своего оборудования и тратить средства на администрирование. Можно очень быстро запускать экспериментальные проекты и быстро масштабировать те, которые стали успешными.
Автоматизация различных частей дата-центра уже произошла: хранилища, сетевые технологии и огромное количество других систем, которые требовали определенного набора навыков, стали управляться через API, что открыло новые горизонты возможностей обществу разработчиков.
Платформа как услуга
Пример PaaS-провайдера — Heroku. Он полностью работает поверх AWS. Без IaaS, такие платформы как Heroku, скорее всего, не появились бы. PaaS-провайдеры используют IaaS для того, чтобы предоставлять свои услуги.
PaaS позволила еще сильнее уменьшить время, проходящее с момента появления идеи до развертывания приложения — еще большая автоматизация процессов, которые должны были выполняться вручную, а также снижение необходимого уровня знаний для работы со специализированными системами.
Создать PaaS очень сложно. Здесь потребуется создать БД управления приложениями, которая следит за изменениями в Git, рабочими версиями и мета-данными приложения. Помимо этого — планировщик заданий кластеров, балансировщик нагрузки, автоматизировать работу DNS и внедрить определенную форму контейнеризации (FreeBSD Jail, Solaris Zones, Linux Containers).
Выводы
Говоря простым языком, IaaS напоминает сдачу сервера в аренду на определённый промежуток времени. PaaS можно описать как нечто-более сложное: связанный набор инструментов, позволяющих запустить ваше веб-приложение и управлять им.
«Соседи», работающие на одном PaaS-провайдере, могут влиять на производительность друг друга. В случае IaaS вы можете использовать инстансы больших размеров, что чаще всего означает выделенный доступ к физической машине, у которой нет «соседей». Большее число компонентов PaaS-системы означает больше точек риска, где может потребоваться вмешательство.
Хотя большинство PaaS-платформ предоставляют универсальный интерфейс для управления приложениями. Подкупает то, с какой легкостью вы можете дублировать целые среды. Вы можете запустить клона всей своей системы всего за пару минут. Вот только стоимость некоторых платформ, например, Heroku, может быстро стать слишком большой (даже по меркам IaaS).
Получилось так, что в некоторых сферах выигрывает PaaS, а в других — IaaS. Такова реальность. Если вы можете позволить себе большую степень риска, то PaaS предлагает гибкие возможности по управлению приложениями, позволяющие значительно ускорить этот процесс, по сравнению с IaaS.
Дополнительное чтение: