SpringBoot relese na produkcje i aktualizacja

0

Witam,
chciałem się zapytać jak dostarczacie swoje aplikację na produkcje. Tzn. z aplikacji Spring Boot można wygenerować jaro-service który w naszych Linuxach dodajemy sobie do etc/init.d. No dobra ale jak wygląda proces aktualizacji takiego Jara, załóżmy, że najnowsze wersje są publikowane na Nexus lub innym ogólnie dostępnym repozytorium "plików", czy za każdym razem admini mają pisać skrypty które szukają najnowszych wersji na Nexus??

0

Tworząc Release z mastera na GitHubie (tag) budujemy z aplikacji obraz Dockerowy Travisem i wrzucamy na ECR (AWS). Potem zmieniamy wersję obrazu w deploymencie (na tę chwilę ręcznie ale w przyszłym sprincie chcemy to już zautomatyzować) i wgrywamy na środowisku w Kubernetesie. K8s sam już zajmie się podmianą wersji na tę którą mu podaliśmy.

0

Żonglowanie jarami to proszenie się o kłopoty, po paru miesiącach nikt już nie będzie pewien na 100% na którym serwerze chodzi która wersja i czy na pewno nie zlepiły się kawałki różnych, jeśli byłoby np. więcej plików niż ta jedyna jarka ;)

  • jak chcesz stawiać aplikację bezpośrednio w systemie, to zawsze możesz zbudować paczkę .DEB lub .RPM (są jakieś pluginy gradlowe do tego, maven pewnie też coś ma, nie musisz ręcznie rzezać) i zainstalować ją systemowym managerem pakietów np. APT czy YUM. Dodajesz URL swojego repozytorium i możesz sobie upgradować jak każdy inny soft pod Linuxem.
  • jak Ci nie zależy to możesz załatwić sprawę używając Dockera, bo zbudowaniu obrazu i wypchnięciu np. do Artifactory będziesz mógł zassać nowszą wersję i odpalić w miejsce starej, albo nawet obok starej. W poprzednim projekcie wydziobałem nawet mini toola który dokładnie to robił - śledził sobie jakie wersje apki mamy w repo na Artifactory i pozwalał robić np. upgrade czy downgrade.

1 użytkowników online, w tym zalogowanych: 0, gości: 1