Что нужно знать, чтобы выбрать PaaS.

Автор Даррен Броммер

Gartner ожидает, что в период с 2018 по 2022 год рынок PaaS вырастет вдвое и вырастет на 26,6% до примерно 58 миллиардов долларов к 2022 году. Согласно IDG, сегодня почти две трети организаций используют PaaS. Мы ожидаем, что после Covid-19 этот импульс сохранится из-за перехода к удаленной работе.

Однако рынок сильно фрагментирован. Примечания Gartner; «По состоянию на 2019 год общий рынок PaaS насчитывает более 360 поставщиков, предлагающих более 550 сервисов облачных платформ в 21 категории. На рынке по-прежнему не хватает стандартизации, устоявшейся практики и устойчивого лидерства ». В этом случае очень сложно выбрать правильного провайдера PaaS.

PaaS: под капотом

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

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

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

По мере развития всех составляющих компонентов платформы они автоматически обновляются без каких-либо усилий. Это и есть платформа как услуга (PaaS).

PaaS состоит из трех основных компонентов.

Во-первых, это программные уровни, на которых работает ваше приложение - «стек». К ним относятся различные библиотеки, фреймворки и службы, которые разработчик использует для создания приложения, которые присутствуют в среде выполнения. Стек состоит из интерпретатора языка или виртуальной машины (ВМ), инфраструктуры приложения (например, Rails, Lithium), HTTP-сервера, балансировщика нагрузки, механизмов кэширования, баз данных и структур оркестровки контейнеров. Отдельный PaaS может предлагать несколько комбинаций стеков на выбор, например, разные стеки для разных языков или фреймворков. На схеме показан стек на основе Kubernetes и контейнеров.

Во-вторых, это механизм развертывания, который упаковывает и развертывает контейнеры, подготовленные с вашим стеком приложений. Этот механизм работает напрямую из вашего конвейера CI / CD через Git push, и он уходит с дороги после завершения развертывания и запуска вашего приложения.

Этот механизм сам по себе является кодом, возможно, комбинацией скриптов и Web-сервисов, и может использовать готовую технологию, такую ​​как Puppet или Chef. Архитектура этого механизма, конкретные параметры, которые он предоставляет, и функции, которые он предоставляет вышележащему графическому пользовательскому интерфейсу (GUI) или интерфейсу командной строки (CLI), являются важными отличиями между хорошим PaaS и плохим.

В-третьих, это пользовательский интерфейс и общий пользовательский опыт (UX). Конкретный PaaS может предоставлять веб-интерфейс, интерфейс командной строки или и то, и другое. Порядок экранов, варианты выбора, логика организации и представления множества приложений и сред - все это решающие факторы для удобства использования данного PaaS. Цель состоит в том, чтобы упростить изменение того, что вам небезразлично, и скрыть то, что вас не волнует. Правильный компромисс между простотой и гибкостью, ограничениями и свободой, непрозрачностью и прозрачностью имеет решающее значение.

Когда вам может понадобиться PaaS

Те, кто не знаком с параметрами PaaS, могут спросить: «Каковы истинные преимущества использования платформы как услуги?» Они уточняют: «Я могу установить Ruby (или Node.js, PHP, MySQL, PostgreSQL и т. Д.), Развернуть свое приложение и сам контролировать системы!» Это определенно правда. Тысячи компаний сегодня занимаются собственным DevOps, и этот шаблон работает для них.

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

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

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

  1. У вас нет собственных ресурсов DevOps: настройка программного обеспечения на уровне платформы для запуска вашего приложения занимает много времени и является сложной задачей. Посмотрите это видео, в котором сравнивается развертывание приложения непосредственно на AWS с использованием PaaS. Упрощая, автоматизируя и, во многих случаях, устраняя шаги, связанные с настройкой основы для вашего приложения, вы можете быстрее развернуть свое приложение и быстрее его итерировать, адаптировать и расширять. со временем. Ваши разработчики могут сосредоточиться на разработке и оставить развертывание и управление вашему поставщику PaaS.
  2. Вы хотите повысить производительность инфраструктуры: знания и опыт в области инфраструктуры накапливаются с течением времени. Только когда вы потратили десятилетия на развертывание приложений на Ruby, у вас появятся знания, чтобы подготовить наиболее производительный стек инфраструктуры для Ruby. Именно здесь на помощь приходят поставщики PaaS - они обладают специальными знаниями и опытом в отношении лучшей базы данных, балансировщика нагрузки, веб-сервера, кеша и т. Д., Чтобы предоставить лучший стек инфраструктуры для вашего приложения.
  3. Вы хотите стандартизировать инфраструктуру: при таком большом количестве вариантов, которые доступны сегодня, очень сложно решить, какую инфраструктуру выбрать. Это привело к созданию индивидуальных перестановок и комбинаций, которые отлично работают до тех пор, пока обновления поставщиков не потребуют от вас выполнения десятков или сотен изменений конфигурации. Почему бы не позволить экспертам поставщика сделать выбор и создать лучшие в своем классе стандартные операции, которыми можно легко управлять?
  4. Вы хотите снизить затраты на инфраструктуру: у большинства организаций высокий уровень простаивающей или недостаточно используемой инфраструктуры. Это связано с тем, что они пытаются выделить инфраструктуру с избытком, чтобы обеспечить производительность в периоды пиковой нагрузки. Надежный PaaS имеет встроенное автоматическое масштабирование, которое позволяет масштабировать вашу инфраструктуру вверх или вниз в зависимости от спроса. Это может снизить затраты на инфраструктуру до 50 процентов с течением времени, обеспечивая при этом отличную производительность приложений.
    5. Вашими приложениями необходимо управлять круглосуточно. Критически важным фактором для большинства компаний является тип поддержки, в которой нуждается приложение. Допустим ли один день простоя для вашей бизнес-среды? А как насчет двух дней? Одно из ключевых преимуществ хорошего решения PaaS - это круглосуточный мониторинг и поддержка, поэтому у вас не будет простоев при возникновении проблем с вашим приложением. Здесь очень важно выбрать партнера PaaS, который предоставляет эти преимущества.

Причины использовать PaaS вместо того, чтобы делать это самостоятельно

На самом деле есть 5 основных преимуществ, которые дает инвестирование в PaaS по сравнению с тем, чтобы делать это самостоятельно.

1. Повышение ловкости

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

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

Еще одна проблема развертывания вашего приложения в собственном стеке - это огромное количество компонентов, которые необходимо поддерживать и обновлять с течением времени. Когда вам нужно заменить обновление на сервер приложений или балансировщик нагрузки, вы можете столкнуться с кошмаром реконфигурации. Этот страх приводит к тому, что многие мастера остаются на неопределенный срок в постоянно устаревшем стеке, опасаясь раскачивать лодку. Используя PaaS, вы не только получаете наилучший стек на момент развертывания, но и получаете стек, который не отстает от вас со временем, гарантируя, что ваше приложение всегда будет работать на самом последнем и лучшем.

2. Оптимизация затрат

Одна из самых больших проблем, связанных с предоставлением инфраструктуры для поддержания высокой производительности приложений, - это знать, какой объем инфраструктуры выделять - сколько процессоров, ОЗУ, хранилища и т. Д. Является оптимальным для обеспечения производительности в периоды пиковой нагрузки. Большинство компаний в конечном итоге излишне выделяют инфраструктуру с высоким уровнем простаивающих / недостаточно используемых ресурсов. Это приводит к чрезмерным расходам на использование AWS, которые можно контролировать, просто оптимизируя инфраструктуру. Надежная платформа PaaS использует интеллектуальный мониторинг производительности приложений в производственной среде для оптимизации инфраструктуры. Он также автоматически масштабируется в зависимости от спроса, что приводит к более высокому уровню использования и снижению затрат на AWS.

Другая большая область, в которой вы экономите, - это, конечно, расходы на найм специального человека для управления вашими приложениями в режиме 24x7. Реальность здесь такова, что такие ресурсы дороги и редки, и вы должны спросить себя, на что лучше потратить деньги. Так что посчитайте и убедитесь сами, что дешевле, особенно с учетом экономии на использовании AWS. Все это даже не считая экономии времени разработчика, потраченного на установку и настройку приложения в облаке, а также на постоянный мониторинг и управление, которые для критически важного приложения могут выполняться круглосуточно.

Также меньше очевидных скрытых затрат, таких как стоимость простоя, когда один из ваших администраторов делает ошибку при настройке вашего сервера приложений, и никто не может получить доступ к вашему веб-приложению в течение нескольких часов. Согласно исследованию Uptime Institute, 70% простоев центров обработки данных вызваны человеческими ошибками. Учитывайте как серьезные затраты, связанные с простоями, например потерю бизнеса и непредвиденные расходы на поддержку, так и мягкие затраты, такие как неработающие сотрудники и запятнанная репутация.

3. Лучшая производительность приложения

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

Лучшие поставщики PaaS встраивают технологии и методы в свои продукты, чтобы поддерживать доступность на достаточно высоком уровне, чтобы они могли предлагать соглашения об уровне обслуживания (SLA) с доступностью 99,9% или выше.

4. Автомасштабирование

Одним из ключевых преимуществ лучшей в своем классе платформы PaaS является автоматическое масштабирование - увеличение или уменьшение масштаба в зависимости от спроса. При самостоятельном создании платформы у вас в основном есть три варианта: вы можете оптимизировать для масштаба, в котором находитесь сейчас, вы можете оптимизировать для масштаба, который, как вы ожидаете, будет в будущем, или вы можете много вложить в создание собственного масштабирования. механизм. В первом случае вы рискуете переделать платформу и столкнуться с простоями, когда вы перерастете свою первоначальную настройку. Во втором случае вы, скорее всего, потратите ресурсы впустую из-за избыточного выделения ресурсов. И в третьем случае вы, вероятно, потратите много альтернативных затрат на создание чего-то, что в конечном итоге будет не так хорошо, как то, что вы можете получить от PaaS. С другой стороны, с PaaS вы получаете преимущество отличного механизма масштабирования, разработанного экспертами с течением времени и в ответ на потребности многих клиентов. Вдобавок к этому, механизм масштабирования PaaS использует эластичность базовой инфраструктуры, но представляет ее в удобном для использования виде, абстрагируя сложность деталей механизма.

5. Безопасность

Безопасность демонстрирует еще одно явное преимущество модели PaaS. С огромным объемом и разнообразием угроз безопасности на восходящей спирали защиту от атак лучше всего доверить специалистам. Предложение PaaS обеспечивает постоянные обновления безопасности для отдельных компонентов стека по мере их выпуска.

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

Если ваш основной опыт заключается в разработке программного обеспечения, а не в развертывании и инфраструктуре, PaaS может стать ответом на ваши молитвы.

Любой PaaS, который вы выберете, должен хорошо работать, а не просто работать в следующих областях:

  • Опыт работы с инфраструктурой: ищите поставщика, обладающего опытом работы с языком, на котором разработано ваше приложение. Если у вас есть приложение PHP, убедитесь, что он имеет опыт работы с инфраструктурой PHP и может сделать правильный выбор платформы.
  • Время установки и конфигурации: хорошая платформа PaaS должна сократить время установки и настройки с помощью предварительно настроенного стека и позволить вам отправлять код прямо из Git.
  • Горизонтальное автомасштабирование: обратите внимание на возможность автоматического масштабирования в соответствии с требованиями трафика и использования, чтобы не беспокоиться о масштабировании инфраструктуры на основе запланированного использования. Это гарантирует, что вам не придется выделять избыточные мощности и тратить ценные деньги на простаивающую инфраструктуру.
  • Поддержка и SLA: если у вас нет внутренних ресурсов, то поставщик PaaS - ваша рука поддержки. Это один из самых важных вариантов, который вам нужно сделать, поэтому выберите поставщика, имеющего репутацию надежной поддержки. Критически изучите их SLA и время ответа.
  • Гарантия безотказной работы: 99-процентная гарантия безотказной работы является стандартным для бизнеса. Убедитесь, что во время развертывания нет простоев.
  • Избыточность, аварийное переключение и резервное копирование: убедитесь, что провайдер берет на себя ответственность за репликацию, резервное копирование и восстановление, а также за поддержание вашей платформы в актуальном состоянии с помощью исправлений и новых функций.
  • Безопасность: Какую безопасность обеспечивает ваш PaaS? Вы находитесь в частном кластере или у вас есть общие ресурсы? Публичные кластеры менее безопасны и могут быть восприимчивы к проблемам с шумными соседями, когда один или несколько пользователей могут использовать все доступные ресурсы, снижая производительность.
  • Ценообразование: насколько хорошо ценообразование зависит от использования? Одна из распространенных жалоб пользователей PaaS заключается в том, что они могут очень быстро стать дорогими. Убедитесь, что цены являются масштабируемыми и обеспечивают ценность по сравнению с DIY.

Когда не стоит рассматривать PaaS

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

  1. Устаревшие системы: PaaS может не быть решением plug-and-play для существующих унаследованных приложений и сервисов, не предназначенных для облака. Вместо этого для работы старых систем со службой PaaS может потребоваться несколько настроек и изменений конфигурации. Полученная в результате настройка может привести к созданию сложной ИТ-системы, которая может полностью ограничить стоимость инвестиций в PaaS.
  2. Локальная интеграция: повышается сложность подключения данных, хранящихся в локальном центре обработки данных или внешнем облаке, что может повлиять на то, какие приложения и сервисы могут быть адаптированы к PaaS. Когда не все компоненты устаревшей ИТ-системы созданы для облака, интеграция с существующими услугами и инфраструктурой может стать проблемой.
  3. Широко настраиваемые конфигурации: надежная платформа PaaS имеет тенденцию продвигать стандартизированные конфигурации и ограничивать некоторую гибкость. Хотя это предназначено для снижения эксплуатационной нагрузки на разработчиков, это может не подойти вам, если вы хотите широко настроить свою среду.
  4. Огромный масштаб операций: если ваши операции находятся в масштабе Netflix или AOL, у вас, вероятно, есть большая внутренняя команда, и вы, возможно, захотите принимать все решения по инфраструктуре самостоятельно, а не оставлять их третьей стороне.

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

Автор: Даррен Броммер, евангелист разработчиков, DevGraph

Первоначально опубликовано на https://blog.engineyard.com.

Больше контента на plainenglish.io