- PVSM.RU - https://www.pvsm.ru -
Создание любого приложения требует глубокого понимания проблем, которые могут возникать в процессе его жизненного цикла: от разработки до продакшина. Когда Вы разрабатываете комплексное приложение с кастомизированной логикой и пользовательскими интерфейсами, конфигурация «на лету» и в одном окружении не имеет никакого смысла. Как правило, такие приложения разрабатываются достаточно долго и требуют более формального подхода, чтобы обеспечить их эффективную работу по назначению и удовлетворить все потребности пользователей. Даже, если проект не очень большой, все равно намного удобней иметь отдельные окружения для разработки и тестирования, где Вы можете кодить, запускать тесты, никак не влияя на конечных пользователей.
Типичный жизненный цикл приложения включает разработку, тестирование, разворачивание и обновление. Само собой разумеется, что на стадии разработки программисты используют разного рода инструменты для анализа требований, проектирования и моделирования самого решения, а потом занимаются написанием кода приложения. Затем этот код проходит стадию тестирования и попадает на продакшн к конечному пользователю. После этого приложение постоянно обновляют, добавляют новые фичи и т.д.
Платформа Jelastic [1] поддерживает несколько инструментов и функций, которые значительно упрощают управление жизненным циклом приложения. Например, Вы можете использовать встроенный Maven, чтобы собирать проекты прямо в облаке. Непрерывная интеграция с помощью Jenkins или Hudson позволяет идентифицировать ошибки заранее и сразу же исправлять их. Вы можете легко клонировать окружения для разработки, тестирования и продакшина так, что они будут абсолютно идентичны касательно программного стека и топологии. Так же можно легко привязывать доменные имена и переключать их между окружениями, когда это необходимо. Начиная с последнего релиза, можно создавать окружения без вычислительных узлов и т.д.
Давайте рассмотрим небольшой пример того, как можно упростить управление жизненным циклом приложения. Мы создадим четыре окружения (для сборки, тестирования, хранения данных и продакшина), развернем приложение и обновим его с помощью доступного в Jelastic набора инструментов. В этом примере окружения для тестирования и продакшина будут «смотреть» в одну базу данных. Для сборки проектов так же будем использовать отдельную среду.
Чтобы реализовать данную схему нам понадобится реализовать следующие шаги:
1. Создание окружения для продакшина.
2. Создание окружения для сборки проекта.
3. Сборка и разворачивание проекта.
4. Создание окружения для хранения данных.
5. Конфигурация приложения под базу данных.
6. Создание окружения для тестирования.
7. Обновление приложения.
Итак, начнем.
Давайте представим, что у нас уже есть первая протестированная версия приложения, и мы хотим развернуть ее на продакшине.
Выбираем необходимый сервер приложений (для примера используем GlassFish), устанавливаем лимит потребляемых ресурсов и создаем окружение.
Как мы уже упоминали ранее, в Jelastic есть встроенный инструмент для сборки приложений в облаке — Maven, который подтягивает код прямо с Git или SVN репозитария.
Итак, выбираем Maven в качестве нашего инструмента для сборки, устанавливаем лимит ресурсов и создаем наше второе окружение.
Теперь мы можем легко собрать и развернуть наше приложение.
1. Добавляем проект в Maven:
2. Затем просто кликаем Build and deploy и все готово:
В данном примере будем использовать одну базу для продакшина и тестирования.
1. Создаем третье окружение с базой (например, MySQL):
2. После создания окружения заходим на phpMyAdmin (для этого нужно просто кликнуть Open in browser для MySQL) и создаем нового пользователя и базу для своего приложения (логин и пароль Jelastic прислал Вам на почту сразу же после создания окружения).
Сейчас нужно сконфигурировать наше приложение под базу.
1. Кликаем Config для сервера приложений (на продакшине).
2. Создаем в папке home файл mydb.cfg, где прописываем коннекшн к базе:
host=jdbc:mysql://mysql-{your_env_name}.{hoster_domain} [2]/{db_name}
username={get in the email from Robot@jelastic}
password={get in the email from Robot@jelastic}
driver=com.mysql.jdbc.Driver
3. Загружаем коннектор для нашей базы (в данном случае MySQL) в папку lib нашего сервера.
4. Рестартуем сервер, чтобы он подтянул все изменения, и можно открывать приложение в браузере.
5. После успешного разворачивания давайте привяжем к нашему продакшн-окружению доменное имя. Предположим, что мы ранее купили доменное имя (production.com). Кликаем Settings для нашего окружения и во вкладке Custom domains делаем привязку домена:
6. Проверяем:
Теперь самое время создать окружение для тестирования будущих версий нашего приложения. Для таких целей мы можем просто клонировать продакшн-окружение. Клон абсолютно идентичен оригиналу и включает все данные, развернутые приложения, библиотеки и т.д.
1. Кликаем Clone environment:
2. Вводим имя нового окружения:
И готово:
Предположим, что мы добавили новые фичи в наше приложение и хотим развернуть его в тестовом окружении.
1. Добавляем наш новый проект в Maven, разворачиваем его в окружении для тестирования.
2. Привязываем доменное имя (к примеру: test.com):
3. Еще раз убеждаемся, что все работает должным образом:
4. После тестирования новой версии нашего приложения мы можем просто переключить домены между нашим тестовым и продакшн окружениями. Это позволит обновиться без даунтайма, не расстраивая наших пользователей.
Для этого просто кликаем на Settings для одного из окружений, выбираем окружение, с которым мы хотим обменяться доменами и нажимаем Swap:
5. Давайте проверим:
Как видим, обновление прошло успешно.
Это всего лишь один простой пример, на самом деле, вариантов и комбинаций множество. За счет автоматизации рутинных процессов, можно существенно упростить разворачивание и управление жизненным циклом приложения.
А как Вы управляете жизненным циклом Вашего приложения? Какие инструменты используете? Что еще из функционала посоветуете добавить? Будем признательны, если поделитесь своим опытом в комментариях.
Также приглашаем всех завтра на конференцию «Разработка ПО 2012» CEE-SECR 2012 (Центр Digital October [3], Москва, 10:10) послушать доклад технического директора российского подразделения Jelastic Дмитрия Лазаренко. Приходите, будет интересно! Вы узнаете, кому нужен Private PaaS и какие выгоды он дает. Будут рассмотрены задачи, которые лучше всего решаются с помощью Private PaaS, и основные преимущества Private PaaS над Public PaaS / Private IaaS, способствующие экономии бюджета компании на IT. Дмитрий проведет сравнительный анализ рынка Private PaaS решений и расскажет о новой платформе Jelastic Private PaaS Cloud. Ну и, конечно же, наш докладчик с удовольствием ответит на все интересующие Вас вопросы.
Автор: jelastic
Источник [4]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/maven/18628
Ссылки в тексте:
[1] Jelastic: http://jelastic.com
[2] {hoster_domain}: http://jelastic.com/docs/jelastic-hoster-info
[3] Центр Digital October: http://www.secr.ru/venue
[4] Источник: http://habrahabr.ru/post/156897/
Нажмите здесь для печати.