Правильно ли я понимаю, что в целом IaaS (в первую очередь облачные серверы в стойке) будет предоставлять виртуальный сервер, на котором клиенту будут требоваться обновления ОС, обновления программного обеспечения, антивирус, управляемое резервное копирование и другие общие задачи администрирования сервера, не связанные с оборудованием. С другой стороны, с PaaS (если смотреть на heroku) почти все это обрабатывается хостом, и требуется лишь, возможно, время от времени внешние резервные копии. Гибкость и индивидуальная настройка - главные компромиссы?
Да, вы правильно поняли.
В случае облачных серверов Rackspace (IaaS) вы можете дополнительно оплатить управляемую поддержку, что означает, что вы можете заставить Rackspace позаботиться о многих из этих задач системного администратора. Тем не менее, вам все равно придется разобраться с некоторыми вещами.
В случае с PaaS вас вообще не волнуют серверы. Насколько вам известно, есть только веб-интерфейс, который позволяет вам публиковать приложения. Вы можете добавить дополнительные услуги, некоторые бесплатные, некоторые платные, которые добавляют такие функции, как база данных, но вы не будете знать, как именно они настроены.
Вы можете рассматривать IaaS как облако для системных администраторов, PaaS как облако для разработчиков, а SaaS как облако для конечных пользователей.
IaaS обеспечивает самообслуживание инфраструктуры - вычислений, хранилищ и сетей. Вам необходимо самостоятельно управлять этими вещами, включая конфигурацию, обновления и т. Д. Он абстрагирует детали оборудования, обычно посредством виртуализации (но не всегда - облака на голом железе предоставляют вам IaaS непосредственно на оборудовании).
PaaS позволяет развертывать приложения самостоятельно. Он абстрагирует детали серверов и другой инфраструктуры, включая масштабирование и восстановление. Для этого требуется, чтобы приложения были разработаны с учетом определенных ограничений, например 12 фактор принципы дизайна.
SaaS предоставляет пользователям приложения без необходимости устанавливать их самостоятельно или управлять базовыми системами.
У вас также есть что-то вроде EngineYard, который выглядит как гибрид этих двух подходов: вы можете настроить экземпляр EC2, который готов к использованию вашего приложения, но у вас может быть больше настроек, если вы также отправите рецепты Chef в этот экземпляр.
Я не уверен, что вы получите лучшее из обоих миров настройки + стандартизованные среды развертывания или худшее из обоих миров с трудными для реализации настройками, потому что стандартизованная среда не совсем подходит для вас (а настройка очень близка) .
В качестве примечания, одна особенность, скажем, в Heroku заключается в том, что вы будете писать относительно портативные приложения, масштабируемые по горизонтали. Это смирительная рубашка, которую предлагает вам PaaS, и неплохо, если вы обнаружите, что Heroku не совсем подходит и вам нужно решение IaaS.