Poprzedni wpis (Pointless) | Następny wpis (Miód, miód!)

Brakujące ogniwo

W nowej pracy dostałem nowe zadanie do zrobienia — zdeployować gotową aplikację w Javie na kilka maszyn w kilku odmianach. Jako że do tej pory takimi rzeczami zajmował się dla mnie dział deploymentu (słodkie czasy), było to dla mnie coś zupełnie nowego. Do zrobienia była dość prosta rzecz:

  • skopiować kilka szablonów plików z jednego drzewa katalogów do drugiego,
  • podmienić odpowiednie ciągi znaków w plikach szablonów,
  • spakować wszystko do tar.gz,
  • wrzucić na zdalną maszynę przez scp,
  • rozpakować na zdalnej maszynie,
  • uruchomić aplikację pod screenem.

Zacząłem od poszukiwania narzędzia, które by mi to ułatwiło.

Skrypty w shellu odpadły na samym początku. Nie umiem ich pisać, poza paroma najbardziej podstawowymi zastosowaniami.

W pracy używamy Pavera, więc naturalną koleją rzeczy zasiadłem do klepania pliku pavement.py. Szybko okazało się, że to potwornie żmudna robota, gdy aplikacja nie jest napisana w Pythonie i wszystkie ułatwienia Pavera można sobie wsadzić głęboko.

Przypomniałem sobie wtedy, że parę lat temu robiłem podobne rzeczy przy użyciu anta, więc napisałem sobie odpowiedni plik build.xml. Było z tym trochę roboty, ale działa. Wreszcie. Ale niestety, to jest Java i XML, więc piętno zostało wybite.

Zacząłem się rozglądać za innym narzędziem i wtedy wpadł mi w oko Fabric. Z opisu wynika, że może być tym, co zastąpi mi anta... ale może też wcale tak nie być. Projekt jest w bardzo wczesnej fazie rozwoju, ale będę miał na niego oko, gdyby ant za bardzo mi dopiekł.

Komentarze (15)

#1 gość skomentował(-a) 24 lipca 2008 o 13:44

A może Capistrano?

http://www.capify.org/

#2 jarek skomentował(-a) 24 lipca 2008 o 14:19

A może jednak nie? Nie robię w railsach, tylko w Django i w Javie.

#3 matchil skomentował(-a) 24 lipca 2008 o 15:13

Maven?

http://maven.apache.org/

Ostatnimi czasy jakis kolega Javoviec porzucil Anta wlasnie na rzecz Mavena. A nóz się przyda.

Pozdrawiam.

#4 matchil skomentował(-a) 24 lipca 2008 o 15:17

... albo moze http://www.scons.org/ ?

:)

#5 jarek skomentował(-a) 24 lipca 2008 o 15:18

Jak ma być Maven, to ja zostaję przy Ancie.

Szukam czegoś w Pythonie, dla ustalenia uwagi. A właściwie nawet nie szukam, tylko czekam, aż się coś nawinie.

#6 mrman skomentował(-a) 24 lipca 2008 o 16:24

a skonczy sie pewnie dzialem deploymentu :)

#7 zh skomentował(-a) 24 lipca 2008 o 20:04

Fabric i Ant mają trochę inne przeznaczenie. Poza tym uważam, że Fabric nie oferuje niczego rozsądnego - wartość dodana rozwiązania opartego na Fabric w porównaniu ze zwykłym skryptem shellowym jest praktycznie żadna.

#8 jarek skomentował(-a) 25 lipca 2008 o 08:09

@mrman:
Bardzo na to liczę. To nie jest dobry pomysł, żeby developerzy deployowali swoje aplikacje na maszyny produkcyjne, ze wszystkimi tego konsekwencjami. Oni po prostu na tym się nie znają.

@zh
Ogólny zakres zastosowań Fabrica i Anta jest inny. Mnie chodzi o narzędzie do dość konkretnego zadania, nie mającego nic wspólnego z budowaniem jako-takim (do czego jest stworzony Ant).
Skrypty shellowe odpadły na początku, bo nie umiem ich pisać (ale to pewnie wiesz, bo przeczytałeś cały wpis od początku, prawda?).

#9 pats skomentował(-a) 25 lipca 2008 o 16:08

Nie wiem jakie masz potrzeby, ale z pewnością w kilku miejscach może Ci pomóc http://codespeak.net/py/dist/

pzdr, patS

#10 janislaw skomentował(-a) 27 lipca 2008 o 15:12

Scons jest niepytoniczny na potęgę.

#11 jarek skomentował(-a) 27 lipca 2008 o 21:12

Jeszcze bardziej niepytoniczny, niż Ant?

BP,NMSP

#12 zh skomentował(-a) 27 lipca 2008 o 21:52

Jarek, ale właśnie o to chodzi, że korzystając z Fabrica i tak nie unikniesz potrzeby pisania skryptów shellowych lub shellopodobnych, praktycznie jedyna rzecz którą dostajesz z Fabryki to możliwość skopiowania pliku i wykonania polecenia, IMHO to trochę mało...
A wpis oczywiście przeczytałem w całości :)

#13 jarek skomentował(-a) 27 lipca 2008 o 23:00

No właśnie trochę tam ubogo. Nic, trudno, przyzwyczaiłem się już do Anta. ;)

#14 Tomek skomentował(-a) 1 sierpnia 2008 o 09:04

A słyszałeś o Vellum?
https://launchpad.net/vellum/
http://www.zedshaw.com/projects/vellum/

Sam nie używałem, ale może się przyda...

#15 eXt skomentował(-a) 4 sierpnia 2008 o 12:48

Jest jeszcze fassembler. Tutaj pare słów na jego temat: http://blog.ianbicking.org/2008/06/19/my-experience-writing-a-build-system/

Skomentujesz?

* 


* 


* oznacza pole wymagane