OpenShift — это система «платформа как услуга» (PaaS), которая подходит для растущего числа таких систем. Однако в OpenShift есть кое-что, чего нет во многих системах PaaS, основанных на запуске. OpenShift был создан известной компанией Red Hat с открытым исходным кодом / Linux. Red Hat является синонимом создания стабильных и надежных систем для предприятия, поэтому неудивительно, что они вошли в число поставщиков PaaS.
В этой статье я собираюсь показать вам, как настроить OpenShift, развернуть в нем существующее простое веб-приложение на PHP и продолжить разработку приложения в облаке OpenShift.
1. Получить аккаунт
Буквально за несколько секунд, чтобы зарегистрировать бесплатный аккаунт, сделайте это сначала:
2. Убедитесь, что ваша система соответствует требованиям
Существуют некоторые специальные требования к работе, но следующий список охватывает общие требования:
- Git должен быть установлен
- Ruby (как минимум версия 1.8.7) должен быть установлен
Требования к Linux
для большинства дистрибутивов Linux вам понадобится root-доступ, а также пакет разработки для установленной вами версии Ruby. Вам нужен Git и rubygems тоже.
Требования к Windows
Вам нужно будет запустить Cygwin (Linux-подобную среду для Windows) со следующими дополнительными компонентами:
- OpenSSH
- Рубин
- сделать
- НКУ
- мерзавец
Требования к Mac
Для Mac (Snow Leopard и Lion) вам нужен Git или полный пакет XCode.
3. Настройка справки
Стоит отметить, что после того, как вы подтвердили свою учетную запись и вошли в систему, есть несколько видеороликов «Начало работы», которые помогут вам настроить систему.
4. Установка клиентских инструментов
Независимо от вашей операционной системы вам нужно будет установить клиентские инструменты OpenShift Ruby gems. Перейдите в командную строку / консоль и выполните:
gem install rhc
Если вы работаете на Mac, вам также нужно установить гем json_pure.
Возможно, вам придется использовать «sudo» для установки гемов, если вы используете Linux / Windows с Cygwin.
5. Создайте пространство имен
Вам будет предложена ссылка для перехода на панель управления, чтобы вы могли создать пространство имен:
Вам также нужно будет добавить свой открытый ключ. Если вы не уверены, как сгенерировать свою собственную пару открытый / закрытый ключ, просто зайдите в терминал и выполните:
ssh-keygen
Принятие выбора по умолчанию в порядке.
6. Создайте приложение
Теперь мы можем создать приложение. OpenShift поддерживает приложения Java, Perl, Python, Ruby или PHP. Мы собираемся создать приложение PHP, поэтому вернитесь в терминал и выполните:
rhc app create -a shouter -t php-5.3 -l your user name
Итак, здесь мы создаем новое приложение под названием «shouter» с типом, установленным в PHP 5.3. Затем вы также добавляете свое имя пользователя для входа в систему. Затем вам будет предложено ввести пароль.
Через некоторое время вы получите подтверждающее сообщение о том, что ваше приложение создано. Вам также будет дан URL-адрес, по которому вы сможете увидеть свое новое приложение в веб-браузере. Другой важной частью предоставленной информации будет адрес клона Git.
Примечание. Вам будет предложено добавить URL-адрес веб-приложения в список известных хостов. Вы должны ответить да.
7. Клонировать приложение
Откройте новое окно терминала (мне нравится держать его открытым для выдачи команд в приложении), перейдите в каталог проектов и выполните:
git clone the-clone-url-you-were-provided-with shouter
Примечание о приложении
Приложение, о котором я здесь говорю, называется «крикун». Это PHP-приложение на основе CodeIgniter, которое предоставляет простой браузерный «крик» или систему сообщений. Очевидно, что вы можете использовать свое собственное приложение, просто замените «крик» названием своего приложения.
Как только клон завершится, вам будет представлена структура каталогов, которая выглядит следующим образом:
Это папка PHP, которая нас больше всего интересует, поскольку именно там будут находиться наши основные файлы приложения.
8. Просто убедитесь, что все работает …
Теперь мы можем сделать простое изменение, зафиксировать и отправить его, а затем проверить, видим ли мы это изменение в нашем браузере. Добавьте небольшой фрагмент текста в index.php (все, что вам нравится), а затем зафиксируйте его:
git commit -am 'just a test commit'
Затем мы можем вернуться к облаку OpenShift:
git push origin master
Обновите ваш браузер, и вы увидите, что ваши изменения появятся
9. Установите несколько картриджей
OpenShift использует концепцию картриджей. Их можно рассматривать как пакеты программного обеспечения, которые можно установить для поддержки вашего приложения. Таким образом, для приложения PHP довольно распространены MySQL и phpMyAdmin. Мы можем добавить их для нашего приложения с помощью простой команды из терминала:
rhc app cartridge add -a your-app -c mysql-5.1 -l your-user-name
И phpMyAdmin:
rhc app cartridge add -a your-app -c phpmyadmin-3.4 -l your-user-name
Теперь у вас запущен MySQL для вашего приложения, и им можно управлять через phpMyAdmin. Внимательно примите во внимание регистрационные данные, которые вам предоставлены. Вы будете нуждаться в них!
10. Разработайте свое приложение
Поэтому, если у вас есть приложение, которое вы хотели бы запустить в OpenShift, его просто переместить. Однако одно предупреждение: OpenShift, по мнению Red Hat, является предварительным обзором для разработчиков. Это означает, что он, вероятно, не подходит для производственного кода. Сказав это, я использовал его на прошлой неделе, и не испытал никаких проблем вообще.
Если ваш проект уже находится под управлением исходного кода Git, вам, скорее всего, потребуется удалить файлы Git и просто скопировать приложение в локальный клон вашего проекта OpenShift. Перенос истории из одного репо в другой — сложная задача, и обычно она работает только при наличии одной папки.
Я был бы склонен сохранить мое старое репо в качестве ориентира и скопировать код в репозиторий OpenShift.
Рабочий цикл
Так что теперь вы можете развиваться, добавляя новые функции для вашего приложения. Вы можете фиксировать и нажимать на OpenShift каждый раз, когда обновляете что-либо, или использовать локальную настройку AMP (MAMP / WAMP, локальный Apache) для локального тестирования изменений, прежде чем отправлять их в OpenShift. Это означает, что вы работаете так же, как если бы вы использовали Github, например, для удаленного управления вашим исходным кодом. Единственное отличие состоит в том, что вы фактически развертываете свой код, когда нажимаете на пульт.
Файлы конфигурации
Ранее я упоминал, что мое приложение было построено поверх платформы CodeIgniter. Одним из преимуществ использования инфраструктуры является то, что вы можете легко манипулировать файлами конфигурации для работы либо в локальной настройке, либо в развертывании OpenShift. Например, с CodeIgniter, в application / config / config.php вы можете сделать что-то вроде:
if($_SERVER['SERVER_NAME'] == "shouter.dev")
{
//local environment
$config['base_url'] = 'http://shouter.dev/';
}
else
{
//OpenShift
$config['base_url'] = 'http://your-url.rhcloud.com/';
}
Вы можете сделать то же самое для конфигурации базы данных.
.htaccess
Вы можете создавать собственные файлы .htaccess для вашего приложения, они работают как положено.
Пространства имен
OpenShift использует концепцию пространств имен в качестве домена. В одном пространстве имен может быть несколько приложений; имя, которое вы даете приложению, будет частью URL-адреса, с которым вы получаете доступ к своему приложению. Если вы хотите больше пространств имен, вам придется создать новую учетную запись для каждого.
Доменные имена
Если у вас есть доменное имя, которое вы хотите указать на свое приложение OpenShift, вы можете это сделать. Вернуться на терминал сделать:
rhc-ctl-app -a appname -c add-alias --alias www.mydomain.com
Затем в вашем управлении DNS для mydomain.com вы можете добавить cname для указания www.mydomain.com на app-namespace.rhcloud.com.
В заключение…
Конечно, существует множество вариантов PaaS. Учитывая, что OpenShift является предварительным обзором для разработчиков, он уже чувствует себя очень стабильным. Red Hat также работает над консолью управления на основе браузера, чтобы упростить настройку новых приложений, управление пространством имен и доступ к данным учетной записи. Эта статья дала вам обзор того, как настроить и начать / продолжить разработку вашего приложения. Помните, что приложения Ruby, Python и Java поддерживаются.