|
Maven и зависимость по коммиту гита
|
|||
---|---|---|---|
#18+
mayton Я держу 2 копии проекта в двух фолдерах. Чтоб в 2 среды разработки открывать один и тот-же проект в разных бранчах и стоять в двух дебаггерах одновременно. Я понимаю, что это - антипаттерн работы, но мне почему-то так удобно. Если кто знает оптимизацию или автоматизацию подобного - сообщите plz. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.07.2021, 09:33 |
|
Maven и зависимость по коммиту гита
|
|||
---|---|---|---|
#18+
mayton Я понимаю, что это - антипаттерн работы в гите для этого даже отдельную мульку сделали - worktree. в голову тут же приходит пример проектов с android или node/npm - если нужно часто переключаться между сильно отличающимися бранчами, можно постареть пока все обновится/задаунгрейдится. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.07.2021, 09:40 |
|
Maven и зависимость по коммиту гита
|
|||
---|---|---|---|
#18+
PetroNotC Sharp mayton Я держу 2 копии проекта в двух фолдерах. Чтоб в 2 среды разработки открывать один и тот-же проект в разных бранчах и стоять в двух дебаггерах одновременно. Я понимаю, что это - антипаттерн работы, но мне почему-то так удобно. Если кто знает оптимизацию или автоматизацию подобного - сообщите plz. Автоматизацию всего. Моей работы. Нужно обновлять 2 локальных репо. Нужно стартовать 2 экземпляра среды и настраивать одинаковый view. Рутина. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.07.2021, 09:40 |
|
Maven и зависимость по коммиту гита
|
|||
---|---|---|---|
#18+
Stanislav Bashkyrtsev Не понял, про какую часть CD вопрос? Если про пайплайн, то обычный Jenkins. Вот только деплой бы для секурности вынести в отдельный инструмент (а женкинс его дергает), но я по старинке пока - женкинсом делаю. Ну давайте позанудствуем... В целом под "установкой" я понимаю примерно следующее: - сформировать ранлист, где указаны определенные вехи и продолжительность операций - согласовать (ну и назначить) время среди всех заинтересованных владельцев систем, а не только целевой - оповестить пользователей о предстоящей недоступности (мне вот, к примеру, банк присылает оповещения что онлайн-кабинет не будет работать в определенный промежуток времени) - согласовать доступность ключевых сотрудников на случай если что-то пойдет не по плану - убедиться что из резервных копий можно-таки восстановиться - в час Х создать резервные копии, если необходимо - что-то куда-то накатить - прогнать смок-тесты - оповестить, что систему можно проверять - здесь пропущены итерации о том что делать если что-то пошло не по плану - опционально оповестить пользователей о доступности системы и вот с моей точки зрения шаг "что-то куда-то накатить" даже не имеет смысла автоматизировать: - во-первых, он не особо-то и много времени занимает - во-вторых, за это кто-то получает зарплату - в-третьих, от релиза к релизу шаги меняются и нет никакого смысла это автоматизировать однако все что сейчас существует на рынке, и в особенности в опенсорсе, даже эту задачу автоматизировать толком не в состоянии, здесь не особо вижу смысла накидывать кучу примеров в качестве подтверждения мысли, но в целом видится так, что все эти "автоматизации" зиждятся на трех китах: - у заказчика неправильный дизайн приложения и нужно его менять - у заказчика кривая архитектура и нужно ее менять - ну мы тут у себя что-то запускали, а на проде внезапно что-то пошло не так, виноват дизайн и архитектура ... |
|||
:
Нравится:
Не нравится:
|
|||
15.07.2021, 09:46 |
|
Maven и зависимость по коммиту гита
|
|||
---|---|---|---|
#18+
mayton, То есть ты сделал git clone //repo1 c:\dir1 git clone //repo1 c:\dir2 ? И чё?))) ... |
|||
:
Нравится:
Не нравится:
|
|||
15.07.2021, 09:47 |
|
Maven и зависимость по коммиту гита
|
|||
---|---|---|---|
#18+
PetroNotC Sharp mayton, То есть ты сделал git clone //repo1 c:\dir1 git clone //repo1 c:\dir2 ? И чё?))) Ладно забей. Не стоит это внимания. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.07.2021, 10:05 |
|
Maven и зависимость по коммиту гита
|
|||
---|---|---|---|
#18+
Андрей Панфилов, CD как раз и решает все эти проблемы одним нажатием кнопки. Я даже часто это нажатие на плечи QA перекладываю, ведь они решают что сборка достойна. Андрей Панфилов- сформировать ранлист, где указаны определенные вехи и продолжительность операцийЭто все в скрипте. Андрей Панфилов- согласовать (ну и назначить) время среди всех заинтересованных владельцев систем, а не только целевойКак правило нет никакой необходимости. Разве что функционал сильно поменялся и мы хотим тренинг провести для сотрудников. Андрей Панфилов- оповестить пользователей о предстоящей недоступности (мне вот, к примеру, банк присылает оповещения что онлайн-кабинет не будет работать в определенный промежуток времени)CD предполагает zero-downtime deployment (blue-green deployment, canary releases). Я последний раз деплоил с даунтаймом 10 лет назад (не, ну лукавлю - у меня были несколько релизов с даунтаймом даже во времена CD, но это большое исключение). Андрей Панфилов- согласовать доступность ключевых сотрудников на случай если что-то пойдет не по плануС трудом припоминаю случаи когда что-то шло не так (CD от этого защищает), но наверно может быть. Для этого нужен либо деплой новой версии с фиксом (т.е. нужно это делать в рабочее время когда есть разрабы) если фикс быстрый, либо просто деплой предыдущей версии. Если база меняется только аддитивно (никаких rename/drop используемых колонок), то это piece of cake. Андрей Панфилов- убедиться что из резервных копий можно-таки восстановитьсяЭто тоже легко автоматизируется и должно проверяться на постоянной основе. Где позволительно, резервные копии нужно накатывать на какие-то из дев окружений (PREPROD?), это же защитит от плохих миграций которые проходят везде кроме PROD'a. Андрей Панфилов- в час Х создать резервные копии, если необходимо - что-то куда-то накатить - прогнать смок-тесты Автоматизируется Андрей Панфилов- оповестить, что систему можно проверятьНе знаю кому и зачем это надо. Это просто "пресс релиз". Андрей Панфилови вот с моей точки зрения шаг "что-то куда-то накатить" даже не имеет смысла автоматизировать: - во-первых, он не особо-то и много времени занимает Во-первых времени это занимает прилично, т.к. это не единоразовая активность. Особенно учитывая все шаги с бекапами и пр. Во-вторых это очень ответственная процедура и в ней не должно быть ошибок. Для этого мы описываем ее в скриптах, которые тестируются на всех окружениях прежде чем будет применяться на проде. Андрей Панфилов- во-вторых, за это кто-то получает зарплатуСтранный аргумент, за ковку подков тоже когда-то получали зарплату. Андрей Панфилов- в-третьих, от релиза к релизу шаги меняются и нет никакого смысла это автоматизироватьПоследний раз менял скрипты даже не знаю когда.. 4 года назад наверно. И так в каждом проекте в которых я реализовывал CI/CD - скрипты создаются на начальных этапах и про них забывают. Разве что захотелось на какой-то новый софт перейти. Андрей Панфиловоднако все что сейчас существует на рынке, и в особенности в опенсорсе, даже эту задачу автоматизировать толком не в состоянии, здесь не особо вижу смысла накидывать кучу примеров в качестве подтверждения мысли, но в целом видится так, что все эти "автоматизации" зиждятся на трех китах: - у заказчика неправильный дизайн приложения и нужно его менять - у заказчика кривая архитектура и нужно ее менять - ну мы тут у себя что-то запускали, а на проде внезапно что-то пошло не так, виноват дизайн и архитектураНе понимаю о каких инструментах речь. CI/CD - это больше культурная и процессуальная вещь, изменения должны произойти в головах людей. Скрипты нужно самим написать, не знаю какие бы инструменты тут могли помочь. Скрипты прийдется скорей всего в каждом проекте заново писать, как и код (эх..). ... |
|||
:
Нравится:
Не нравится:
|
|||
15.07.2021, 10:13 |
|
Maven и зависимость по коммиту гита
|
|||
---|---|---|---|
#18+
Stanislav Bashkyrtsev, ну вот ваши цитирования по строчке не вызывают никакого желания вступать в дальнейшую дискуссию... Давайте так: если все по вашему мнению "автоматизируется", то, будте добры, назовите хотя бы название продукта, где все что я хочу реализовано (а не то что какой-то шаг якобы не нужен потому что вы с ним не сталкивались), а не слово "Jenkins" где все откровенно лепится из говна и палок (есть text area куда можно shell/grrovy писать - ну и пишем туда лапшу), ну или по крайней мере попробуйте доказать свое утверждение, что шаги инсталляции никогда не меняются, с учетом того что бывают миграции данных, которые идут довольно долго и для ускорения процесса что-то может запускаться параллельно, а что-то должно выполняться строго последовательно. То чем сейчас занимаются DevOps - это профанация чистой воды, у них сначала лапша г.кода жила в chief/ansible/etc, потом перекочевала в CI/CD, а потом в Dockerfile, однако от этого как она была лапшой так и осталась - каких-то качественных изменений за последние 15 лет в процессе разворачивания приложений так и не произошло (ну разве что перестали несколько приложений в один контейнер деплоить). ... |
|||
:
Нравится:
Не нравится:
|
|||
15.07.2021, 12:07 |
|
Maven и зависимость по коммиту гита
|
|||
---|---|---|---|
#18+
Андрей Панфиловну вот ваши цитирования по строчке не вызывают никакого желания вступать в дальнейшую дискуссиюНе понял - ожидается что я просто пропущу половину из написанного и не прокомментирую? Андрей ПанфиловДавайте так: если все по вашему мнению "автоматизируется", то, будте добры, назовите хотя бы название продукта, где все что я хочу реализовано (а не то что какой-то шаг якобы не нужен потому что вы с ним не сталкивались), а не слово "Jenkins" где все откровенно лепится из говна и палокДак ты против того что "все автоматизируется" или против скриптов? Я не утверждал что есть какой-то мифический инструмент который за нас все сделает. Нам нужно написать скрипты , магии не существует. Будет ли говно и палки или что там еще - ну это кто как напишет. Но работающую автоматизацию можно сделать даже из говна и палок. Это все равно будет намного лучше ручного вмешательства. Андрей Панфиловну или по крайней мере попробуйте доказать свое утверждение, что шаги инсталляции никогда не меняютсяЭт что за выдумки, я где-то писал что они никогда не меняются? Я говорил про "редко". Андрей Панфиловс учетом того что бывают миграции данных, которые идут довольно долго и для ускорения процесса что-то может запускаться параллельно, а что-то должно выполняться строго последовательноУ меня были миграции по неделе и ничего не пришлось менять в скриптах, все решалось исключительно поддержкой обратной совместимости в новых релизах пока шла миграция. Наверняка бывают какие-то исключения когда прийдется что-то вручную промигрировать или что-то в этом роде, но это все же исключения, я бы на них внимания не заострял. Вообще удивительно что в 2021ом мы ведем такие дискуссии. Уже 5 лет назад казалось что ручные манипуляции во время деплоя - это каменный век. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.07.2021, 13:27 |
|
Maven и зависимость по коммиту гита
|
|||
---|---|---|---|
#18+
Накидаю ссылок. https://www.jenkins.io/ https://about.gitlab.com/ https://www.jetbrains.com/teamcity/ (платный) https://octopus.com/ https://projects.eclipse.org/projects/technology.hudson (очень давно) ... |
|||
:
Нравится:
Не нравится:
|
|||
15.07.2021, 15:24 |
|
Maven и зависимость по коммиту гита
|
|||
---|---|---|---|
#18+
PetroNotC Sharp Stanislav Bashkyrtsev, Как это все в одной ветке? Подробнее. Пилят 20 прогеров 20 фич с новым кодом. Все 20 в мастер коммитят? Например, в конце дня 20 челов скинули НЕКОМПИЛИРУЕМЫЙ код в мастер ветку? не так конечно же берешь таску - делаешь ветку под нее- выставляешь пр - пр проходит ревью и вливается в мастер если у вас разработка ведется на несколько релизов сразу - то тогда пры вливаются в релизные ветки и оттуда уже все собирается автоматически в тимсити на нужные стенды тость о чем стас и говорил короткоживущие ветки под конкретную таску ну а автору остается лишь посочувствовать и почитать соверменные статьи CI/CD ... |
|||
:
Нравится:
Не нравится:
|
|||
15.07.2021, 20:27 |
|
Maven и зависимость по коммиту гита
|
|||
---|---|---|---|
#18+
O_79_O, Он 3 раза подтвердил что ветки не создают и работают с мастер веткой. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.07.2021, 20:33 |
|
Maven и зависимость по коммиту гита
|
|||
---|---|---|---|
#18+
mayton Накидаю ссылок. https://www.jenkins.io/ https://about.gitlab.com/ https://www.jetbrains.com/teamcity/ (платный) https://octopus.com/ https://projects.eclipse.org/projects/technology.hudson (очень давно) как же ты про гитхаб то родимый забыл он же сейчас все это предоставляет пс.лучше тим сити не будет уже- это топ тулза для больших распределенных команд и множества релизыных веток и стендов но если денег нет ,можно и на гитхабе собираться ... |
|||
:
Нравится:
Не нравится:
|
|||
15.07.2021, 20:34 |
|
Maven и зависимость по коммиту гита
|
|||
---|---|---|---|
#18+
PetroNotC Sharp O_79_O, Он 3 раза подтвердил что ветки не создают и работают с мастер веткой. комитят в мастер сразу? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.07.2021, 20:37 |
|
Maven и зависимость по коммиту гита
|
|||
---|---|---|---|
#18+
кстати нашел баг,при редактировании сообщения нет возможности фото вставить ,если изначально сообщение было без фото,хотя кнопки выбора фото присутсвуют! Ну что ж вы sql багоделы!) ... |
|||
:
Нравится:
Не нравится:
|
|||
15.07.2021, 21:05 |
|
Maven и зависимость по коммиту гита
|
|||
---|---|---|---|
#18+
В чем принципиальная разница между: - коммит в мастер - коммит в бранч => PR => слияние в мастер ? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.07.2021, 21:15 |
|
Maven и зависимость по коммиту гита
|
|||
---|---|---|---|
#18+
Alexander A. Sak В чем принципиальная разница между: - коммит в мастер - коммит в бранч => PR => слияние в мастер ? 1. push to branch -> push to branch -> push to branch -> review -> master 2. push to branch -> review -> master -> push to branch -> review -> master -> push to branch -> review -> master Т.е. мы не доводим фичу до конца в ветке, а потом вливаем. А стараемся вливать периодически то что есть, что-то что еще не закончено. Это апогей Continuous Integration'а. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.07.2021, 21:40 |
|
Maven и зависимость по коммиту гита
|
|||
---|---|---|---|
#18+
Stanislav Bashkyrtsev Alexander A. Sak В чем принципиальная разница между: - коммит в мастер - коммит в бранч => PR => слияние в мастер ? 1. push to branch -> push to branch -> push to branch -> review -> master 2. push to branch -> review -> master -> push to branch -> review -> master -> push to branch -> review -> master Т.е. мы не доводим фичу до конца в ветке, а потом вливаем. А стараемся вливать периодически то что есть, что-то что еще не закончено. Это апогей Continuous Integration'а. это апогей дурости,у меня в процессе разработки может быть такая каша в коде - сотни тысяч строк в коментах и тд науха мне это вливать то ?и собствено ладно - как это пройдет код ревью? вы либо мазохисты ,либо просто идиоты - утраиваете себе работу я вот так представляю ваш процесс- взял таску начал ресерч сделал себе ветку - что то там наработал - в коде не разбериха,работает или нет непонятно - но надо влить в мастер))) стасян надеюсь ты что то перепутал или у вас там в киргизии так принятно?) ну и вообще как можно вливать в мастер без @QA - нужно влить на тест стенд- провести полноценное тестирование и потом тоько вливать если у вас не так,а судя по всему нет - мне вас безумно жаль ... |
|||
:
Нравится:
Не нравится:
|
|||
15.07.2021, 23:01 |
|
Maven и зависимость по коммиту гита
|
|||
---|---|---|---|
#18+
заведите себе пару стендов под дев,под тест,под препрод наймите @qa которые умеют писать автотесты на питоне и тогда вас постигнет мысль о том - что нах не надо вливать что то неготовое ибо это неготовое невозможно оценить ни с точки тестов ни с точки бизнеса- ну да есть какая то куча кода и все) ... |
|||
:
Нравится:
Не нравится:
|
|||
15.07.2021, 23:05 |
|
Maven и зависимость по коммиту гита
|
|||
---|---|---|---|
#18+
Stanislav Bashkyrtsev Уже 5 лет назад казалось что ручные манипуляции во время деплоя - это каменный век. Мы с вами по-видимому на разных полях играем, отсюда и возникает отсутствие взаимопонимания... Со стороны ДИТ деплой наверное уже лет как 30 полностью автоматизирован: создается work order, он кем-то закрывается, каким именно образом он закрывается - это уже проблема вполне конкретного подразделения, они могут хоть пляски с бубном устраивать, главное чтобы work order был закрыт. Вы же пытаетесь зацепиться за несущественные детали процесса, откровенно забывая о куда более существенных: основная цель преследуемая в IT - это прозрачность и предсказуемость процессов, ну прямо как в армии: все должно быть строго параллельно и перпендикулярно, условно, если с какой-то системой начинаются проблемы, то при расследовании люди первым делом хотят увидеть какие регламентные и нерегламентные проводились в целевой системе и смежных, ровно также мониторинг должен в первую очередь не красивые картинки рисовать, а заводить инциденты в сервис-деске. Ваш дженкинс тупо не позволяет вывести процессы ДИТ на новый уровень зрелости - у его создателей просто такие цели не стоят, в дженкинсе какие-то совсем уж очевидные дыры закрываются плагинами, работоспособность и поддержка которых откровенно оставляет желать лучшего, и говно-скриптами на shell и groovy, вот откройте какой-нибудь сценарий shell в своем проекте, если в нем второй строчкой не идет "set -e", то этот сценарий просто по определению говно (я кстати не поленился и посмотрел что в этом плане происходит в "соседнем" проекте, где люди "любят" писать shell-скрипты - из 30 сценариев только в трех есть заветная строчка, потому полез смотреть что твориться в linux-kernel (ну где же еще правду-то искать) - там в 50% случаев у скриптов "правильная шапка"), а еще не забываем про то, что в shell работа со строками происходит через "одно место" - нужно все время все обрамлять кавычками и экранировать символы, и приходим к выводу что что-то автоматизировать на shell - это, откровенно, так себе затея (вообще если обратить внимание на системы сборки для java, то развитие было такое: shell -> make -> ant -> maven/groovy, и уход в сторону shell - это явная деградация). Точно также, если что-то делается через SQL-портянки, то первой строчкой в этих портянках должно быть что-то в духе "WHENEVER SQLERROR EXIT FAILURE", аналогично в Dockerfile не должно быть тэга :latest и команд RUN ... |
|||
:
Нравится:
Не нравится:
|
|||
19.07.2021, 11:46 |
|
Maven и зависимость по коммиту гита
|
|||
---|---|---|---|
#18+
Андрей Панфилов , я наверно повторюсь, но безотносительно того говно или не говно bash, хорошо на нем пишут или плохо - это все равно лучше ручного вмешательства. Андрей ПанфиловСо стороны ДИТ деплой наверное уже лет как 30 полностью автоматизирован: создается work order, он кем-то закрывается, каким именно образом он закрывается - это уже проблема вполне конкретного подразделения, они могут хоть пляски с бубном устраивать, главное чтобы work order был закрыт.Многие путаются в термине DevOps - кто-то думает что это люди. На самом деле этот термин значит Devs & Ops команды работающие вместе . В более широком смысле это значит культуру компании, где не "моя хата с краю", а разные роли и департаменты работают друг с другом совместно чтоб получить хороший результат. Не каждый работает на свою метрику, а наоборот - он может пожертвовать своим временем ради других если это повышает производительность организации в целом . Т.е. мы боремся не за локальный, а именно за глобальный оптимум. Это именно то к чему IT пришло чуть больше 10 лет назад - такая схема приводит к более успешным проектам и компаниям. А "заводится work order - они там пусть че хотят, то и делают" - это что-то из 90ых. Программисты должны разбираться на каких OS у них деплой, с какой конфигурацией. И без их помощи Ops инженеры не смогут сделать свою работу хорошо, ведь одна из их основных задач - полностью автоматизировать деплой. Именно от разработчиков зависит можно ли реализовать blue-green deploy, будут ли они релизить маленькие куски (с помощью branching by abstraction, feature toggles и пр) или большие (после которых возникает намного больше проблем), как что логируется и пр, пр. И это же будет помогать затем программистам делать продукт лучше. Потому как они смогут получать своевременную обратную связь (из-за частых релизов) и дальше делать решения основываясь на данных, а не на догадках. Да и в целом это повышает мораль, CI/CD - это спокойные проекты, без стрессов, где релиз всегда проходит гладко. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.07.2021, 12:04 |
|
Maven и зависимость по коммиту гита
|
|||
---|---|---|---|
#18+
O_79_O mayton Накидаю ссылок. https://www.jenkins.io/ https://about.gitlab.com/ https://www.jetbrains.com/teamcity/ (платный) https://octopus.com/ https://projects.eclipse.org/projects/technology.hudson (очень давно) как же ты про гитхаб то родимый забыл он же сейчас все это предоставляет пс.лучше тим сити не будет уже- это топ тулза для больших распределенных команд и множества релизыных веток и стендов но если денег нет ,можно и на гитхабе собираться Про bitbucket еще забыл. Там тоже какой-то конвейер CI/CD продается в комплекте. https://bitbucket.org/product/features/pipelines Мы использовали бакет лет 6 назад только как репо. Без этого конвейера. Поэтому не могу сказать насколько там все хорошо или плохо. Пусть знающие откомментируют. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.07.2021, 12:47 |
|
Maven и зависимость по коммиту гита
|
|||
---|---|---|---|
#18+
Stanislav Bashkyrtsev, Ты немного смешал темы "Методология разработки ПО (водопадная, экстремальная, скрам,... И тему гита. Чаще релизы это относится к первому вопросу. Слово Методология определяет те вещи о которых ты говоришь ... |
|||
:
Нравится:
Не нравится:
|
|||
19.07.2021, 14:28 |
|
|
start [/forum/topic.php?fid=59&msg=40084161&tid=2120394]: |
0ms |
get settings: |
18ms |
get forum list: |
5ms |
check forum access: |
1ms |
check topic access: |
1ms |
track hit: |
57ms |
get topic data: |
3ms |
get forum data: |
1ms |
get page messages: |
470ms |
get tp. blocked users: |
1ms |
others: | 368ms |
total: | 925ms |
0 / 0 |