Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> jak pracowac z produkcja i developmentem? GIT
bialko0019
post 11.04.2016, 18:25:17
Post #1





Grupa: Zarejestrowani
Postów: 294
Pomógł: 4
Dołączył: 19.12.2008

Ostrzeżenie: (0%)
-----


Witam Was. Jak przenieść wersję z produkcji na developerską? Załóżmy że pracuję sobie na gałęzi A. Jest ona skończona. Jest to na serwerze www.A.pl. Teraz chcę przenieść na inny serwer, pod który jest już podpięta domena, czyli np. www.b.pl ?

Chodzi o to, że pracuję na gałęzi A, i całe oprogramowanie jest skończone i chce przenieść już na serwer serwis. Potem oczywiście będą sytuacje, że dalej pracuje sobie na produkcji, jak zrobię nowy ficzer, to chciałbym go przenieść na produkcję któa jest na innym serwerze.

Pomyślałem, że można to zrobić tak, żeby wgrać na bitbucket push`em, a na nowym serwerem zrobić git clone - ale czy to fachowe rozwiązanie, tak się robi ? Czy jak to się odbywa, gdy są dwa całkowicie inne serwery, oczywiście z dostępem ssh. ;-)


--------------------
---
"kto pyta ten nie błądzi"...
Go to the top of the page
+Quote Post
vokiel
post 11.04.2016, 19:10:28
Post #2





Grupa: Zarejestrowani
Postów: 2 592
Pomógł: 445
Dołączył: 12.03.2007

Ostrzeżenie: (0%)
-----


Poczytaj o Git Flow.

Generalnie jeśli masz repozytorium główne (np. na Bitbucket) możesz sobie ustalić, że branch master odpowiada produkcji (b.pl) a major środowisku dev (a.pl).
Tworząc sobie kod pracujesz na branch'ach dedykowanych do poszczególnych zagadnień/zadań. W momencie gdy zrobisz merge feature branch'a do major to możesz te zmiany wprowadzić na a.pl, a jak zrobisz merge do master to na b.pl.

Zmiany na a/b możesz robić ręcznie (logując się przez SSH na serwer i wpisując komendy) lub napisz jakiś skrypt, który to zautomatyzuje (korzystając z hook'ów). Możesz na początek zrobić coś bardzo prostego - skrypt który odbierze informację z webhooka i wykona tych kilka komend (ściągnie zmiany z repozytorium, uruchomi testy, podmieni pliki w lokalizacji docelowej, wyśle maila z podusmowaniem) poprzez jakieś shell_exec.

Później możesz się pokusić o bardziej zautomatyzowane, dedykowane środowisko, które wykona te wszystkie czynności za każdym razem gdy nastąpi push/merge do wybranego branch'a.


--------------------
Go to the top of the page
+Quote Post
bialko0019
post 11.04.2016, 19:54:53
Post #3





Grupa: Zarejestrowani
Postów: 294
Pomógł: 4
Dołączył: 19.12.2008

Ostrzeżenie: (0%)
-----


acha, czyli pracuję i testuję nowe ficzery na gałęzi jednej. Jeśli uznaję, że jest okey, to kopiuję z brancha na którym pracuję do brancha, który jest już oficjalny. Następnie na drugim serwerze chcę dopiero wgrać wtedy, gdy chcę, a nie automatycznie - czyli jedynym wyjściem jest git clone branch`a oficjalnego na drugim serwerze?


--------------------
---
"kto pyta ten nie błądzi"...
Go to the top of the page
+Quote Post
Pyton_000
post 11.04.2016, 20:23:17
Post #4





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


nie clone a po prostu pull.

Na serwerze A branch develop do testowania (przed releasem na serwerze B robisz sobie gałąź release i testujesz, jeśli jest ok to merge do master), na serwerze B master

http://nvie.com/posts/a-successful-git-branching-model/
Go to the top of the page
+Quote Post
bialko0019
post 11.04.2016, 21:49:31
Post #5





Grupa: Zarejestrowani
Postów: 294
Pomógł: 4
Dołączył: 19.12.2008

Ostrzeżenie: (0%)
-----


PIęknie! Ogarnąłem wstępnie, dziękuję wink.gif Jeszcze pytanie. Jak pracuje 10 programistów - to wątpie by wszyscy pracowali na jednym serwerze, bo ktoś sobie coś wyprintuje, ktoś coś pokaże i wtedy np. na jednej stronie jest zamieszanie, nie wiadomo czy ja coś printuje czy ktoś inny itd. Wtedy też pracuje każdy programista na innym swoim lokalnym serwerze np. xampp (zawsze wczesniej pobiera ost. zmiany) i dopiero daje zmiany do serwera gdzie już powinny wszystko działać, a stamtąd jakiś team leader daje zmiany jeśli jest okey na docelowy serwer, czy jakoś inaczej? Czy może jakoś tak, że każdy pracownik ma www w jakimś podkatalogu?


--------------------
---
"kto pyta ten nie błądzi"...
Go to the top of the page
+Quote Post
markuz
post 11.04.2016, 21:57:58
Post #6





Grupa: Zarejestrowani
Postów: 1 240
Pomógł: 278
Dołączył: 11.03.2008

Ostrzeżenie: (0%)
-----


Najlepszą opcją było by postawienie serwerów lokalnie na maszynach wirtualnych które mają ten sam system i biblioteki co serwer produkcyjny - wtedy nie powinno być problemów z kompatybilnością.


--------------------
Go to the top of the page
+Quote Post
bialko0019
post 11.04.2016, 22:13:16
Post #7





Grupa: Zarejestrowani
Postów: 294
Pomógł: 4
Dołączył: 19.12.2008

Ostrzeżenie: (0%)
-----


No właśnie, czyli jeśli mam dedyka i np. debiana. To na jakimś virtualbox`ie instalować debiana, zrobić obraz i każdy kto nowy pracownik jest to mu go tworzyć? A jak się zaaktualizuje i zainstaluje jakąś nową bibliotekę, to wtedy wszystkim też instalować? ;p To chyba lepiej mieć aplikację w kilku katalogach na jednym serwerze zdalnym bo jak coś dojdzie to potem problem.. Chyba, że jakiś inny pomysł


--------------------
---
"kto pyta ten nie błądzi"...
Go to the top of the page
+Quote Post
vokiel
post 12.04.2016, 07:28:25
Post #8





Grupa: Zarejestrowani
Postów: 2 592
Pomógł: 445
Dołączył: 12.03.2007

Ostrzeżenie: (0%)
-----


Każdy deweloper pracuje na VM na swoim komputerze (nie ma sensu pchać każdej zmiany do zdalnego repozytorium, żeby odpalić to na jakimś wspólnym serwerze).

Problem z aktualizacją wszystkich maszyn oczywiście może wystąpić. Jednak IMHO nie powinien pojawiać się zbyt często, bo raczej serwera produkcyjnego nie aktualizuje się codziennie.
Rozwiązań jest kilka, począwszy od generowania nowego pliku po aktualizacji (ova dla VBox), poprzez Vagranta (update box) skończywszy na Dokerze.


--------------------
Go to the top of the page
+Quote Post
bialko0019
post 18.04.2016, 14:05:00
Post #9





Grupa: Zarejestrowani
Postów: 294
Pomógł: 4
Dołączył: 19.12.2008

Ostrzeżenie: (0%)
-----


A podpowiedzcie mi. Czy jest jakaś możliwość zrobienia zrzutu z już istniejącego serwera? Jakiś czas temu zainstalowałem sobie na dedyku debiana, różne usługi, biblioteki i przydatne dla mnie funkcje, i chciałbym to przenieść na np. virtualbox`a, żeby sobie lokalnie działać. Jest jakiś sposób by to przenieść czy raczej nie ma sensu i lepiej instalować raz jeszcze, instalować usługi i już?


--------------------
---
"kto pyta ten nie błądzi"...
Go to the top of the page
+Quote Post
nospor
post 19.04.2016, 14:04:37
Post #10





Grupa: Moderatorzy
Postów: 36 468
Pomógł: 6300
Dołączył: 27.12.2004




Cytat
zy raczej nie ma sensu i lepiej instalować raz jeszcze, instalować usługi i już
Zainteresuj sie vagrantem lub dockerem.
Tam na dzien dobry dostajesz system jaki chcesz i nie musisz go instalowac. Pozostaje tylko kwestia doinstalowania reszty programow, ale i to nie problem, bo w necie jest pelno kodow na to. Tak raz przygotowana paczke dajesz koledze i on pracuje na tym samym srodowisku co ty. Latwo mozesz tam cos dodac i takie tam.

Osobiscie z tych dwoch co tu ci wymienilem polecam na chwile obecna bardzie Docker. O niebo szybszy, cala masa programow juz poinstalowanych w paczkach, zawsze znajdziesz cos dla siebie -a jak nie, zawsze mozesz wzbogadzic paczke o swoje rzeczy.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 27.05.2024 - 01:06