Pull to refresh

Amazon наступает: Amazon Elastic Beanstalk

Reading time 3 min
Views 12K
Долгое время многие сравнивали Amazon AWS и Google Apps Engine как облачные решение — хотя сравнения были не совсем корректны — так как все-таки это решения разных «весовых категорий». Если Амазон предлагал Infrastructure as a Service (IaaS), то GAE это чистой воды Platform as a Service.
И вот Amazon перешел в наступление — сегодня анонсирован Amazon Elastic Beanstalk.
image

Итак — в чем принципиальное отличие IaaS и PaaS. IAAS — это по сути дела компьютер — на котором вы что хотите — то и делаете. Подключаете диски, ставите операционку, настраиваете весь софт. Amazon просто позволял собирать и настраивать такой компьютер через веб сервисы, а так же предоставлял ряд дополнительных сервисов, которые например могли запустить еще один такой же компьютер в случае повышения нагрузки (ну и много чего другого). Это если кратко и утрировано.
В PaaS для вас все сделали — и компьютер собрали, и операционку установили, и даже весь софт запустили и настроили — вам надо только загрузить свою конкретную программу которая будет все это использовать — и совсем не думать о том (в теории) как это все работает, скалируется, кешируется, бекапится и т.д.
У каждого решения есть свои плюсы и минусы. Amazon AWS и IAAS более функционален — но сложнее в использовании, GAE и соответственно PaaS проще в использовании, но накладывает целый ряд ограничений.

И вот сегодня Amazon перешел в наступление — анонсировано PaaS решение основанное на сервисах Amazon AWS: Amazon Elastic Beanstalk. По сути дела — это Tomcat (то есть только java) запущенный на EC2 инстансах, которые скалируются при помощи Amazon CloudWatch, который может использовать (в том числе) и Amazon RDS (MySQL in the Cloud) в качестве базы данных. Все управляется через удобную Amazon AWS Managment Console (в том числе деплоймент приложения). То есть — удобство GAE — но без его ограничений.

Надо сказать, что Amazon тут далеко не первый — до этого уже были проекты по организации PaaS для Java поверх амазоновских сервисов, это и Mor.ph (они переключились в немного другую область), и Stax и CloudFoundry от SpringSource.
У Amazon есть все шансы преуспеть (если конечно такой сервис будет востребован пользователями — почему нет — посмотрим ниже).

Итак — что же такого предлагает Amazon CloudFoundry:
1. Простой деплоймент — действительно простой — вы просто указываете имя приложения и загружаете вар-ник (ну почти как в GAE)

2. Версионирование (в GAE тоже есть)
3. Запуск любых Java приложений — нет ограничений на API (явный прорыв по сравнению с GAE)
4. Использование любых баз данных (опять-таки одна из главных претензий разработчиков к GAE). Правда вы должны в этом случае сами думать о скалировании — если вы используете встроенную HSQL — то как это будет работать когда у вас появится не один — а два томката?
5. У вас есть файловая система!!! (ну хорошо — в GAE при желании она тоже есть — но с ограничениями).
5. Мониторинг используемых ресурсов, просмотр логов (опять-таки тут аналогично GAE)
6. Автоматическое скалирование (тоже аналогично GAE)
7. Доступ к системе по SSH (если очень надо что-то ручками подкрутить)
Итак — в плюсе полная свобода Amazon AWS при аналогичной простоте деплоймента, управления и мониторинга.

Ну а что в минусе?
1. Только Java (на GAE хотя бы Питон есть).
2. Совсем уж автоматического скалирования не выйдет. Так как приложение может быть в принципе любым — вы сами должны позаботится о правильной работе в кластере таких вещей как (например) кеш hibernate или индексы lucene.
3. Основное наверное — это цена. На GAE большинство сидят в бесплатном лимите, то тут придется платить. И если сам Amazon Elastic Beanstalk обойдется вам бесплатно, то за все используемые сервисы (EC2, EBS, CloudWatch и пр.) надо будет платить — и сразу. Расчет на сайте дает минимум 37.22$ в месяц -и это при одном t1.micro инстансе! А если добавить базу на Amazon RDS, да нормальный инстанс, да включится кластер…

То есть — для стартапа — где и одной машины хватит — это получается дорого. Для развитого проекта — где встает вопрос скалирования — тут да — это может помочь — но обычно такие вопросы уже решаются к тому моменту.
Хотя — если кто-то уже использует Amazon для хостинга java приложений данное решение может оказаться полезным — учитывая что за бесплатно предоставляется дополнительная возможность для мониторинга и управления с упрощенным деплойментом.
Tags:
Hubs:
+33
Comments 17
Comments Comments 17

Articles