Метки
amd bittorrent bug centos debian enlightenment fedora fedora 8 fedora 9 fedora 10 fedora 11 fedora 12 fedora 13 fedora 15 fedora 16 FedoraMD fglrx firefox flash player gnome google intel interview java kde kernel linux livecd migrate moldova nvidia openoffice OpenStreetMap opera Orange ovirt radeon red hat rpmfusion Sandel skype video virtualisation vmware wine
OpenShift: PaaS — новая мода в мире Shared Hosting
2014-09-20 19:40 | Автор: jekader | Filed under: FedoraMD
Многие из нас пришли в мир Linux благодаря стеку LAMP, который так удобен для дешёвого хостинга. Но времена изменились и старую знакомую нам технологию тоже коснулась лихорадка по имени Cloud. Результат наывается Platform as a Service, сокращённо PaaS. Вещь это многократно более сложная, но принцип тот-же: один физический сервер (или ферму серверов) предлагается делить между клиентами, давая каждому из них ограниченную свободу действий для внедрения приложений. Со стороны пользователя всё тоже аналогично, только технологии гораздо современнее.
На рынке PaaS присутствуют такие игроки как Heroku, Google App Engine, а в этой заметке я продемонстрирую работу с продуктом от RedHat по имени OpenShift.
Итак, OpenShift - это PaaS решение, использующее открытые технологии для облегчения работы разработчиков. Имеется три версии:
- Online
- Enterprise
- Origin
Версия Origin - это открытый продукт, доступный для скачивания и установки любому желающему. Enterprise - это "платная" версия с поддержкой и дополнительными плюшками. Online - самая удобная для начинающих версия. По суте это публичный экземпляр версии Enterprise, поддерживаемый RedHat и открытый для регистрации. То есть не нужно ничего устанавливать и настраивать: достаточно создать учётную запись и пользоваться, причём есть и бесплатный "тарифный план". Понятно, что сделано это для привлечения новых пользователей версии Enterprise, но если посмотреть со стороны термина "Shared Hosting", то бесплатный гигабайт хранилища + php/python/perl/etc + mysql/postgres/mongo/etc это совсем неплохая халява!
Теперь, когда стимул для изучения новой технологии получен, приступаем. Первым делом я зарегистрировался на сайте. При наличии пароля, работать можно как через web интерфейс, так и через консольную утилиту "rhc" доступную как ruby gem:
# gem install rhc
я создал отдельную директорию openshift и продолжил работать в ней:
$ mkdir ~/openshift
$ cd ~/openshift
предлагаемая методика работы следующая: проекты создаются через rhc, а код в них заливается через git.
Для начала подключаемся к учётной записи
$ rhc setup -l <username>
в этом процессе произойдёт настройка, будет также запрошен namespace. Подробнее об этом: в openshift online приложения доступны по адресу <app>-<namespace>.rhcloud.com
Я например указал jekader в качестве namespace, поэтому в результате имею приложения вида test-jekader.rhcloud.com Можно указать и свой собственный домен, но я не прорверял.
После настройки выдаётся рекомендация по созданию приложения.
Run 'rhc create-app' to create your first application.
Do-It-Yourself 0.1 rhc create-app <app name> diy-0.1
JBoss Application Server 7 rhc create-app <app name> jbossas-7
JBoss Data Virtualization 6 rhc create-app <app name> jboss-dv-6.0.0
JBoss Enterprise Application Platform 6 rhc create-app <app name> jbosseap-6
Jenkins Server rhc create-app <app name> jenkins-1
Node.js 0.10 rhc create-app <app name> nodejs-0.10
PHP 5.3 rhc create-app <app name> php-5.3
PHP 5.4 rhc create-app <app name> php-5.4
PHP 5.4 with Zend Server 6.1 rhc create-app <app name> zend-6.1
Perl 5.10 rhc create-app <app name> perl-5.10
Python 2.6 rhc create-app <app name> python-2.6
Python 2.7 rhc create-app <app name> python-2.7
Python 3.3 rhc create-app <app name> python-3.3
Ruby 1.8 rhc create-app <app name> ruby-1.8
Ruby 1.9 rhc create-app <app name> ruby-1.9
Ruby 2.0 rhc create-app <app name> ruby-2.0
Tomcat 6 (JBoss EWS 1.0) rhc create-app <app name> jbossews-1.0
Tomcat 7 (JBoss EWS 2.0) rhc create-app <app name> jbossews-2.0
Vert.x 2.1 rhc create-app <app name> jboss-vertx-2.1
You are using 0 of 3 total gears
The following gear sizes are available to you: small
Your client tools are now configured.
Создадим php-5.4 приложение с именем "test":
$ rhc app create -a test php-5.4
на выходе получаем подробные инструкции об использовании:
Application Options
-------------------
Domain: jekader
Cartridges: php-5.4
Gear Size: default
Scaling: no
Creating application 'test' ... done
Waiting for your DNS name to be available ... done
Cloning into 'test'...
The authenticity of host 'test-jekader.rhcloud.com (174.129.52.167)' can't be established.
RSA key fingerprint is fe:dc:ba:09:87:65:43:21:fe:dc:ba:09:87:65:43:21.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'test-jekader.rhcloud.com,174.129.52.167' (RSA) to the list of known hosts.
Your application 'test' is now available.
URL: http://test-jekader.rhcloud.com/
SSH to: 87654321fedcba0987654321@test-jekader.rhcloud.com
Git remote: ssh://87654321fedcba0987654321@test-jekader.rhcloud.com/~/git/test.git/
Cloned to: /home/jekader/openshift/test
Run 'rhc show-app test' for more details about your app.
Мало того, содержимое приложения только что было скопировано в текущую директорию:
$ ls -l test
total 40
-rw-r--r-- 1 jekader jekader 39627 Sep 20 18:01 index.php
переходим в директорию и изменяем наш файл:
$ cd test
$ mcedit index.php
я задал вот такое содержимое:
< ?php echo "test"; ?>
теперь требуется чтоб изменения попали "в облако". Для этого используется git. Устанавливаем его при отсутствии, затем комментируем изменения и сохраняем:
$ git commit -a -m 'test commit'
[master af3b92e] test commit
1 file changed, 2 insertions(+), 274 deletions(-)
rewrite index.php (99%)
результат загружаем на OpenShift:
$ git push
Counting objects: 3, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 298 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
remote: Stopping PHP 5.4 cartridge (Apache+mod_php)
remote: Waiting for stop to finish
remote: Waiting for stop to finish
remote: Building git ref 'master', commit af3b92e
remote: Checking .openshift/pear.txt for PEAR dependency...
remote: Preparing build for deployment
remote: Deployment id is e65b2d96
remote: Activating deployment
remote: Starting PHP 5.4 cartridge (Apache+mod_php)
remote: Application directory "/" selected as DocumentRoot
remote: -------------------------
remote: Git Post-Receive Result: success
remote: Activation status: success
remote: Deployment completed with status: success
To ssh://87654321fedcba0987654321@test-jekader.rhcloud.com/~/git/test.git/
2e0de71..af3b92e master -> master
Ну вот и всё, можно заходить и смотреть результат:
http://test-jekader.rhcloud.com/
Аналогично загружаются и любые другие изменения. К контейнеру можно подключаться напрямую по SSH, а также настраивать через web интерфейс OpenShift. Возможностей на самом деле гораздо больше, но пользоваться довольно-таки удобно, особенно учитывая что основная масса разработки и так ведётся с использованием git.
Надеюсь что эта заметка подтолкнёт кого-нибудь воспользоваться "бесплатным хостингом от RedHat", а может даже и внедрить OpenShift в своей организации для упрощения труда разработчиков. В будущих версиях обещают и поддержку Docker.
24, 2014 12:06
Тянет посмотреть поближе. Спасибо за ликбез!
24, 2014 13:47
Вася, технология действительно приятна. Попробуй на openshift online зарегистрировать учётку и поиграться — там всего парочку команд достаточно чтобы создать приложение.
2, 2014 9:32
Жека, супер. Мне очень понравилось.
Вопрос другой, на сколько долго будет работать Online? и какие у него ограничения, кроме пронстранства?
2, 2014 9:39
Думаю ближайшие годы проживёт, а дальше видно будет. На крайняк, как уже говорил, всегда можно поднять свой собственный OpenShift и туда смигрировать.
Условия пользования я не читал, хотя никаких особых ограничений похоже нету:
https://www.openshift.com/legal/acceptable_use
9, 2018 16:19
[…] в особенности — факт того, что OpenShift перестал быть PaaS платформой и независимым продуктом. Теперь это дистрибутив […]