Cloud9 и OpenShift. Разработка и развертывание приложений в облаках

в 10:27, , рубрики: Веб-разработка

Так уж получилось, что сейчас я стажируюсь в одной компании, где очень тяжело выбить простую программку себе на десктоп, а тем более IDE, порой это даже превращается в целые недельные квесты. Но в то же время, в свободное от работы время, я очень люблю экспериментировать. Почитав статью про онлайн IDE и имея аккаунт в OpenShift решил все таки попробовать создать и развернуть Yii приложение в облаках.

Сразу оговорюсь, что статься для начинающих. Кому интересно заходите!

Связываем Cloud9 IDE и OpenShift.

В качестве IDE я решил остановиться на Cloud9, дизайн и функциональность меня устраивает. Плюс то, что можно запускать приложение прямо в IDE, минус — не поддерживается хостинг баз данных, поэтому попробуем организовать доступ к базе данных, которую мы создадим в OpenShift.

Да и еще, мне улыбнулся Cloud9 из-за присутствии терминала (Alt+T), пускай хоть и ограниченного.

Cloud9 и OpenShift. Разработка и развертывание приложений в облаках

Шаг 0. Создаем аккаунты, если их у Вас еще нет.

Лично я использую бесплатные возможности.
Для Cloud9 это публичные рабочие среды по 128MB + 1 одна приватная + ограниченный терминал.
Для OpenShift это 3 small картриджа, каждый по 512MB RAM и 1GB disk. Картриджи это компоненты, которые можно добавить в приложение, такие как базы данных (MySQL, PosgreSQL и MondoDB) и инструменты администрирования (phpMyAdmin, RockMongo, Cron и т.п.).
Для маленьких экспериментов вполне достойно.

Шаг 1. Добавляем в OpenShift SHH ключ из Cloud9

SHH ключи, как известно, используются для безопасного соеднинения, вот хорошие статьи
В Cloud9 ключ можно найти в пункте Show SHH key в Your Account.

Cloud9 и OpenShift. Разработка и развертывание приложений в облаках

Копируем его и вставляем данный ключ в OpenShift, для этого в Your Account есть Public Keys

Cloud9 и OpenShift. Разработка и развертывание приложений в облаках

Шаг 2. Создаем рабочую среду в Cloud9 и добавляем приложение в OpenShift

Здесь все просто, главное — при создании приложения в Cloud9 выбрать git версию рабочей среды. Дальше git будет нашим верным помощником.

Cloud9 и OpenShift. Разработка и развертывание приложений в облаках

В OpenShift легким движением мыши создаем приложение с PHP 5.3.

Cloud9 и OpenShift. Разработка и развертывание приложений в облаках

Шаг 3. Добавляем git репозиторий приложения из OpenShift в рабочую среду Cloud9

После создания приложения в OpenShift можно увидеть его git репозиторий.

Cloud9 и OpenShift. Разработка и развертывание приложений в облаках

Для линковки данного репозитория к рабочей среде в Cloud9 используем следующие команды:

git remote add openshift -m master ssh://******.git/
git pull -s recursive -X theirs openshift master

Шаг 4. Подгружаем Yii в рабочей среде Cloud9 и создаем каркас приложения yii

Для загрузки yii фреймоврка в приложение используем его git репозиторий, добавив его как подмодуль:

git submodule add git://github.com/yiisoft/yii.git yii
git commit -m «added yii repository as submodule»

В репозитории подгрузим нужный нам релиз:

cd yii
git checkout 1.1.13
cd…
git add yii
git commit -m «Use yii v1.1.13»

Теперь создадим каркас приложения yii. Для этого обычно используется скрипт webapp, но запустить его просто как shell не получится. Вместо этого будем использовать php версию скрипта, и да, нам понадобиться глобальный путь до нашей папки.
Выполним следующую команду и получим глобальный путь:

pwd

Имеем примерно следующее:

Cloud9 и OpenShift. Разработка и развертывание приложений в облаках

Теперь выполним скрипт с этим путем для создания каркаса приложения:

php yii/framework/yiic.php webapp /var/lib/stickshift/ffa13067224647beb05863058997082a/app-root/data/354172/php git

Добавим все полученное:

git add php
git commit -m «created yii skeleton app»

Пробный запуск php/index.php из Cloud9 покажет нам предупреждение:

date(): It is not safe to rely on the system's timezone settings.

Решается это добавлением в php/protected/config/main.php следующего:

<?php
// uncomment the following to define a path alias
// Yii::setPathOfAlias('local','path/to/local-folder');
date_default_timezone_set( 'UTC' );

И не забываем commit:

git commit -a -m «set the default timezone to UTC»

Хочу отметить, что проблема существует только в Cloud9, в Openshift приложение запускается без каких-либо предупреждений.

Cloud9 и OpenShift. Разработка и развертывание приложений в облаках

Шаг 5. Создаем базу данных в OpenShift и настраиваем соединение

Конечно можно обойтись базой данных sqlite, но ради собственного интереса настроим MySQL, добавим картридж на странице приложения. Обязательно запишите выданный пароль перед завершением, т.к. после этого я так и не нашел способ восстановить или изменить пароль :(.

Cloud9 и OpenShift. Разработка и развертывание приложений в облаках

Адрес и порт базы данных я смог узнать, только поставив кардридж phpMyAdmin.

Cloud9 и OpenShift. Разработка и развертывание приложений в облаках

В том же php/protected/config/main.php настриваем соединение с MySQL.

Вот и все!

Теперь приложение готово для дальнейших действий. Все это можно сделать используя только браузер, везде где есть интернет.

Использовались следующие источники:
1. Look Ma, No Hands! Developing for the Cloud, in the Cloud with Cloud9 IDE
2. Create Yii Project In Cloud9

Надеюсь статья окажется полезной!

Автор: zharkyn

Источник

Поделиться

* - обязательные к заполнению поля