Показаны сообщения с ярлыком DevOps. Показать все сообщения
Показаны сообщения с ярлыком DevOps. Показать все сообщения

среда, 15 августа 2018 г.

Ускоряем сборку проекта с использованием maven и git

Всем привет, сегодня поговорим о том, как ускорить сборку сложного, многомодульного мавен проекта.

Как мы обычно собираем проект? В любимом терминале вводим: mvn clean install
После этого maven компилирует весь проект и копирует созданные артифакты в локальный репозиторий. Все тривиально, но здесь есть ряд проблем. Это долго. Даже если убрать clean, запустятся тесты, после них произойдет упаковка в jar или какой другой тип артифакта, и наконец копирование полученного артифакта в $HOME/.m2/repository

Давайте подумаем над тем, как мы можем ускорить этот процесс. Может есть возможность выкинуть ненужные действия.
Как правило, изменения присутствуют не во всех модулях. Разумеется, можно собрать отдельно только те модули, которые нам нужны. Но это довольно утомительно. Нужно будет явно следить в каких модулях производились изменения и затем переключаться в требуемую директорию подмодуля либо прописывать явно названия этих подмодулей после флага -pl

Есть другое решение. Все мы, надеюсь, используем git, либо какую то другую scv. Так вот, почему бы при добавлении в репозиторий не добавлять информацию о номере последнего коммита. Это позволит отслежить версию артифакта в рамках одной и той же версии. Если ревизия совпадает. очевидно, нет смысла собирать еще раз подмодуль, т.к. в локальном репозитории присутствует уже актуальная версия.

Как же это реализовать? Для этого потребуется подключить несколько maven плагинов и немного попрограммировать на xml 😃

суббота, 17 июня 2017 г.

Создание сервиса в Linux

Иногда требуется не просто запустить программу, но и обеспечить ее работу, после перезагрузки, либо случайного падения. Можно в ручную следить за этим, но можно нужно, переложить эти заботы на откуп операционной системы. Для того чтобы сделать свою программу сервисом в Linux с использованием update-rc.d, достаточно выполнить следующее:

  • создать скрипт для управления жизненным циклом программы
  • назначить необходимые права на файл
  • зарегистрировать созданный скрипт как сервис
  • разрешить автозапуск сервиса

Как видим, шагов не так уж и много. И так начнем:

воскресенье, 5 июня 2016 г.

Что такое DevOps?

DevOps - термин обозначает группу идей, которые в большинстве своем не новы. Эти идеи уже повсеместно проникли и быстро распространились в техническом сообществе. Как и для любого нового и популярного термина, люди часто испытывают трудности и противоречивые чувства, когда пытаются понять что же это. Сейчас попробуем определить, чем DevOps может быть нам полезен.

DevOps схема

Определение DevOps

DevOps - новое понятие, являющееся объединением двух последних значимых трендов. Первый, так называемый "Agile в системном администрировании". Он поощряет применение практик Agile и Lean в области администрирования. Второй тренд - очень широкое для понимания значение, которое включает в себя взаимодействие между командой администрирования и программистами на всех стадиях разработки - от создания до обслуживания.
Другое определения дал Jez Hubmle :

DevOps - группа практик для изучения таких предметов, как создания, выполнения и администрирования быстроизменяющихся масштабируемых систем.